summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-games')
-rw-r--r--dev-games/physfs/files/physfs-2.0.3-zip_seek.diff15
-rw-r--r--dev-games/physfs/physfs-2.0.3-r2.ebuild63
2 files changed, 78 insertions, 0 deletions
diff --git a/dev-games/physfs/files/physfs-2.0.3-zip_seek.diff b/dev-games/physfs/files/physfs-2.0.3-zip_seek.diff
new file mode 100644
index 000000000000..eaab07e16034
--- /dev/null
+++ b/dev-games/physfs/files/physfs-2.0.3-zip_seek.diff
@@ -0,0 +1,15 @@
+http://icculus.org/pipermail/physfs/2017-January/001217.html
+
+diff -r 34ebe997c5c0 archivers/zip.c
+--- a/archivers/zip.c Fri Jan 01 12:53:41 2016 -0500
++++ b/archivers/zip.c Wed Jan 25 20:56:26 2017 +0300
+@@ -327,7 +327,8 @@
+ return(0);
+
+ inflateEnd(&finfo->stream);
+- memcpy(&finfo->stream, &str, sizeof (z_stream));
++ inflateCopy(&finfo->stream, &str);
++ inflateEnd(&str);
+ finfo->uncompressed_position = finfo->compressed_position = 0;
+ } /* if */
+
diff --git a/dev-games/physfs/physfs-2.0.3-r2.ebuild b/dev-games/physfs/physfs-2.0.3-r2.ebuild
new file mode 100644
index 000000000000..999e09eb3fe1
--- /dev/null
+++ b/dev-games/physfs/physfs-2.0.3-r2.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit cmake-multilib
+
+DESCRIPTION="Abstraction layer for filesystem and archive access"
+HOMEPAGE="http://icculus.org/physfs/"
+SRC_URI="http://icculus.org/physfs/downloads/${P}.tar.bz2"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+IUSE="doc grp hog mvl qpak static-libs wad +zip"
+
+RDEPEND=""
+DEPEND="doc? ( app-doc/doxygen )"
+
+PATCHES=(
+ "${FILESDIR}/${P}-zip_seek.diff"
+)
+
+src_prepare() {
+ default
+ sed -i -e 's:-Werror::' CMakeLists.txt || die
+ # make sure these libs aren't used
+ rm -rf lzma zlib*
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DPHYSFS_ARCHIVE_7Z=OFF
+ -DPHYSFS_BUILD_SHARED=ON
+ -DPHYSFS_BUILD_TEST=OFF
+ -DPHYSFS_BUILD_WX_TEST=OFF
+ -DPHYSFS_INTERNAL_ZLIB=OFF
+ -DPHYSFS_BUILD_STATIC="$(usex static-libs)"
+ -DPHYSFS_ARCHIVE_GRP="$(usex grp)"
+ -DPHYSFS_ARCHIVE_HOG="$(usex hog)"
+ -DPHYSFS_ARCHIVE_MVL="$(usex mvl)"
+ -DPHYSFS_ARCHIVE_WAD="$(usex wad)"
+ -DPHYSFS_ARCHIVE_QPAK="$(usex qpak)"
+ -DPHYSFS_ARCHIVE_ZIP="$(usex zip)"
+ )
+
+ cmake-multilib_src_configure
+}
+
+src_compile() {
+ cmake-multilib_src_compile
+
+ if multilib_is_native_abi && use doc ; then
+ doxygen || die "doxygen failed"
+ fi
+}
+
+src_install() {
+ local DOCS=( CHANGELOG.txt CREDITS.txt TODO.txt )
+ local HTML_DOCS=$(usex doc 'docs/html/*' '')
+
+ cmake-multilib_src_install
+}