Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 24 Jul 2016 08:54:53 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-ports-bugs@FreeBSD.org
Subject:   [Bug 209183] Uses/bdb.mk conversion appears broken
Message-ID:  <bug-209183-13-p8OAswn4aO@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-209183-13@https.bugs.freebsd.org/bugzilla/>
References:  <bug-209183-13@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D209183

--- Comment #9 from Peter Wemm <peter@FreeBSD.org> ---
Looking a little closer..

If I look over the tree, I see a million
USE_BDB=3D40+
etc.

The Uses/bdb.mk code converts all these to "48+" which it then interprets as
"Use the latest version in _DB_PORTS, not the DEFAULT_VERSIONS one"

One possible fix:
sweep the ports tree and get rid of any USE_BDB that's older than 5.  ie:=20
USE_BDB=3Dyes  or USES+=3D bdb.  This seems to work and should cover most o=
f the
tree.

The real fix would be to rework the selection logic to actually respect the
user's request like the rest of the ports tree does for DEFAULT_VERSIONS.

A quick and dirty change to the logic is to leverage the "already installed"
check.  This appears to place nicely with the Version+ logic.

Uses/bdb.mk:
@@ -117,6 +116,8 @@
 _INST_BDB_VER+=3D${bdb}
 . endif
 .endfor
+_INST_BDB_VER:=3D${_INST_BDB_VER:N${BDB_DEFAULT}}
+_INST_BDB_VER+=3D${BDB_DEFAULT}

 # 2. parse supported versions:
 # 2a. build list from _bdb_ARGS

Then it looks like this:
databases/py-bsddb # make DEFAULT_VERSIONS=3Dbdb=3D48 debug-bdb | & grep '^=
BDB_VER'
BDB_VER=3D48
databases/py-bsddb # make DEFAULT_VERSIONS=3Dbdb=3D5 debug-bdb | & grep '^B=
DB_VER'
BDB_VER=3D5
databases/py-bsddb # make DEFAULT_VERSIONS=3Dbdb=3D48 USE_BDB=3D5 debug-bdb=
 | & grep
'^BDB_VER'
BDB_VER=3D5
databases/py-bsddb # make DEFAULT_VERSIONS=3Dbdb=3D48 USE_BDB=3Dyes debug-b=
db | &
grep '^BDB_VER'
BDB_VER=3D48

databases/py-bsddb # make DEFAULT_VERSIONS=3Dbdb=3D5 USE_BDB=3Dyes debug-bd=
b | & grep
'^BDB_VER'BDB_VER=3D5
databases/py-bsddb # make USE_BDB=3Dyes debug-bdb | & grep '^BDB_VER'
BDB_VER=3D5

databases/py-bsddb # make DEFAULT_VERSIONS=3Dbdb=3D48 USE_BDB=3D5+ debug-bd=
b | & grep
'^BDB_VER'
BDB_VER=3D5
databases/py-bsddb # make DEFAULT_VERSIONS=3Dbdb=3D48 USE_BDB=3D6
WITH_BDB6_PERMITTED=3Dyes debug-bdb | & grep '^BDB_VER'
BDB_VER=3D6

This trivial change gives the least astonishing outcome that I can imagine.

Pretending that the default version is already installed avoids duplicating=
 and
messing with an awful lot of ugly make logic.  After all, it will be instal=
led
at the end of the run.

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-209183-13-p8OAswn4aO>