[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: a saner bootstrap script
From: |
Gary V. Vaughan |
Subject: |
Re: a saner bootstrap script |
Date: |
Thu, 20 Oct 2011 23:12:55 +0700 |
Ping?
On 16 Oct 2011, at 12:50, Gary V. Vaughan wrote:
> Hi Jim,
>
> On 16 Oct 2011, at 04:15, Jim Meyering wrote:
>> Gary V. Vaughan wrote:
>>> Is there anything else I can do to help you incorporate this, and the
>>> matching bootstrap.conf I wrote for you into coreutils now that the
>>> release is out?
>>
>> Thanks for persevering. I have just tried it.
>
> Excellent, thanks for that, and for the feedback.
>
>> Please make at least a token effort to minimize differences in
>> bootstrap.conf. That makes it a lot easier to compare to the original.
>
> Apologies, I was starting from the Zile bootstrap.conf that I wrote,
> and copying over the various variable settings from the old coreutils
> bootstrap.conf, and not editing the coreutils bootstrap.conf itself,
> so I didn't think about needing to run diff between branches.
>
>> Here is a new version with fewer gratuitous white space changes and
>> that avoids changing the copyright header.
>
>
> Thanks, I've applied most of that, although I routinely use diff -Ebu
> to see differences in code so as not to form the habit of avoiding
> consistent formatting purely for the sake of making diff work without
> a couple of extra flags.
>
> Also, if you're not opposed to the 'Written by Gary V. Vaughan' line
> I'd rather keep that, since I did port the old bootstrap.conf to work
> with my saner bootstrap script after all. On the other hand, I'm far
> from rabid about it, so if it annoys you, or you feel that the work
> that came before outweighs my contribution enough to make it inaccurate,
> then feel free to remove it when (and if) you merge.
>
> Also, I kept the timestamp header line so that the emacs variable
> settings from the bottom of my version of the file correctly update
> the header timestamp on save. Similarly, feel free to change back to
> your non-timestamped header comment and remove the emacs goo from
> the bottom when you merge if you'd prefer.
>
>> It looks like your coreutils working directory must have contained
>> an intl/ directory, but most people don't have that. Since I don't
>> have one, I get lots of these when compiling in lib/:
>>
>> cc1: error: ../intl: No such file or directory [-Werror]
>
> No intl/ directory here, and I can't reproduce your failure. Did you
> copy my bootstrap and bootstrap.conf into your own working directory,
> or clone my github mirror?
>
> Here's an edited typescript of running directly with a fresh clone of
> github (from the revision before patching bootstrap.conf whitespace as
> you requested, not that it should matter):
>
> address@hidden/Devo
> ├!10154│^2=git clone address@hidden:gvvaughan/GNU-coreutils.git
> Cloning into GNU-coreutils...
> remote: Counting objects: 152310, done.
> remote: Compressing objects: 100% (37473/37473), done.
> remote: Total 152310 (delta 114614), reused 152219 (delta 114531)
> Receiving objects: 100% (152310/152310), 27.17 MiB | 36 KiB/s, done.
> Resolving deltas: 100% (114614/114614), done.
>
> address@hidden/Devo
> ├!10155│^2=cd GNU-coreutils
>
> address@hidden/Devo/GNU-coreutils │master│8887350│
> ├!10156│^2=gco gary/bootstrap
> Branch gary/bootstrap set up to track remote branch gary/bootstrap from
> origin.
> Switched to a new branch 'gary/bootstrap'
>
> address@hidden/Devo/GNU-coreutils │gary/bootstrap│030770c│
> ├!10157│^2=PATH=~/Devo/autotools-latest/bin:/usr/local/Cellar/gettext/0.18.1.1/bin:$PATH
>
>
> address@hidden/Devo/GNU-coreutils │gary/bootstrap│030770c│
> ├!10158│^2=./bootstrap --gnulib-srcdir=../gnulib
> bootstrap: `./bootstrap' differs from `./gnulib/build-aux/bootstrap',
> bootstrap: please consider adopting the canonical version from gnulib.
> bootstrap: getting translations into po/.reference for coreutils...
> receiving file list ... done
> ./
> af.po
> [[...]]
> bootstrap: running: autopoint --force
> Copying file ABOUT-NLS
> Copying file build-aux/config.rpath
> [[...]]
> bootstrap: running: git clone --reference '../gnulib'
> 'git://git.sv.gnu.org/gnulib.git' 'gnulib'
> Cloning into gnulib...
> remote: Counting objects: 1476, done.
> remote: Compressing objects: 100% (522/522), done.
> remote: Total 1271 (delta 1108), reused 871 (delta 749)
> Receiving objects: 100% (1271/1271), 974.96 KiB | 8 KiB/s, done.
> Resolving deltas: 100% (1108/1108), completed with 154 local objects.
> bootstrap: running: git submodule init
> Submodule 'gnulib' (git://git.sv.gnu.org/gnulib.git) registered for path
> 'gnulib'
> bootstrap: running: git submodule update
> Submodule path 'gnulib': checked out
> '244794a7887f13d9cdb91fed96932cc479905b96'
> bootstrap: running: gnulib/gnulib-tool --no-changelog
> --avoid=canonicalize-lgpl --avoid=dummy --with-tests --aux-dir=build-aux
> --m4-base=m4 --lib=libcoreutils --local-dir=gl --makefile-name=gnulib.mk
> --tests-base=gnulib-tests --no-libtool --symbolic --import acl alignof...
> Module list with included dependencies (indented):
> accept
> accept-tests
> acl
> acl-tests
> [[...]]
> bootstrap: edited `lib/Makefile.am' (backup in `lib/Makefile.am~')
> bootstrap: running: autoreconf --symlink --install
> [[...]]
> bootstrap: linking file `gnulib/build-aux/compile'
> bootstrap: linking file `gnulib/build-aux/install-sh'
> bootstrap: linking file `gnulib/build-aux/missing'
> bootstrap: linking file `gnulib/build-aux/mdate-sh'
> bootstrap: linking file `gnulib/build-aux/texinfo.tex'
> bootstrap: linking file `gnulib/build-aux/depcomp'
> bootstrap: linking file `gnulib/build-aux/config.guess'
> bootstrap: linking file `gnulib/build-aux/config.sub'
> bootstrap: linking file `gnulib/doc/INSTALL'
> bootstrap: Please set copyright_holder explicitly in `bootstrap.conf';
> bootstrap: defaulting to `Free Software Foundation, Inc.'.
> bootstrap: Creating po/Makevars from po/Makevars.template ...
> bootstrap: If your pofiles are up-to-date, you can rerun bootstrap
> bootstrap: as `bootstrap --skip-po' to avoid redownloading.
> bootstrap: Done. Now you can run './configure'.
>
> address@hidden/Devo/GNU-coreutils *?│gary/bootstrap│030770c│
> ├!10160│^2=find . -name '*intl*' |grep -v /gnulib/
> ./m4/intl.m4~
> ./m4/intldir.m4~
> ./m4/intlmacosx.m4
> ./m4/intlmacosx.m4~
>
>
> address@hidden/Devo/GNU-coreutils *?│gary/bootstrap│030770c│
> ├!10161│^2=./configure
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
> [[...]]
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating doc/Makefile
> config.status: creating lib/Makefile
> config.status: creating man/Makefile
> config.status: creating po/Makefile.in
> config.status: creating src/Makefile
> config.status: creating tests/Makefile
> config.status: creating gnulib-tests/Makefile
> config.status: creating lib/config.h
> config.status: executing depfiles commands
> config.status: executing po-directories commands
> config.status: creating po/POTFILES
> config.status: creating po/Makefile
>
> address@hidden/Devo/GNU-coreutils *?│gary/bootstrap│030770c│
> ├!10162│^2=make
> GEN .version
> make all-recursive
> Making all in lib
> GEN alloca.h
> GEN c++defs.h
> GEN warn-on-use.h
> GEN arg-nonnull.h
> GEN arpa/inet.h
> GEN configmake.h
> mv -f configmake.h-t configmake.h
> GEN ctype.h
> GEN dirent.h
> GEN fcntl.h
> GEN fnmatch.h
> GEN getopt.h
> GEN iconv.h
> gperf -m 10 ./iconv_open-aix.gperf > ./iconv_open-aix.h-t
> mv ./iconv_open-aix.h-t ./iconv_open-aix.h
> [[...]]
> GEN yes.1
> Making all in po
> Making all in tests
> make[2]: Nothing to be done for `all'.
> Making all in gnulib-tests
> GEN arg-nonnull.h
> GEN c++defs.h
> GEN unused-parameter.h
> GEN warn-on-use.h
> make all-recursive
> Making all in .
> make[4]: Nothing to be done for `all-am'.
> make[2]: Nothing to be done for `all-am'.
>
> address@hidden/Devo/GNU-coreutils *?│gary/bootstrap│030770c│
> ├!10163│^2=make check
> GEN public-submodule-commit
> make check-recursive
> Making check in lib
> make check-am
> [[...]]
> FAIL: misc/tty-eof (exit: 1)
> ============================
>
> F: 1:
> F: 1: a b
> F: 1:
> F: 1:
> F: 1:
> F: 1: a b
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> F: 1:
> tty-eof: unexpand didn't exit after ^D from standard input
> F: 1:
> F: 1:
> F: 1:
>
> [[...]]
> ======================================
> 1 of 369 tests failed
> (91 tests were not run)
> See tests/test-suite.log
> Please report to address@hidden
> ======================================
> make[4]: *** [test-suite.log] Error 1
> make[3]: *** [check-TESTS] Error 2
> make[2]: *** [check-am] Error 2
> make[1]: *** [check-recursive] Error 1
> make: *** [check] Error 2
>
> The test failure is the same one I get when bootstrapped with the
> incumbent script.
>
>> Merely creating the directory gets past that, and the build
>> did complete, but obviously I don't want to have to do that.
>> I used AM_GNU_GETTEXT([external]... after all.
>>
>> Not surprisingly, the part of the current bootstrap script that
>> takes care of that transformation is absent from your version:
>>
>> - if test $file = Makefile.am && test "X$gnulib_mk" != XMakefile.am;
>> then
>> - copied=$copied${sep}$gnulib_mk; sep=$nl
>> - remove_intl='/^[^#].*\/intl/s/^/#/;'"s!$bt_regex/!!g"
>> - sed "$remove_intl" $1/$dir/$file |
>> - cmp - $dir/$gnulib_mk > /dev/null || {
>> - echo "$me: Copying $1/$dir/$file to $dir/$gnulib_mk ..." &&
>> - rm -f $dir/$gnulib_mk &&
>> - sed "$remove_intl" $1/$dir/$file >$dir/$gnulib_mk &&
>> - gnulib_mk_hook $dir/$gnulib_mk
>> - }
>> - elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
>> - version_controlled_file $dir $file; then
>> - echo "$me: $dir/$file overrides $1/$dir/$file"
>> - else
>> - copied=$copied$sep$file; sep=$nl
>> - cp_mark_as_generated $1/$dir/$file $dir/$file
>> - fi || exit
>>
>
> As far as I can see, that code is not relevant except when creating and
> merging two directories... something that I've not done with my bootstrap
> and which is responsible for the bulk of the time savings compared to the
> incumbent bootstrap script. However, slurp() is more or less uncommented,
> and even after staring at it for several months, I'm still not sure I
> properly understand it, so I could easily be wrong. Nonetheless, my saner
> bootstrap seems to be working correctly on coreutils without it as far is
> I'm able to check. What am I missing?
>
> If there is a bug in gnulib-tool, or autopoint that puts unnecessary
> 'intl/' references into Makefiles when the presence of
> AM_GNU_GETTEXT_VERSION in configure.ac is a declaration that says there
> is no need for local 'intl/', then I think the bug should be fixed there
> rather than patched around in bootstrap. Unfortunately, some difference
> in our environments is preventing me from exploring further since I can't
> reproduce your error on my machine :(
>
> Are you running on Linux? I could build a Linux VM and try to reproduce
> it again there if you don't have time to investigate it yourself.
Cheers,
--
Gary V. Vaughan (gary AT gnu DOT org)
- Re: [PATCH] Fix coreutils -Iintl vs gnulib gettext [WAS Re: a saner bootstrap script], (continued)
- Re: [PATCH] Fix coreutils -Iintl vs gnulib gettext [WAS Re: a saner bootstrap script], Jim Meyering, 2011/10/19
- Re: a saner bootstrap script, Gary V. Vaughan, 2011/10/20
- Re: a saner bootstrap script, Jim Meyering, 2011/10/20
- Re: a saner bootstrap script, Gary V . Vaughan, 2011/10/20
- Re: a saner bootstrap script, Jim Meyering, 2011/10/20
- Re: a saner bootstrap script, Bruno Haible, 2011/10/20
- Re: a saner bootstrap script, Eric Blake, 2011/10/20
- Re: a saner bootstrap script, Gary V. Vaughan, 2011/10/21
- [PATCH] Fix coreutils -Iintl vs gnulib gettext [WAS Re: a saner bootstrap script], Gary V . Vaughan, 2011/10/20
- Re: a saner bootstrap script, Gary V. Vaughan, 2011/10/19
- Re: a saner bootstrap script,
Gary V. Vaughan <=
- Re: a saner bootstrap script, Gary V. Vaughan, 2011/10/06