Poudriere not respecting DEFAULT_VERSIONS

SirDice

Administrator
Staff member
Administrator
Moderator
I just finished a new build using ports-mgmt/poudriere-devel and I noticed that my mod_php5 is depending on Apache 2.4 instead of Apache 2.2. I have set a make.conf:
Code:
DEFAULT_VERSIONS= php=5.4 mysql=5.5 apache=2.2

Looking at the build logs I have a feeling make.conf is loaded after CONFIGURE_ENV and MAKE_ENV. Meaning it simply ignores whatever I had set in make.conf and just uses the system's default. If I build from ports by hand mod_php5 correctly depends on Apache 2.2 so the issue is probably not with the www/mod_php5 port.

Is there anybody else that has this issue?
 
Not according to /usr/ports/Mk/bsd.default-versions:
Code:
.for lang in ${DEFAULT_VERSIONS}
_l=             ${lang:C/=.*//g}
${_l:tu}_DEFAULT=       ${lang:C/.*=//g}
.endfor

APACHE_DEFAULT?=        2.4
FPC_DEFAULT?=           2.6.4
GCC_DEFAULT?=           4.7
LUA_DEFAULT?=           5.2
MYSQL_DEFAULT?=         5.5
PERL5_DEFAULT?=         5.16
PGSQL_DEFAULT?=         9.2
PHP_DEFAULT?=           5.4
PYTHON_DEFAULT?=        2.7
PYTHON2_DEFAULT?=       2.7
PYTHON3_DEFAULT?=       3.3
RUBY_DEFAULT?=          1.9
TCLTK_DEFAULT?=         8.6
FIREBIRD_DEFAULT?=      2.5

But even if it would use the wrong version of PHP it still doesn't explain why it's not respecting APACHE_DEFAULT.
 
It looks like Mk/bsd.default-versions.mk is completely ignored. Manually editing the file and setting
Code:
APACHE_DEFAULT?=    2.2
Still produces a mod_php5 that depends on Apache 2.4 instead of 2.2.

Even reverting this change in bsd.apache.mk didn't help.
http://svnweb.freebsd.org/ports/head/Mk ... &r2=367561

It's not specific to mod_php5, www/mod_xsendfile is also built against 2.4 instead of 2.2.
 
On my machine, it works, i don't want to ask this, because I think you know: But you know Poudriere has its own /usr/local/poudriere/ports/default/Mk/bsd.default-versions.mk and /usr/local/poudriere/jails/jailname/etc/make.conf.
 
Yes, I am aware of that. Changes have only been made to the poudriere specific files.
 
Looks like it's not just poudriere. On a clean installed FreeBSD 10.0 (only ports tree was updated):
Code:
root@fbsd10-server:~ # pkg info
autoconf-2.69                  Automatically configure source code on many Un*x platforms
autoconf-wrapper-20131203      Wrapper script for GNU autoconf
dialog4ports-0.1.5_2           Console Interface to configure ports
indexinfo-0.2                  Utility to regenerate the GNU info page index
m4-1.4.17_1,1                  GNU m4
perl5-5.16.3_11                Practical Extraction and Report Language
pkg-1.3.7                      Package manager
root@fbsd10-server:~ # cat /etc/make.conf
DEFAULT_VERSIONS= php=5.4 apache=2.2
root@fbsd10-server:~ # cd /usr/ports/www/mod_php5
root@fbsd10-server:/usr/ports/www/mod_php5 # make all-depends-list
/usr/ports/ports-mgmt/pkg
/usr/ports/www/apache24
/usr/ports/devel/autoconf
/usr/ports/devel/pcre
/usr/ports/textproc/libxml2
/usr/ports/lang/php5
/usr/ports/textproc/expat2
/usr/ports/devel/apr1
/usr/ports/lang/perl5.16
/usr/ports/devel/m4
/usr/ports/misc/help2man
/usr/ports/devel/gmake
/usr/ports/devel/autoconf-wrapper
/usr/ports/print/indexinfo
/usr/ports/devel/pkgconf
/usr/ports/databases/gdbm
/usr/ports/databases/db5
/usr/ports/devel/p5-Locale-gettext
/usr/ports/devel/gmake-lite
/usr/ports/devel/gettext
root@fbsd10-server:/usr/ports/www/mod_php5 #
Needless to say it also builds mod_php5 that's depending on Apache 2.4. So it now looks like it's the ports system that's breaking things.

Edit: some more testing, setting a different default for Perl and Ruby works. It's just APACHE_DEFAULT that's being ignored.
 
I'm not sure if that works any more. It was the old way of selecting a default version. I think it got removed when things moved over to *_DEFAULT.

Because this also happens on a clean install with only the ports tree updated I'm guessing there's something going wrong in the ports infrastructure. I have opened a PR for it: https://bugs.freebsd.org/bugzilla/show_ ... ?id=193463
 
SirDice said:
I'm not sure if that works any more. It was the old way of selecting a default version. I think it got removed when things moved over to *_DEFAULT.
It looks like on recent 10-STABLE it is still yet valid according to /usr/ports/Mk/bsd.apache.mk.
Code:
# =========================================================================
# Parameter APACHE_PORT (user controlled):
#
# The parameter APACHE_PORT can be used in /etc/make.conf to
# overwrite the default apache port.
#
# This parameter should never be used in the Makefile of a port!
#
# Example entry in /etc/make.conf:
#  APACHE_PORT=	www/apache22
#
# To get a list of "possible" valid values execute the command:
#  $> egrep 'apache[12]' ports/www/Makefile | awk '{print "www/" $3}'
#
# =========================================================================

SirDice said:
Because this also happens on a clean install with only the ports tree updated I'm guessing there's something going wrong in the ports infrastructure. I have opened a PR for it: https://bugs.freebsd.org/bugzilla/show_ ... ?id=193463
Yep. A quick look at your PR did indeed show there was a regression so looks like that was the right move.
 
Back
Top