aboutsummaryrefslogtreecommitdiff
path: root/archivers
diff options
context:
space:
mode:
authorBernard Spil <brnrd@FreeBSD.org>2017-12-12 08:11:25 +0000
committerBernard Spil <brnrd@FreeBSD.org>2017-12-12 08:11:25 +0000
commite6b0953e154825222cad276cca2b5f6c59e42d56 (patch)
tree3e70940f3b032b5f3805a636c7e6e55822916e35 /archivers
parent3b43001e28428fa880b3e23008852c0210df466d (diff)
downloadports-e6b0953e154825222cad276cca2b5f6c59e42d56.tar.gz
ports-e6b0953e154825222cad276cca2b5f6c59e42d56.zip
Notes
Diffstat (limited to 'archivers')
-rw-r--r--archivers/brotli/Makefile15
-rw-r--r--archivers/brotli/distinfo6
-rw-r--r--archivers/brotli/files/patch-freebsd-upstream121
-rw-r--r--archivers/brotli/pkg-plist18
4 files changed, 142 insertions, 18 deletions
diff --git a/archivers/brotli/Makefile b/archivers/brotli/Makefile
index 99f6bd5b674b..f770ffb243ee 100644
--- a/archivers/brotli/Makefile
+++ b/archivers/brotli/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= brotli
-PORTVERSION= 0.6.0
-PORTREVISION= 1
+PORTVERSION= 1.0.2
DISTVERSIONPREFIX= v
PORTEPOCH= 1
CATEGORIES= archivers devel
@@ -17,14 +16,14 @@ LICENSE_FILE= ${WRKSRC}/LICENSE
USE_GITHUB= yes
GH_ACCOUNT= google
-USES= cmake compiler:c++0x pkgconfig
+USES= autoreconf:build compiler:c++0x gmake libtool pkgconfig
USE_LDCONFIG= yes
+GNU_CONFIGURE= yes
-CMAKE_ARGS= -DBUILD_TESTING:BOOL=OFF
+INSTALL_TARGET= install-strip
+PLIST_SUB= SHLIBVER=${PORTVERSION}
-post-install:
- ${LN} -s libbrotlicommon.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libbrotlicommon.so.0
- ${LN} -s libbrotlidec.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libbrotlidec.so.0
- ${LN} -s libbrotlienc.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libbrotlienc.so.0
+pre-configure:
+ (cd ${WRKSRC} && ./bootstrap)
.include <bsd.port.mk>
diff --git a/archivers/brotli/distinfo b/archivers/brotli/distinfo
index 00fc327fa797..307190e48eb1 100644
--- a/archivers/brotli/distinfo
+++ b/archivers/brotli/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1498054439
-SHA256 (google-brotli-v0.6.0_GH0.tar.gz) = 69cdbdf5709051dd086a2f020f5abf9e32519eafe0ad6be820c667c3a9c9ee0f
-SIZE (google-brotli-v0.6.0_GH0.tar.gz) = 19838761
+TIMESTAMP = 1511961437
+SHA256 (google-brotli-v1.0.2_GH0.tar.gz) = c2cf2a16646b44771a4109bb21218c8e2d952babb827796eb8a800c1f94b7422
+SIZE (google-brotli-v1.0.2_GH0.tar.gz) = 23736359
diff --git a/archivers/brotli/files/patch-freebsd-upstream b/archivers/brotli/files/patch-freebsd-upstream
new file mode 100644
index 000000000000..54bfb94cc20a
--- /dev/null
+++ b/archivers/brotli/files/patch-freebsd-upstream
@@ -0,0 +1,121 @@
+From 1ca15159d6a7d4b202de17a94abf52c6c1d5988a Mon Sep 17 00:00:00 2001
+From: Bernard Spil <Sp1l@users.noreply.github.com>
+Date: Wed, 29 Nov 2017 22:38:16 +0100
+Subject: [PATCH 1/4] Fix missing symbols errors in libbrotlienc and dec (#623)
+
+When using autotools to build the binary and libraries, the resulting libraries don't link `brotlicommon` or `m`.
+This was detected when building cURL 7.57.0 which has now has brotli support. During configure it was failing
+```
+checking run-time libs availability... failed
+configure: error: one or more libs available at link-time are not available run-time. Libs used at link-time: -lbrotlidec -lz -L/usr/local/lib
+```
+inspection of config.log showed missing symbols from libbrotlicommon as the cause.
+
+This patch results in the encryption and decryption libs to be properly linked against libbrotlicommon and libm.
+See also https://bugs.freebsd.org/223966
+---
+ Makefile.am | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index c4ced6da..ace7a850 100644
+--- Makefile.am.orig
++++ Makefile.am
+@@ -23,8 +23,10 @@ libbrotlicommon_la_SOURCES = $(BROTLI_COMMON_C) $(BROTLI_COMMON_H)
+ libbrotlicommon_la_LDFLAGS = $(AM_LDFLAGS) $(LIBBROTLI_VERSION_INFO) $(LDFLAGS)
+ libbrotlidec_la_SOURCES = $(BROTLI_DEC_C) $(BROTLI_DEC_H)
+ libbrotlidec_la_LDFLAGS = $(AM_LDFLAGS) $(LIBBROTLI_VERSION_INFO) $(LDFLAGS)
++libbrotlidec_la_LIBADD = libbrotlicommon.la -lm
+ libbrotlienc_la_SOURCES = $(BROTLI_ENC_C) $(BROTLI_ENC_H)
+ libbrotlienc_la_LDFLAGS = $(AM_LDFLAGS) $(LIBBROTLI_VERSION_INFO) $(LDFLAGS)
++libbrotlienc_la_LIBADD = libbrotlicommon.la -lm
+
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = \
+
+From c8c8389ed3101279b79d93210b33f63dca8af74c Mon Sep 17 00:00:00 2001
+From: Eugene Kliuchnikov <eustas@google.com>
+Date: Thu, 30 Nov 2017 11:02:54 +0100
+Subject: [PATCH 2/4] Do not rely on bash arithmetic in `bootstrap` (#625)
+
+---
+ bootstrap | 21 +++++++++++++--------
+ 1 file changed, 13 insertions(+), 8 deletions(-)
+
+diff --git a/bootstrap b/bootstrap
+index 2f43f50e..7c7020d3 100755
+--- bootstrap.orig
++++ bootstrap
+@@ -1,19 +1,24 @@
+ # !/bin/sh -e
+
++REQUIRED='is required, but not installed.'
++bc -v >/dev/null 2>&1 || { echo >&2 "'bc' $REQUIRED"; exit 1; }
++sed --version >/dev/null 2>&1 || { echo >&2 "'sed' $REQUIRED"; exit 1; }
++autoreconf --version >/dev/null 2>&1 || { echo >&2 "'autoconf' $REQUIRED"; exit 1; }
++
+ mkdir m4 2>/dev/null
+
+ BROTLI_ABI_HEX=`sed -n 's/#define BROTLI_ABI_VERSION 0x//p' c/common/version.h`
+-BROTLI_ABI_INT=`echo $((16#$BROTLI_ABI_HEX))`
+-BROTLI_ABI_CURRENT=$(($BROTLI_ABI_INT >> 24))
+-BROTLI_ABI_REVISION=$((($BROTLI_ABI_INT >> 12) & 4095))
+-BROTLI_ABI_AGE=$(($BROTLI_ABI_INT & 4095))
++BROTLI_ABI_INT=`echo "ibase=16;$BROTLI_ABI_HEX" | bc`
++BROTLI_ABI_CURRENT=`expr $BROTLI_ABI_INT / 16777216`
++BROTLI_ABI_REVISION=`expr $BROTLI_ABI_INT / 4096 % 4096`
++BROTLI_ABI_AGE=`expr $BROTLI_ABI_INT % 4096`
+ BROTLI_ABI_INFO="$BROTLI_ABI_CURRENT:$BROTLI_ABI_REVISION:$BROTLI_ABI_AGE"
+
+ BROTLI_VERSION_HEX=`sed -n 's/#define BROTLI_VERSION 0x//p' c/common/version.h`
+-BROTLI_VERSION_INT=`echo $((16#$BROTLI_VERSION_HEX))`
+-BROTLI_VERSION_MAJOR=$(($BROTLI_VERSION_INT >> 24))
+-BROTLI_VERSION_MINOR=$((($BROTLI_VERSION_INT >> 12) & 4095))
+-BROTLI_VERSION_PATCH=$(($BROTLI_VERSION_INT & 4095))
++BROTLI_VERSION_INT=`echo "ibase=16;$BROTLI_VERSION_HEX" | bc`
++BROTLI_VERSION_MAJOR=`expr $BROTLI_VERSION_INT / 16777216`
++BROTLI_VERSION_MINOR=`expr $BROTLI_VERSION_INT / 4096 % 4096`
++BROTLI_VERSION_PATCH=`expr $BROTLI_VERSION_INT % 4096`
+ BROTLI_VERSION="$BROTLI_VERSION_MAJOR.$BROTLI_VERSION_MINOR.$BROTLI_VERSION_PATCH"
+
+ sed -r "s/[0-9]+:[0-9]+:[0-9]+/$BROTLI_ABI_INFO/" Makefile.am -i
+
+From 62194f204d90a5a95310a6949f00a0c6c5ca07bd Mon Sep 17 00:00:00 2001
+From: Bernard Spil <Sp1l@users.noreply.github.com>
+Date: Mon, 4 Dec 2017 15:17:49 +0100
+Subject: [PATCH 4/4] Work around Linuxisms (#627)
+
+Missed this in my previous tests. Sorry for that.
+
+On BSDs, both bc and sed are part of the base operating system. For sed this results in an error as the check construct (--version) is a GNU-ism and only works for GNU sed, not for bsd sed.
+Similarly, BSD sed does not take parameters after the filename(s) operated on. Moving `-i` to the front fixes that. `-r` is provided for GNU compat in BSD sed as an alias of `-E`. The `-i` option in BSD sed requires an extension to work in-place.
+
+(thank you for picking up the nginx module too!)
+---
+ bootstrap | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/bootstrap b/bootstrap
+index 7c7020d3..dbaea15d 100755
+--- bootstrap.orig
++++ bootstrap
+@@ -2,7 +2,9 @@
+
+ REQUIRED='is required, but not installed.'
+ bc -v >/dev/null 2>&1 || { echo >&2 "'bc' $REQUIRED"; exit 1; }
++if [ `uname -s` != "FreeBSD" ]; then
+ sed --version >/dev/null 2>&1 || { echo >&2 "'sed' $REQUIRED"; exit 1; }
++fi
+ autoreconf --version >/dev/null 2>&1 || { echo >&2 "'autoconf' $REQUIRED"; exit 1; }
+
+ mkdir m4 2>/dev/null
+@@ -21,7 +23,7 @@ BROTLI_VERSION_MINOR=`expr $BROTLI_VERSION_INT / 4096 % 4096`
+ BROTLI_VERSION_PATCH=`expr $BROTLI_VERSION_INT % 4096`
+ BROTLI_VERSION="$BROTLI_VERSION_MAJOR.$BROTLI_VERSION_MINOR.$BROTLI_VERSION_PATCH"
+
+-sed -r "s/[0-9]+:[0-9]+:[0-9]+/$BROTLI_ABI_INFO/" Makefile.am -i
+-sed -r "s/\[[0-9]+\.[0-9]+\.[0-9]+\]/[$BROTLI_VERSION]/" configure.ac -i
++sed -i.bak -r "s/[0-9]+:[0-9]+:[0-9]+/$BROTLI_ABI_INFO/" Makefile.am
++sed -i.bak -r "s/\[[0-9]+\.[0-9]+\.[0-9]+\]/[$BROTLI_VERSION]/" configure.ac
+
+ autoreconf --install --force --symlink || exit $
diff --git a/archivers/brotli/pkg-plist b/archivers/brotli/pkg-plist
index 383f6df505b2..e68bff66af13 100644
--- a/archivers/brotli/pkg-plist
+++ b/archivers/brotli/pkg-plist
@@ -1,17 +1,21 @@
-bin/bro
+bin/brotli
include/brotli/decode.h
include/brotli/encode.h
include/brotli/port.h
include/brotli/types.h
+lib/libbrotlicommon.a
lib/libbrotlicommon.so
-lib/libbrotlicommon.so.0
-lib/libbrotlicommon.so.0.6.0
+lib/libbrotlicommon.so.1
+lib/libbrotlicommon.so.%%SHLIBVER%%
+lib/libbrotlidec.a
lib/libbrotlidec.so
-lib/libbrotlidec.so.0
-lib/libbrotlidec.so.0.6.0
+lib/libbrotlidec.so.1
+lib/libbrotlidec.so.%%SHLIBVER%%
+lib/libbrotlienc.a
lib/libbrotlienc.so
-lib/libbrotlienc.so.0
-lib/libbrotlienc.so.0.6.0
+lib/libbrotlienc.so.1
+lib/libbrotlienc.so.%%SHLIBVER%%
libdata/pkgconfig/libbrotlicommon.pc
libdata/pkgconfig/libbrotlidec.pc
libdata/pkgconfig/libbrotlienc.pc
+%%PORTDOCS%%%%PORTDOCS%%%%DOCSDIR%%/README