# Poudriere not respecting DEFAULT_VERSIONS



## SirDice (Sep 8, 2014)

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:

```
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?


----------



## talsamon (Sep 8, 2014)

I'm not sure but I think:


```
DEFAULT_VERSIONS= php5=5.4 .....
```


----------



## SirDice (Sep 8, 2014)

Not according to /usr/ports/Mk/bsd.default-versions:

```
.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.


----------



## SirDice (Sep 8, 2014)

It looks like Mk/bsd.default-versions.mk is completely ignored. Manually editing the file and setting

```
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.


----------



## talsamon (Sep 8, 2014)

On my machine, it works, i don't want to ask this, *be*cause 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.


----------



## SirDice (Sep 8, 2014)

Yes, I am aware of that. Changes have only been made to the poudriere specific files.


----------



## SirDice (Sep 8, 2014)

Looks like it's not just poudriere. On a clean installed FreeBSD 10.0 (only ports tree was updated):

```
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.


----------



## protocelt (Sep 8, 2014)

I don't use ports-mgmt/poudriere-devel so I may be way off here, but you could possibly try adding `APACHE_PORT= www/apache22` as well to make.conf to see if that works as a stop gap.


----------



## SirDice (Sep 9, 2014)

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


----------



## protocelt (Sep 9, 2014)

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.

```
# =========================================================================
# 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.


----------

