'importing' thirdparty sources
Giorgos Keramidas
keramida at ceid.upatras.gr
Mon Jul 16 09:49:40 CDT 2007
Hi all,
I've been experimenting with a local 'wrapper' Hg workspace around
autoconf, automake and libtool, but seem to have bumped on something
which I don't know how to resolve.
One of the ideas I was trying to borrow from the way the FreeBSD project
works was:
1. Keep a workspace/contrib/** tree with the sources which I
consider 'external'.
2. Import a clean copy of autoconf-2.61 in that workspace.
3. Remove it all, and check-out a clean copy.
4. Build autoconf manually, to test that it still builds.
Now, autoconf-2.61 is a small source tree, and it checks out in less
than a second:
% keramida at kobe:/home/keramida/bld$ /usr/bin/time hg up -C
% 154 files updated, 0 files merged, 0 files removed, 0 files unresolved
%
% real 0.3
% user 0.2
% sys 0.0
% keramida at kobe:/home/keramida/bld$
All the files in the workspace have the same timestamp:
% $ find * -exec /bin/ls -ld {} + | awk '{print $6,$7,$8}' | sort | uniq -c
% 169 Jul 16 17:41
% $
but then, autoconf fails to build because it expects manpages to have a
modification date larger than or equal to their sources:
% keramida at kobe:/home/keramida/bld$ find * \( -name \*.in -o -name \*.1 \) -exec ls -ld {} +
% [...]
% -rw-r--r-- 1 keramida bedc 8189 Jul 16 17:42 autoconf/bin/autoheader.in
% [...]
% -rw-r--r-- 1 keramida bedc 2452 Jul 16 17:42 autoconf/man/autoheader.1
% [...]
% keramida at kobe:/home/keramida/bld$
The build of autoconf then fails with:
% $ ( cd autoconf && ./configure && make )
% mv -f autoconf.tmp autoconf
% echo "Updating man page autoconf.1"
% Updating man page autoconf.1
% [...]
% /home/keramida/bld/autoconf/build-aux/missing: line 54: help2man: command not found
% WARNING: `help2man' is missing on your system. You should only need it if
% you modified a dependency of a manual page. You may need the
% `Help2man' package in order for those modifications to take
% effect. You can get `Help2man' from any GNU archive site.
% *** Error code 1
Since I'm not really going to modify autoconf-2.61, I don't need
help2man and all the Perl modules it wants to pull in.
Is there _any_ way to track thirdparty source "in the tree", but avoid
breaking their original timestamps? From my reading of the FAQ entry at
[1] it seems like the answer is "no".
[1] http://www.selenic.com/mercurial/wiki/index.cgi/FAQ#head-1e601b3d2b1e1c8481ebbe9a47d4acbc4d8c3dd3
If the answer is indeed "no", what is an alternative of handling
thirdparty sources with this sort of dependencies to other files in the
same source tree?
- Giorgos
More information about the Mercurial-devel
mailing list