jasper is one of the 32bit dependencies for certain steam-based games, see bug #446682. I patched the ebuild to use autotools-multilib eclass and it builds without errors. Unfortunately I don't have a 32bit application to test if it's really working. Reproducible: Always
Created attachment 339462 [details, diff] jasper-multlib.patch
Perfect. This ebuild fixes The Book Of Unwritten Tales for me :) voting offtop: are there another multilib packages in the tree? I reemerged the world with ABI_X86="32 64" and it did nothing.
Comment on attachment 339462 [details, diff] jasper-multlib.patch >--- jasper-1.900.1-r5.ebuild 2013-02-18 23:01:20.000000000 +0100 >+++ jasper-1.900.1-r6.ebuild 2013-02-20 00:32:36.841004753 +0100 >-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" >+KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~x64-solaris ~x86-solaris" Why did you drop ~arm-linux? > IUSE="jpeg opengl static-libs" > > RDEPEND="jpeg? ( virtual/jpeg ) 32-bit version will depend on emul packages abi_x86_32? ( jpeg? || ( emul-baselibs virtual/jpeg[abi_x86_32(-)] ) and the same for the opengl stuff. >@@ -21,21 +21,23 @@ > DEPEND="${RDEPEND} > app-arch/unzip" > >-src_prepare() { >- epatch "${WORKDIR}"/${P}-fixes-20120611.patch >- elibtoolize >-} >+PATCHES=( >+ "${WORKDIR}/${P}-fixes-20120611.patch" >+ ) Good job, elibtoolize will run automatically for autotools-utils. > > src_configure() { >- econf \ >- $(use_enable jpeg libjpeg) \ >- $(use_enable opengl) \ >- $(use_enable static-libs static) \ >+ local myeconfargs=( >+ $(use_enable jpeg libjpeg) >+ $(use_enable opengl) >+ $(use_enable static-libs static) > --enable-shared >+ ) >+ autotools-multilib_src_configure Perfect. > } > > src_install() { >- emake DESTDIR="${D}" install || die >+ autotools-multilib_src_install >+ > dodoc NEWS README doc/* Add DOCS=( NEWS README doc ) in the header and this line can go away > find "${ED}" -name '*.la' -delete prune_libtool_files is called by autotools-utils_src_install so this is redundant. > } With these two lines removed src_install can go.
(In reply to comment #2) > Perfect. > This ebuild fixes The Book Of Unwritten Tales for me :) voting > > offtop: are there another multilib packages in the tree? I reemerged the > world with ABI_X86="32 64" and it did nothing. fftw has it, but we will hopefully start some trackers soon.
(In reply to comment #3) > > RDEPEND="jpeg? ( virtual/jpeg ) > 32-bit version will depend on emul packages > abi_x86_32? ( jpeg? || ( emul-baselibs virtual/jpeg[abi_x86_32(-)] ) > and the same for the opengl stuff. I'd rather go with 'amd64? ( abi_x86_32? ( emul-* ) )' if we're going to commit it before the deps. When the deps are ready, just switch to a single virtual/jpeg[$MULTILIB_USEDEP]. Otherwise, those scary constructs may remain. > > dodoc NEWS README doc/* > Add DOCS=( NEWS README doc ) in the header and this line can go away DOCS=( NEWS README doc/. ) rather. Otherwise 'doc' subdirectory will be created.
Created attachment 339490 [details, diff] jasper-multlib.patch I did not change the keywords. Maybe the ebuild in main tree was updated after I copied the ebuild. Maybe we can also remove libtool eclass?
This should be done by package maintainers, no?
(In reply to comment #6) > Created attachment 339490 [details, diff] [details, diff] > jasper-multlib.patch > > I did not change the keywords. Maybe the ebuild in main tree was updated > after I copied the ebuild. > > Maybe we can also remove libtool eclass? Yes, and eutils as well as autotools eclass takes care of that. Otherwise it looks ready to be merged. (In reply to comment #7) > This should be done by package maintainers, no? Yes, you are right.
Created attachment 339516 [details, diff] jasper-multilib.patch Okay, removed redundant eclasses.
(In reply to comment #9) > Created attachment 339516 [details, diff] [details, diff] > jasper-multilib.patch > > Okay, removed redundant eclasses. What about this one? Error(s) in metadata for 'media-libs/jasper-1.900.1-r6': DEPEND: USE flag 'amd64' referenced in conditional 'amd64?' is not in IUSE RDEPEND: USE flag 'amd64' referenced in conditional 'amd64?' is not in IUSE I wonder if it makes any sense to put an arch into IUSE. How to get rid of this?
(In reply to comment #10) > (In reply to comment #9) > > Created attachment 339516 [details, diff] [details, diff] [details, diff] > > jasper-multilib.patch > > > > Okay, removed redundant eclasses. > > What about this one? > Error(s) in metadata for 'media-libs/jasper-1.900.1-r6': > DEPEND: USE flag 'amd64' referenced in conditional 'amd64?' is not in IUSE > RDEPEND: USE flag 'amd64' referenced in conditional 'amd64?' is not in IUSE > > I wonder if it makes any sense to put an arch into IUSE. How to get rid of > this? It's always in IUSE.
*jasper-1.900.1-r6 (17 Mar 2013) + + 17 Mar 2013; Justin Lecher <jlec@gentoo.org> +jasper-1.900.1-r6.ebuild, + metadata.xml: + Do multi X86_ABI build, #458380, thanks Mario Kicherer for the patch +
(In reply to comment #11) > (In reply to comment #10) > > (In reply to comment #9) > > > Created attachment 339516 [details, diff] [details, diff] [details, diff] [details, diff] > > > jasper-multilib.patch > > > > > > Okay, removed redundant eclasses. > > > > What about this one? > > Error(s) in metadata for 'media-libs/jasper-1.900.1-r6': > > DEPEND: USE flag 'amd64' referenced in conditional 'amd64?' is not in IUSE > > RDEPEND: USE flag 'amd64' referenced in conditional 'amd64?' is not in IUSE > > > > I wonder if it makes any sense to put an arch into IUSE. How to get rid of > > this? > > It's always in IUSE. That's a bit irritating: http://devmanual.gentoo.org/ebuild-writing/variables/index.html IUSE (...) Arch USE flags (sparc, mips, x86-fbsd and so on) should not be listed.
(In reply to comment #13) > That's a bit irritating: > http://devmanual.gentoo.org/ebuild-writing/variables/index.html > > IUSE > > (...) > > Arch USE flags (sparc, mips, x86-fbsd and so on) should not be listed. They can be used without explicit listing.
*** Bug 490158 has been marked as a duplicate of this bug. ***
But please fix the issues that were fixed or pointed out in the newer bug/patch: 1. missing MULTILIB_USEDEP on jpeg & opengl, 2. remove the || () for emul-linux compat, we do that only for stuff that used to do multilib without the eclass in the past.
Like this? Index: jasper-1.900.1-r6.ebuild =================================================================== RCS file: /var/cvsroot/gentoo-x86/media-libs/jasper/jasper-1.900.1-r6.ebuild,v retrieving revision 1.2 diff -u -B -r1.2 jasper-1.900.1-r6.ebuild --- jasper-1.900.1-r6.ebuild 28 Aug 2013 14:51:42 -0000 1.2 +++ jasper-1.900.1-r6.ebuild 9 Nov 2013 11:30:48 -0000 @@ -18,17 +18,10 @@ IUSE="jpeg opengl static-libs" RDEPEND=" - jpeg? ( - virtual/jpeg:0 - amd64? ( - abi_x86_32? ( app-emulation/emul-linux-x86-baselibs ) - ) - ) + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] ) opengl? ( - virtual/opengl media-libs/freeglut - amd64? ( - abi_x86_32? ( app-emulation/emul-linux-x86-opengl ) - ) + virtual/opengl[${MULTILIB_USEDEP}] + media-libs/freeglut[${MULTILIB_USEDEP}] )" DEPEND="${RDEPEND} app-arch/unzip"
Yes. But please consider also using :0 (or proper slots) in all potential multilib deps since we may be forced to introduce binary-only slots in the future.
+ 09 Nov 2013; Justin Lecher <jlec@gentoo.org> jasper-1.900.1-r6.ebuild: + Fix multilib support, #458380 +
*** Bug 496378 has been marked as a duplicate of this bug. ***