* Patrick Schoenfeld <[EMAIL PROTECTED]> [071202 20:43]: > Relevant parts for detox are: > /usr/bin/install -c -d /tmp/buildd/detox-1.1.1/debian/tmp/etc > /usr/bin/install: cannot create regular file > `/tmp/buildd/detox-1.1.1/debian/tmp/etc/detoxrc.sample': No such file or > directory > > So I assume the first install command for debian/tmp/etc was not > successful? I'm not very experienced with parallel builds and I cannot > reproduce this on my single-core-systems. So: Is there some > documentation or hints on how to make package building be parallel-safe?
The problem is in upstream's Makefile.in: install: install-base install-safe-config install-sample-config install-base: detox ...snip.... ${INSTALL} -d ${DESTDIR}${sysconfdir} ...snip install-safe-config: @if [ ! -f ${DESTDIR}${sysconfdir}/detoxrc ]; then \ ${INSTALL} detoxrc ${DESTDIR}${sysconfdir}; \ ..snip... As you can see, install says it needs install-base and install-sample-config but install-sample-config does not say it wants install-base to be run before it is run, so nothing enforces sysconfigdir is actually created. Only when install-safe-config is run while install-base had not yet had enough time to complete directory creating, this produces an error. The fix for this problem is just to tell install-safe-config (and the other install-* stuff needing a directory) to either create the directory first or depend on the rule that creates it. Catching those race conditions is hard, even a -jN run might just not trigger it if the directory creating is fast enough. Perhaps someone would like to write a patched make that does reorderable target in reversed order and try to build the whole archive with it (and -j1), to catch those problems more reliable. Hochachtungsvoll, Bernhard R. Link -- "Never contain programs so few bugs, as when no debugging tools are available!" Niklaus Wirth -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]