delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/04/19/20:21:46

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.5 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,TW_TD,T_RP_MATCHES_RCVD
X-Spam-Check-By: sourceware.org
Message-ID: <4F90ABEA.2060301@tlinx.org>
Date: Thu, 19 Apr 2012 17:20:58 -0700
From: Linda Walsh <cygwin AT tlinx DOT org>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666
MIME-Version: 1.0
To: De-Jian Zhao <dejian DOT zhao AT gmail DOT com>
CC: "cygwin AT cygwin DOT com" <cygwin AT cygwin DOT com>
Subject: Re: Can RPM packages be installed into Cygwin?
References: <4F7FEF5B DOT 5060206 AT gmail DOT com> <4F8D066B DOT 2060900 AT tlinx DOT org> <4F8EBDF0 DOT 4080407 AT gmail DOT com> <4F8EF2AA DOT 9050305 AT tlinx DOT org> <4F8EFC18 DOT 1070508 AT gmail DOT com>
In-Reply-To: <4F8EFC18.1070508@gmail.com>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

De-Jian Zhao wrote:

> Hi, Linda. Thank you for your detailed explanation. The "spec" file 
> seems different from your description. There is no explicit 
> BuildRequires statement. There is no explicit statement of packages 
> required. It is as follows:

----
	The one I included was definitely a more complicated one.

Most OLDER src BUILD spec files did NOT include a list of what they
needed to build -- so you wouldn't see any BuildRequires -- in them...

A major improvement, IMO -- since before, you could run and run builds
and have them fail due to something missing... and it woudl take
forever to try to figure it out, or worse -- what package the referennce
was in --

The cygwin build package was still at that level last time I tried... Never
could figure out all the prereqs, so it always failed on my machine...
sigh.

(only made attempts about 3 times spaced about a year or more apart each...)..

There's a load of difference between those who say it is easy (when they know
they solution), vs. out of 100 choices, if you don't know they right one --
it's hard -- multiply that by more choices and products and the solution becomes
NP-hard.




> ./configure
> cd c++/*/build
> %__make -f Makefile.flat

----
The above is the part you want - it uses configure to build itself -- so ideally
you can just unpack the tar (read the build.sh and see if it does anything
special (sets ENV vars or uses special options to configure), then do the 
configure.  When done, you should be able to cd to 'somedir' (usually the
top level dir -- looks like they are only building part of the product).
and usually just run 'make'
Again -- they seem to be using a custom 'Makefile.flat', instead of the regular
make, so you might want to look at the makefile configure generates and 
Makefile.flat and see what's different and 'why' they did it that way (maybe 
tried to make it more portable on different architectures..?  guessing)...


> 
> %install
> %__mkdir_p $RPM_BUILD_ROOT/%_bindir
> cd c++/*/bin
> %__install -m755 blastp blastn blastx tblastn tblastx psiblast rpsblast 
> rpstblastn blast_formatter deltablast makembindex segmasker dustmasker 
> windowmasker makeblastdb makeprofiledb blastdbcmd blastdb_aliastool 
> convert2blastmask blastdbcheck legacy_blast.pl update_blastdb.pl 
> $RPM_BUILD_ROOT/%_bindir

----
You likely won't need this -- if you tell configure where your bind dir is
(remember ./configure --help, will tell you how to set options for where you
want things to go -- can always make a best guess and see if it works, if not,
try again (I've made many more wrong choices than right ones -- but I just try 
not to stop until I find the right one (or at least one that's good enough for 
me!)...
though to install, usually after you 'make', you need to do a 'make install'

-


> 
> 
> There is a file ncbi-blast-2.2.26+.tgz under the directory SOURCES. 
> There are two files, or build.sh and check.sh, in the directory 
> ncbi-blast-2.2.26+\c++\compilers\cygwin\, which is similar to the 
> package ncbi-blast-2.2.26+-src.tar.gz. I was stuck with "checking for 
> python" when compiling ncbi-blast-2.2.26+-src.tar.gz.

----
	Well, then they are doing something similar to what rpm does...
I assume you mean when you did the configure/make manually or are you still
trying it through rpm?... rpm has those problems I mentioned earlier.
Does the package you are using use python that you know of?

Might look through the makefile and see what it does with python -- find out 
where that message is comming from (process explorer/process monitor (both from
sysinternals (part of microsoft).. are free). they can help you identify what 
processes are running and such.

also .. don't forget cygwin's 'strace -ff fffff'    If you start your make
with strace, you'll get lots of output, but it should 'hang'  (or be going in 
loops) pretty close to where you are seeing that message!)...

If fact, when that message comes out, us 'ps' to see what is running and
use strace to attach to the running process and see what the bleep it is 
doing.....   Work on tracking it back to what script is beign called and see
if you need it.  if not-- nix it some way (exit 0 as 1st line works!)...;-)

Welcome to the world of porting...

A real pain when all you wanted to do was calculate "2+2"... ;-)



--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019