diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2021-10-08 00:29:12 -0400 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2021-10-08 00:37:21 -0400 |
commit | 84ee86e1399efb7a39b33f1ad7e00e5978111d5a (patch) | |
tree | 6d6891b7057b109767fcaac1167f445f8ec152ff /dev-games | |
parent | media-video/obs-studio: remove version 27.1.1 (diff) | |
download | gentoo-84ee86e1399efb7a39b33f1ad7e00e5978111d5a.tar.gz gentoo-84ee86e1399efb7a39b33f1ad7e00e5978111d5a.tar.bz2 gentoo-84ee86e1399efb7a39b33f1ad7e00e5978111d5a.zip |
dev-games/clanlib: fix consumers when built against glibc-2.34
Code to avoid issues was pre-existing but not enabled on Linux.
Affected 0.8 and 2.3 slots, >=4.0 is no longer using this function.
Closes: https://bugs.gentoo.org/808707
Closes: https://bugs.gentoo.org/811591
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-games')
-rw-r--r-- | dev-games/clanlib/clanlib-0.8.1-r2.ebuild | 94 | ||||
-rw-r--r-- | dev-games/clanlib/clanlib-2.3.7-r2.ebuild | 107 | ||||
-rw-r--r-- | dev-games/clanlib/files/clanlib-0.8.1-glibc2.34.patch | 17 | ||||
-rw-r--r-- | dev-games/clanlib/files/clanlib-2.3.7-glibc2.34.patch | 17 |
4 files changed, 235 insertions, 0 deletions
diff --git a/dev-games/clanlib/clanlib-0.8.1-r2.ebuild b/dev-games/clanlib/clanlib-0.8.1-r2.ebuild new file mode 100644 index 000000000000..a52b9730199e --- /dev/null +++ b/dev-games/clanlib/clanlib-0.8.1-r2.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Multi-platform game development library" +HOMEPAGE="http://www.clanlib.org/" +SRC_URI="http://clanlib.org/download/releases-${PV:0:3}/ClanLib-${PV}.tgz" +S="${WORKDIR}"/ClanLib-${PV} + +LICENSE="ZLIB" +SLOT="0.8" +# Not big endian safe! #82779 +KEYWORDS="~amd64 ~x86" +IUSE="doc ipv6 mikmod opengl sdl static-libs vorbis" + +# opengl keyword does not drop the GL/GLU requirement. +# Autoconf files need to be fixed +RDEPEND=" + media-libs/alsa-lib + media-libs/libpng:0 + virtual/jpeg:0 + virtual/glu + virtual/opengl + x11-libs/libXi + x11-libs/libXmu + x11-libs/libXxf86vm + mikmod? ( media-libs/libmikmod ) + sdl? ( + media-libs/libsdl[X] + media-libs/sdl-gfx + ) + vorbis? ( media-libs/libvorbis ) +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" + +PATCHES=( + "${FILESDIR}/${P}-ndebug.patch" + "${FILESDIR}/${P}-gcc43.patch" + "${FILESDIR}/${P}-gcc44.patch" + "${FILESDIR}/${P}-gcc47.patch" + "${FILESDIR}/${P}-gcc6.patch" + "${FILESDIR}/${P}-llvm.patch" + "${FILESDIR}/${P}-libpng15.patch" + "${FILESDIR}/${P}-docbuilder.patch" + "${FILESDIR}/${P}-glibc2.34.patch" +) + +DOCS=( + CODING_STYLE CREDITS NEWS PATCHES + README{,.anjuta,.distros,.kdevelop,.sdl,.upgrade} INSTALL.linux +) + +src_prepare() { + default + # See #739358 + sed -i -e "s:libdir=\${exec_prefix}/lib:libdir=@libdir@:g" \ + pkgconfig/*.pc.in || die +} + +src_configure() { + # clanSound only controls mikmod/vorbis so there's + # no need to pass --{en,dis}able-clanSound ... + # clanDisplay only controls X, SDL, OpenGL plugins + # so no need to pass --{en,dis}able-clanDisplay + # also same reason why we don't have to use clanGUI + econf \ + --enable-dyn \ + --enable-clanNetwork \ + $(use_enable x86 asm386) \ + $(use_enable doc docs) \ + $(use_enable opengl clanGL) \ + $(use_enable sdl clanSDL) \ + $(use_enable vorbis clanVorbis) \ + $(use_enable mikmod clanMikMod) \ + $(use_enable ipv6 getaddr) \ + $(use_enable static-libs static) +} + +src_install() { + default + + if use doc ; then + dodir /usr/share/doc/${PF}/html + mv "${D}"/usr/share/doc/clanlib/* "${D}"/usr/share/doc/${PF}/html/ || die + rm -rf "${D}"/usr/share/doc/clanlib + cp -r Examples Resources "${D}"/usr/share/doc/${PF}/ || die + fi + + find "${ED}" -name '*.la' -delete || die +} diff --git a/dev-games/clanlib/clanlib-2.3.7-r2.ebuild b/dev-games/clanlib/clanlib-2.3.7-r2.ebuild new file mode 100644 index 000000000000..b27100b9778d --- /dev/null +++ b/dev-games/clanlib/clanlib-2.3.7-r2.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools toolchain-funcs + +MY_P=ClanLib-${PV} +DESCRIPTION="Multi-platform game development library" +HOMEPAGE="http://www.clanlib.org/" +SRC_URI="http://clanlib.org/download/releases-2.0/${MY_P}.tgz" +S="${WORKDIR}"/${MY_P} + +LICENSE="ZLIB" +SLOT="2.3" +# Not big endian safe! #82779 +KEYWORDS="~amd64 ~x86" +IUSE="doc ipv6 mikmod opengl sound sqlite cpu_flags_x86_sse2 static-libs vorbis X" +REQUIRED_USE="opengl? ( X )" + +BDEPEND=" + virtual/pkgconfig + doc? ( app-doc/doxygen dev-lang/perl ) +" +RDEPEND=" + sys-libs/zlib + X? ( + app-arch/bzip2 + media-libs/libpng:0 + media-libs/freetype + media-libs/fontconfig + virtual/jpeg:0 + x11-libs/libX11 + opengl? ( virtual/opengl ) + ) + mikmod? ( + media-libs/alsa-lib + media-libs/libmikmod + ) + sqlite? ( dev-db/sqlite:3 ) + sound? ( media-libs/alsa-lib ) + vorbis? ( + media-libs/alsa-lib + media-libs/libogg + media-libs/libvorbis + ) +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-autotools.patch + "${FILESDIR}"/${P}-doc.patch + "${FILESDIR}"/${P}-freetype_pkgconfig.patch #764902 + "${FILESDIR}"/${P}-glibc2.34.patch +) + +DOCS=( CODING_STYLE CREDITS PATCHES README ) + +src_prepare() { + default + + eautoreconf + + ln -sf ../../../Sources/API Documentation/Utilities/ReferenceDocs/ClanLib || die +} + +src_configure() { + # Add -DPACKAGE_BUGREPORT? + local myeconfargs=( + $(use_enable doc docs) + $(use_enable cpu_flags_x86_sse2 sse2) + $(use_enable opengl clanGL) + $(use_enable opengl clanGL1) + $(use_enable opengl clanGUI) + $(use_enable X clanDisplay) + $(use_enable vorbis clanVorbis) + $(use_enable mikmod clanMikMod) + $(use_enable sqlite clanSqlite) + $(use_enable ipv6 getaddr) + ) + + use sound \ + || use vorbis \ + || use mikmod \ + || myeconfargs+=( --disable-clanSound ) + + tc-export PKG_CONFIG + + econf "${myeconfargs[@]}" +} + +src_compile() { + emake + + use doc && emake html +} + +# html files are keeped in a directory that is dependent on the SLOT +# so to keep eventual bookmarks to the doc from version to version +src_install() { + default + + if use doc ; then + emake DESTDIR="${D}" install-html + dodoc -r Examples Resources + fi +} diff --git a/dev-games/clanlib/files/clanlib-0.8.1-glibc2.34.patch b/dev-games/clanlib/files/clanlib-0.8.1-glibc2.34.patch new file mode 100644 index 000000000000..85c20ccdbcfd --- /dev/null +++ b/dev-games/clanlib/files/clanlib-0.8.1-glibc2.34.patch @@ -0,0 +1,17 @@ +pthread_mutexattr_setkind_np() is long deprecated and should be using +pthread_mutexattr_settype() instead even on Linux. Fixes consumers +when built against glibc-2.34. + +https://bugs.gentoo.org/808707 +--- a/Sources/Core/System/Unix/mutex_pthread.cpp ++++ b/Sources/Core/System/Unix/mutex_pthread.cpp +@@ -42,3 +42,3 @@ + { +-#ifdef __FreeBSD__ ++#if 1 + int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int kind); +@@ -65,3 +65,3 @@ + #else +-#ifdef __FreeBSD__ ++#if 1 + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); diff --git a/dev-games/clanlib/files/clanlib-2.3.7-glibc2.34.patch b/dev-games/clanlib/files/clanlib-2.3.7-glibc2.34.patch new file mode 100644 index 000000000000..05e7320428ca --- /dev/null +++ b/dev-games/clanlib/files/clanlib-2.3.7-glibc2.34.patch @@ -0,0 +1,17 @@ +pthread_mutexattr_setkind_np() is long deprecated and should be using +pthread_mutexattr_settype() instead even on Linux. Fixes consumers +when built against glibc-2.34. + +https://bugs.gentoo.org/811591 +--- a/Sources/Core/System/mutex.cpp ++++ b/Sources/Core/System/mutex.cpp +@@ -37,3 +37,3 @@ + { +-#if defined(__APPLE__) || defined (__FreeBSD__) || defined(__OpenBSD__) ++#if 1 + int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int kind); +@@ -55,3 +55,3 @@ + pthread_mutexattr_init(&attr); +- #if defined(__FreeBSD__) || defined(__APPLE__) ++ #if 1 + pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); |