Gentoo Archives: gentoo-commits

From: Fabian Groffen <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/proj/prefix:master commit in: app-arch/bzip2/, app-arch/bzip2/files/
Date: Wed, 15 Nov 2017 15:51:43
Message-Id: 1510759901.ab12f95ca1503bbcf12964e3d4d5673993f422a1.grobian@gentoo
1 commit: ab12f95ca1503bbcf12964e3d4d5673993f422a1
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Wed Nov 15 15:31:41 2017 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Wed Nov 15 15:31:41 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=ab12f95c
7
8 app-arch/bzip2: sync for CVE, bug #637572
9
10 Bug: https://bugs.gentoo.org/637572
11 Package-Manager: Portage-2.3.13-prefix, Repoman-2.3.4
12
13 app-arch/bzip2/bzip2-1.0.6-r1.ebuild | 113 -------------------
14 app-arch/bzip2/bzip2-1.0.6-r3.ebuild | 121 ---------------------
15 ...bzip2-1.0.6-r7.ebuild => bzip2-1.0.6-r8.ebuild} | 65 +++++------
16 .../bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch | 18 +++
17 4 files changed, 43 insertions(+), 274 deletions(-)
18
19 diff --git a/app-arch/bzip2/bzip2-1.0.6-r1.ebuild b/app-arch/bzip2/bzip2-1.0.6-r1.ebuild
20 deleted file mode 100644
21 index a88f13ce09..0000000000
22 --- a/app-arch/bzip2/bzip2-1.0.6-r1.ebuild
23 +++ /dev/null
24 @@ -1,113 +0,0 @@
25 -# Copyright 1999-2017 Gentoo Foundation
26 -# Distributed under the terms of the GNU General Public License v2
27 -# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/bzip2-1.0.6-r1.ebuild,v 1.1 2010/09/23 09:19:49 vapier Exp $
28 -
29 -inherit eutils multilib toolchain-funcs flag-o-matic prefix
30 -
31 -DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
32 -HOMEPAGE="http://www.bzip.org/"
33 -SRC_URI="http://www.bzip.org/${PV}/${P}.tar.gz"
34 -
35 -LICENSE="BZIP2"
36 -SLOT="0"
37 -KEYWORDS="~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
38 -IUSE="static"
39 -
40 -src_unpack() {
41 - unpack ${A}
42 - cd "${S}"
43 - epatch "${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
44 - epatch "${FILESDIR}"/${PN}-1.0.6-saneso.patch
45 - epatch "${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
46 - epatch "${FILESDIR}"/${PN}-1.0.2-progress.patch
47 - epatch "${FILESDIR}"/${PN}-1.0.3-no-test.patch
48 - epatch "${FILESDIR}"/${PN}-1.0.4-POSIX-shell.patch #193365
49 - epatch "${FILESDIR}"/${PN}-1.0.5-checkenv.patch # for AIX, Darwin?
50 - epatch "${FILESDIR}"/${PN}-1.0.4-prefix.patch
51 - eprefixify bz{diff,grep,more}
52 - # this a makefile for Darwin, which already "includes" saneso
53 - cp "${FILESDIR}"/${P}-Makefile-libbz2_dylib Makefile-libbz2_dylib || die
54 -
55 - # - Use right man path
56 - # - Generate symlinks instead of hardlinks
57 - # - pass custom variables to control libdir
58 - sed -i \
59 - -e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' \
60 - -e 's:ln -s -f $(PREFIX)/bin/:ln -s :' \
61 - -e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
62 - Makefile || die
63 -
64 - if [[ ${CHOST} == *-hpux* ]] ; then
65 - sed -i -e 's,-soname,+h,' Makefile-libbz2_so || die "cannot replace -soname with +h"
66 - if [[ ${CHOST} == hppa*-hpux* && ${CHOST} != hppa64*-hpux* ]] ; then
67 - sed -i -e '/^SOEXT/s,so,sl,' Makefile-libbz2_so || die "cannot replace so with sl"
68 - sed -i -e '/^SONAME/s,=,=${EPREFIX}/lib/,' Makefile-libbz2_so || die "cannt set soname"
69 - fi
70 - elif [[ ${CHOST} == *-interix* ]] ; then
71 - sed -i -e 's,-soname,-h,' Makefile-libbz2_so || die "cannot replace -soname with -h"
72 - sed -i -e 's,-fpic,,' -e 's,-fPIC,,' Makefile-libbz2_so || die "cannot replace pic options"
73 - fi
74 -}
75 -
76 -bemake() {
77 - emake \
78 - CC="$(tc-getCC)" \
79 - AR="$(tc-getAR)" \
80 - RANLIB="$(tc-getRANLIB)" \
81 - "$@" || die
82 -}
83 -src_compile() {
84 - local checkopts=
85 - case "${CHOST}" in
86 - *-darwin*)
87 - bemake PREFIX="${EPREFIX}"/usr -f Makefile-libbz2_dylib || die
88 - ;;
89 - *-mint*)
90 - # do nothing, no shared libraries
91 - :
92 - ;;
93 - *)
94 - bemake -f Makefile-libbz2_so all || die
95 - ;;
96 - esac
97 - use static && append-flags -static
98 - bemake all || die
99 -}
100 -
101 -src_install() {
102 - make PREFIX="${D}${EPREFIX}"/usr LIBDIR="$(get_libdir)" install || die
103 - dodoc README* CHANGES bzip2.txt manual.*
104 -
105 - if [[ $(get_libname) != ".irrelevant" ]] ; then
106 -
107 - # Install the shared lib manually. We install:
108 - # .x.x.x - standard shared lib behavior
109 - # .x.x - SONAME some distros use #338321
110 - # .x - SONAME Gentoo uses
111 - dolib.so libbz2$(get_libname ${PV}) || die
112 - local s
113 - for v in libbz2$(get_libname) libbz2$(get_libname ${PV%%.*}) libbz2$(get_libname ${PV%.*}) ; do
114 - dosym libbz2$(get_libname ${PV}) /usr/$(get_libdir)/${v} || die
115 - done
116 - gen_usr_ldscript -a bz2
117 -
118 - if ! use static ; then
119 - newbin bzip2-shared bzip2 || die
120 - fi
121 -
122 - fi
123 -
124 - # move "important" bzip2 binaries to /bin and use the shared libbz2.so
125 - dodir /bin
126 - mv "${ED}"/usr/bin/b{zip2,zcat,unzip2} "${ED}"/bin/ || die
127 - dosym bzip2 /bin/bzcat || die
128 - dosym bzip2 /bin/bunzip2 || die
129 -
130 - if [[ ${CHOST} == *-winnt* ]]; then
131 - dolib.so libbz2$(get_libname ${PV}).dll || die "dolib shared"
132 -
133 - # on windows, we want to continue using bzip2 from interix.
134 - # building bzip2 on windows gives the libraries only!
135 - rm -rf "${ED}"/bin "${ED}"/usr/bin
136 - fi
137 -}
138
139 diff --git a/app-arch/bzip2/bzip2-1.0.6-r3.ebuild b/app-arch/bzip2/bzip2-1.0.6-r3.ebuild
140 deleted file mode 100644
141 index a4a4c6147d..0000000000
142 --- a/app-arch/bzip2/bzip2-1.0.6-r3.ebuild
143 +++ /dev/null
144 @@ -1,121 +0,0 @@
145 -# Copyright 1999-2017 Gentoo Foundation
146 -# Distributed under the terms of the GNU General Public License v2
147 -# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/bzip2-1.0.6-r3.ebuild,v 1.12 2014/01/18 01:43:22 vapier Exp $
148 -
149 -# XXX: atm, libbz2.a is always PIC :(, so it is always built quickly
150 -# (since we're building shared libs) ...
151 -
152 -EAPI="2"
153 -
154 -inherit eutils multilib toolchain-funcs flag-o-matic prefix
155 -
156 -DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
157 -HOMEPAGE="http://www.bzip.org/"
158 -SRC_URI="http://www.bzip.org/${PV}/${P}.tar.gz"
159 -
160 -LICENSE="BZIP2"
161 -SLOT="0"
162 -KEYWORDS="~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
163 -IUSE="static static-libs"
164 -
165 -src_prepare() {
166 - epatch "${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
167 - epatch "${FILESDIR}"/${PN}-1.0.6-saneso.patch
168 - epatch "${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
169 - epatch "${FILESDIR}"/${PN}-1.0.6-progress.patch
170 - epatch "${FILESDIR}"/${PN}-1.0.3-no-test.patch
171 - epatch "${FILESDIR}"/${PN}-1.0.4-POSIX-shell.patch #193365
172 - epatch "${FILESDIR}"/${PN}-1.0.6-mingw.patch #393573
173 -
174 - epatch "${FILESDIR}"/${PN}-1.0.5-checkenv.patch # for AIX, Darwin?
175 - epatch "${FILESDIR}"/${PN}-1.0.4-prefix.patch
176 - eprefixify bz{diff,grep,more}
177 - # this a makefile for Darwin, which already "includes" saneso
178 - cp "${FILESDIR}"/${P}-Makefile-libbz2_dylib Makefile-libbz2_dylib || die
179 -
180 - # - Use right man path
181 - # - Generate symlinks instead of hardlinks
182 - # - pass custom variables to control libdir
183 - sed -i \
184 - -e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' \
185 - -e 's:ln -s -f $(PREFIX)/bin/:ln -s :' \
186 - -e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
187 - Makefile || die
188 -
189 - if [[ ${CHOST} == *-hpux* ]] ; then
190 - sed -i -e 's,-soname,+h,' Makefile-libbz2_so || die "cannot replace -soname with +h"
191 - if [[ ${CHOST} == hppa*-hpux* && ${CHOST} != hppa64*-hpux* ]] ; then
192 - sed -i -e '/^SOEXT/s,so,sl,' Makefile-libbz2_so || die "cannot replace so with sl"
193 - sed -i -e '/^SONAME/s,=,=${EPREFIX}/lib/,' Makefile-libbz2_so || die "cannt set soname"
194 - fi
195 - elif [[ ${CHOST} == *-interix* ]] ; then
196 - sed -i -e 's,-soname,-h,' Makefile-libbz2_so || die "cannot replace -soname with -h"
197 - sed -i -e 's,-fpic,,' -e 's,-fPIC,,' Makefile-libbz2_so || die "cannot replace pic options"
198 - fi
199 -}
200 -
201 -bemake() {
202 - emake \
203 - CC="$(tc-getCC)" \
204 - AR="$(tc-getAR)" \
205 - RANLIB="$(tc-getRANLIB)" \
206 - "$@" || die
207 -}
208 -src_compile() {
209 - local checkopts=
210 - case "${CHOST}" in
211 - *-darwin*)
212 - bemake PREFIX="${EPREFIX}"/usr -f Makefile-libbz2_dylib || die
213 - ;;
214 - *-mint*)
215 - # do nothing, no shared libraries
216 - :
217 - ;;
218 - *)
219 - bemake -f Makefile-libbz2_so all || die
220 - ;;
221 - esac
222 - use static && append-flags -static
223 - bemake all || die
224 -}
225 -
226 -src_install() {
227 - make PREFIX="${D}${EPREFIX}"/usr LIBDIR="$(get_libdir)" install || die
228 - dodoc README* CHANGES bzip2.txt manual.*
229 -
230 - if [[ $(get_libname) != ".irrelevant" ]] ; then
231 -
232 - if ! use static ; then
233 - newbin bzip2-shared bzip2 || die
234 - fi
235 - if ! use static-libs ; then
236 - rm -f "${ED}"/usr/lib*/libbz2.a || die
237 - fi
238 -
239 - # move "important" bzip2 binaries to /bin and use the shared libbz2.so
240 - dodir /bin
241 - mv "${ED}"/usr/bin/b{zip2,zcat,unzip2} "${ED}"/bin/ || die
242 - dosym bzip2 /bin/bzcat || die
243 - dosym bzip2 /bin/bunzip2 || die
244 -
245 - # Install the shared lib manually. We install:
246 - # .x.x.x - standard shared lib behavior
247 - # .x.x - SONAME some distros use #338321
248 - # .x - SONAME Gentoo uses
249 - dolib.so libbz2$(get_libname ${PV}) || die
250 - local s
251 - for v in libbz2$(get_libname) libbz2$(get_libname ${PV%%.*}) libbz2$(get_libname ${PV%.*}) ; do
252 - dosym libbz2$(get_libname ${PV}) /usr/$(get_libdir)/${v} || die
253 - done
254 - gen_usr_ldscript -a bz2
255 -
256 - fi
257 -
258 - if [[ ${CHOST} == *-winnt* ]]; then
259 - dolib.so libbz2$(get_libname ${PV}).dll || die "dolib shared"
260 -
261 - # on windows, we want to continue using bzip2 from interix.
262 - # building bzip2 on windows gives the libraries only!
263 - rm -rf "${ED}"/bin "${ED}"/usr/bin
264 - fi
265 -}
266
267 diff --git a/app-arch/bzip2/bzip2-1.0.6-r7.ebuild b/app-arch/bzip2/bzip2-1.0.6-r8.ebuild
268 similarity index 72%
269 rename from app-arch/bzip2/bzip2-1.0.6-r7.ebuild
270 rename to app-arch/bzip2/bzip2-1.0.6-r8.ebuild
271 index fa785fc384..eeb7f85da2 100644
272 --- a/app-arch/bzip2/bzip2-1.0.6-r7.ebuild
273 +++ b/app-arch/bzip2/bzip2-1.0.6-r8.ebuild
274 @@ -1,11 +1,10 @@
275 # Copyright 1999-2017 Gentoo Foundation
276 # Distributed under the terms of the GNU General Public License v2
277 -# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/bzip2-1.0.6-r7.ebuild,v 1.2 2014/04/28 17:18:31 mgorny Exp $
278
279 # XXX: atm, libbz2.a is always PIC :(, so it is always built quickly
280 # (since we're building shared libs) ...
281
282 -EAPI=4
283 +EAPI=5
284
285 inherit eutils toolchain-funcs multilib multilib-minimal prefix
286
287 @@ -14,30 +13,27 @@ HOMEPAGE="http://www.bzip.org/"
288 SRC_URI="http://www.bzip.org/${PV}/${P}.tar.gz"
289
290 LICENSE="BZIP2"
291 -SLOT="0"
292 +SLOT="0/1" # subslot = SONAME
293 KEYWORDS="~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
294 IUSE="static static-libs"
295
296 -RDEPEND="abi_x86_32? (
297 - !<=app-emulation/emul-linux-x86-baselibs-20130224
298 - !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
299 - )"
300 +PATCHES=(
301 + "${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
302 + "${FILESDIR}"/${PN}-1.0.6-saneso.patch
303 + "${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
304 + "${FILESDIR}"/${PN}-1.0.6-progress.patch
305 + "${FILESDIR}"/${PN}-1.0.3-no-test.patch
306 + "${FILESDIR}"/${PN}-1.0.4-POSIX-shell.patch #193365
307 + "${FILESDIR}"/${PN}-1.0.6-mingw.patch #393573
308 + "${FILESDIR}"/${PN}-1.0.6-out-of-tree-build.patch
309 + "${FILESDIR}"/${PN}-1.0.6-CVE-2016-3189.patch #620466
310 +
311 + "${FILESDIR}"/${PN}-1.0.6-r7-checkenv.patch # for AIX, Darwin?
312 + "${FILESDIR}"/${PN}-1.0.6-prefix.patch
313 +)
314
315 src_prepare() {
316 - epatch "${FILESDIR}"/${PN}-1.0.4-makefile-CFLAGS.patch
317 - epatch "${FILESDIR}"/${PN}-1.0.6-saneso.patch
318 - epatch "${FILESDIR}"/${PN}-1.0.4-man-links.patch #172986
319 - epatch "${FILESDIR}"/${PN}-1.0.6-progress.patch
320 - epatch "${FILESDIR}"/${PN}-1.0.3-no-test.patch
321 - epatch "${FILESDIR}"/${PN}-1.0.4-POSIX-shell.patch #193365
322 - epatch "${FILESDIR}"/${PN}-1.0.6-mingw.patch #393573
323 - epatch "${FILESDIR}"/${PN}-1.0.6-out-of-tree-build.patch
324 -
325 - epatch "${FILESDIR}"/${PN}-1.0.6-r7-checkenv.patch # for AIX, Darwin?
326 - epatch "${FILESDIR}"/${PN}-1.0.4-prefix.patch
327 - eprefixify bz{diff,grep,more}
328 - # this a makefile for Darwin, which already "includes" saneso
329 - cp "${FILESDIR}"/${P}-Makefile-libbz2_dylib Makefile-libbz2_dylib || die
330 + epatch "${PATCHES[@]}"
331
332 # - Use right man path
333 # - Generate symlinks instead of hardlinks
334 @@ -48,6 +44,10 @@ src_prepare() {
335 -e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
336 Makefile || die
337
338 + eprefixify bz{diff,grep,more}
339 + # this a makefile for Darwin, which already "includes" saneso
340 + cp "${FILESDIR}"/${P}-Makefile-libbz2_dylib Makefile-libbz2_dylib || die
341 +
342 if [[ ${CHOST} == *-hpux* ]] ; then
343 sed -i -e 's,-soname,+h,' Makefile-libbz2_so || die "cannot replace -soname with +h"
344 if [[ ${CHOST} == hppa*-hpux* && ${CHOST} != hppa64*-hpux* ]] ; then
345 @@ -73,24 +73,9 @@ bemake() {
346 }
347
348 multilib_src_compile() {
349 - local checkopts=
350 - case "${CHOST}" in
351 - *-darwin*)
352 - bemake PREFIX="${EPREFIX}"/usr -f "${S}"/Makefile-libbz2_dylib all
353 - # FWIW, #504648 like for .so below
354 - ln -sf libbz2.${PV}.dylib libbz2.dylib
355 - ;;
356 - *-mint*)
357 - # do nothing, no shared libraries
358 - :
359 - ;;
360 - *)
361 - bemake -f "${S}"/Makefile-libbz2_so all
362 - # Make sure we link against the shared lib #504648
363 - [[ $(get_libname) != $(get_libname ${PV}) ]] &&
364 - ln -sf libbz2$(get_libname ${PV}) libbz2$(get_libname)
365 - ;;
366 - esac
367 + bemake -f "${S}"/Makefile-libbz2_so all
368 + # Make sure we link against the shared lib #504648
369 + ln -sf libbz2.so.${PV} libbz2.so
370 bemake -f "${S}"/Makefile all LDFLAGS="${LDFLAGS} $(usex static -static '')"
371 }
372
373 @@ -111,7 +96,7 @@ multilib_src_install() {
374 dosym libbz2$(get_libname ${PV}) /usr/$(get_libdir)/${v}
375 done
376
377 - fi
378 + fi # tc-is-static-only
379
380 use static-libs && dolib.a libbz2.a
381
382
383 diff --git a/app-arch/bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch b/app-arch/bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch
384 new file mode 100644
385 index 0000000000..1d0c3a6dd3
386 --- /dev/null
387 +++ b/app-arch/bzip2/files/bzip2-1.0.6-CVE-2016-3189.patch
388 @@ -0,0 +1,18 @@
389 +Upstream-Status: Backport
390 +https://bugzilla.suse.com/attachment.cgi?id=681334
391 +
392 +CVE: CVE-2016-3189
393 +Signed-off-by: Armin Kuster <akuster@××××××.com>
394 +
395 +Index: bzip2-1.0.6/bzip2recover.c
396 +===================================================================
397 +--- bzip2-1.0.6.orig/bzip2recover.c
398 ++++ bzip2-1.0.6/bzip2recover.c
399 +@@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv )
400 + bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 );
401 + bsPutUInt32 ( bsWr, blockCRC );
402 + bsClose ( bsWr );
403 ++ outFile = NULL;
404 + }
405 + if (wrBlock >= rbCtr) break;
406 + wrBlock++;