bsd.apache.mk Malformed conditional when APACHE_VERSION defined

olli hauer ohauer at gmx.de
Thu Feb 6 21:23:39 UTC 2014


On 2014-02-03 08:32, Dewayne Geraghty wrote:
> 
> On 2/02/2014 9:51 PM, olli hauer wrote:
>> On 2014-02-02 10:11, Dewayne Geraghty wrote:
>>> I filed a PR against textproc/htdig which should really be against the
>>> ports systems.
>>>
>>> Would someone be kind enough to advise the current method to specify the
>>> apache version.   In ports.conf, I currently use
>>> USE_APACHE=22 | APACHE_VERSION=22
>>> to specify the required version of apache for:
>>> textproc/htdig
>>> www/mod_security
>>> lang/php5
>>>
>>> I believe this PR 
>>>
>>> http://www.freebsd.org/cgi/query-pr.cgi?pr=186364
>>>
>>> which probably should be routed to the ports system, and not textproc/htdig
>>>
>>> The error is:
>>> cd /usr/ports/textproc/htdig && make  -V UNIQUENAME
>>> "/usr/ports/Mk/bsd.apache.mk", line 306: warning: String comparison
>>> operator should be either == or !=
>>> "/usr/ports/Mk/bsd.apache.mk", line 306: Malformed conditional
>>> (!empty(_APACHE_VERSION_MINIMUM) && (${_APACHE_VERSION} <
>>> ${_APACHE_VERSION_MINIMUM}))
>>> "/usr/ports/Mk/bsd.port.mk", line 6603: if-less endif
>>> make: fatal errors encountered -- cannot continue
>>>
>>> which goes away if APACHE_VERSION isn't used, eg.
>>> cd /usr/ports/textproc/htdig && make __MAKE_CONF=/dev/null -V UNIQUENAME
>>> htdig
>>>
>> Hi Dewayne,
>>
>> APACHE_VERSION is a read only variable in case a port needs to know the
>> installed / default Apache version -> do not set this variable!
>>
>> In case you want to specify a default apache use in etc/make.conf for example
>>  APACHE_PORT=www/apache22
>>
>> See lines 12 - 25 in Mk/bsd.apache.mk
>>
>>
> 
> Olli,
> Thank-you for pointing me to the right place.  I've removed
> APACHE_VERSION=22;
> but noted that
> 
> PERL_VERSION=5.16.3 | PYTHON_VERSION=python2.7
> remain valid, which maintains my confusion.
> 
> With the ongoing changes to the ports system, I've also retained this line in make.conf
> DEFAULT_VERSIONS=perl5=5.16 python=2.7 python2=2.7 apache=22


Apache ports don't support the DEFAULT_VERSIONS variable because there are 5 different
apache22 flavors that cannot run in a mix.

See output from the command
$ egrep 'apache2[24]' /usr/ports/www/Makefile | awk '{print "www/" $3}'
  www/apache22  (default prefork)
  www/apache22-event-mpm
  www/apache22-itk-mpm
  www/apache22-peruser-mpm
  www/apache22-worker-mpm
  www/apache24


So the only supported way for apache is to specify for example
 APACHE_PORT= www/apache22-worker-mpm


> Though I suspect that using the latter is preferred and should be the stable way of constricting versions? 
> 
> The last rebuild of all ports occurred on Jan 20, strange that APACHE_VERSION=22 didn't halt that rebuild cycle, as bsd.apache.mk has been changed for 2 months... One of life's mysteries.

The build of the www/htdig port has changed a little bit and does no longer include explicit <bsd.apache.mk> so your issue popped up.
Anyway if you run the www/apache22 port and not one of the 4 other flavors you don't need to specify anything.


PS:
can I close PR 186364

-- 
Regards,
olli


More information about the freebsd-ports mailing list