| Summary: | CONFIGURE_LINE truncated to 2048 chars in [at least] multimedia/vlc-devel | ||
|---|---|---|---|
| Product: | Ports & Packages | Reporter: | Chad Milios <freebsd-pr> |
| Component: | Individual Port(s) | Assignee: | freebsd-ports-bugs (Nobody) <ports-bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | Latest | ||
| Hardware: | Any | ||
| OS: | Any | ||
Responsible Changed From-To: freebsd-ports-bugs->freebsd-multimedia Over to maintainer (via the GNATS Auto Assign Tool) The bug is in uniq
man uniq says:
BUGS
Input lines are limited to LINE_MAX (2048) bytes in length.
And uniq is used by autoconf in the configure script:
uniq confdefs.h |
sed -n '
t rset
:rset
s/^[ ]*#[ ]*define[ ][ ]*//
t ok
d
:ok
s/[\\&,]/\\&/g
s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/
'"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
' >>conftest.defines
--
Rafaël Carré
Responsible Changed From-To: freebsd-multimedia->freebsd-ports-bugs Turn over to freebsd-ports-bugs Hi Submitter, The maintainer describe about this problem, thus we can close it? Regards, -- lippe@FreeBSD.org Felippe de Meirelles Motta State Changed From-To: open->closed Feedback timeout. If you want to Update this port, please feel free to follow-up this PR so that we can re-open it. Thanks! |
in at least the multimedia/vlc-devel port, the CONFIGURE_LINE that gets defined in the config.h file (during the 'configure' make target) gets truncated to 2048 chars (exactly 2048 includes #define and includes the newline at the end) which for some settings is not long enough. with my settings of a few things disabled and WITH_OPTIMIZED_CFLAGS, just two chars were cut off the end which resulted in a failed make. malcom# make ............................... In file included from /usr/ports/multimedia/vlc-devel/work/vlc-0.9.0-svn/include/vlc_common.h:39, from /usr/ports/multimedia/vlc-devel/work/vlc-0.9.0-svn/include/vlc/vlc.h:155, from libvlc.c:38: ./config.h:29:24: warning: missing terminating " character ............................... libvlc-common.c: In function 'libvlc_InternalCreate': libvlc-common.c:216: error: missing terminating " character libvlc-common.c:216: error: expected expression before ')' token gmake[3]: *** [libvlc_la-libvlc-common.lo] Error 1 .............. Stop in /usr/ports/multimedia/vlc-devel. Fix: my solution was to make configure then hand edit config.h then run the make install. i am not knowledgeable with autoconf or the ports system enough to offer a real fix, or even identify where this truncation occurs. a similar problem may affect other ports. luckily in my case only a couple of bytes were truncated, but had the configure line needed to be longer, it wouldnt have been so apparent to me how to modify the line. if the truncation cannot be fixed [easily enough], a fix should be made to at least raise a more useful error at the point it occurs rather than waiting for some later syntax error because the warning about config.h was pretty burried at that point and it took me a good amount of head scratching before i found that it was the root of my compilation problem. How-To-Repeat: disable enough options in the make config stage (disable is one character more than enable) as well as define WITH_OPTIMIZED_CFLAGS (counts for a handful more chars) and then make configure. check the line in work/vlc-0.9.0-svn/config.h that starts with #define CONFIGURE_LINE and make sure it ends with '" if it does then it probably wasnt long enough to get truncated