diff options
-rw-r--r-- | app-arch/unrar/ChangeLog | 8 | ||||
-rw-r--r-- | app-arch/unrar/files/unrar-5.0.2-build.patch | 45 | ||||
-rw-r--r-- | app-arch/unrar/unrar-5.0.2.ebuild | 56 |
3 files changed, 108 insertions, 1 deletions
diff --git a/app-arch/unrar/ChangeLog b/app-arch/unrar/ChangeLog index 89e4b2c3bcf6..a45b79ff9b62 100644 --- a/app-arch/unrar/ChangeLog +++ b/app-arch/unrar/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-arch/unrar # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-arch/unrar/ChangeLog,v 1.197 2013/03/16 15:35:08 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-arch/unrar/ChangeLog,v 1.198 2013/05/01 11:32:59 ssuominen Exp $ + +*unrar-5.0.2 (01 May 2013) + + 01 May 2013; Samuli Suominen <ssuominen@gentoo.org> +unrar-5.0.2.ebuild, + +files/unrar-5.0.2-build.patch: + Version bump. 16 Mar 2013; Mike Frysinger <vapier@gentoo.org> +files/unrar-4.2.4-build.patch, unrar-4.2.4.ebuild: diff --git a/app-arch/unrar/files/unrar-5.0.2-build.patch b/app-arch/unrar/files/unrar-5.0.2-build.patch new file mode 100644 index 000000000000..61de7ee06891 --- /dev/null +++ b/app-arch/unrar/files/unrar-5.0.2-build.patch @@ -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 diff --git a/app-arch/unrar/unrar-5.0.2.ebuild b/app-arch/unrar/unrar-5.0.2.ebuild new file mode 100644 index 000000000000..dcbb63213ac6 --- /dev/null +++ b/app-arch/unrar/unrar-5.0.2.ebuild @@ -0,0 +1,56 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-arch/unrar/unrar-5.0.2.ebuild,v 1.1 2013/05/01 11:32:59 ssuominen Exp $ + +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 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~arm-linux ~x86-linux" +IUSE="" + +RDEPEND="!<=app-arch/unrar-gpl-0.0.1_p20080417" + +S=${WORKDIR}/unrar + +src_prepare() { + epatch "${FILESDIR}"/${PN}-5.0.2-build.patch + sed -i \ + -e "/libunrar/s:.so:$(get_libname ${PV%.*.*}):" \ + -e "s:-shared:& -Wl,-soname -Wl,libunrar$(get_libname ${PV%.*.*}):" \ + makefile || die +} + +src_compile() { + unrar_make() { + emake CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" STRIP=true "$@" + } + + unrar_make CXXFLAGS+=" -fPIC" lib + ln -s libunrar$(get_libname ${PV%.*.*}) libunrar$(get_libname) + ln -s libunrar$(get_libname ${PV%.*.*}) libunrar$(get_libname ${PV}) + + # The stupid code compiles a lot of objects differently if + # they're going into a lib (-DRARDLL) or into the main app. + # So for now, we can't link the main app against the lib. + unrar_make clean + unrar_make +} + +src_install() { + dobin unrar + dodoc readme.txt + + dolib.so libunrar* + + insinto /usr/include/libunrar${PV%.*.*} + doins *.hpp + dosym libunrar${PV%.*.*} /usr/include/libunrar +} |