From owner-freebsd-ports@FreeBSD.ORG Mon Sep 1 17:46:36 2008 Return-Path: Delivered-To: ports@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E7734106575A for ; Mon, 1 Sep 2008 17:46:36 +0000 (UTC) (envelope-from cyberbotx@cyberbotx.com) Received: from QMTA03.emeryville.ca.mail.comcast.net (qmta03.emeryville.ca.mail.comcast.net [76.96.30.32]) by mx1.freebsd.org (Postfix) with ESMTP id CDDEA8FC24 for ; Mon, 1 Sep 2008 17:46:36 +0000 (UTC) (envelope-from cyberbotx@cyberbotx.com) Received: from OMTA12.emeryville.ca.mail.comcast.net ([76.96.30.44]) by QMTA03.emeryville.ca.mail.comcast.net with comcast id 9UlM1a0070x6nqcA3VmcXL; Mon, 01 Sep 2008 17:46:36 +0000 Received: from kirby.cyberbotx.com ([68.43.195.82]) by OMTA12.emeryville.ca.mail.comcast.net with comcast id 9VmZ1a00T1n8LeU8YVmb6C; Mon, 01 Sep 2008 17:46:36 +0000 X-Authority-Analysis: v=1.0 c=1 a=yuVkh-r5AAAA:8 a=6lhKbDoEbLJ4k4PIjugA:9 a=QKryjUvdbeT88Jj8Me8A:7 a=BA0JdDO-XWPYkhCrU6WPOBaMgoEA:4 a=hpF-ijbX5cwA:10 Message-ID: <48BC2A79.1080905@cyberbotx.com> Date: Mon, 01 Sep 2008 13:46:33 -0400 From: Naram Qashat User-Agent: Thunderbird 2.0.0.16 (X11/20080726) MIME-Version: 1.0 To: sem@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: ports@freebsd.org Subject: portupgrade fails with quoted options X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2008 17:46:37 -0000 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. Thanks, Naram Qashat