| Summary: | Building libunbound writes to /usr/src | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Peter Jeremy <peterj> |
| Component: | bin | Assignee: | Dag-Erling Smørgrav <des> |
| Status: | Closed FIXED | ||
| Severity: | Affects Some People | CC: | des, emaste, herbert |
| Priority: | --- | ||
| Version: | CURRENT | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
Peter Jeremy
2014-06-07 01:03:54 UTC
Notify most recent committer to libunbound/Makefile. I have a similar issue on stable/10 (r267569) trying to build r268791, but only on one machine. Permissions of /usr/src on both machines are: drwxr-xr-x 24 root wheel 32 Jul 16 16:21 src And /usr/src is not mounted read-only. Also the permissions of configparser.c and util directory is the same: % find . -name "configparser.c" -ls 7999087 164 -rw-r--r-- 1 root wheel 83337 Jul 2 10:48 ./contrib/unbound/util/configparser.c drwxr-xr-x 4 root wheel 1024 Jul 2 10:48 util I am asked to override the file during buildworld: override rw-r--r-- root/wheel for /usr/src/lib/libunbound/../../contrib/unbound/util/configparser.c? (y/n [n]) On the working machine: - I don't find the yacc command in the build.log - configparser.c is unchanged and also not writeable for the user I haven't yet figured out why it tries to update configparser.c only on this machine. Is the command executed from contrib/unboud/freebsd-configure.sh? Can it be removed? Index: contrib/unbound/freebsd-configure.sh =================================================================== --- contrib/unbound/freebsd-configure.sh (revision 268797) +++ contrib/unbound/freebsd-configure.sh (working copy) @@ -41,4 +41,3 @@ /usr/bin/flex -L -t util/configlexer.lex } >util/configlexer.c -/usr/bin/yacc -d -o util/configparser.c util/configparser.y freebsd-configure.sh is only used when importing a new version of unbound. The problem is that make has builtin rules for lex and yacc that can't be turned off. Most people don't run into this because their configparser.c is newer (or at least not older) than configparser.y, but sometimes svn plays a trick on you and suddenly make wants to regenerate configparser.c. Fixing this is not simply a matter of removing configlexer.c and configparser.c from the repo, because make's builtin rules won't produce working code in this case. As a workaround, make sure that configlexer.c and configparser.c are newer than configlexer.lex and configparser.y. A commit references this bug: Author: des Date: Sat Jul 19 18:38:50 UTC 2014 New revision: 268883 URL: http://svnweb.freebsd.org/changeset/base/268883 Log: Clean up the libunbound build to avoid accidentally regenerating the configuration lexer and parser during buildworld. Instead of being included in the source as it is in the upstream distribution, the code is now always generated (in ${.OBJDIR}) at build time. PR: 190739 MFC after: 1 week Changes: head/contrib/unbound/freebsd-configure.sh head/contrib/unbound/util/config_file.c head/contrib/unbound/util/configlexer.c head/contrib/unbound/util/configlexer.lex head/contrib/unbound/util/configparser.c head/contrib/unbound/util/configparser.h head/contrib/unbound/util/configparser.y head/lib/libunbound/Makefile Merged to 10 in r269257 on 2014-07-29. |