View | Details | Raw Unified | Return to bug 223966 | Differences between
and this patch

Collapse All | Expand All

(-)archivers/brotli/Makefile (-8 / +7 lines)
Lines 2-9 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	brotli
4
PORTNAME=	brotli
5
PORTVERSION=	0.6.0
5
PORTVERSION=	1.0.2
6
PORTREVISION=	1
7
DISTVERSIONPREFIX=	v
6
DISTVERSIONPREFIX=	v
8
PORTEPOCH=	1
7
PORTEPOCH=	1
9
CATEGORIES=	archivers devel
8
CATEGORIES=	archivers devel
Lines 16-29 Link Here
16
USE_GITHUB=	yes
15
USE_GITHUB=	yes
17
GH_ACCOUNT=	google
16
GH_ACCOUNT=	google
18
17
19
USES=		cmake compiler:c++0x pkgconfig
18
USES=		autoreconf compiler:c++0x gmake libtool pkgconfig
20
USE_LDCONFIG=	yes
19
USE_LDCONFIG=	yes
20
GNU_CONFIGURE=	yes
21
21
22
CMAKE_ARGS=		-DBUILD_TESTING:BOOL=OFF
22
INSTALL_TARGET=	install-strip
23
PLIST_SUB=	SHLIBVER=${PORTVERSION}
23
24
24
post-install:
25
pre-configure:
25
	@${LN} -s libbrotlicommon.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libbrotlicommon.so.0
26
	(cd ${WRKSRC} && ./bootstrap)
26
	@${LN} -s libbrotlidec.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libbrotlidec.so.0
27
	@${LN} -s libbrotlienc.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libbrotlienc.so.0
