public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Fabian Groffen" <grobian@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/prefix:master commit in: app-arch/bzip2/files/, app-arch/bzip2/
Date: Sat,  2 Jan 2021 19:38:35 +0000 (UTC)	[thread overview]
Message-ID: <1609616281.8773c1994ef72cd311a4c986e5cd4219cd18b6a8.grobian@gentoo> (raw)

commit:     8773c1994ef72cd311a4c986e5cd4219cd18b6a8
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Jan  2 19:38:01 2021 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Jan  2 19:38:01 2021 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=8773c199

app-arch/bzip2-1.0.8: sync

Package-Manager: Portage-3.0.12-prefix, Repoman-3.0.2
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 app-arch/bzip2/Manifest                            |   1 +
 app-arch/bzip2/bzip2-1.0.8-r1.ebuild               | 142 +++++++++++++++++++++
 .../bzip2/files/bzip2-1.0.8-Makefile-libbz2_dylib  |  42 ++++++
 app-arch/bzip2/files/bzip2-1.0.8-mingw.patch       |  16 +++
 .../files/bzip2-1.0.8-out-of-tree-build.patch      |  76 +++++++++++
 app-arch/bzip2/files/bzip2-1.0.8-saneso.patch      |  13 ++
 6 files changed, 290 insertions(+)

diff --git a/app-arch/bzip2/Manifest b/app-arch/bzip2/Manifest
index 4db66c194b..03ffea8912 100644
--- a/app-arch/bzip2/Manifest
+++ b/app-arch/bzip2/Manifest
@@ -1 +1,2 @@
 DIST bzip2-1.0.6.tar.gz 782025 BLAKE2B b31533af7c71d715e6600874bb0a11b9b3aebbb08af0414a6d88bd5a2ad879a482ad408338159cb6c241815da8f48798d2ea7789ea971431d0be42ee827b0a7e SHA512 00ace5438cfa0c577e5f578d8a808613187eff5217c35164ffe044fbafdfec9e98f4192c02a7d67e01e5a5ccced630583ad1003c37697219b0f147343a3fdd12
+DIST bzip2-1.0.8.tar.gz 810029 BLAKE2B 22ab3acd84f4db8c3d6f59340c252faedfd4447cea00dafbd652e65b6cf8a20adf6835c22e58563004cfafdb15348c924996230b4b23cae42da5e25eeac4bdad SHA512 083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3

diff --git a/app-arch/bzip2/bzip2-1.0.8-r1.ebuild b/app-arch/bzip2/bzip2-1.0.8-r1.ebuild
new file mode 100644
index 0000000000..ee1d4cd81a
--- /dev/null
+++ b/app-arch/bzip2/bzip2-1.0.8-r1.ebuild
@@ -0,0 +1,142 @@
+# Copyright 1999-2021 Gentoo Authors
+# 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=7
+
+inherit toolchain-funcs multilib-minimal usr-ldscript prefix
+
+DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
+HOMEPAGE="https://sourceware.org/bzip2/"
+SRC_URI="https://sourceware.org/pub/${PN}/${P}.tar.gz"
+
+LICENSE="BZIP2"
+SLOT="0/1" # subslot = SONAME
+KEYWORDS="~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+IUSE="static static-libs"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
+	"${FILESDIR}"/${PN}-1.0.8-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.8-mingw.patch #393573
+	"${FILESDIR}"/${PN}-1.0.8-out-of-tree-build.patch
+)
+
+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
+
+	hprefixify -w "/^PATH=/" bz{diff,grep,more}
+	# this a makefile for Darwin, which already "includes" saneso
+	cp "${FILESDIR}"/${P}-Makefile-libbz2_dylib Makefile-libbz2_dylib || die
+
+	if [[ ${CHOST} == *-cygwin* ]] ; then
+		sed -i -e "s/-o libbz2\.so\.${PV}/-Wl,--out-implib=libbz2$(get_libname ${PV})/" \
+			   -e "s/-Wl,-soname -Wl,libbz2\.so\.1/-o cygbz2-${PV%%.*}.dll/" \
+			   -e "s/libbz2\.so/libbz2$(get_libname)/g" \
+			Makefile-libbz2_so
+	fi
+}
+
+bemake() {
+	emake \
+		VPATH="${S}" \
+		CC="$(tc-getCC)" \
+		AR="$(tc-getAR)" \
+		RANLIB="$(tc-getRANLIB)" \
+		"$@"
+}
+
+multilib_src_compile() {
+	local checkopts=
+	case "${CHOST}" in
+		*-darwin*)
+			bemake PREFIX="${EPREFIX}"/usr -f "${S}"/Makefile-libbz2_dylib all
+		;;
+		*)
+			bemake -f "${S}"/Makefile-libbz2_so all
+		;;
+	esac
+	# Make sure we link against the shared lib #504648
+	ln -sf libbz2$(get_libname ${PV}) libbz2$(get_libname) || 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$(get_libname ${PV})
+	[[ ${CHOST} == *-cygwin* ]] && dobin cygbz2-${PV%%.*}.dll
+	local v
+	for v in libbz2$(get_libname) libbz2$(get_libname ${PV%%.*}) libbz2$(get_libname ${PV%.*}) ; do
+		dosym libbz2$(get_libname ${PV}) /usr/$(get_libdir)/${v}
+	done
+
+	# Install libbz2.so.1.0 due to accidental soname change in 1.0.7.
+	# Reference: 98da0ad82192d21ad74ae52366ea8466e2acea24.
+	# OK to remove one year after 2020-04-11.
+	if [[ ! -L "${ED}/usr/$(get_libdir)/libbz2$(get_libname 1.0)" ]]; then
+		dosym libbz2.so.${PV} "/usr/$(get_libdir)/libbz2$(get_libname 1.0)"
+	fi
+
+	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
+}

