Not sure about the plans on this now that xlibs set was migrated, but most people have a lot of problems specially with mesa (due needing USE flags changing, running multiple different versions to test) Any plans on migrating this set? It includes the following: media-libs/freeglut 2.8.0-r1 media-libs/glew 1.9.0 media-libs/glu 9.0.0 media-libs/mesa 9.0.1 x11-libs/libdrm 2.4.40 Thanks Reproducible: Always
Yes, we definitely want to do this to let users get 32-bit Mesa updates quicker. As far as I know, it's all possible except for bug 434200 which blocks multilib Mesa.
I've rebased mesa-9999-r51 in the FireBurn overlay against the new multilib llvm in portage Just had to adjust the llvm-config bit as I had llvm-config-amd64 and llvm-config-x86 with a symlink to the amd64 one, whereas the new llvm uses llvm-config.x86 and uses llvm-config for the amd64 - tad annoying but it works
Created attachment 355866 [details, diff] Patch for all the involved packages
The attached patch takes care of them all. Please let me know if it's OK to commit. I'd prefer to commit it all without p.mask since we can take care of the whole virtual in one commit.
Comment on attachment 355866 [details, diff] Patch for all the involved packages very nice >copy from gx86/dev-libs/libclc/libclc-0.0.1_pre20130524.ebuild >copy to gx86/dev-libs/libclc/libclc-0.0.1_pre20130524-r1.ebuild >index 0534a96..1a2dea6 100644 >--- a/gx86/dev-libs/libclc/libclc-0.0.1_pre20130524.ebuild >+++ b/gx86/dev-libs/libclc/libclc-0.0.1_pre20130524-r1.ebuild >@@ -45,5 +45,6 @@ src_unpack() { > src_configure() { > ./configure.py \ > --with-llvm-config="${EPREFIX}/usr/bin/llvm-config" \ >- --prefix="${EPREFIX}/usr" >+ --prefix="${EPREFIX}/usr" \ >+ --pkgconfigdir="${EPREFIX}/usr/share/pkgconfig" > } why ? unrelated ? can go before ? >diff --git a/gx86/dev-libs/wayland/wayland-1.2.0.ebuild b/gx86/dev-libs/wayland/wayland-1.2.0-r1.ebuild >similarity index 78% >copy from gx86/dev-libs/wayland/wayland-1.2.0.ebuild >copy to gx86/dev-libs/wayland/wayland-1.2.0-r1.ebuild >index b52d119..e0d06b1 100644 >--- a/gx86/dev-libs/wayland/wayland-1.2.0.ebuild >+++ b/gx86/dev-libs/wayland/wayland-1.2.0-r1.ebuild >@@ -8,9 +8,10 @@ if [[ ${PV} = 9999* ]]; then > EGIT_REPO_URI="git://anongit.freedesktop.org/git/${PN}/${PN}" > GIT_ECLASS="git-2" > EXPERIMENTAL="true" >+ AUTOTOOLS_AUTORECONF=1 > fi > >-inherit autotools toolchain-funcs $GIT_ECLASS >+inherit autotools-multilib toolchain-funcs $GIT_ECLASS > > DESCRIPTION="Wayland protocol libraries" > HOMEPAGE="http://wayland.freedesktop.org/" >@@ -33,19 +34,16 @@ DEPEND="${RDEPEND} > doc? ( app-doc/doxygen ) > virtual/pkgconfig" > >-src_prepare() { >- if [[ ${PV} = 9999* ]]; then >- eautoreconf >- fi >-} >- > src_configure() { >- myconf="$(use_enable static-libs static) \ >- $(use_enable doc documentation)" >+ local myeconfargs=( >+ $(use_enable static-libs static) isnt that automatic ? >+ $(use_enable doc documentation) please disable it on non-native abi, those will be thrown away i believe >diff --git a/gx86/media-libs/freeglut/freeglut-2.8.1.ebuild b/gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild >similarity index 55% >copy from gx86/media-libs/freeglut/freeglut-2.8.1.ebuild >copy to gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild >index c622a32..c87e3bb 100644 [...] >- find "${ED}" -name '*.la' -exec rm -f {} + I'd add a AUTOTOOLS_PRUNE_LIBTOOL_FILES=all to replace this but not my call >diff --git a/gx86/media-libs/mesa/mesa-9.1.6.ebuild b/gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild >similarity index 88% >copy from gx86/media-libs/mesa/mesa-9.1.6.ebuild >copy to gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild [...] > DEPEND="${RDEPEND} > llvm? ( >- >=sys-devel/llvm-2.9 >+ ~sys-devel/llvm-3.3[${MULTILIB_USEDEP}] why the ~ ? >-src_configure() { >+multilib_src_configure() { > local myconf > > if use classic; then >@@ -248,6 +248,11 @@ src_configure() { > # build fails with BSD indent, bug #428112 > use userland_GNU || export INDENT=cat > >+ if ! multilib_is_native_abi; then >+ myconf+="--disable-xorg >+ LLVM_CONFIG=${EPREFIX}/usr/bin/llvm-config.${ABI}" >+ fi is it a TODO or is it just unwanted ? >diff --git a/gx86/virtual/opencl/opencl-0-r3.ebuild b/gx86/virtual/opencl/opencl-0-r4.ebuild >similarity index 61% >copy from gx86/virtual/opencl/opencl-0-r3.ebuild >copy to gx86/virtual/opencl/opencl-0-r4.ebuild >index 90c1d62..a2a5116 100644 while at it, please add the MULTILIB_USEDEP to media-libs/x264-9999 or remind me to do it after committing again, great work!
(In reply to Alexis Ballier from comment #5) > >copy from gx86/dev-libs/libclc/libclc-0.0.1_pre20130524.ebuild > >copy to gx86/dev-libs/libclc/libclc-0.0.1_pre20130524-r1.ebuild > >index 0534a96..1a2dea6 100644 > >--- a/gx86/dev-libs/libclc/libclc-0.0.1_pre20130524.ebuild > >+++ b/gx86/dev-libs/libclc/libclc-0.0.1_pre20130524-r1.ebuild > >@@ -45,5 +45,6 @@ src_unpack() { > > src_configure() { > > ./configure.py \ > > --with-llvm-config="${EPREFIX}/usr/bin/llvm-config" \ > >- --prefix="${EPREFIX}/usr" > >+ --prefix="${EPREFIX}/usr" \ > >+ --pkgconfigdir="${EPREFIX}/usr/share/pkgconfig" > > } > > why ? unrelated ? can go before ? Sorry, I don't understand. We need to add --pkgconfigdir since libclc installs it to /usr/lib/pkgconfig (yep, no $(get_libdir)). I've reported this upstreams and most likely the default will be fixed real soon. > >diff --git a/gx86/dev-libs/wayland/wayland-1.2.0.ebuild b/gx86/dev-libs/wayland/wayland-1.2.0-r1.ebuild > >similarity index 78% > >copy from gx86/dev-libs/wayland/wayland-1.2.0.ebuild > >copy to gx86/dev-libs/wayland/wayland-1.2.0-r1.ebuild > >index b52d119..e0d06b1 100644 > >--- a/gx86/dev-libs/wayland/wayland-1.2.0.ebuild > >+++ b/gx86/dev-libs/wayland/wayland-1.2.0-r1.ebuild > >@@ -8,9 +8,10 @@ if [[ ${PV} = 9999* ]]; then > > EGIT_REPO_URI="git://anongit.freedesktop.org/git/${PN}/${PN}" > > GIT_ECLASS="git-2" > > EXPERIMENTAL="true" > >+ AUTOTOOLS_AUTORECONF=1 > > fi > > > >-inherit autotools toolchain-funcs $GIT_ECLASS > >+inherit autotools-multilib toolchain-funcs $GIT_ECLASS > > > > DESCRIPTION="Wayland protocol libraries" > > HOMEPAGE="http://wayland.freedesktop.org/" > >@@ -33,19 +34,16 @@ DEPEND="${RDEPEND} > > doc? ( app-doc/doxygen ) > > virtual/pkgconfig" > > > >-src_prepare() { > >- if [[ ${PV} = 9999* ]]; then > >- eautoreconf > >- fi > >-} > >- > > src_configure() { > >- myconf="$(use_enable static-libs static) \ > >- $(use_enable doc documentation)" > >+ local myeconfargs=( > >+ $(use_enable static-libs static) > > isnt that automatic ? You are correct, thanks. > >+ $(use_enable doc documentation) > > please disable it on non-native abi, those will be thrown away i believe Fixed. > >diff --git a/gx86/media-libs/freeglut/freeglut-2.8.1.ebuild b/gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild > >similarity index 55% > >copy from gx86/media-libs/freeglut/freeglut-2.8.1.ebuild > >copy to gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild > >index c622a32..c87e3bb 100644 > [...] > >- find "${ED}" -name '*.la' -exec rm -f {} + > > I'd add a AUTOTOOLS_PRUNE_LIBTOOL_FILES=all to replace this but not my call Hmm, but glut doesn't provide a pkg-config file, so removing .la is incorrect. We should either keep it, or drop USE=static-libs. > >diff --git a/gx86/media-libs/mesa/mesa-9.1.6.ebuild b/gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild > >similarity index 88% > >copy from gx86/media-libs/mesa/mesa-9.1.6.ebuild > >copy to gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild > [...] > > DEPEND="${RDEPEND} > > llvm? ( > >- >=sys-devel/llvm-2.9 > >+ ~sys-devel/llvm-3.3[${MULTILIB_USEDEP}] > > why the ~ ? It doesn't work with llvm-9999 (going to be 3.4). And since older versions don't do multilib, I've decided to just put 3.3. > >-src_configure() { > >+multilib_src_configure() { > > local myconf > > > > if use classic; then > >@@ -248,6 +248,11 @@ src_configure() { > > # build fails with BSD indent, bug #428112 > > use userland_GNU || export INDENT=cat > > > >+ if ! multilib_is_native_abi; then > >+ myconf+="--disable-xorg > >+ LLVM_CONFIG=${EPREFIX}/usr/bin/llvm-config.${ABI}" > >+ fi > > is it a TODO or is it just unwanted ? xorg is unwanted. chithead says it's just a driver for xorg-server, and we're not running a 32-bit server :). > >diff --git a/gx86/virtual/opencl/opencl-0-r3.ebuild b/gx86/virtual/opencl/opencl-0-r4.ebuild > >similarity index 61% > >copy from gx86/virtual/opencl/opencl-0-r3.ebuild > >copy to gx86/virtual/opencl/opencl-0-r4.ebuild > >index 90c1d62..a2a5116 100644 > > while at it, please add the MULTILIB_USEDEP to media-libs/x264-9999 or > remind me to do it after committing I'll try to remember ;). > again, great work! Thanks.
Created attachment 355888 [details, diff] Updated patch
(In reply to Michał Górny from comment #6) > (In reply to Alexis Ballier from comment #5) > > >copy from gx86/dev-libs/libclc/libclc-0.0.1_pre20130524.ebuild > > >copy to gx86/dev-libs/libclc/libclc-0.0.1_pre20130524-r1.ebuild > > >index 0534a96..1a2dea6 100644 > > >--- a/gx86/dev-libs/libclc/libclc-0.0.1_pre20130524.ebuild > > >+++ b/gx86/dev-libs/libclc/libclc-0.0.1_pre20130524-r1.ebuild > > >@@ -45,5 +45,6 @@ src_unpack() { > > > src_configure() { > > > ./configure.py \ > > > --with-llvm-config="${EPREFIX}/usr/bin/llvm-config" \ > > >- --prefix="${EPREFIX}/usr" > > >+ --prefix="${EPREFIX}/usr" \ > > >+ --pkgconfigdir="${EPREFIX}/usr/share/pkgconfig" > > > } > > > > why ? unrelated ? can go before ? > > Sorry, I don't understand. > > We need to add --pkgconfigdir since libclc installs it to /usr/lib/pkgconfig > (yep, no $(get_libdir)). I've reported this upstreams and most likely the > default will be fixed real soon. yes, then it's "unrelated", should be fixed regardless of multilib and can be committed without the rest :) > > >diff --git a/gx86/media-libs/freeglut/freeglut-2.8.1.ebuild b/gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild > > >similarity index 55% > > >copy from gx86/media-libs/freeglut/freeglut-2.8.1.ebuild > > >copy to gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild > > >index c622a32..c87e3bb 100644 > > [...] > > >- find "${ED}" -name '*.la' -exec rm -f {} + > > > > I'd add a AUTOTOOLS_PRUNE_LIBTOOL_FILES=all to replace this but not my call > > Hmm, but glut doesn't provide a pkg-config file, so removing .la is > incorrect. We should either keep it, or drop USE=static-libs. this is another debate: .la helps packages built with libtool to do static linking, those that don't use libtool get nothing from it. if the .la is already gone and nobody complained i'd say it's not worth reintroducing it. btw, it is a bit hacky but I've made libcxx achieve proper static linking without .la nor .pc by using ldscripts :) > > >diff --git a/gx86/media-libs/mesa/mesa-9.1.6.ebuild b/gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild > > >similarity index 88% > > >copy from gx86/media-libs/mesa/mesa-9.1.6.ebuild > > >copy to gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild > > [...] > > > DEPEND="${RDEPEND} > > > llvm? ( > > >- >=sys-devel/llvm-2.9 > > >+ ~sys-devel/llvm-3.3[${MULTILIB_USEDEP}] > > > > why the ~ ? > > It doesn't work with llvm-9999 (going to be 3.4). And since older versions > don't do multilib, I've decided to just put 3.3. ok would it be worth adding a := here too ?
(In reply to Alexis Ballier from comment #8) > > > >diff --git a/gx86/media-libs/freeglut/freeglut-2.8.1.ebuild b/gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild > > > >similarity index 55% > > > >copy from gx86/media-libs/freeglut/freeglut-2.8.1.ebuild > > > >copy to gx86/media-libs/freeglut/freeglut-2.8.1-r2.ebuild > > > >index c622a32..c87e3bb 100644 > > > [...] > > > >- find "${ED}" -name '*.la' -exec rm -f {} + > > > > > > I'd add a AUTOTOOLS_PRUNE_LIBTOOL_FILES=all to replace this but not my call > > > > Hmm, but glut doesn't provide a pkg-config file, so removing .la is > > incorrect. We should either keep it, or drop USE=static-libs. > > this is another debate: .la helps packages built with libtool to do static > linking, those that don't use libtool get nothing from it. if the .la is > already gone and nobody complained i'd say it's not worth reintroducing it. Well, it just proves that people are introducing USE=static-libs and nobody is using it. > btw, it is a bit hacky but I've made libcxx achieve proper static linking > without .la nor .pc by using ldscripts :) That's just replacing one hack with another. You could also make linker use .la files, net result would be the same. > > > >diff --git a/gx86/media-libs/mesa/mesa-9.1.6.ebuild b/gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild > > > >similarity index 88% > > > >copy from gx86/media-libs/mesa/mesa-9.1.6.ebuild > > > >copy to gx86/media-libs/mesa/mesa-9.1.6-r1.ebuild > > > [...] > > > > DEPEND="${RDEPEND} > > > > llvm? ( > > > >- >=sys-devel/llvm-2.9 > > > >+ ~sys-devel/llvm-3.3[${MULTILIB_USEDEP}] > > > > > > why the ~ ? > > > > It doesn't work with llvm-9999 (going to be 3.4). And since older versions > > don't do multilib, I've decided to just put 3.3. > > ok > > would it be worth adding a := here too ? llvm doesn't have subslots at the time. It might be worth adding them, though. But that's another story.
> > > Hmm, but glut doesn't provide a pkg-config file, so removing .la is > > > incorrect. We should either keep it, or drop USE=static-libs. > > > > this is another debate: .la helps packages built with libtool to do static > > linking, those that don't use libtool get nothing from it. if the .la is > > already gone and nobody complained i'd say it's not worth reintroducing it. > > Well, it just proves that people are introducing USE=static-libs and nobody > is using it. Or are just manually adding the dependent libs > > btw, it is a bit hacky but I've made libcxx achieve proper static linking > > without .la nor .pc by using ldscripts :) > > That's just replacing one hack with another. You could also make linker use > .la files, net result would be the same. except it doesn't use .la but groks linker scripts and linker script are not as contagious as .la files :) linker scripts are more complex to generate and i dont think its something to be done for glut, so it's useless debating it here; i was just pointing out that the .pc argument for .la files does not really stand
@x11: ping. We'd like to set up some deadline for reviewing and committing this. Would you like us to do something specific? @Pacho: do you have a Prefix setup maybe? I think chithead wanted to have those changes tested on Prefix.
I don't have a prefix setup :(, but usually CCing prefix team work (or pinging grobian)
@Prefix, could you test if these changes don't break anything for you, please?
I just tested these changes in a new minimal prefix, and everything appears to buld correctly. Note that prefix does *not* have any sort of multilib support in it (prefix/linux/amd64 inherits from a no-multilib profile).
*** Bug 473462 has been marked as a duplicate of this bug. ***
When will app-emulation/emul-linux-x86-opengl updated and don't block x11-libs/libdrm and media-libs/mesa anymore?
Created attachment 358806 [details, diff] Rebased & updated patch
The same commits can be also found in my weird git repo [1]. [1]:https://bitbucket.org/mgorny/gx86-working-tree/commits/branch/opengl-multilib-r1
If x11 doesn't review this until then, I will commit it on the weekend.
Committed now.