Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Dec 2017 08:11:25 +0000 (UTC)
From:      Bernard Spil <brnrd@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r456110 - in head/archivers/brotli: . files
Message-ID:  <201712120811.vBC8BPqW037612@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: brnrd
Date: Tue Dec 12 08:11:25 2017
New Revision: 456110
URL: https://svnweb.freebsd.org/changeset/ports/456110

Log:
  archivers/brotli: Update to 1.0.2
  
  PR:		223966
  Approved by:	osa (maintainer)

Added:
  head/archivers/brotli/files/
  head/archivers/brotli/files/patch-freebsd-upstream   (contents, props changed)
Modified:
  head/archivers/brotli/Makefile
  head/archivers/brotli/distinfo
  head/archivers/brotli/pkg-plist

Modified: head/archivers/brotli/Makefile
==============================================================================
--- head/archivers/brotli/Makefile	Tue Dec 12 07:24:49 2017	(r456109)
+++ head/archivers/brotli/Makefile	Tue Dec 12 08:11:25 2017	(r456110)
@@ -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>

Modified: head/archivers/brotli/distinfo
==============================================================================
--- head/archivers/brotli/distinfo	Tue Dec 12 07:24:49 2017	(r456109)
+++ head/archivers/brotli/distinfo	Tue Dec 12 08:11:25 2017	(r456110)
@@ -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

Added: head/archivers/brotli/files/patch-freebsd-upstream
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/archivers/brotli/files/patch-freebsd-upstream	Tue Dec 12 08:11:25 2017	(r456110)
@@ -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 $

Modified: head/archivers/brotli/pkg-plist
==============================================================================
--- head/archivers/brotli/pkg-plist	Tue Dec 12 07:24:49 2017	(r456109)
+++ head/archivers/brotli/pkg-plist	Tue Dec 12 08:11:25 2017	(r456110)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201712120811.vBC8BPqW037612>