diff --git a/app-arch/bzip2/files/bzip2-1.0.8-Makefile-libbz2_dylib b/app-arch/bzip2/files/bzip2-1.0.8-Makefile-libbz2_dylib
new file mode 100644
index 0000000000..4a6508d400
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.8-Makefile-libbz2_dylib
@@ -0,0 +1,42 @@
+
+# This Makefile builds a shared version of the library, 
+# libbz2.1.0.8.dylib, with install_name libbz2.1.dylib on Darwin
+#
+# Makefile created and used by Gentoo
+
+# ------------------------------------------------------------------
+# This file is part of bzip2/libbzip2, a program and library for
+# lossless, block-sorting data compression.
+#
+# bzip2/libbzip2 version 1.0.8 of 13 July 2019
+# Copyright (C) 1996-2019 Julian Seward <jseward@acm.org>
+#
+# Please read the WARNING, DISCLAIMER and PATENTS sections in the 
+# README file.
+#
+# This program is released under the terms of the license contained
+# in the file LICENSE.
+# ------------------------------------------------------------------
+
+
+SHELL=/bin/sh
+CC=gcc
+BIGFILES=-D_FILE_OFFSET_BITS=64
+CFLAGS+=-fpic -fPIC -Wall -Winline $(BIGFILES) $(CPPFLAGS)
+PREFIX=/usr
+LIBDIR=lib
+SOLDFLAGS=-dynamiclib -install_name $(PREFIX)/$(LIBDIR)/libbz2.1.dylib -compatibility_version 1.0.0 -current_version 1.0.8
+
+OBJS= blocksort.o  \
+      huffman.o    \
+      crctable.o   \
+      randtable.o  \
+      compress.o   \
+      decompress.o \
+      bzlib.o
+
+all: $(OBJS)
+	$(CC) $(LDFLAGS) $(SOLDFLAGS) -o libbz2.1.0.8.dylib $(OBJS)
+
+clean: 
+	rm -f $(OBJS) bzip2.o libbz2.1.0.8.dylib libbz2.1.0.dylib bzip2-shared

diff --git a/app-arch/bzip2/files/bzip2-1.0.8-mingw.patch b/app-arch/bzip2/files/bzip2-1.0.8-mingw.patch
new file mode 100644
index 0000000000..b512a8f466
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.8-mingw.patch
@@ -0,0 +1,16 @@
+make it build for mingw targets
+
+https://bugs.gentoo.org/393573
+
+--- a/bzlib.h
++++ b/bzlib.h
+@@ -81,6 +81,9 @@ typedef
+       /* windows.h define small to char */
+ #      undef small
+ #   endif
++#   ifndef WINAPI
++#   define WINAPI
++#   endif
+ #   ifdef BZ_EXPORT
+ #   define BZ_API(func) WINAPI func
+ #   define BZ_EXTERN extern

diff --git a/app-arch/bzip2/files/bzip2-1.0.8-out-of-tree-build.patch b/app-arch/bzip2/files/bzip2-1.0.8-out-of-tree-build.patch
new file mode 100644
index 0000000000..04818265b7
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.8-out-of-tree-build.patch
@@ -0,0 +1,76 @@
+--- bzip2-1.0.8/Makefile
++++ bzip2-1.0.8/Makefile
+@@ -54,7 +54,6 @@
+ 
+ check: test
+ test: bzip2
+-	@cat words1
+ 	./bzip2 -1  < sample1.ref > sample1.rb2
+ 	./bzip2 -2  < sample2.ref > sample2.rb2
+ 	./bzip2 -3  < sample3.ref > sample3.rb2
+@@ -67,7 +66,6 @@
+ 	cmp sample1.tst sample1.ref
+ 	cmp sample2.tst sample2.ref
+ 	cmp sample3.tst sample3.ref
+-	@cat words3
+ 
+ install: bzip2 bzip2recover
+ 	if ( test ! -d $(PREFIX)/bin ) ; then mkdir -p $(PREFIX)/bin ; fi
+@@ -113,25 +111,8 @@
+ 	sample1.rb2 sample2.rb2 sample3.rb2 \
+ 	sample1.tst sample2.tst sample3.tst
+ 
+-blocksort.o: blocksort.c
+-	@cat words0
+-	$(CC) $(CFLAGS) -c blocksort.c
+-huffman.o: huffman.c
+-	$(CC) $(CFLAGS) -c huffman.c
+-crctable.o: crctable.c
+-	$(CC) $(CFLAGS) -c crctable.c
+-randtable.o: randtable.c
+-	$(CC) $(CFLAGS) -c randtable.c
+-compress.o: compress.c
+-	$(CC) $(CFLAGS) -c compress.c
+-decompress.o: decompress.c
+-	$(CC) $(CFLAGS) -c decompress.c
+-bzlib.o: bzlib.c
+-	$(CC) $(CFLAGS) -c bzlib.c
+-bzip2.o: bzip2.c
+-	$(CC) $(CFLAGS) -c bzip2.c
+-bzip2recover.o: bzip2recover.c
+-	$(CC) $(CFLAGS) -c bzip2recover.c
++%.o: %.c
++	$(CC) $(CFLAGS) -c $<
+ 
+ 
+ distclean: clean
+--- bzip2-1.0.8/Makefile-libbz2_so
++++ bzip2-1.0.8/Makefile-libbz2_so
+@@ -36,24 +36,10 @@
+ 
+ all: $(OBJS)
+ 	$(CC) $(LDFLAGS) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.8 $(OBJS)
+-	$(CC) $(LDFLAGS) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
+-	rm -f libbz2.so.1.0
+-	ln -s libbz2.so.1.0.8 libbz2.so.1.0
++	ln -sf libbz2.so.1.0.8 libbz2.so.1.0
+ 
+ clean: 
+ 	rm -f $(OBJS) bzip2.o libbz2.so.1.0.8 libbz2.so.1.0 bzip2-shared
+ 
+-blocksort.o: blocksort.c
+-	$(CC) $(CFLAGS) -c blocksort.c
+-huffman.o: huffman.c
+-	$(CC) $(CFLAGS) -c huffman.c
+-crctable.o: crctable.c
+-	$(CC) $(CFLAGS) -c crctable.c
+-randtable.o: randtable.c
+-	$(CC) $(CFLAGS) -c randtable.c
+-compress.o: compress.c
+-	$(CC) $(CFLAGS) -c compress.c
+-decompress.o: decompress.c
+-	$(CC) $(CFLAGS) -c decompress.c
+-bzlib.o: bzlib.c
+-	$(CC) $(CFLAGS) -c bzlib.c
++%.o: %.c
++	$(CC) $(CFLAGS) -c $<

diff --git a/app-arch/bzip2/files/bzip2-1.0.8-saneso.patch b/app-arch/bzip2/files/bzip2-1.0.8-saneso.patch
new file mode 100644
index 0000000000..63409f5a85
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.8-saneso.patch
@@ -0,0 +1,13 @@
+--- bzip2-1.0.8/Makefile-libbz2_so
++++ bzip2-1.0.8/Makefile-libbz2_so
+@@ -35,8 +35,8 @@
+       bzlib.o
+ 
+ all: $(OBJS)
+-	$(CC) -shared -Wl,-soname -Wl,libbz2.so.1.0 -o libbz2.so.1.0.8 $(OBJS)
+-	$(CC) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
++	$(CC) $(LDFLAGS) -shared -Wl,-soname -Wl,libbz2.so.1 -o libbz2.so.1.0.8 $(OBJS)
++	$(CC) $(LDFLAGS) $(CFLAGS) -o bzip2-shared bzip2.c libbz2.so.1.0.8
+ 	rm -f libbz2.so.1.0
+ 	ln -s libbz2.so.1.0.8 libbz2.so.1.0
+ 


             reply	other threads:[~2021-01-02 19:38 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-02 19:38 Fabian Groffen [this message]
  -- strict thread matches above, loose matches on Subject: below --
2017-11-27 10:02 [gentoo-commits] repo/proj/prefix:master commit in: app-arch/bzip2/files/, app-arch/bzip2/ Fabian Groffen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1609616281.8773c1994ef72cd311a4c986e5cd4219cd18b6a8.grobian@gentoo \
    --to=grobian@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox