Updated (and new) cygport patches

Charles Wilson cygwin@cwilson.fastmail.fm
Sat Jan 6 02:03:00 GMT 2007


Yaakov S (Cygwin Ports) wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
> 
> Charles Wilson wrote:
>> Yaakov: Of the 7 patches I've posted recently, I expect that only two
>> will require in-depth analysis before you apply them.  The rest are
>> pretty straightforward:
> 
> Thanks for being so on top of these, because I was beginning to lose
> track among all the noise (on this list and in my house :-) ).
> 
> BTW, would it be easier for cygport developers if I open a bug tracker
> on SF.net?  (/me wishes for bugzilla, but...)

I wouldn't worry about that.  Most patches are much smaller and easier 
to review than my behemoths.  Look how quickly Eric's recent small patch 
was reviewed and added to CVS...even in the midst of your recent 
excitement.

>> [1] cygport-ac2.61.patch and
> 
> 2.61 is now supported in CVS.

Not entirely -- you missed a spot in cygconf().  I'll post a patch in a 
separate thread; datarootdir should be used with both 2.60 and 2.61 (and 
later, but that's a worry for another day)

>> [1a] http://www.cygwin.com/ml/cygwin/2006-11/msg00720.html
>>        these two are holding up the release of autoconf2.5-2.61
> 
> I would like to test autoconf-2.61 first to understand this better.
> Does the attached tarball build with cygport CVS HEAD and autoconf-2.61
> installed?

Well, sorry this is a bit late, but the tarball attached to your message 
didn't exactly work: prep, build, install, pkg all worked -- but check 
did not.  Closer inspection showed that the tarball attached to your 
message was quite different from the 0.2.7 you actually released.

The actual, released cygport-0.2.7-1-src tarball worked fine for 
prep/build/install/pkg AND check.

> I'm considering this issue a BLOCKER for 0.2.7, and I want to roll it as
> soon as this is working.

As you had already concluded, 0.2.7 works with ac2.61.  The only missing 
bit is not a "breakage", but a "prefer" issue (with ac2.60 and above, 
use --datarootdir in preference to --datadir, --infodir, and --mandir).

>> [2] cygport-mixedmode.patch [*]

NOTE: the PATCH_URI functionality in 0.2.7 is not sufficient to 
reproduce all of the functionality of this patch.  Sometimes "upstream 
patches" are not distributed as .patch files.  They can be .zip files 
that contain new files to be copied into srcdir plus a script to run 
that itself modifies srcdir files (as in rxvt-unicode-X-7.7-5) or 
tarballs that include a patch as well as some binary test images (as in 
lossless jpeg).

PATCH_URI is good for the most common case -- vim, ncurses, readline, 
bash all provide one or more plain .patch files between major releases. 
  But you can't foresee the needs of all possible situations -- and if 
you did, cygport's code would be a nightmare.  PATCH_URI provides good, 
basic functionality -- but there are packages that need more 
flexibility/power...rather than anticipate or special-case all possible 
situations, cygport should provide basic tools that client .cygport 
files can use to satisfy the needs of that particular package.  More on 
that, below.

>> [3] cygport-multiple-postinstall.patch
>> [4] cygport-install-hooks.patch (this one)
> 
> I want to get 0.2.7 out first.

OK.  It's out.  I'll update my patches and post each in a separate 
thread.  Obviously, cygport-ac2.61 will be a lot smaller.

>> [*] also includes what could be termed "prep hooks" similar to the
>> install hooks provided by the attached patch, but which allow cygports
>> to intervene in the automated portion of src_prep.  I could split this
>> out into a separate patch if you prefer.

> Perhaps; I'm still hesitant about the hooks concept, as I'm afraid it
> may be abused.

I will move all "hooks" functionality into a separate standalone patch. 
  I do not understand your objection to them -- "abuse" is an odd term. 
cygport is a tool, and at present does not have sufficient power to do 
all the things required of it.  These patches add that power.

Of course, power can always be "abused". But by what definition?  Are 
you trying to enforce some policy via the cygport code?  What is that 
policy, and who decided what it should be -- did I miss the discussion? 
  Worse, enforcement of policy via opensource code is doomed to 
failure... <longwinded dissertation on open source, forks, the 
inadvisability of enforcing policy via code, and 
sofware-nanny/big-brotherism snipped>.

Besides, cygport is a tool for cygwin package maintainers.  If a 
maintainer "abuses" the tool's power -- who cares? (And who decides what 
constitutes "abuse"?)  This is *policy* -- and policy is best determined 
(and enforced) by human interaction, not by deliberately crippling 
cygport's code (crippleware is a proprietary software "technique" that 
has no business in opensource code -- because somebody will uncripple it 
in short order).

Now, if some maintainer did something truly evil (like hiding a trojan) 
-- well, it would be dealt with very quickly I'm sure, by us humans on 
the mailing lists, but that's outside the purview of cygport. "Abusing" 
cygport, as you alude to, is a much less serious offense -- if it is an 
offense at all!

>> [5] cygport-relocatable.patch
>> [6] cygport-custom-cmds.patch
> 
> And these as well, although I think the relocatable patch will be first,
> as its effects are isolated.

Wow, I figured the relocatable one would be LAST, because
   (1) it really is only needed by at most two packages at present, and 
only when those packages are built in a non-standard way
   (2) it's the MOST invasive of all: ${_RELOCDIR} sprinkled everywhere, 
modifications not just to cygport.in but also some lib/ files, etc.
   (3) number of lines changed/added is largest of all of my patches
Sure, when turned off it has zero effect, but that's not the usual 
definition of "isolated".

Look for a number of posts in the very near future, with updated 
versions of my various patches.

--
Chuck

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



More information about the Cygwin mailing list