From owner-svn-ports-head@freebsd.org Tue Dec 12 08:11:27 2017 Return-Path: Delivered-To: svn-ports-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 53921E913D4; Tue, 12 Dec 2017 08:11:27 +0000 (UTC) (envelope-from brnrd@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 25FEE717D9; Tue, 12 Dec 2017 08:11:27 +0000 (UTC) (envelope-from brnrd@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBC8BQ3H037617; Tue, 12 Dec 2017 08:11:26 GMT (envelope-from brnrd@FreeBSD.org) Received: (from brnrd@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBC8BPqW037612; Tue, 12 Dec 2017 08:11:25 GMT (envelope-from brnrd@FreeBSD.org) Message-Id: <201712120811.vBC8BPqW037612@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: brnrd set sender to brnrd@FreeBSD.org using -f From: Bernard Spil Date: Tue, 12 Dec 2017 08:11:25 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r456110 - in head/archivers/brotli: . files X-SVN-Group: ports-head X-SVN-Commit-Author: brnrd X-SVN-Commit-Paths: in head/archivers/brotli: . files X-SVN-Commit-Revision: 456110 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Dec 2017 08:11:27 -0000 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 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 +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 +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 +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