Re: I broke cygport

2006-10-18 Thread Charles Wilson

Yaakov S (Cygwin Ports) wrote:


I just checked in a fix for this; please test.


Yep. That fixed it.

--
Chuck


Re: I broke cygport

2006-10-18 Thread Vin Shelton

Thanks for your feedback.

Yaakov S (Cygwin Ports) wrote:

cygconf is intended only for autoconf-based configure scripts.  I'm not
familiar with XEmacs, but I do know that autoconf-based configures will
just ignore unknown arguments, so I will guess that XEmacs' configure is
not autoconf-based.


Well XEmacs 21.4 is based on autoconf 2.13 and 21.5 is based on autoconf
2.59.  Neither configure script ignores unknown arguments:

$ ../cvsroot/xemacs-21.4/configure --datarootdir=/foo
../cvsroot/xemacs-21.4/configure: Usage error:
  Unrecognized option: --datarootdir=/foo
  Use `../cvsroot/xemacs-21.4/configure --help' to show usage.

$ ../cvsroot/xemacs-21.5/configure --datarootdir=/foo
configure: error: unrecognized option: --datarootdir=/foo
Try `../cvsroot/xemacs-21.5/configure --help' for more information.



Non-autoconf-based configure scripts should do something like:

lndirs
cd ${B}
./configure args || error configure failed
cygmake


Fair enough.

For the record, attached is a patch against CVS head.  This patch
allows overriding the individual components of the default configure
arguments in the cygconf() function.  In addition, I fixed some minor
typos in README unrelated to the cygconf() change; you may find those
useful in their own right.

BTW, your ChangeLog format is different from what I'm used to; I'm used to
including an identifier of who made the change.  See
http://www.gnu.org/prep/standards/html_node/Change-Logs.html for details.

Thanks again for cygport.

Regards,
  Vin Shelton


--
The Journey by Mary Oliver
http://www.poemhunter.com/p/m/poem.asp?poet=6771poem=30506


cygport2.diffs
Description: Binary data


Re: I broke cygport

2006-10-17 Thread Charles Wilson

Yaakov S (Cygwin Ports) wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Charles Wilson wrote:

For most purposes, this is transparent.  You run autoconf which is the
wrapper, and you get the right version.  However, cygport explicitly
tests for the presence of autoconf-2.5x in $PATH.

This patch makes cygport's search a little smarter -- and it or
something like it is *required* if you want cygport to work after the
new autoconf is installed.


I just checked in autoconf-2.60 support to cygport CVS.  Please test.


Well, it seems to work for bootstrapping cygport itself.  However, it 
fails with libtool (but not for any reason having to do with 
autoconf-2.60.  It's some other change introduced post-cygport-0.2.4 
release).


[[[ Side note: the new libtool cygport doesn't actually use 
cygautoreconf.  libtool-from-CVS must be bootstrapped using its own 
bootstrap script; a regular autoreconf doesn't populate the test 
projects properly.  However, if you DO use autoreconf instead of the 
bootstrap script, you can still build libtool and libltdl -- it's just 
that you can't then run the testsuite.


SO, after fixing the issue with cygautoreconf and autoconf-2.60 -- I 
could at least use it with libtool (as long as I didn't want to run the 
testsuite).


But with the cygport-from-CVS version, I can't do that.
]]]

Here's the problem: libtool (pre-version 2.0) ships with a subproject -- 
separately configured -- called libltdl.  However, the subproject does 
NOT include the GNU required files like README, AUTHORS, etc.  Those 
are all up at the top level.  Yet, cygautoreconf complains about it:


 Compiling libtool1.5-1.5.23a-1
touch: cannot touch `[libltdl]/AUTHORS': No such file or directory
touch: cannot touch `[libltdl]/COPYING': No such file or directory
touch: cannot touch `[libltdl]/ChangeLog': No such file or directory
touch: cannot touch `[libltdl]/INSTALL': No such file or directory
touch: cannot touch `[libltdl]/NEWS': No such file or directory
touch: cannot touch `[libltdl]/README': No such file or directory

