Date: Mon, 25 Aug 2014 12:07:38 -0500 From: Scot Hetzel <swhetzel@gmail.com> To: Matthias Andree <matthias.andree@gmx.de> Cc: olli hauer <ohauer@gmx.de>, Michael Gmelin <grembo@freebsd.org>, Kurt Jaeger <lists@opsec.eu>, ports-list freebsd <freebsd-ports@freebsd.org> Subject: Re: HEADS UP: Berkeley DB 4...4.7 port removals/upgrades may require manual preparation Message-ID: <CACdU%2Bf8=YDas=F1RChwU5Yc3QZ8OscpF%2BtKVHFEGRXnTS2x1Rg@mail.gmail.com> In-Reply-To: <8b79c8ed-636d-433c-bd32-1fbc60ef623f@email.android.com> References: <53F640EF.7000200@FreeBSD.org> <20140824102826.GB9400@home.opsec.eu> <EB2B24ED-1D62-467B-8870-EEACA8A72281@freebsd.org> <20140824111149.GD9400@home.opsec.eu> <53F9CEDA.4070309@gmx.de> <20140824142050.5e336477@bsd64.grem.de> <CACdU%2Bf-D-MYxXYaoCbfPU%2BQuKpq041dSWdgZj0XzRO30_9pouA@mail.gmail.com> <20140824191643.005f8e1c@bsd64.grem.de> <CACdU%2Bf9pKaVucdJ_VJ%2B9OFywoy3_=YKzuUbZs-R3dwfScZyJ-Q@mail.gmail.com> <8b79c8ed-636d-433c-bd32-1fbc60ef623f@email.android.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Aug 25, 2014 at 5:15 AM, Matthias Andree <matthias.andree@gmx.de> wrote: > On 25. August 2014 07:57:36 MESZ, Scot Hetzel <swhetzel@gmail.com> wrote: >> >> On Sun, Aug 24, 2014 at 12:16 PM, Michael Gmelin <grembo@freebsd.org> >> wrote: >>> >>> >>> >>> On Sun, 24 Aug 2014 11:59:37 -0500 >>> Scot Hetzel <swhetzel@gmail.com> wrote: >>> >>>> On Sun, Aug 24, 2014 at 7:20 AM, Michael Gmelin <grembo@freebsd.org> >>>> wrote: >>>>> >>>>> @Olli: Checking Mk/bsd.databasemk it seems like you're right. It's >>>>> quite amusing how this went unnoticed for so long, it has been in >>>>> there for eight years :) >>>> >>>> >>>> >>>> As the original author of the USE_BDB code, the USE_BDB=5 had worked >>>> in the past. As it is supposed to mean that this port only uses that >>>> version of BDB. The code was changed on Aug 21 (r365599) and the >>>> author of the new code might have forgot to test this case. >>> >>> >>> >>> Not sure if you read the rest of the thread, but this is still working >>> as intended (I tested using both the old and new version). >>> >>> The issue is, that USE_BDB=version means USE_BDB=yes, >>> WITH_BDB_VER=version, but Kurt has WITH_BDB_VER=6 in make.conf, >>> which overrides this version number and version =6 is invalid for >>> devel/ice. So basically it works as designed, Kurt wanted a specific >>> version of bdb, which doesn't work for devel/ice. >>> >>> The fix was to add WANT_BDB_VER= 5 in devel/ice, which I guess is ok, >>> since this is the only version it really works with (and I guess I >>> could remove the INVALID directive now, since WANT means really >>> *want*). >> >> >> >> Hmm, I thought I had it implemented this way at one time. Any way. >> What we should be doing with the WITH_BDB_VER is not overriding the >> USE_BDB value. Instead we should see if it is a VALID version to use >> for this port, if it is not, then use the USE_BDB value. >> >> So basically the code should be doing the following: >> >> USE_BDB=yes >> - use the default version (48+) or the installed version if higher >> >> USE_BDB=yes, WITH_BDB_VER=6 >> - use version 6 >> >> USE_BDB=5 >> - should mean the same as USE_BDB=yes, WANT_BDB_VER=5 >> - shouldn't be able to override by setting WITH_BDB_VER=6 >> - this would also allow the removal of the WANT_BDB_VER variable. >> - no error should be generated when WITH_BDB_VER is set to an invalid >> version >> >> USE_BDB=48 6 >> - use (either 48 or 6) or the installed version that matches one of >> these versions >> - no error should be generated when WITH_BDB_VER is set to an invalid >> version >> >> USE_BDB=5+, WITH_BDB_VER=48 >> - use version 5+ or the installed version if higher >> - shouldn't allow downgrade to a lower unsupported version by setting >> the WITH_BDB_VER >> -- should we still display an error in this case or just install the >> port with bdb 5+? >> >> If we make the above changes to the code, then INVALID_BDB_VER and >> WANT_BDB_VER could disappear. >> >>> My question is, what the point of INVALID_BDB_VER really is in this >>> case, it seems a bit pointless to me given the trouble it caused Kurt >>> and how we resolved this. Having a fully specified list of supported >>> versions in WANT_BDB_VER seems better in this case (assuming WANT >>> supports listing multiple versions). >> >> >> >> At the time I had implemented the code, INVALID_BDB_VER was meant to >> poke holes in the VER+: >> >> USE_BDB=2+ >> INVALID_BDB_VER=3 >> >> So the port would be able to use version 2 and 40+, and not 3. >> Probably should have just implanted it as: >> >> USE_BDB=2 40+ >> >> and skipped the INVALID_BDB_VER entirely. >> >> I was also thinking that we should make WITH_BDB_HIGHEST the default. >> It is used by VER+ when multiple versions of bdb are installed. That >> way we can remove this variable also. > > > Scot, > > I rewrote all of the Berkeley DB detection code to match documentation, and > I will check how we can optimise the new code for corner cases. > > Sorry about the inconvenience. > Thanks for the code re-write. Even I missed the corner case of checking that the WITH_BDB_VER was a valid version for the port. If you can fix that, then the last 3 cases may just work. WITH_BDB_VER (global) - shouldn't generate an error if it doesn't match a valid version for the port - use the port specified version ${UNIQUENAME:tu:S,-,_,}_WITH_BDB_VER (port specific) - should generate an error if it doesn't match a valid version for the port -- DISCLAIMER: No electrons were maimed while sending this message. Only slightly bruised.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACdU%2Bf8=YDas=F1RChwU5Yc3QZ8OscpF%2BtKVHFEGRXnTS2x1Rg>