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 0000000000000..eaab07e160346 --- /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 0000000000000..999e09eb3fe14 --- /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 +}