(That's with src_compile containing the following two lines (among others)

#./bootstrap
cygautoreconf

Note that this not a showstopper for libtool -- I actually use 
./bootstrap in production


But I could see cases where even if the top-level project is fully GNU- 
(or gnits-) compliant, tightly-coupled subprojects may not be.  OTOH, 
you might want the current behavior for loosely-coupled groupings of 
subprojects...


Bottom Line: the autoconf-2.60 handling in cygport-from-CVS seems to 
work fine.  I discovered a use case for which cygport-from-CVS fails -- 
but this failure is unrelated to the autoconf-2.60 stuff.


--
Chuck


Re: I broke cygport

2006-10-17 Thread Yaakov S (Cygwin Ports)
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Charles Wilson wrote:
 Here's the problem: libtool (pre-version 2.0) ships with a subproject --
 separately configured -- called libltdl.  However, the subproject does
 NOT include the GNU required files like README, AUTHORS, etc.  Those
 are all up at the top level.  Yet, cygautoreconf complains about it:
 
 Compiling libtool1.5-1.5.23a-1
 touch: cannot touch `[libltdl]/AUTHORS': No such file or directory
 touch: cannot touch `[libltdl]/COPYING': No such file or directory
 touch: cannot touch `[libltdl]/ChangeLog': No such file or directory
 touch: cannot touch `[libltdl]/INSTALL': No such file or directory
 touch: cannot touch `[libltdl]/NEWS': No such file or directory
 touch: cannot touch `[libltdl]/README': No such file or directory

CVS cygport touches the standard files not only in the top directory,
but in AC_CONFIG_SUBDIRS as well, to prevent automake errors when those
files are missing.  The problem is that my parsing didn't support m4
square-bracket quoting.

I just checked in a fix for this; please test.


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFNa5lpiWmPGlmQSMRAu72AKDrPKGkUGcIoiWE2mcXiM0NyF+bbgCghtyH
1mb5aFsGQ2P+Y55wnJAGLrs=
=ochm
-END PGP SIGNATURE-


Re: I broke cygport

2006-10-17 Thread Yaakov S (Cygwin Ports)
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Vin Shelton wrote:
 Have you had a chance to look at my patch which allows over-riding the
 individual configure arguments in cygconf()?  The patch is a
 definitely a brute force approach, but something like it is necessary
 to support XEmacs (or other packages that don't fully comply with
 autoconf conventions).

cygconf is intended only for autoconf-based configure scripts.  I'm not
familiar with XEmacs, but I do know that autoconf-based configures will
just ignore unknown arguments, so I will guess that XEmacs' configure is
not autoconf-based.

Non-autoconf-based configure scripts should do something like:

lndirs
cd ${B}
./configure args || error configure failed
cygmake

Note that this is consistent with Portage; the current xemacs ebuild[1]
does not use econf either.

[1]
http://sources.gentoo.org/viewcvs.py/*checkout*/gentoo-x86/app-editors/xemacs/xemacs-21.4.19.ebuild

 I will update the patch to the latest version of cygport if you want.

In general, all patches for cygport should be made against CVS HEAD, but
I don't think this needs a patch.


Yaakov

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFNbKVpiWmPGlmQSMRAtVVAKCb6iENVw1jvzKCVi/OTKAYvJK24ACbBKf3
mKabIE3D0eCb44O9KhBAuo0=
=QAXo
-END PGP SIGNATURE-


Re: I broke cygport

2006-10-16 Thread Yaakov S (Cygwin Ports)
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Charles Wilson wrote:
 For most purposes, this is transparent.  You run autoconf which is the
 wrapper, and you get the right version.  However, cygport explicitly
 tests for the presence of autoconf-2.5x in $PATH.
 
 This patch makes cygport's search a little smarter -- and it or
 something like it is *required* if you want cygport to work after the
 new autoconf is installed.

I just checked in autoconf-2.60 support to cygport CVS.  Please test.


Yaakov
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.2.1 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFNG2dpiWmPGlmQSMRAuknAKC2zz7YDX9Rk4wVvDwWq4wckVDq9ACdHSce
ykZGSQxm8l4Xl0RRjYV7+oQ=
=X0N+
-END PGP SIGNATURE-