public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-gfx/openvdb/
Date: Mon, 24 Aug 2020 13:42:36 +0000 (UTC)	[thread overview]
Message-ID: <1598276511.4a186793a1a0fdb0336bcb41432c1c5f51a8df5f.sam@gentoo> (raw)

commit:     4a186793a1a0fdb0336bcb41432c1c5f51a8df5f
Author:     Adrian Grigo <agrigo2001 <AT> yahoo <DOT> com <DOT> au>
AuthorDate: Tue Aug 18 04:49:14 2020 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug 24 13:41:51 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a186793

media-gfx/openvdb: Ensure user chooses appropriate abi version

The initial ebuilds for openvdb assumed that they would build the same
abi as the major version, unless abiX-compat was given to force
building against a legacy version.

This makes it difficult for other ebuilds to determine which ABI
openvdb supports as they can not rely on a USE flag being set to
ensure that openvdb uses the same version they are building against.

Starting with openvdb 5, openvdb also requires
OPENVDB_ABI_VERSION_NUMBER to be set with the version to build against.
This is also hard to determine if the user does not have a USE flag
to determine which version is being built against.

To fix these problems, I am using abiX-compat where x is 3,4,5...
to determine the appropriate number for OPENVDB_ABI_VERSION_NUMBER
and other ebuilds can use these flags to determine which openvdb
abi to build against. It is required that openvdb and all programs
linking with it build against the same openvdb version.

These use flags are no longer set by default in the ebuild, so
the user must ensure they set abiX-compat in package.use for openvdb
and any other package using openvdb (which will be the new versions
of blender and openimageio).

These use flags must be set even if the user wants to build againt the
latest supported abi version (eg abi5-compat for openvdb-5.2.0), which
is a change from the old behaviour.

I personally think this would be better hidden away inside an eclass
and a USE_EXPAND variable. I have submitted a proposal and would
be happy to prepare a PR if desired. This can be found at https://
archives.gentoo.org/gentoo-dev/message/1df75c608c83530b43c6ea67e1db8930

Signed-off-by: Adrian Grigo <agrigo2001 <AT> yahoo.com.au>
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-gfx/openvdb/metadata.xml            | 11 +++++++----
 media-gfx/openvdb/openvdb-4.0.2-r3.ebuild | 17 +++++++++++++++--
 media-gfx/openvdb/openvdb-5.2.0-r1.ebuild | 20 +++++++++++++++++---
 3 files changed, 39 insertions(+), 9 deletions(-)

diff --git a/media-gfx/openvdb/metadata.xml b/media-gfx/openvdb/metadata.xml
index 74706159594..43363d09c1a 100644
--- a/media-gfx/openvdb/metadata.xml
+++ b/media-gfx/openvdb/metadata.xml
@@ -15,11 +15,14 @@
 		Chance of Meatballs2' and 'How to Train Your Dragon 2'. 
 	</longdescription>
 	<use>
-		<flag restrict="&lt;media-gfx/openvdb-5.0.0" name="abi3-compat">
-			Disables newer features to maintain compatibility with ABI3. Enabled by default.
+		<flag name="abi3-compat">
+			Disables newer features to maintain compatibility with ABI3.
 		</flag>
-		<flag restrict="&gt;=media-gfx/openvdb-5.0.0" name="abi4-compat">
-			Disables newer features to maintain compatibility with ABI4. Enabled by default.
+		<flag restrict="&gt;=media-gfx/openvdb-4.0.0" name="abi4-compat">
+			Disables newer features to maintain compatibility with ABI4.
+		</flag>
+		<flag restrict="&gt;=media-gfx/openvdb-5.0.0" name="abi5-compat">
+			Disables newer features to maintain compatibility with ABI5.
 		</flag>
 	</use>
 	<upstream>

diff --git a/media-gfx/openvdb/openvdb-4.0.2-r3.ebuild b/media-gfx/openvdb/openvdb-4.0.2-r3.ebuild
index 7a9db2c7125..a34fc012d95 100644
--- a/media-gfx/openvdb/openvdb-4.0.2-r3.ebuild
+++ b/media-gfx/openvdb/openvdb-4.0.2-r3.ebuild
@@ -15,9 +15,13 @@ SRC_URI="https://github.com/AcademySoftwareFoundation/${PN}/archive/v${PV}.tar.g
 LICENSE="MPL-2.0"
 SLOT="0"
 KEYWORDS="amd64 ~x86"
-IUSE="+abi3-compat doc python test"
+IUSE="abi3-compat abi4-compat doc python test"
 RESTRICT="!test? ( test )"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+REQUIRED_USE="
+	python? ( ${PYTHON_REQUIRED_USE} )
+	^^ ( abi3-compat abi4-compat )
+"
 
 RDEPEND="
 	dev-libs/boost:=
