diff options
author | Thomas Deutschmann <whissi@gentoo.org> | 2017-06-21 13:44:15 +0200 |
---|---|---|
committer | Thomas Deutschmann <whissi@gentoo.org> | 2017-06-21 13:44:30 +0200 |
commit | dabe9845e2f4b38d214b8cc1e27f0a43680eb39c (patch) | |
tree | 6beda49f2e7f554dc2666b11749ca717e0b9f35f /app-arch | |
parent | app-arch/unrar: Add myself as a maintainer (diff) | |
download | gentoo-dabe9845e2f4b38d214b8cc1e27f0a43680eb39c.tar.gz gentoo-dabe9845e2f4b38d214b8cc1e27f0a43680eb39c.tar.bz2 gentoo-dabe9845e2f4b38d214b8cc1e27f0a43680eb39c.zip |
app-arch/unrar: Bump to v5.5.5 (bug #622342)
Contains upstream fix for security related VMSF_DELTA filter
signedness error.
Package-Manager: Portage-2.3.5, Repoman-2.3.2
Diffstat (limited to 'app-arch')
-rw-r--r-- | app-arch/unrar/Manifest | 1 | ||||
-rw-r--r-- | app-arch/unrar/files/unrar-5.5.5-build.patch | 44 | ||||
-rw-r--r-- | app-arch/unrar/files/unrar-5.5.5-honor-flags.patch | 46 | ||||
-rw-r--r-- | app-arch/unrar/metadata.xml | 3 | ||||
-rw-r--r-- | app-arch/unrar/unrar-5.5.5.ebuild | 68 |
5 files changed, 162 insertions, 0 deletions
diff --git a/app-arch/unrar/Manifest b/app-arch/unrar/Manifest index d5c2a801d563..fb13df3fb153 100644 --- a/app-arch/unrar/Manifest +++ b/app-arch/unrar/Manifest @@ -1 +1,2 @@ +DIST unrar-5.5.5.tar.gz 220377 SHA256 a4553839cb2f025d0d9c5633816a83a723e3938209f17620c8c15da06ed061ef SHA512 b0979641737e3ef18f6708cc19e335c312ac5c6e2a13206d5fed9a5564ac99042c45a842da95163e53c6415131a39a91e901aeb186016da2e3781164679a07ff WHIRLPOOL e22399e866fabeb6f0c1617ca6b8852cf1bd406c0e95e5480692fe33bed9a130dd678f93dde6401015928437b99949865a80b21774788fdb1c7a12e3175560f4 DIST unrarsrc-5.4.5.tar.gz 226320 SHA256 e470c584332422893fb52e049f2cbd99e24dc6c6da971008b4e2ae4284f8796c SHA512 ba2abf11638b5ee026cb9e0c3576c94376a01ab3c5411b9bd0e8116d64879c81e76df16f98d850f0f0f5387dda046f38be64ddfb4fe57431cc4d97066d6e3c2f WHIRLPOOL c8e035ec183f41d8faf8345b49d2a4d20e21f9c6e27f14d7794389942df4954cd66ab4a5be2fdff6d369b514ae99d5d015f35a36143d686563b2a8efdfc77dce diff --git a/app-arch/unrar/files/unrar-5.5.5-build.patch b/app-arch/unrar/files/unrar-5.5.5-build.patch new file mode 100644 index 000000000000..5d69a25d65af --- /dev/null +++ b/app-arch/unrar/files/unrar-5.5.5-build.patch @@ -0,0 +1,44 @@ +Makefile: Fix parallel build issue + +If clean runs in parallel with $(OBJECTS), it is possible to build some +objects first, then the clean target fires and deletes some, and then we +try to link and fail. + +Gentoo-Bug: https://bugs.gentoo.org/528218 + +--- a/makefile ++++ b/makefile +@@ -139,23 +139,23 @@ uninstall: uninstall-unrar + + clean: + @rm -f *.o *.bak *~ +- +-unrar: clean $(OBJECTS) $(UNRAR_OBJ) + @rm -f unrar ++ @rm -f default.sfx ++ @rm -f libunrar.so ++ @rm -f libunrar.a ++ ++unrar: $(OBJECTS) $(UNRAR_OBJ) + $(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) + $(STRIP) unrar + + sfx: WHAT=SFX_MODULE +-sfx: clean $(OBJECTS) +- @rm -f default.sfx ++sfx: $(OBJECTS) + $(LINK) -o default.sfx $(LDFLAGS) $(OBJECTS) + $(STRIP) default.sfx + + lib: WHAT=RARDLL + lib: CXXFLAGS+=$(LIBFLAGS) +-lib: clean $(OBJECTS) $(LIB_OBJ) +- @rm -f libunrar.so +- @rm -f libunrar.a ++lib: $(OBJECTS) $(LIB_OBJ) + $(LINK) -shared -o libunrar.so $(LDFLAGS) $(OBJECTS) $(LIB_OBJ) + $(AR) rcs libunrar.a $(OBJECTS) $(LIB_OBJ) + +-- +2.13.1 + diff --git a/app-arch/unrar/files/unrar-5.5.5-honor-flags.patch b/app-arch/unrar/files/unrar-5.5.5-honor-flags.patch new file mode 100644 index 000000000000..0237e3d30f05 --- /dev/null +++ b/app-arch/unrar/files/unrar-5.5.5-honor-flags.patch @@ -0,0 +1,46 @@ +Makefile: Honor {LD,CXX}FLAGS, add LIBFLAGS + + - append -pthread to LDFLAGS instead of replacing them + - use CXXFLAGS when linking + - append LIBFLAGS to the individual targets instead of the final link + +Gentoo-Bug: https://bugs.gentoo.org/461806 + +--- a/makefile ++++ b/makefile +@@ -8,7 +8,7 @@ LIBFLAGS=-fPIC + DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP + STRIP=strip + AR=ar +-LDFLAGS=-pthread ++LDFLAGS+=-pthread + DESTDIR=/usr + + # Linux using LCC +@@ -145,18 +145,19 @@ clean: + @rm -f libunrar.a + + unrar: $(OBJECTS) $(UNRAR_OBJ) +- $(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) ++ $(LINK) -o unrar $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) + $(STRIP) unrar + + sfx: WHAT=SFX_MODULE + sfx: $(OBJECTS) +- $(LINK) -o default.sfx $(LDFLAGS) $(OBJECTS) ++ $(LINK) -o default.sfx $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) + $(STRIP) default.sfx + ++$(OBJECTS) $(LIB_OBJ): CXXFLAGS+=$(LIBFLAGS) ++ + lib: WHAT=RARDLL +-lib: CXXFLAGS+=$(LIBFLAGS) + lib: $(OBJECTS) $(LIB_OBJ) +- $(LINK) -shared -o libunrar.so $(LDFLAGS) $(OBJECTS) $(LIB_OBJ) ++ $(LINK) -shared -o libunrar.so $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) $(LIB_OBJ) + $(AR) rcs libunrar.a $(OBJECTS) $(LIB_OBJ) + + install-unrar: +-- +2.13.1 + diff --git a/app-arch/unrar/metadata.xml b/app-arch/unrar/metadata.xml index 2d6340af03e2..08898384e738 100644 --- a/app-arch/unrar/metadata.xml +++ b/app-arch/unrar/metadata.xml @@ -9,6 +9,9 @@ <email>base-system@gentoo.org</email> <name>Gentoo Base System</name> </maintainer> +<slots> + <subslots>Reflect ABI of libunrar.so.</subslots> +</slots> <upstream> <remote-id type="cpe">cpe:/a:rarlab:unrar</remote-id> </upstream> diff --git a/app-arch/unrar/unrar-5.5.5.ebuild b/app-arch/unrar/unrar-5.5.5.ebuild new file mode 100644 index 000000000000..1d82f28516ab --- /dev/null +++ b/app-arch/unrar/unrar-5.5.5.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit flag-o-matic multilib toolchain-funcs + +MY_PN=${PN}src + +DESCRIPTION="Uncompress rar files" +HOMEPAGE="http://www.rarlab.com/rar_add.htm" +SRC_URI="http://www.rarlab.com/rar/${MY_PN}-${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="unRAR" +# subslot = soname version +SLOT="0/5" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris" +IUSE="" + +RDEPEND="!<=app-arch/unrar-gpl-0.0.1_p20080417" + +S=${WORKDIR}/unrar + +PATCHES=( + "${FILESDIR}"/${PN}-5.5.5-build.patch + "${FILESDIR}"/${PN}-5.5.5-honor-flags.patch +) + +src_prepare() { + default + + local sed_args=( -e "/libunrar/s:.so:$(get_libname ${PV%.*.*}):" ) + if [[ ${CHOST} == *-darwin* ]] ; then + sed_args+=( -e "s:-shared:-dynamiclib -install_name ${EPREFIX}/usr/$(get_libdir)/libunrar$(get_libname ${PV%.*.*}):" ) + else + sed_args+=( -e "s:-shared:& -Wl,-soname -Wl,libunrar$(get_libname ${PV%.*.*}):" ) + fi + sed -i "${sed_args[@]}" makefile || die +} + +src_configure() { + mkdir -p build-{lib,bin} + printf 'VPATH = ..\ninclude ../makefile' > build-lib/Makefile || die + cp build-{lib,bin}/Makefile || die +} + +src_compile() { + unrar_make() { + emake CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" STRIP=true "$@" + } + + unrar_make CXXFLAGS+=" -fPIC" -C build-lib lib + ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname) || die + ln -s libunrar$(get_libname ${PV%.*.*}) build-lib/libunrar$(get_libname ${PV}) || die + + unrar_make -C build-bin +} + +src_install() { + dobin build-bin/unrar + dodoc readme.txt + + dolib.so build-lib/libunrar* + + insinto /usr/include/libunrar${PV%.*.*} + doins *.hpp + dosym libunrar${PV%.*.*} /usr/include/libunrar +} |