Skip to content

Commit

Permalink
app-arch/unrar: Bump to version 5.9.3
Browse files Browse the repository at this point in the history
Package-Manager: Portage-2.3.101, Repoman-2.3.22
Signed-off-by: Lars Wendler <[email protected]>
  • Loading branch information
Lars Wendler committed Jun 15, 2020
1 parent e8815fa commit ca9eac3
Show file tree
Hide file tree
Showing 3 changed files with 106 additions and 0 deletions.
1 change: 1 addition & 0 deletions app-arch/unrar/Manifest
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
DIST unrar-5.9.2.tar.gz 229900 BLAKE2B a941ef6566a5b58990d88e6e99cc23c169fd7d99fe2c8ef1313db860f9f220510ea002990740c4b3a3f980c037f9b3be4cdad84624a9a6f5094b1074721800d4 SHA512 e48dd3327d57522aa676e8fd6e29b7133ee9921eb1525d90ddedc61716ecfeefb51a7eb3a667f4f81f21a5ce8654727617d33463a5b6a40a7bc32252fa9f25df
DIST unrar-5.9.3.tar.gz 229917 BLAKE2B 6ab2141970535753197d3ed74521f80d3b20ecc2a0f620932c31bd1b5ce4c70bc3e2671fed0a9a77ceb4f42f6423d315f3eac0a00dac334ee2c3dd60a569c78a SHA512 38b2e2e527a4d2df627072acb4c205f46c96771969db4558be04adf9166502b3b9c3d1cc60fe290b6c4ce56db68bb5e0b0ac3bf0698d9820d4840d56cc5f3e2f
35 changes: 35 additions & 0 deletions app-arch/unrar/files/unrar-5.9.3-build.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
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

--- unrar/makefile
+++ unrar/makefile
@@ -142,21 +142,18 @@
@rm -f $(OBJECTS) $(UNRAR_OBJ) $(LIB_OBJ)
@rm -f unrar libunrar.*

-unrar: clean $(OBJECTS) $(UNRAR_OBJ)
- @rm -f unrar
+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.*
+lib: $(OBJECTS) $(LIB_OBJ)
$(LINK) -shared -o libunrar.so $(LDFLAGS) $(OBJECTS) $(LIB_OBJ)
$(AR) rcs libunrar.a $(OBJECTS) $(LIB_OBJ)

70 changes: 70 additions & 0 deletions app-arch/unrar/unrar-5.9.3.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit flag-o-matic multilib toolchain-funcs

MY_PN="${PN}src"

DESCRIPTION="Uncompress rar files"
HOMEPAGE="https://www.rarlab.com/rar_add.htm"
SRC_URI="https://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 ~sparc ~x86 ~amd64-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.9.3-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 AR="$(tc-getAR)" 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

find "${ED}" -type f -name "*.a" -delete || die
}

0 comments on commit ca9eac3

Please sign in to comment.