@@ -71,6 +75,15 @@ src_configure() {
 	# To stay in sync with Boost
 	append-cxxflags -std=c++14
 
+	local version
+	if use abi3-compat; then
+		version=3
+	elif use abi4-compat; then
+		version=4
+	else
+		die "Openvdb abi version is not compatible"
+	fi
+
 	local mycmakeargs=(
 		-DBLOSC_LOCATION="${myprefix}"
 		-DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"

diff --git a/media-gfx/openvdb/openvdb-5.2.0-r1.ebuild b/media-gfx/openvdb/openvdb-5.2.0-r1.ebuild
index 383beb06342..4a84ca540d1 100644
--- a/media-gfx/openvdb/openvdb-5.2.0-r1.ebuild
+++ b/media-gfx/openvdb/openvdb-5.2.0-r1.ebuild
@@ -14,9 +14,12 @@ SRC_URI="https://github.com/AcademySoftwareFoundation/${PN}/archive/v${PV}.tar.g
 LICENSE="MPL-2.0"
 SLOT="0"
 KEYWORDS="~amd64 ~x86"
-IUSE="+abi4-compat doc python test"
+IUSE="abi3-compat abi4-compat abi5-compat doc python test"
 RESTRICT="!test? ( test )"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+REQUIRED_USE="
+	python? ( ${PYTHON_REQUIRED_USE} )
+	^^ ( abi3-compat abi4-compat abi5-compat )
+"
 
 RDEPEND="
 	dev-libs/boost:=
@@ -64,11 +67,22 @@ pkg_setup() {
 src_configure() {
 	local myprefix="${EPREFIX}/usr/"
 
+	local version
+	if use abi3-compat; then
+		version=3
+	elif use abi4-compat; then
+		version=4
+	elif use abi5-compat; then
+		version=5
+	else
+		die "Openvdb ABI version not specified"
+	fi
+
 	local mycmakeargs=(
 		-DBLOSC_LOCATION="${myprefix}"
 		-DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"
 		-DGLFW3_LOCATION="${myprefix}"
-		-DOPENVDB_ABI_VERSION_NUMBER=$(usex abi4-compat 4 5)
+		-DOPENVDB_ABI_VERSION_NUMBER="${version}"
 		-DOPENVDB_BUILD_DOCS=$(usex doc)
 		-DOPENVDB_BUILD_PYTHON_MODULE=$(usex python)
 		-DOPENVDB_BUILD_UNITTESTS=$(usex test)


             reply	other threads:[~2020-08-24 13:42 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-24 13:42 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-05-28 17:01 [gentoo-commits] repo/gentoo:master commit in: media-gfx/openvdb/ Sam James
2024-04-13 17:36 Sam James
2024-04-05  1:21 Sam James
2024-02-20 13:42 Joonas Niilola
2023-02-01 18:38 Sam James
2023-02-01  5:15 Michał Górny
2022-09-29 19:58 Matthew Smith
2022-09-25  1:27 Sam James
2022-02-28  7:06 Yixun Lan
2022-02-28  5:21 Sam James
2022-02-23  2:20 Sam James
2022-02-23  2:19 Sam James
2022-02-20 21:10 Sam James
2022-02-20 21:10 Sam James
2022-02-20 21:10 Sam James
2022-02-18 22:48 Sam James
2022-02-16 19:28 Sam James
2021-12-04  1:10 Sam James
2021-10-31  8:42 Sam James
2021-10-31  8:40 Sam James
2021-10-31  8:38 Sam James
2021-10-31  8:38 Sam James
2021-10-31  7:17 Sam James
2021-10-31  5:53 Sam James
2021-10-31  2:21 Sam James
2021-10-31  2:20 Sam James
2021-10-31  2:20 Sam James
2021-10-31  2:19 Sam James
2021-10-31  2:19 Sam James
2021-10-31  2:19 Sam James
2021-10-31  2:19 Sam James
2021-10-30 17:25 Sam James
2021-10-29 22:23 Sam James
2021-10-26 11:13 Sam James
2021-06-10  0:51 Sam James
2021-03-05 18:39 Sam James
2021-02-22  7:12 Sam James
2021-01-25 14:16 Sam James
2020-12-21 18:07 Sam James
2020-11-08 10:29 Sam James
2020-10-15 15:58 Sam James
2020-08-25 18:06 Sam James
2020-08-25 18:03 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-08-24 13:42 Sam James
2020-03-01 18:36 Matthias Maier
2020-02-09 16:29 Michał Górny
2020-01-16  6:39 Michał Górny
2019-09-13 15:43 Michał Górny
2019-06-06 20:33 Andreas Sturmlechner
2019-05-25  8:52 Mikle Kolyada
2019-03-18 22:53 Patrice Clement
2018-08-14 11:39 Jonathan Scruggs
2018-08-07 17:05 Jonathan Scruggs
2018-03-30 16:04 Aaron Bauman
2018-01-27 17:19 Jonathan Scruggs
2017-09-23  8:38 David Seifert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1598276511.4a186793a1a0fdb0336bcb41432c1c5f51a8df5f.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox