app-arch/bzip2: EAPI update and patch cleanup.
authorMarty E. Plummer <hanetzer@startmail.com>
Sat, 7 Apr 2018 03:52:12 +0000 (22:52 -0500)
committerLars Wendler <polynomial-c@gentoo.org>
Mon, 9 Apr 2018 13:24:06 +0000 (15:24 +0200)
Think of this as a precursor to switching bzip2 to an autotools build.
EAPI has been bumped from 5 to 6, and the patches have been reformatted
to apply with eapply in in addition to epatch (which apparently tries
every -pN option with patch until it hits one that works), so the new
revbump can be tested and stabilized while the old version is still
available without change.

Also changed dodoc/dohtml to DOCS=()/HTML_DOCS=() einstalldocs.

Package-Manager: Portage-2.3.28, Repoman-2.3.9
Closes: https://github.com/gentoo/gentoo/pull/7848

app-arch/bzip2/bzip2-1.0.6-r9.ebuild [new file with mode: 0644]
app-arch/bzip2/files/bzip2-1.0.3-no-test.patch
app-arch/bzip2/files/bzip2-1.0.4-POSIX-shell.patch
app-arch/bzip2/files/bzip2-1.0.4-makefile-CFLAGS.patch
app-arch/bzip2/files/bzip2-1.0.4-man-links.patch
app-arch/bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch
app-arch/bzip2/files/bzip2-1.0.6-progress.patch
app-arch/bzip2/files/bzip2-1.0.6-saneso.patch

diff --git a/app-arch/bzip2/bzip2-1.0.6-r9.ebuild b/app-arch/bzip2/bzip2-1.0.6-r9.ebuild
new file mode 100644 (file)
index 0000000..35cf13b
--- /dev/null
@@ -0,0 +1,116 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# XXX: atm, libbz2.a is always PIC :(, so it is always built quickly
+#      (since we're building shared libs) ...
+
+EAPI=6
+
+inherit toolchain-funcs multilib-minimal
+
+DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
+HOMEPAGE="http://www.bzip.org/"
+SRC_URI="http://www.bzip.org/${PV}/${P}.tar.gz"
+
+LICENSE="BZIP2"
+SLOT="0/1" # subslot = SONAME
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
+IUSE="static static-libs"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
+       "${FILESDIR}"/${PN}-1.0.6-saneso.patch
+       "${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
+       "${FILESDIR}"/${PN}-1.0.6-progress.patch
+       "${FILESDIR}"/${PN}-1.0.3-no-test.patch
+       "${FILESDIR}"/${PN}-1.0.4-POSIX-shell.patch #193365
+       "${FILESDIR}"/${PN}-1.0.6-mingw.patch #393573
+       "${FILESDIR}"/${PN}-1.0.6-out-of-tree-build.patch
+       "${FILESDIR}"/${PN}-1.0.6-CVE-2016-3189.patch #620466
+)
+
+DOCS=( CHANGES README{,.COMPILATION.PROBLEMS,.XML.STUFF} manual.pdf )
+HTML_DOCS=( manual.html )
+
+src_prepare() {
+       default
+
+       # - Use right man path
+       # - Generate symlinks instead of hardlinks
+       # - pass custom variables to control libdir
+       sed -i \
+               -e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' \
+               -e 's:ln -s -f $(PREFIX)/bin/:ln -s -f :' \
+               -e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
+               Makefile || die
+}
+
+bemake() {
+       emake \
+               VPATH="${S}" \
+               CC="$(tc-getCC)" \
+               AR="$(tc-getAR)" \
+               RANLIB="$(tc-getRANLIB)" \
+               "$@"
+}
+
+multilib_src_compile() {
+       bemake -f "${S}"/Makefile-libbz2_so all
+       # Make sure we link against the shared lib #504648
+       ln -s libbz2.so.${PV} libbz2.so || die
+       bemake -f "${S}"/Makefile all LDFLAGS="${LDFLAGS} $(usex static -static '')"
+}
+
+multilib_src_install() {
+       into /usr
+
+       # Install the shared lib manually.  We install:
+       #  .x.x.x - standard shared lib behavior
+       #  .x.x   - SONAME some distros use #338321
+       #  .x     - SONAME Gentoo uses
+       dolib.so libbz2.so.${PV}
+       local v
+       for v in libbz2.so{,.{${PV%%.*},${PV%.*}}} ; do
+               dosym libbz2.so.${PV} /usr/$(get_libdir)/${v}
+       done
+       use static-libs && dolib.a libbz2.a
+
+       if multilib_is_native_abi ; then
+               gen_usr_ldscript -a bz2
+
+               dobin bzip2recover
+               into /
+               dobin bzip2
+       fi
+}
+
+multilib_src_install_all() {
+       # `make install` doesn't cope with out-of-tree builds, nor with
+       # installing just non-binaries, so handle things ourselves.
+       insinto /usr/include
+       doins bzlib.h
+       into /usr
+       dobin bz{diff,grep,more}
+       doman *.1
+
+       dosym bzdiff /usr/bin/bzcmp
+       dosym bzdiff.1 /usr/share/man/man1/bzcmp.1
+
+       dosym bzmore /usr/bin/bzless
+       dosym bzmore.1 /usr/share/man/man1/bzless.1
+
+       local x
+       for x in bunzip2 bzcat bzip2recover ; do
+               dosym bzip2.1 /usr/share/man/man1/${x}.1
+       done
+       for x in bz{e,f}grep ; do
+               dosym bzgrep /usr/bin/${x}
+               dosym bzgrep.1 /usr/share/man/man1/${x}.1
+       done
+
+       einstalldocs
+
+       # move "important" bzip2 binaries to /bin and use the shared libbz2.so
+       dosym bzip2 /bin/bzcat
+       dosym bzip2 /bin/bunzip2
+}
index 672c89dfbd209c5c7ac5653387afb9ba669c9478..9e554f79515fe78cd64fac2ae25040e869a7f2f7 100644 (file)
@@ -1,5 +1,5 @@
---- Makefile
-+++ Makefile
+--- a/Makefile
++++ b/Makefile
 @@ -23,5 +23,5 @@
        bzlib.o
  
index b31cc061db6f9b8e7b4efc9a0594c39dc975f3cf..74f8df000b1a3129bc628f3deaf61c2054918ae5 100644 (file)
@@ -3,8 +3,8 @@ with calls to sed so POSIX shells work
 
 http://bugs.gentoo.org/193365
 
---- bzgrep
-+++ bzgrep
+--- a/bzgrep
++++ b/bzgrep
 @@ -63,10 +63,9 @@
      bzip2 -cdfq "$i" | $grep $opt "$pat"
      r=$?
index 5a95ed68b2d08cd38c2146e437c5bf70de10c546..04bd0d9abda77d5dbe7400dd987e89950846a425 100644 (file)
@@ -1,5 +1,5 @@
---- Makefile
-+++ Makefile
+--- a/Makefile
++++ b/Makefile
 @@ -18,10 +18,9 @@
  CC=gcc
  AR=ar
@@ -12,8 +12,8 @@
  
  # Where you want it installed when you do 'make install'
  PREFIX=/usr/local
---- Makefile-libbz2_so
-+++ Makefile-libbz2_so
+--- a/Makefile-libbz2_so
++++ b/Makefile-libbz2_so
 @@ -24,7 +24,7 @@
  SHELL=/bin/sh
  CC=gcc
index 308f5f9b3e897e301b3b09ecaf722cd15c0d7312..deaa981adccbbf85c47ba470bc1f6a31d91f0e20 100644 (file)
@@ -1,7 +1,7 @@
 http://bugs.gentoo.org/172986
 
---- bzip2-1.0.4/Makefile
-+++ bzip2-1.0.4/Makefile
+--- a/Makefile
++++ b/Makefile
 @@ -85,4 +85,7 @@
        cp -f bzip2.1 $(PREFIX)/share/man/man1
        chmod a+r $(PREFIX)/share/man/man1/bzip2.1
index 1d0c3a6dd34f82c3e4495fff9c042a86842ebe6e..b031c808fef323746e62e9ffc4269837b0fcbf44 100644 (file)
@@ -6,8 +6,8 @@ Signed-off-by: Armin Kuster <akuster@mvista.com>
 
 Index: bzip2-1.0.6/bzip2recover.c
 ===================================================================
---- bzip2-1.0.6.orig/bzip2recover.c
-+++ bzip2-1.0.6/bzip2recover.c
+--- a/bzip2recover.c
++++ b/bzip2recover.c
 @@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv )
              bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
              bsPutUInt32 ( bsWr, blockCRC );
index 7691d63e27c8ec810ae43229a2161fb93e593567..8369597714b56c5addcb89391d89b5cfdad5acfc 100644 (file)
@@ -2,8 +2,8 @@ Ripped from Mandrake
 
 http://bugs.gentoo.org/82192
 
---- bzip2-1.0.6/bzip2.1
-+++ bzip2-1.0.6/bzip2.1
+--- a/bzip2.1
++++ b/bzip2.1
 @@ -235,6 +235,10 @@
  Suppress non-essential warning messages.  Messages pertaining to
  I/O errors and other critical events will not be suppressed.
@@ -15,8 +15,8 @@ http://bugs.gentoo.org/82192
  .B \-v --verbose
  Verbose mode -- show the compression ratio for each file processed.
  Further \-v's increase the verbosity level, spewing out lots of
---- bzip2-1.0.6/bzip2.c
-+++ bzip2-1.0.6/bzip2.c
+--- a/bzip2.c
++++ b/bzip2.c
 @@ -145,6 +145,7 @@
  #include <signal.h>
  #include <math.h>
index 9c4ddf05307b8284d7e84eae7cdba8d6fee3b98b..52ea791ce34a8b312907ac454203078abb9c81d4 100644 (file)
@@ -1,5 +1,5 @@
---- Makefile-libbz2_so
-+++ Makefile-libbz2_so
+--- a/Makefile-libbz2_so
++++ b/Makefile-libbz2_so
 @@ -35,8 +35,8 @@
        bzlib.o