summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-arch/unrar/ChangeLog8
-rw-r--r--app-arch/unrar/files/unrar-5.0.2-build.patch45
-rw-r--r--app-arch/unrar/unrar-5.0.2.ebuild56
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
+}