forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Revert "app-arch/unrar: Security cleanup (bug #622342)"
This reverts commit f84896c.
- Loading branch information
Showing
4 changed files
with
125 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
do not let these targets depend on clean, otherwise it could run in | ||
parallel with the object compile which runs into races | ||
https://bugs.gentoo.org/461806 | ||
|
||
While we're in here, fix up a few other things: | ||
- append -pthread to LDFLAGS instead of replacing them | ||
- do not bother with `rm` in the output since linking will clober it | ||
- use CXXFLAGS when linking | ||
- append LIBFLAGS to the individual targets instead of the final link | ||
|
||
--- a/makefile | ||
+++ b/makefile | ||
@@ -7,7 +7,7 @@ | ||
LIBFLAGS=-fPIC | ||
DEFINES=-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DRAR_SMP | ||
STRIP=strip | ||
-LDFLAGS=-pthread | ||
+LDFLAGS+=-pthread | ||
DESTDIR=/usr | ||
|
||
# Linux using LCC | ||
@@ -119,8 +119,7 @@ | ||
@rm -f *.o *.bak *~ | ||
|
||
unrar: clean $(OBJECTS) $(UNRAR_OBJ) | ||
- @rm -f unrar | ||
- $(LINK) -o unrar $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) | ||
+ $(LINK) -o unrar $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) | ||
$(STRIP) unrar | ||
|
||
sfx: WHAT=SFX_MODULE | ||
@@ -130,10 +129,9 @@ | ||
$(STRIP) default.sfx | ||
|
||
lib: WHAT=RARDLL | ||
-lib: CXXFLAGS+=$(LIBFLAGS) | ||
-lib: clean $(OBJECTS) $(LIB_OBJ) | ||
- @rm -f libunrar.so | ||
- $(LINK) -shared -o libunrar.so $(LDFLAGS) $(OBJECTS) $(LIB_OBJ) | ||
+$(OBJECTS) $(LIB_OBJ): CXXFLAGS+=$(LIBFLAGS) | ||
+lib: $(OBJECTS) $(LIB_OBJ) | ||
+ $(LINK) -shared -o libunrar.so $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) $(LIB_OBJ) | ||
|
||
install-unrar: | ||
install -D unrar $(DESTDIR)/bin/unrar |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
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. | ||
|
||
https://bugs.gentoo.org/528218 | ||
|
||
--- a/makefile | ||
+++ b/makefile | ||
@@ -118,7 +118,7 @@ | ||
clean: | ||
@rm -f *.o *.bak *~ | ||
|
||
-unrar: clean $(OBJECTS) $(UNRAR_OBJ) | ||
+unrar: $(OBJECTS) $(UNRAR_OBJ) | ||
$(LINK) -o unrar $(CXXFLAGS) $(LDFLAGS) $(OBJECTS) $(UNRAR_OBJ) $(LIBS) | ||
$(STRIP) unrar | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# Copyright 1999-2017 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI="5" | ||
|
||
inherit eutils 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" | ||
|
||
LICENSE="unRAR" | ||
SLOT="0" | ||
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 | ||
|
||
src_prepare() { | ||
epatch "${FILESDIR}"/${PN}-5.0.2-build.patch | ||
epatch "${FILESDIR}"/${PN}-5.2.2-no-auto-clean.patch #528218 | ||
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 | ||
} |