summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIonen Wolkens <ionen@gentoo.org>2021-10-08 00:29:12 -0400
committerIonen Wolkens <ionen@gentoo.org>2021-10-08 00:37:21 -0400
commit84ee86e1399efb7a39b33f1ad7e00e5978111d5a (patch)
tree6d6891b7057b109767fcaac1167f445f8ec152ff /dev-games/clanlib
parentmedia-video/obs-studio: remove version 27.1.1 (diff)
downloadgentoo-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/clanlib')
-rw-r--r--dev-games/clanlib/clanlib-0.8.1-r2.ebuild94
-rw-r--r--dev-games/clanlib/clanlib-2.3.7-r2.ebuild107
-rw-r--r--dev-games/clanlib/files/clanlib-0.8.1-glibc2.34.patch17
-rw-r--r--dev-games/clanlib/files/clanlib-2.3.7-glibc2.34.patch17
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);