Gentoo Archives: gentoo-commits

From: Viorel Munteanu <ceamac@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/netpbm/
Date: Mon, 20 Mar 2023 12:43:52
Message-Id: 1679316219.062f9a41ca44780fc70b3333c281e2a01281a5df.ceamac@gentoo
1 commit: 062f9a41ca44780fc70b3333c281e2a01281a5df
2 Author: Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
3 AuthorDate: Mon Mar 20 12:42:52 2023 +0000
4 Commit: Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
5 CommitDate: Mon Mar 20 12:43:39 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=062f9a41
7
8 media-libs/netpbm: add 11.1.1
9
10 Signed-off-by: Viorel Munteanu <ceamac <AT> gentoo.org>
11
12 media-libs/netpbm/Manifest | 1 +
13 media-libs/netpbm/netpbm-11.1.1.ebuild | 261 +++++++++++++++++++++++++++++++++
14 2 files changed, 262 insertions(+)
15
16 diff --git a/media-libs/netpbm/Manifest b/media-libs/netpbm/Manifest
17 index 78289729e09e..d80e97f84774 100644
18 --- a/media-libs/netpbm/Manifest
19 +++ b/media-libs/netpbm/Manifest
20 @@ -1,3 +1,4 @@
21 DIST netpbm-10.86.36.tar.xz 3700660 BLAKE2B c5f0acd0147f2ad66f69ae2ade56fcbb5286faddc7f8f3387e2269fd20ea2586a29d7e7dc96bd715fe12896eef47803b826031087e6be8166183ba7cf82aebf4 SHA512 b05df76760629881047c44799a905a491fb4c139a9af909d77cc4238fc82dfac37ba174df4f81cb1177716ad38a37b26eadcc3889d2c2057ff9d850697fad3c6
22 DIST netpbm-10.86.37.tar.xz 3701336 BLAKE2B 3215303fc7617b6b783bf053c28a57daf82ffefc30d3cdac77449266495269988bd001d87d1631cb9d1066e06affb6b910cb5e1a95a0472c91821a60829f8c99 SHA512 ef9c6117ac2d4607af1d4136c833d596d1e2f7f40565ba2cc28e197a0bcec759fde47786fb900a68470a3acf71fc353a1ccf2efcb64b4a19720769a5a029b2a2
23 DIST netpbm-11.1.0.tar.xz 3771676 BLAKE2B 0f377dc36b03b99a174c2d5a09d62aea8a813f9eb501a59630c4f083247cc3c82e3fee88085ec686f4d787d67104b834a511b4ef1f7d75eda7b10fed3281d9e5 SHA512 77528e2508d7a2d348de339d57b677fd1a061bb2902273d536ea09c34033af03a75bb723bcc7e87551406f47f115085a60691b3fda4ae672372b8473528370de
24 +DIST netpbm-11.1.1.tar.xz 3772212 BLAKE2B 23066054aa3996c369ae85ebcc0c1ec97a9366283648b6b1c3afd5a0b915bc69a7db292783de4bffc5fb1e6a8223e43d8b9613419cd04edd327ed52905122803 SHA512 6f84fbcde968a95f3809ef4359e1e5e69240528eb9ecd9aeae7086053eb690d7e4c52422aa51090df0794ab555b47f6cf010fd5caa8081901262c4b4926d17a1
25
26 diff --git a/media-libs/netpbm/netpbm-11.1.1.ebuild b/media-libs/netpbm/netpbm-11.1.1.ebuild
27 new file mode 100644
28 index 000000000000..760e8d601915
29 --- /dev/null
30 +++ b/media-libs/netpbm/netpbm-11.1.1.ebuild
31 @@ -0,0 +1,261 @@
32 +# Copyright 1999-2023 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=8
36 +
37 +inherit flag-o-matic multilib toolchain-funcs
38 +
39 +# Upstream has 3 flavors of netpbm: super stable, stable and advanced.
40 +# They only provide a tarball for super stable, but super stable is a bit lagging.
41 +# So we package the stable branch of their svn (currently versions 10.86.xx) on SLOT "0/stable"
42 +# and the advanced branch of their svn (currently versions 11.aa.bb) on SLOT "0/advanced".
43 +# The stable branch is stabilized according to usual Gentoo rules, while the
44 +# advanced branch will not be stabilized.
45 +# A detailed explanation is here https://netpbm.sourceforge.net/release.html
46 +
47 +# libnetpbm.so is not 100% ABI compatible between stable and advanced, so
48 +# packages that depend on it should use "media-libs/netpbm:="
49 +
50 +DESCRIPTION="A set of utilities for converting to/from the netpbm (and related) formats"
51 +HOMEPAGE="https://netpbm.sourceforge.net/"
52 +SRC_URI="https://dev.gentoo.org/~ceamac/${CATEGORY}/${PN}/${P}.tar.xz"
53 +
54 +LICENSE="Artistic BSD GPL-2 IJG LGPL-2.1 MIT public-domain"
55 +SLOT="0/advanced"
56 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
57 +IUSE="jbig jpeg png postscript rle cpu_flags_x86_sse2 static-libs svga tiff X xml"
58 +
59 +# app-text/ghostscript-gpl is really needed for postscript
60 +# some utilities execute /usr/bin/gs
61 +# also some installed programs are perl scripts
62 +RDEPEND="
63 + dev-lang/perl
64 + jbig? ( media-libs/jbigkit:= )
65 + jpeg? ( media-libs/libjpeg-turbo:=[static-libs?] )
66 + png? (
67 + >=media-libs/libpng-1.4:0=
68 + sys-libs/zlib
69 + )
70 + postscript? (
71 + app-text/ghostscript-gpl
72 + sys-libs/zlib
73 + )
74 + rle? ( media-libs/urt:= )
75 + svga? ( media-libs/svgalib )
76 + tiff? ( >=media-libs/tiff-3.5.5:= )
77 + xml? ( dev-libs/libxml2 )
78 + X? ( x11-libs/libX11 )
79 +"
80 +DEPEND="
81 + ${RDEPEND}
82 + x11-base/xorg-proto
83 +"
84 +BDEPEND="
85 + app-arch/xz-utils
86 + sys-devel/flex
87 + virtual/pkgconfig
88 +"
89 +
90 +PATCHES=(
91 + "${FILESDIR}"/netpbm-10.86.21-build.patch
92 + "${FILESDIR}"/netpbm-11.0.0-misc-deps.patch
93 + "${FILESDIR}"/netpbm-11.1.0-fix-clang-O2.patch
94 +)
95 +
96 +netpbm_libtype() {
97 + case ${CHOST} in
98 + *-darwin*) echo dylib;;
99 + *) echo unixshared;;
100 + esac
101 +}
102 +
103 +netpbm_libsuffix() {
104 + local suffix=$(get_libname)
105 + echo ${suffix//\.}
106 +}
107 +
108 +netpbm_ldshlib() {
109 + case ${CHOST} in
110 + *-darwin*) echo '$(LDFLAGS) -dynamiclib -install_name $(SONAME)';;
111 + *) echo '$(LDFLAGS) -shared -Wl,-soname,$(SONAME)';;
112 + esac
113 +}
114 +
115 +netpbm_config_lib() {
116 + usex ${1} -l${2:-$1} NONE
117 +}
118 +
119 +# for bug #828127
120 +netpbm_cflags_for_build() {
121 + if is-flagq -fPIC; then
122 + echo -fPIC
123 + fi
124 +}
125 +
126 +src_prepare() {
127 + default
128 +
129 + # make sure we use system libs
130 + sed -i '/SUPPORT_SUBDIRS/s:urt::' GNUmakefile || die
131 + rm -r urt converter/other/jbig/libjbig converter/other/jpeg2000/libjasper || die
132 +
133 + # fix typo in a test
134 + sed -i \
135 + -e 's:^o#! /bin/sh:#! /bin/sh:' \
136 + test/stdin-ppm3.test || die
137 +
138 + # take care of the importinc stuff ourselves by only doing it once
139 + # at the top level and having all subdirs use that one set #149843
140 + sed -i \
141 + -e '/^importinc:/s|^|importinc:\nmanual_|' \
142 + -e '/-Iimportinc/s|-Iimp|-I"$(BUILDDIR)"/imp|g'\
143 + common.mk || die
144 + sed -i \
145 + -e '/%.c/s: importinc$::' \
146 + common.mk lib/Makefile lib/util/Makefile || die
147 + sed -i \
148 + -e 's:pkg-config:$(PKG_CONFIG):' \
149 + GNUmakefile converter/other/Makefile other/pamx/Makefile || die
150 +
151 + # The postscript knob is currently bound up with a fork test.
152 + if ! use postscript ; then
153 + sed -i \
154 + -e 's:$(DONT_HAVE_PROCESS_MGMT):Y:' \
155 + converter/other/Makefile generator/Makefile || die
156 + sed -i -r \
157 + -e 's:(pbmtextps|pnmtops|pstopnm).*::' \
158 + test/all-in-place.{ok,test} || die
159 + sed -i \
160 + -e 's:lps-roundtrip.*::' \
161 + -e 's:pbmtextps-dump.*::' \
162 + -e 's:pbmtextps.*::' \
163 + test/Test-Order || die
164 + sed -i \
165 + -e '/^$/d' \
166 + test/all-in-place.ok || die
167 + sed -i \
168 + '2iexit 80' \
169 + test/ps-{alt-,flate-,}roundtrip.test || die
170 + fi
171 +
172 + # the new postscript test needs +x
173 + chmod +x test/lps-roundtrip.test || die
174 +
175 + # Do not test png if not built
176 + if ! use png ; then
177 + sed -i -E \
178 + -e 's:(pamtopng|pngtopam|pnmtopng).*::' \
179 + test/all-in-place.{ok,test} || die
180 + sed -i \
181 + -e '/^$/d' \
182 + test/all-in-place.ok || die
183 +
184 + sed -i -E \
185 + -e 's:(pamrgbatopng|pngtopnm).*::' \
186 + test/legacy-names.{ok,test} || die
187 + sed -i \
188 + -e '/^$/d' \
189 + test/legacy-names.ok || die
190 + sed -i \
191 + -e 's:png-roundtrip.*::' \
192 + -e 's:winicon-roundtrip.*::' \
193 + test/Test-Order || die
194 + fi
195 +
196 + # this test requires LC_ALL=en_US.iso88591, not available on musl
197 + if use elibc_musl; then
198 + sed -i \
199 + -e 's:pbmtext-iso88591.*::' \
200 + test/Test-Order || die
201 + fi
202 +}
203 +
204 +src_configure() {
205 + cat config.mk.in - >> config.mk <<-EOF || die "writing config.mk failed"
206 + # Misc stuff
207 + BUILD_FIASCO = N
208 + SYMLINK = ln -sf
209 +
210 + # These vars let src_test work by default
211 + PKGDIR_DEFAULT = ${T}/netpbm
212 + RESULTDIR_DEFAULT = ${T}/netpbm-test
213 +
214 + # Toolchain options
215 + CC = $(tc-getCC) -Wall
216 + LD = \$(CC)
217 + CC_FOR_BUILD = $(tc-getBUILD_CC)
218 + LD_FOR_BUILD = \$(CC_FOR_BUILD)
219 + AR = $(tc-getAR)
220 + RANLIB = $(tc-getRANLIB)
221 + PKG_CONFIG = $(tc-getPKG_CONFIG)
222 +
223 + STRIPFLAG =
224 + CFLAGS_SHLIB = -fPIC
225 + CFLAGS_FOR_BUILD += $(netpbm_cflags_for_build)
226 +
227 + LDRELOC = \$(LD) -r
228 + LDSHLIB = $(netpbm_ldshlib)
229 + LINKER_CAN_DO_EXPLICIT_LIBRARY = N # we can, but dont want to
230 + LINKERISCOMPILER = Y
231 + NETPBMLIBSUFFIX = $(netpbm_libsuffix)
232 + NETPBMLIBTYPE = $(netpbm_libtype)
233 + STATICLIB_TOO = $(usex static-libs Y N)
234 +
235 + # The var is called SSE, but the code is actually SSE2.
236 + WANT_SSE = $(usex cpu_flags_x86_sse2 Y N)
237 +
238 + # Gentoo build options
239 + TIFFLIB = $(netpbm_config_lib tiff)
240 + # Let tiff worry about its own dependencies #395753
241 + TIFFLIB_NEEDS_JPEG = N
242 + TIFFLIB_NEEDS_Z = N
243 + JPEGLIB = $(netpbm_config_lib jpeg)
244 + PNGLIB = $(netpbm_config_lib png)
245 + ZLIB = $($(tc-getPKG_CONFIG) --libs zlib)
246 + LINUXSVGALIB = $(netpbm_config_lib svga vga)
247 + XML2_LIBS = $(netpbm_config_lib xml xml2)
248 + JBIGLIB = $(netpbm_config_lib jbig)
249 + JBIGHDR_DIR =
250 + JASPERLIB = NONE
251 + JASPERHDR_DIR =
252 + URTLIB = $(netpbm_config_lib rle)
253 + URTHDR_DIR =
254 + X11LIB = $(netpbm_config_lib X X11)
255 + X11HDR_DIR =
256 + EOF
257 +}
258 +
259 +src_compile() {
260 + emake -j1 pm_config.h version.h manual_importinc #149843
261 + emake
262 +}
263 +
264 +src_test() {
265 + # The code wants to install everything first and then test the result.
266 + emake install.{bin,lib,data}
267 + emake check
268 +}
269 +
270 +src_install() {
271 + # Subdir make targets like to use `mkdir` all over the place
272 + # without any actual dependencies, thus the -j1.
273 + emake -j1 package pkgdir="${ED}"/usr
274 +
275 + if [[ $(get_libdir) != "lib" ]] ; then
276 + mv "${ED}"/usr/lib "${ED}"/usr/$(get_libdir) || die
277 + fi
278 +
279 + # Remove cruft that we don't need, and move around stuff we want
280 + rm "${ED}"/usr/{README,VERSION,{pkgconfig,config}_template,pkginfo} || die
281 +
282 + dodir /usr/share
283 + mv "${ED}"/usr/misc "${ED}"/usr/share/netpbm || die
284 +
285 + doman userguide/*.[0-9]
286 + dodoc README
287 +
288 + cd doc || die
289 + dodoc HISTORY Netpbm.programming USERDOC
290 + docinto html
291 + dodoc -r ../userguide/*.html
292 +}