libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: patch-6: several changes to libtoolize.m4sh


From: Gary V. Vaughan
Subject: Re: patch-6: several changes to libtoolize.m4sh
Date: Wed, 14 Dec 2005 12:39:55 +0000
User-agent: Mozilla Thunderbird 1.0 (X11/20050305)

Hallo Ralf!

Ralf Wildenhues wrote:
This patch is the last of the queue, and the most intertwined.  Maybe I
should make the effort to rip it apart -- please say so.

Yes please.  Unless it is a disproportionate amount of effort, in which
case I'd rather spend that effort on rolling 1.9h.

Several open bugs:

Open until these patches are applied I presume?

- aclocal.m4 should be copied, even if all other files are symlinked,
  because `aclocal' will otherwise overwrite the target
  (And we should write a bug report against Automake).

ACK.

  Note that in the symlink-case, this file *must* retain its old time
  stamp, hence `cp -p'.  Maybe we'd need `tar' instead here?

I'm not sure `cp -p' is portable enough.  We've used `tar' previously
because of this (among other things).

  (Luckily the subsecond problem is not *so* much of an issue here:
  `cd libltdl && aclocal' still takes a second on a fast machine --
  maybe we should put a `sleep 1' into the manual rule even?)

Yes, I think the sleep is a good idea for future proof against ultra
fast machines that decide not to upgrade to libtool-3.0 in 2025 ;-)

- in case of `libtoolize --copy', it would actually be wise to have the
  copied files have *current* time stamps, so that its dependents will
  be rebuilt.  Bob and I noted this some time ago.
  This patch does `cp -p' and a subsequent `touch', to preserve
  permission bits.

Again, I'm dubious about the use of `cp -p'.

- To fix both, quite a few other changes are necessary: the `main' part
  of libtoolize now has to handle all files in the correct order: the
  .m4 files come before the other libltdl files, so that their
  timestamps will stay older.

ACK.

- As a consequence, libtoolize output changes a bit, and the
  corresponding tests need to be adjusted.

ACK.

- As a nice side effect, func_copy_cb has some logic errors removed
  (previously, it would not fail for every failure situation).

Cool!

Now, we still have the issue that `make dist' will fail for recursive
and nonrecursive mode.  In these modes, we will simply now always copy
Makefile.am or Makefile.inc, respectively.  Since we've already had
func_fixup_Makefile_inc for the latter, we just generalize that to also
cope with the former (in recursive mode only!).

ACK.

The additional functionality of func_fixup_Makefile is that it removes
the non-existent files from the EXTRA_DIST lines of the file.

ACK.

As a final bit, we default $tst_dist to `dist' now -- should work. :)

I'd rather not have casual installers be even more likely to get bored
and abort the testsuite run.  What do you think of my LT_TEST_EXHAUSTIVE
idea?

OK to apply?

Not yet...

As a general rule, the ChangeLog entry itself should be sufficient
documentation for why the changeset is necessary.  If you find yourself
wanting to add more description to the libtool-patches post, rather
add it to the ChangeLog entry instead for future readers.

So far, we only use `cp -p' as a fallback for a failed `ln -s' or tar
copy... unless we can come up with good evidence that `cp -p' won't
fail on any of the host environments we care about, I don't want to
divert from that.

        * libtoolize.m4sh (func_copy_cb):
        If `$opt_link', still copy `aclocal.m4', so a subsequent
        `aclocal' will not overwrite the symlink target.
        In `--copy' mode, do `cp -p' and `touch' for each file, so
        timestamps are updated but permissions preserved.
        (main): Reorder installing of files to match logical order
        and timestamp requirements.
        (func_fixup_Makefile_inc): Renamed to
        (func_fixup_Makefile): this.  Add sed scriptlet to remove
        non-existent files from EXTRA_DIST, for either nonrecursive
        or recursive mode.
        (main): call it to mangle also in recursive mode.
        * tests/libtoolize.at (expout): Adjusted.
        * tests/testsuite.at (tst_dist): Default to `dist'.

Cheers,
        Gary.
--
Gary V. Vaughan      ())_.  address@hidden,gnu.org}
Research Scientist   ( '/   http://tkd.kicks-ass.net
GNU Hacker           / )=   http://www.gnu.org/software/libtool
Technical Author   `(_~)_   http://sources.redhat.com/autobook

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]