28
27
29
.include <bsd.port.mk>
28
.include <bsd.port.mk>
(-)archivers/brotli/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
TIMESTAMP = 1498054439
1
TIMESTAMP = 1511961437
2
SHA256 (google-brotli-v0.6.0_GH0.tar.gz) = 69cdbdf5709051dd086a2f020f5abf9e32519eafe0ad6be820c667c3a9c9ee0f
2
SHA256 (google-brotli-v1.0.2_GH0.tar.gz) = c2cf2a16646b44771a4109bb21218c8e2d952babb827796eb8a800c1f94b7422
3
SIZE (google-brotli-v0.6.0_GH0.tar.gz) = 19838761
3
SIZE (google-brotli-v1.0.2_GH0.tar.gz) = 23736359
(-)archivers/brotli/files/patch-freebsd-upstream (+121 lines)
Line 0 Link Here
1
From 1ca15159d6a7d4b202de17a94abf52c6c1d5988a Mon Sep 17 00:00:00 2001
2
From: Bernard Spil <Sp1l@users.noreply.github.com>
3
Date: Wed, 29 Nov 2017 22:38:16 +0100
4
Subject: [PATCH 1/4] Fix missing symbols errors in libbrotlienc and dec (#623)
5
6
When using autotools to build the binary and libraries, the resulting libraries don't link `brotlicommon` or `m`.
7
This was detected when building cURL 7.57.0 which has now has brotli support. During configure it was failing
8
```
9
checking run-time libs availability... failed
10
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
11
```
12
inspection of config.log showed missing symbols from libbrotlicommon as the cause.
13
14
This patch results in the encryption and decryption libs to be properly linked against libbrotlicommon and libm.
15
See also https://bugs.freebsd.org/223966
16
---
17
 Makefile.am | 2 ++
18
 1 file changed, 2 insertions(+)
19
20
diff --git a/Makefile.am b/Makefile.am
21
index c4ced6da..ace7a850 100644
22
--- Makefile.am.orig
23
+++ Makefile.am
24
@@ -23,8 +23,10 @@ libbrotlicommon_la_SOURCES = $(BROTLI_COMMON_C) $(BROTLI_COMMON_H)
25
 libbrotlicommon_la_LDFLAGS = $(AM_LDFLAGS) $(LIBBROTLI_VERSION_INFO) $(LDFLAGS)
26
 libbrotlidec_la_SOURCES = $(BROTLI_DEC_C) $(BROTLI_DEC_H)
27
 libbrotlidec_la_LDFLAGS = $(AM_LDFLAGS) $(LIBBROTLI_VERSION_INFO) $(LDFLAGS)
28
+libbrotlidec_la_LIBADD = libbrotlicommon.la -lm
29
 libbrotlienc_la_SOURCES = $(BROTLI_ENC_C) $(BROTLI_ENC_H)
30
 libbrotlienc_la_LDFLAGS = $(AM_LDFLAGS) $(LIBBROTLI_VERSION_INFO) $(LDFLAGS)
31
+libbrotlienc_la_LIBADD = libbrotlicommon.la -lm
32
 
33
 pkgconfigdir = $(libdir)/pkgconfig
34
 pkgconfig_DATA = \
35
36
From c8c8389ed3101279b79d93210b33f63dca8af74c Mon Sep 17 00:00:00 2001
37
From: Eugene Kliuchnikov <eustas@google.com>
38
Date: Thu, 30 Nov 2017 11:02:54 +0100
39
Subject: [PATCH 2/4] Do not rely on bash arithmetic in `bootstrap` (#625)
40
41
---
42
 bootstrap | 21 +++++++++++++--------
43
 1 file changed, 13 insertions(+), 8 deletions(-)
44
45
diff --git a/bootstrap b/bootstrap
46
index 2f43f50e..7c7020d3 100755
47
--- bootstrap.orig
48
+++ bootstrap
49
@@ -1,19 +1,24 @@
50
 # !/bin/sh -e
51
 
52
+REQUIRED='is required, but not installed.'
53
+bc -v >/dev/null 2>&1 || { echo >&2 "'bc' $REQUIRED"; exit 1; }
54
+sed --version >/dev/null 2>&1 || { echo >&2 "'sed' $REQUIRED"; exit 1; }
55
+autoreconf --version >/dev/null 2>&1 || { echo >&2 "'autoconf' $REQUIRED"; exit 1; }
56
+
57
 mkdir m4 2>/dev/null
58
 
59
 BROTLI_ABI_HEX=`sed -n 's/#define BROTLI_ABI_VERSION 0x//p' c/common/version.h`
60
-BROTLI_ABI_INT=`echo $((16#$BROTLI_ABI_HEX))`
61
-BROTLI_ABI_CURRENT=$(($BROTLI_ABI_INT >> 24))
62
-BROTLI_ABI_REVISION=$((($BROTLI_ABI_INT >> 12) & 4095))
63
-BROTLI_ABI_AGE=$(($BROTLI_ABI_INT & 4095))
64
+BROTLI_ABI_INT=`echo "ibase=16;$BROTLI_ABI_HEX" | bc`
65
+BROTLI_ABI_CURRENT=`expr $BROTLI_ABI_INT / 16777216`
66
+BROTLI_ABI_REVISION=`expr $BROTLI_ABI_INT / 4096 % 4096`
67
+BROTLI_ABI_AGE=`expr $BROTLI_ABI_INT % 4096`
68
 BROTLI_ABI_INFO="$BROTLI_ABI_CURRENT:$BROTLI_ABI_REVISION:$BROTLI_ABI_AGE"
69
 
70
 BROTLI_VERSION_HEX=`sed -n 's/#define BROTLI_VERSION 0x//p' c/common/version.h`
71
-BROTLI_VERSION_INT=`echo $((16#$BROTLI_VERSION_HEX))`
72
-BROTLI_VERSION_MAJOR=$(($BROTLI_VERSION_INT >> 24))
73
-BROTLI_VERSION_MINOR=$((($BROTLI_VERSION_INT >> 12) & 4095))
74
-BROTLI_VERSION_PATCH=$(($BROTLI_VERSION_INT & 4095))
75
+BROTLI_VERSION_INT=`echo "ibase=16;$BROTLI_VERSION_HEX" | bc`
76
+BROTLI_VERSION_MAJOR=`expr $BROTLI_VERSION_INT / 16777216`
77
+BROTLI_VERSION_MINOR=`expr $BROTLI_VERSION_INT / 4096 % 4096`
78
+BROTLI_VERSION_PATCH=`expr $BROTLI_VERSION_INT % 4096`
79
 BROTLI_VERSION="$BROTLI_VERSION_MAJOR.$BROTLI_VERSION_MINOR.$BROTLI_VERSION_PATCH"
80
 
81
 sed -r "s/[0-9]+:[0-9]+:[0-9]+/$BROTLI_ABI_INFO/" Makefile.am -i
82
83
From 62194f204d90a5a95310a6949f00a0c6c5ca07bd Mon Sep 17 00:00:00 2001
84
From: Bernard Spil <Sp1l@users.noreply.github.com>
85
Date: Mon, 4 Dec 2017 15:17:49 +0100
86
Subject: [PATCH 4/4] Work around Linuxisms (#627)
87
88
Missed this in my previous tests. Sorry for that.
89
90
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.
91
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.
92
93
(thank you for picking up the nginx module too!)
94
---
95
 bootstrap | 6 ++++--
96
 1 file changed, 4 insertions(+), 2 deletions(-)
97
98
diff --git a/bootstrap b/bootstrap
99
index 7c7020d3..dbaea15d 100755
100
--- bootstrap.orig
101
+++ bootstrap
102
@@ -2,7 +2,9 @@
103
 
104
 REQUIRED='is required, but not installed.'
105
 bc -v >/dev/null 2>&1 || { echo >&2 "'bc' $REQUIRED"; exit 1; }
106
+if [ `uname -s` != "FreeBSD" ]; then
107
 sed --version >/dev/null 2>&1 || { echo >&2 "'sed' $REQUIRED"; exit 1; }
108
+fi
109
 autoreconf --version >/dev/null 2>&1 || { echo >&2 "'autoconf' $REQUIRED"; exit 1; }
110
 
111
 mkdir m4 2>/dev/null
112
@@ -21,7 +23,7 @@ BROTLI_VERSION_MINOR=`expr $BROTLI_VERSION_INT / 4096 % 4096`
113
 BROTLI_VERSION_PATCH=`expr $BROTLI_VERSION_INT % 4096`
114
 BROTLI_VERSION="$BROTLI_VERSION_MAJOR.$BROTLI_VERSION_MINOR.$BROTLI_VERSION_PATCH"
115
 
116
-sed -r "s/[0-9]+:[0-9]+:[0-9]+/$BROTLI_ABI_INFO/" Makefile.am -i
117
-sed -r "s/\[[0-9]+\.[0-9]+\.[0-9]+\]/[$BROTLI_VERSION]/" configure.ac -i
118
+sed -i.bak -r "s/[0-9]+:[0-9]+:[0-9]+/$BROTLI_ABI_INFO/" Makefile.am
119
+sed -i.bak -r "s/\[[0-9]+\.[0-9]+\.[0-9]+\]/[$BROTLI_VERSION]/" configure.ac
120
 
121
 autoreconf --install --force --symlink || exit $
(-)archivers/brotli/pkg-plist (-7 / +11 lines)
Lines 1-17 Link Here
1
bin/bro
1
bin/brotli
2
include/brotli/decode.h
2
include/brotli/decode.h
3
include/brotli/encode.h
3
include/brotli/encode.h
4
include/brotli/port.h
4
include/brotli/port.h
5
include/brotli/types.h
5
include/brotli/types.h
6
lib/libbrotlicommon.a
6
lib/libbrotlicommon.so
7
lib/libbrotlicommon.so
7
lib/libbrotlicommon.so.0
8
lib/libbrotlicommon.so.1
8
lib/libbrotlicommon.so.0.6.0
9
lib/libbrotlicommon.so.%%SHLIBVER%%
10
lib/libbrotlidec.a
9
lib/libbrotlidec.so
11
lib/libbrotlidec.so
10
lib/libbrotlidec.so.0
12
lib/libbrotlidec.so.1
11
lib/libbrotlidec.so.0.6.0
13
lib/libbrotlidec.so.%%SHLIBVER%%
14
lib/libbrotlienc.a
12
lib/libbrotlienc.so
15
lib/libbrotlienc.so
13
lib/libbrotlienc.so.0
16
lib/libbrotlienc.so.1
14
lib/libbrotlienc.so.0.6.0
17
lib/libbrotlienc.so.%%SHLIBVER%%
15
libdata/pkgconfig/libbrotlicommon.pc
18
libdata/pkgconfig/libbrotlicommon.pc
16
libdata/pkgconfig/libbrotlidec.pc
19
libdata/pkgconfig/libbrotlidec.pc
17
libdata/pkgconfig/libbrotlienc.pc
20
libdata/pkgconfig/libbrotlienc.pc
21
%%PORTDOCS%%%%PORTDOCS%%%%DOCSDIR%%/README

Return to bug 223966