Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Apr 2014 23:33:57 -0700
From:      Alfred Perlstein <alfred@freebsd.org>
To:        Scot Hetzel <swhetzel@gmail.com>
Cc:        FreeBSD Ports <ports@freebsd.org>, Baptiste Daroussin <bapt@freebsd.org>, Bryan Drewery <bdrewery@freebsd.org>
Subject:   Re: Please some help with port options in the new world order.
Message-ID:  <534F75D5.3040503@freebsd.org>
In-Reply-To: <CACdU%2Bf8fTFJj1=5o%2Bf8PbVanofvX_jmdazOaLTY7CAcThv5GEQ@mail.gmail.com>
References:  <534F32A8.8010206@freebsd.org> <CACdU%2Bf8fTFJj1=5o%2Bf8PbVanofvX_jmdazOaLTY7CAcThv5GEQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------020608090107010507050907
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Any chance a patch like the following can be added?

It basically makes the error message a tad more clear by saying which 
options conflict.

thank you Scot!

-Alfred



On 4/16/14, 11:00 PM, Scot Hetzel wrote:
> On Wed, Apr 16, 2014 at 8:47 PM, Alfred Perlstein <alfred@freebsd.org> wrote:
>> Hey folks,
>>
>> I'm having a heck of a time with the rsync port in our build system with
>> latest ports:
>> commit 08b15d01e41c418b5c5b35fb5b691f5e83d40a95
>> Author: wg <wg@FreeBSD.org>
>> Date:   Wed Apr 16 23:17:53 2014 +0000
>>
>>      devel/py-hgsubversion: update to 1.6 and use auto plist
>>
>>
>> This is the error I am getting:
>> + chroot /usr/home/alfred/freenas/os-base/amd64/_.w /bin/sh -exc 'env
>> TARGET=amd64            TARGET_ARCH=amd64 NAS_PORTS_DIRECT=1
>> make __MAKE_CONF=/usr/home/alfred/freenas/os-base/amd64/make.conf.build
>> SRC_BASE=/usr/src        WRKDIRPREFIX=/usr/workdir -C
>> /usr/ports_dir/net/rsync           clean all package install BATCH=yes
>> -DUSE_PACKAGE_DEPENDS       WITH+=ACL WITH+=ICONV -DFORCE_PACKAGE
>> -DFORCE_PKG_REGISTER'
>> + env TARGET=amd64 TARGET_ARCH=amd64 NAS_PORTS_DIRECT=1 make
>> __MAKE_CONF=/usr/home/alfred/freenas/os-base/amd64/make.conf.build
>> SRC_BASE=/usr/src WRKDIRPREFIX=/usr/workdir -C /usr/ports_dir/net/rsync
>> clean all package install BATCH=yes -DUSE_PACKAGE_DEPENDS WITH+=ACL
>> WITH+=ICONV -DFORCE_PACKAGE -DFORCE_PKG_REGISTER
>> ===>  Cleaning for rsync-3.1.0_3
>> ===>  License GPLv3 accepted by the user
>> ====> You cannot select multiple options from the PTS radio
>> *** Error code 1
>>
> :
> :
>> This USED to work back in an earlier ports tree from 2 months ago by doing
>> this:
>> add_port net/rsync OPTIONS_FILE_SET+=ACL OPTIONS_FILE_SET+=ICONV
>>
>> However that gives the same error message now from the build ("====> You
>> cannot select multiple options from the PTS radio").
>>
>> Any tips on getting around this?  It's very frustrating.
>>
> Try:
>
> add_port net/rsync WITH+=ACL WITH+=ICONV WITHOUT+=FLAGS
>
>> What is really strange is that OUTSIDE of the nanobsd build doing a simple:
>> cd /usr/port/net/rsync && make WITH+=ACL WITH+=ICONV
>> seems to work.
>>
>> Any idea why this is happening?
>>
> The last commit to the port enabled the FLAGS option by default.
> Since FLAGS and ACL are listed in OPTIONS_RADIO_PTS, you can only
> select one of them.
>
> The reason it works outside the nanobsd build is that at some point
> you had disabled the FLAGS option in a previous build of the port.
> Check the OPTIONSFILE in /var/db/ports/ for this port.
>


--------------020608090107010507050907
Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
 name="radio.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="radio.diff"

diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index c56f7e0..120957f 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -5911,17 +5911,34 @@ OPTIONS_WRONG_SINGLE+=	${single}
 .endfor
 .undef single
 
+#
+# Iterate through each OPTIONS_RADIO
+# Check to see if there are multiple options specified in PORT_OPTIONS
+# for a single radio.
+#
+# If so, build up an error string noting the offending radio and options
+# to be emitted later.
+#
 .for radio in ${OPTIONS_RADIO}
 .  for opt in ${OPTIONS_RADIO_${radio}}
 .    if !empty(PORT_OPTIONS:M${opt})
 .      if defined(OPTFOUND)
-OPTIONS_WRONG_RADIO+=	${radio}
+.        if !defined(SECONDOPT)
+OPTIONS_WRONG_RADIO:=	${OPTIONS_WRONG_RADIO}${radio}(options:${OPTFOUND},${opt}
+SECONDOPT=	true
+.        else
+OPTIONS_WRONG_RADIO:=	${OPTIONS_WRONG_RADIO},${opt}
+.        endif
 .      else
-OPTFOUND=	true
+OPTFOUND:=	${opt}
 .      endif
 .    endif
 .  endfor
+.  if defined(SECONDOPT)
+OPTIONS_WRONG_RADIO:=   ${OPTIONS_WRONG_RADIO})
+.  endif
 .  undef OPTFOUND
+.  undef SECONDOPT
 .endfor
 
 .for multi in ${OPTIONS_MULTI}

--------------020608090107010507050907--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?534F75D5.3040503>