portupgrade fails with quoted options

Naram Qashat cyberbotx at cyberbotx.com
Tue Sep 2 11:10:47 UTC 2008


Sergey Matveychuk wrote:
> Naram Qashat wrote:
>> When I try to upgrade a port that has quoted options (an example is 
>> www/apache22, where I opted to retain the old WITH_MODULES line I had 
>> before) in pkgtools.conf, portupgrade fails to quote the option and 
>> causes the port to fail to build or even causes portupgrade itself to 
>> bomb.  Strangely enough, if I use the following script that uses the 
>> same tools as portupgrade:
>>
>> require "pkgtools"
>> require "optparse"
>> load_config
>> opts = OptionParser.new
>> opts.order(ARGV) do |arg|
>>   make_args = config_make_args(arg)
>>   puts "#{arg}:#{make_args}"
>> end
>>
>> It shows the correct options if I run it for www/apache22.  I get the 
>> following with the above script:
>>
>> www/apache22:WITHOUT_APACHE_OPTIONS=yes WITHOUT_IPV6=yes 
>> WITH_MYSQL=yes WITH_BDB=yes WITH_SUEXEC=yes 
>> SUEXEC_LOGFILE=/var/log/www/httpd-suexec.log WITH_MODULES="actions 
>> alias auth_basic auth_digest authn_dbd authn_dbd authn_default 
>> authz_default authz_host authz_user autoindex cgi dav dav_fs dbd 
>> deflate dir echo env expires filter headers ident imagemap include 
>> info log_config log_forensic logio mime mime_magic negotiation rewrite 
>> setenvif ssl status suexec unique_id userdir version vhost_alias" 
>> BATCH=yes WITH_OPENSSL=yes WITH_OPENSSL_PORT=yes WITHOUT_X11=yes 
>> WITH_BDB_VER=43 WITH_MYSQL_VER=50
>>
>> But when I use portupgrade itself, I get the following as the make 
>> arguments instead:
>>
>> --->  Building '/usr/ports/www/apache22' with make flags: 
>> WITHOUT_APACHE_OPTIONS=yes WITHOUT_IPV6=yes WITH_MYSQL=yes 
>> WITH_BDB=yes WITH_SUEXEC=yes 
>> SUEXEC_LOGFILE=/var/log/www/httpd-suexec.log "WITH_MODULES=\"actions 
>> alias auth_basic auth_digest authn_dbd authn_dbd authn_default 
>> authz_default authz_host authz_user autoindex cgi dav dav_fs dbd 
>> deflate dir echo env expires filter headers ident imagemap include 
>> info log_config log_forensic logio mime mime_magic negotiation rewrite 
>> setenvif ssl status suexec unique_id userdir version vhost_alias\"" 
>> BATCH=yes WITH_OPENSSL=yes WITH_OPENSSL_PORT=yes WITHOUT_X11=yes 
>> WITH_BDB_VER=43 WITH_MYSQL_VER=50
>>
>> Notice how WITH_MODULES has quotes around it and then escaped quotes 
>> inside it?  It shouldn't be doing things like that.  I don't know ruby 
>> (I only made that above script from looking at some parts of 
>> portupgrade, but I have almost no understanding of ruby), so I can't 
>> give a fix for this.
>>
> 
> You missed lines from pkgtools.conf you use. Please, show them.
> 

Here's the www/apache22 and '*' section I have in my pkgtools.conf:

     '*' => [
       'BATCH=yes',
       'WITH_OPENSSL_PORT=yes',
       'WITH_OPENSSL=yes',
       'WITHOUT_GNOME=esound',
       'WITHOUT_CUPS=yes',
       'WITH_BDB_VER=46',
       'WITH_MYSQL_VER=50',
       'WITH_OPTIMIZED_CFLAGS=yes'
     ],
     'www/apache22' => [
       'WITHOUT_APACHE_OPTIONS=yes',
       'WITH_PCRE_FROM_PORTS=yes',
       'WITH_MYSQL=yes',
       'WITH_BDB=yes',
       'WITH_SUEXEC=yes',
       'SUEXEC_LOGFILE=/var/log/www/httpd-suexec.log',
       'WITH_MODULES="actions alias auth_basic auth_digest authn_dbd 
authn_default authz_default authz_host authz_user autoindex cgi dav dav_fs 
dav_lock dbd deflate dir echo env expires filter headers ident imagemap include 
info log_config log_forensic logio mime mime_magic negotiation rewrite setenvif 
status suexec unique_id userdir version vhost_alias"'
     ],

Naram Qashat


More information about the freebsd-ports mailing list