On Fri, Mar 26, 2010 at 07:23:00PM -0700, Stanislav Sedov wrote:
> On Mon, 22 Mar 2010 10:56:04 +0000 (UTC)
> Peter Pentchev <r...@freebsd.org> mentioned:
> 
> > roam        2010-03-22 10:56:04 UTC
> > 
> >   FreeBSD ports repository
> > 
> >   Modified files:
> >     dns/c-ares           Makefile distinfo pkg-plist 
> >     dns/c-ares/files     ares-config-info.patch patch-Makefile.in 
> >   Log:
> >   Update to c-ares-1.7.0.  In the process:
[snip]
> > | +         HIDE_SYMBOLS    "Hide internal library symbols" ON \
> > |           OPTIMIZED_CFLAGS        "Build with compiler optimizations" OFF
[snip]
> > | +.if defined(WITH_HIDE_SYMBOLS)
> > | +CONFIGURE_ARGS+= --enable-symbol-hiding
> > | +.else
> > | +CONFIGURE_ARGS+= --disable-symbol-hiding
> > | +.endif
> 
> You have HIDE_SYMBOLS "on" by default, so the check should look like
> .if !defined(WITHOUT_HIDE_SYMBOLS)
> 
> Otherwise the behaviour of the port is inconsistent wrt. to the batch builds.
> Now the package built from the port include library symbols which
> is not default.

Hmmm, apologies if I'm missing something here - and it would not be
a big surprise to me if I was, even about such an important thing
about the package building cluster :\  However, IMHO the need to
check for WITHOUT_* in the case of "default to on" is somewhat
a thing of the past - I think that the current options handling code
will define the WITH_* symbol if there is no options file and this is
an automated build.

[r...@straylight /usr/ports/dns/c-ares]$ make -V OPTIONSFILE
/var/db/ports/c-ares/options
[r...@straylight /usr/ports/dns/c-ares]$ ls -l "`make -V OPTIONSFILE`"
ls: /var/db/ports/c-ares/options: No such file or directory
[r...@straylight /usr/ports/dns/c-ares]$ make -V WITH_HIDE_SYMBOLS
true
[r...@straylight /usr/ports/dns/c-ares]$ make BATCH=yes -V WITH_HIDE_SYMBOLS
true
[r...@straylight /usr/ports/dns/c-ares]$ make PACKAGE_BUILDING=yes -V 
WITH_HIDE_SYMBOLS
true
[r...@straylight /usr/ports/dns/c-ares]$ make BATCH=yes PACKAGE_BUILDING=yes -V 
WITH_HIDE_SYMBOLS
true
[r...@straylight /usr/ports/dns/c-ares]$ make BATCH=yes PACKAGE_BUILDING=yes -V 
WITH_HIDE_SYMBOLS -V CONFIGURE_ARGS:M'*symbol*'
true
--enable-symbol-hiding
[r...@straylight /usr/ports/dns/c-ares]$

Am I wrong in assuming that any automatically-built packages would
have BATCH and/or PACKAGE_BUILDING defined at build time, and that
the code in bsd.port(.pre).mk would use the default value for all
options in that case?  Or is there some defined symbol - or some other
combination of symbols - that would result in WITH_HIDE_SYMBOLS
*not* being defined, even though the option's default is "yes"?

Of course, I could be missing something, in which case I'd be thankful
for a correction in my worldview :)

G'luck,
Peter

-- 
Peter Pentchev  r...@ringlet.net    r...@space.bg    r...@freebsd.org
PGP key:        http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint 2EE7 A7A5 17FC 124C F115  C354 651E EFB0 2527 DF13
If there were no counterfactuals, this sentence would not have been paradoxical.

Attachment: pgpuqIOzL86WU.pgp
Description: PGP signature

Reply via email to