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: Sun, 01 Jan 2023 14:22:45
Message-Id: 1672582522.98b9ed365c913684b31f7b44235a184d9988969e.ceamac@gentoo
1 commit: 98b9ed365c913684b31f7b44235a184d9988969e
2 Author: Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jan 1 14:15:22 2023 +0000
4 Commit: Viorel Munteanu <ceamac <AT> gentoo <DOT> org>
5 CommitDate: Sun Jan 1 14:15:22 2023 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98b9ed36
7
8 media-libs/netpbm: add 11.1.0
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.0.ebuild | 262 +++++++++++++++++++++++++++++++++
14 2 files changed, 263 insertions(+)
15
16 diff --git a/media-libs/netpbm/Manifest b/media-libs/netpbm/Manifest
17 index 792112e84ed7..a582310f412b 100644
18 --- a/media-libs/netpbm/Manifest
19 +++ b/media-libs/netpbm/Manifest
20 @@ -1,3 +1,4 @@
21 DIST netpbm-10.86.35.tar.xz 3699944 BLAKE2B 754b695ab25ba2c3ff0cdc8d3810a3df7af9a30476dfd6afa70591df0931334806ad41da41797e3f6121b77b7e3fb77a3c01ebc533812e9a8cb3ccb3eb6c19ea SHA512 a4a0107f04ccdef066d340f97a7d3487a2b349dd5994b294fd815813bb04db10063ba933442ef77e27a96fb3b31a5769f3a19532a651b802f14667dbf43c06f5
22 DIST netpbm-10.86.36.tar.xz 3700660 BLAKE2B c5f0acd0147f2ad66f69ae2ade56fcbb5286faddc7f8f3387e2269fd20ea2586a29d7e7dc96bd715fe12896eef47803b826031087e6be8166183ba7cf82aebf4 SHA512 b05df76760629881047c44799a905a491fb4c139a9af909d77cc4238fc82dfac37ba174df4f81cb1177716ad38a37b26eadcc3889d2c2057ff9d850697fad3c6
23 DIST netpbm-11.0.3.tar.xz 3769236 BLAKE2B 0352e58f75e8f4e914e719b3bb41fbad96d47ef9a95dfa8859d03e62a84853dfae5e7472f2c002a92cd2b60841f6b420140b437709585578167b43b626f3d9dd SHA512 770d4068846c1140f4030512330c8a12ac44177b72205994946310eecebdaa586fefd72a07384796d18b3317905eda0e4833e96bfaa6f8db59a4dad40a7f4670
24 +DIST netpbm-11.1.0.tar.xz 3771676 BLAKE2B 0f377dc36b03b99a174c2d5a09d62aea8a813f9eb501a59630c4f083247cc3c82e3fee88085ec686f4d787d67104b834a511b4ef1f7d75eda7b10fed3281d9e5 SHA512 77528e2508d7a2d348de339d57b677fd1a061bb2902273d536ea09c34033af03a75bb723bcc7e87551406f47f115085a60691b3fda4ae672372b8473528370de
25
26 diff --git a/media-libs/netpbm/netpbm-11.1.0.ebuild b/media-libs/netpbm/netpbm-11.1.0.ebuild
27 new file mode 100644
28 index 000000000000..7d44b7a5bd79
29 --- /dev/null
30 +++ b/media-libs/netpbm/netpbm-11.1.0.ebuild
31 @@ -0,0 +1,262 @@
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 +
81 +DEPEND="
82 + ${RDEPEND}
83 + x11-base/xorg-proto
84 +"
85 +
86 +BDEPEND="
87 + app-arch/xz-utils
88 + sys-devel/flex
89 + virtual/pkgconfig
90 +"
91 +
92 +PATCHES=(
93 + "${FILESDIR}"/netpbm-10.86.21-build.patch
94 + "${FILESDIR}"/netpbm-11.0.0-misc-deps.patch
95 +)
96 +
97 +netpbm_libtype() {
98 + case ${CHOST} in
99 + *-darwin*) echo dylib;;
100 + *) echo unixshared;;
101 + esac
102 +}
103 +
104 +netpbm_libsuffix() {
105 + local suffix=$(get_libname)
106 + echo ${suffix//\.}
107 +}
108 +
109 +netpbm_ldshlib() {
110 + case ${CHOST} in
111 + *-darwin*) echo '$(LDFLAGS) -dynamiclib -install_name $(SONAME)';;
112 + *) echo '$(LDFLAGS) -shared -Wl,-soname,$(SONAME)';;
113 + esac
114 +}
115 +
116 +netpbm_config_lib() {
117 + usex ${1} -l${2:-$1} NONE
118 +}
119 +
120 +# for bug #828127
121 +netpbm_cflags_for_build() {
122 + if is-flagq -fPIC; then
123 + echo -fPIC
124 + fi
125 +}
126 +
127 +src_prepare() {
128 + default
129 +
130 + # make sure we use system libs
131 + sed -i '/SUPPORT_SUBDIRS/s:urt::' GNUmakefile || die
132 + rm -r urt converter/other/jbig/libjbig converter/other/jpeg2000/libjasper || die
133 +
134 + # fix typo in a test
135 + sed -i \
136 + -e 's:^o#! /bin/sh:#! /bin/sh:' \
137 + test/stdin-ppm3.test || die
138 +
139 + # take care of the importinc stuff ourselves by only doing it once
140 + # at the top level and having all subdirs use that one set #149843
141 + sed -i \
142 + -e '/^importinc:/s|^|importinc:\nmanual_|' \
143 + -e '/-Iimportinc/s|-Iimp|-I"$(BUILDDIR)"/imp|g'\
144 + common.mk || die
145 + sed -i \
146 + -e '/%.c/s: importinc$::' \
147 + common.mk lib/Makefile lib/util/Makefile || die
148 + sed -i \
149 + -e 's:pkg-config:$(PKG_CONFIG):' \
150 + GNUmakefile converter/other/Makefile other/pamx/Makefile || die
151 +
152 + # The postscript knob is currently bound up with a fork test.
153 + if ! use postscript ; then
154 + sed -i \
155 + -e 's:$(DONT_HAVE_PROCESS_MGMT):Y:' \
156 + converter/other/Makefile generator/Makefile || die
157 + sed -i -r \
158 + -e 's:(pbmtextps|pnmtops|pstopnm).*::' \
159 + test/all-in-place.{ok,test} || die
160 + sed -i \
161 + -e 's:lps-roundtrip.*::' \
162 + -e 's:pbmtextps-dump.*::' \
163 + -e 's:pbmtextps.*::' \
164 + test/Test-Order || die
165 + sed -i \
166 + -e '/^$/d' \
167 + test/all-in-place.ok || die
168 + sed -i \
169 + '2iexit 80' \
170 + test/ps-{alt-,flate-,}roundtrip.test || die
171 + fi
172 +
173 + # the new postscript test needs +x
174 + chmod +x test/lps-roundtrip.test || die
175 +
176 + # Do not test png if not built
177 + if ! use png ; then
178 + sed -i -E \
179 + -e 's:(pamtopng|pngtopam|pnmtopng).*::' \
180 + test/all-in-place.{ok,test} || die
181 + sed -i \
182 + -e '/^$/d' \
183 + test/all-in-place.ok || die
184 +
185 + sed -i -E \
186 + -e 's:(pamrgbatopng|pngtopnm).*::' \
187 + test/legacy-names.{ok,test} || die
188 + sed -i \
189 + -e '/^$/d' \
190 + test/legacy-names.ok || die
191 + sed -i \
192 + -e 's:png-roundtrip.*::' \
193 + -e 's:winicon-roundtrip.*::' \
194 + test/Test-Order || die
195 + fi
196 +
197 + # this test requires LC_ALL=en_US.iso88591, not available on musl
198 + if use elibc_musl; then
199 + sed -i \
200 + -e 's:pbmtext-iso88591.*::' \
201 + test/Test-Order || die
202 + fi
203 +}
204 +
205 +src_configure() {
206 + cat config.mk.in - >> config.mk <<-EOF || die "writing config.mk failed"
207 + # Misc stuff
208 + BUILD_FIASCO = N
209 + SYMLINK = ln -sf
210 +
211 + # These vars let src_test work by default
212 + PKGDIR_DEFAULT = ${T}/netpbm
213 + RESULTDIR_DEFAULT = ${T}/netpbm-test
214 +
215 + # Toolchain options
216 + CC = $(tc-getCC) -Wall
217 + LD = \$(CC)
218 + CC_FOR_BUILD = $(tc-getBUILD_CC)
219 + LD_FOR_BUILD = \$(CC_FOR_BUILD)
220 + AR = $(tc-getAR)
221 + RANLIB = $(tc-getRANLIB)
222 + PKG_CONFIG = $(tc-getPKG_CONFIG)
223 +
224 + STRIPFLAG =
225 + CFLAGS_SHLIB = -fPIC
226 + CFLAGS_FOR_BUILD += $(netpbm_cflags_for_build)
227 +
228 + LDRELOC = \$(LD) -r
229 + LDSHLIB = $(netpbm_ldshlib)
230 + LINKER_CAN_DO_EXPLICIT_LIBRARY = N # we can, but dont want to
231 + LINKERISCOMPILER = Y
232 + NETPBMLIBSUFFIX = $(netpbm_libsuffix)
233 + NETPBMLIBTYPE = $(netpbm_libtype)
234 + STATICLIB_TOO = $(usex static-libs Y N)
235 +
236 + # The var is called SSE, but the code is actually SSE2.
237 + WANT_SSE = $(usex cpu_flags_x86_sse2 Y N)
238 +
239 + # Gentoo build options
240 + TIFFLIB = $(netpbm_config_lib tiff)
241 + # Let tiff worry about its own dependencies #395753
242 + TIFFLIB_NEEDS_JPEG = N
243 + TIFFLIB_NEEDS_Z = N
244 + JPEGLIB = $(netpbm_config_lib jpeg)
245 + PNGLIB = $(netpbm_config_lib png)
246 + ZLIB = $($(tc-getPKG_CONFIG) --libs zlib)
247 + LINUXSVGALIB = $(netpbm_config_lib svga vga)
248 + XML2_LIBS = $(netpbm_config_lib xml xml2)
249 + JBIGLIB = $(netpbm_config_lib jbig)
250 + JBIGHDR_DIR =
251 + JASPERLIB = NONE
252 + JASPERHDR_DIR =
253 + URTLIB = $(netpbm_config_lib rle)
254 + URTHDR_DIR =
255 + X11LIB = $(netpbm_config_lib X X11)
256 + X11HDR_DIR =
257 + EOF
258 +}
259 +
260 +src_compile() {
261 + emake -j1 pm_config.h version.h manual_importinc #149843
262 + emake
263 +}
264 +
265 +src_test() {
266 + # The code wants to install everything first and then test the result.
267 + emake install.{bin,lib,data}
268 + emake check
269 +}
270 +
271 +src_install() {
272 + # Subdir make targets like to use `mkdir` all over the place
273 + # without any actual dependencies, thus the -j1.
274 + emake -j1 package pkgdir="${ED}"/usr
275 +
276 + if [[ $(get_libdir) != "lib" ]] ; then
277 + mv "${ED}"/usr/lib "${ED}"/usr/$(get_libdir) || die
278 + fi
279 +
280 + # Remove cruft that we don't need, and move around stuff we want
281 + rm "${ED}"/usr/{README,VERSION,{pkgconfig,config}_template,pkginfo} || die
282 +
283 + dodir /usr/share
284 + mv "${ED}"/usr/misc "${ED}"/usr/share/netpbm || die
285 +
286 + doman userguide/*.[0-9]
287 + dodoc README
288 +
289 + cd doc || die
290 + dodoc HISTORY Netpbm.programming USERDOC
291 + docinto html
292 + dodoc -r ../userguide/*.html
293 +}