[BUG] cygport-0.2.7 fails to build multiple binary packages

Charles Wilson cygwin@cwilson.fastmail.fm
Wed Jan 10 04:51:00 GMT 2007


Stefan Björnelund wrote:
> While tying to rebuild the gettext-0.15-1 package, (with the intent
> with the po-mode emacs mode), I noticed that it did not build
> correctly any more.

The gettext .cygport requires additional features not implemented by the 
stock çygport-0.2.7 framework.  In particular, the relocatable package 
patch here:

http://sourceware.org/ml/cygwin/2006-11/msg00719.html
It's #3 on the list, but see also
http://cygwin.com/ml/cygwin/2007-01/msg00115.html
where I have withdrawn that patch (as it is now out of date and I'll 
update it when I release the next version of gettext/libiconv).

FWIW, the gettext .cygport ALSO requires the following patch:
http://cygwin.com/ml/cygwin/2007-01/msg00115.html

And it *might* also require this patch:
http://cygwin.com/ml/cygwin/2007-01/msg00114.html

In any case, you won't have much luck until those patches are approved 
by the cygport maintainer, and a new version of cygport is released. 
However, that might be a while:
http://cygwin.com/ml/cygwin-talk/2006-q4/msg00159.html

Most of what your patch implemented already exists in
http://cygwin.com/ml/cygwin/2007-01/msg00115.html -- and THAT patch has 
the advantage of NOT breaking other .cygports:

>   Unfortunately this change will probably break the
>   postinstall/preremove scripts in the existing multiple binary
>   packages. Coincidentally this also removes the need for the
>   handcrafted postinstall/preremove scripts in the gettext package,
>   so this change seems to be in line with the intent of the cygport
>   goals.

I think the added complexity -- and brittleness -- of "check which 
binary package a given info file belongs to, and add the install-info 
command to a matching .postinstall/.preremove script" is too high a 
price for the minimal improvement in usability for a few oddball 
packages like the gettext family.

The solution pursued in msg00115.html above is "When necessary, allow 
the maintainer to turn off install-info automation, and provide explicit 
postinstall/preremove files specific to each subpackage."  This provides 
the maintainer with the most flexibility, without over-complicating the 
cygport package's internal logic.

--
Chuck
cygwin gettext maintainer


P.S. I just noticed something: since Í withdrew the relocatable patch, 
even if Yaakov integrates all 7 of the patches I posted on January 6 (so 
far: 2 down, 5 to go), the gettext .cygport STILL will not work, even if 
you do not attempt to enable the relocation part (that is, you leave the 
following commented-out):

### Uncomment the following line to enable relocation support
#inherit relocatable.cygclass

This is because gettext.cygport's src_compile(), gettext_check*(), 
src_test(), and src_install() functions all call the non-existant

__maybe_relocate()

function.  Quick fix (assuming my other 5 patches are integrated into 
the cygport framework) is to add the following to gettext's .cygport 
file somewhere near the top:

__maybe_relocate() {
	:
}





More information about the Cygwin-apps mailing list