-
Notifications
You must be signed in to change notification settings - Fork 2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Viorel Munteanu <ceamac.paragon@gmail.com>
- Loading branch information
Showing
2 changed files
with
230 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
DIST netpbm-10.86.33.tar.xz 3696704 BLAKE2B 57657d69e235ee9babefce6e44e7ac35ac9b67c38797cee140488afe268687e4030158280c1064f8111891b9114106420314cdbce1b8be8d7dd45204a07aa5b0 SHA512 b0a555276e26d171705e93bdc26d33869fa611e01728d935edd0a7b96815db4f9ff264d7d6cecccc751b0bbfd639b14316f1ab576b1182b755e0f1832d8f43ca | ||
DIST netpbm-10.86.34.tar.xz 3698852 BLAKE2B 7ea0e93450fb0bdf50b1b498468dd32350f20c8e993cda3e0ffa942dcdeab775a532a4771b10c55c862340964a4520f51ea4916c20051d5140dbb0a9ce373860 SHA512 bbb4dc685a44c0d7733808edd938b1205891ae5cf312218ef717bf63053513058251a659e3cf9acc762b0aeec8da3fc8e8a05e1442591c87f5a1dce7f63ee870 | ||
DIST netpbm-10.86.35.tar.xz 3699944 BLAKE2B 754b695ab25ba2c3ff0cdc8d3810a3df7af9a30476dfd6afa70591df0931334806ad41da41797e3f6121b77b7e3fb77a3c01ebc533812e9a8cb3ccb3eb6c19ea SHA512 a4a0107f04ccdef066d340f97a7d3487a2b349dd5994b294fd815813bb04db10063ba933442ef77e27a96fb3b31a5769f3a19532a651b802f14667dbf43c06f5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,229 @@ | ||
# Copyright 1999-2022 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=8 | ||
|
||
inherit flag-o-matic multilib toolchain-funcs | ||
|
||
DESCRIPTION="A set of utilities for converting to/from the netpbm (and related) formats" | ||
HOMEPAGE="https://netpbm.sourceforge.net/" | ||
SRC_URI="https://github.com/ceamac/netpbm-make-dist/releases/download/v${PV}/${P}.tar.xz" | ||
|
||
LICENSE="GPL-2" | ||
SLOT="0/stable" | ||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" | ||
IUSE="jbig jpeg png postscript rle cpu_flags_x86_sse2 static-libs svga tiff X xml" | ||
|
||
BDEPEND=" | ||
app-arch/xz-utils | ||
sys-devel/flex | ||
virtual/pkgconfig | ||
" | ||
# app-text/ghostscript-gpl is really needed for postscript | ||
# some utilities execute /usr/bin/gs | ||
RDEPEND="jbig? ( media-libs/jbigkit:= ) | ||
jpeg? ( media-libs/libjpeg-turbo:=[static-libs?] ) | ||
png? ( | ||
>=media-libs/libpng-1.4:0= | ||
sys-libs/zlib | ||
) | ||
postscript? ( | ||
app-text/ghostscript-gpl | ||
sys-libs/zlib | ||
) | ||
rle? ( media-libs/urt:= ) | ||
svga? ( media-libs/svgalib ) | ||
tiff? ( >=media-libs/tiff-3.5.5:0 ) | ||
xml? ( dev-libs/libxml2 ) | ||
X? ( x11-libs/libX11 )" | ||
DEPEND="${RDEPEND}" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/netpbm-10.86.21-build.patch | ||
"${FILESDIR}"/netpbm-10.86.21-test.patch #450530 | ||
"${FILESDIR}"/netpbm-10.86.21-misc-deps.patch | ||
"${FILESDIR}"/netpbm-10.86.22-fix-ps-test.patch #670362 | ||
) | ||
|
||
netpbm_libtype() { | ||
case ${CHOST} in | ||
*-darwin*) echo dylib;; | ||
*) echo unixshared;; | ||
esac | ||
} | ||
|
||
netpbm_libsuffix() { | ||
local suffix=$(get_libname) | ||
echo ${suffix//\.} | ||
} | ||
|
||
netpbm_ldshlib() { | ||
case ${CHOST} in | ||
*-darwin*) echo '$(LDFLAGS) -dynamiclib -install_name $(SONAME)';; | ||
*) echo '$(LDFLAGS) -shared -Wl,-soname,$(SONAME)';; | ||
esac | ||
} | ||
netpbm_config() { | ||
if use ${1} ; then | ||
[[ ${2} != "!" ]] && echo -l${2:-$1} | ||
else | ||
echo NONE | ||
fi | ||
} | ||
|
||
# for bug #828127 | ||
netpbm_cflags_for_build() { | ||
if is-flagq -fPIC; then | ||
echo -fPIC | ||
fi | ||
} | ||
|
||
src_prepare() { | ||
default | ||
|
||
# make sure we use system libs | ||
sed -i '/SUPPORT_SUBDIRS/s:urt::' GNUmakefile || die | ||
rm -r urt converter/other/jbig/libjbig converter/other/jpeg2000/libjasper || die | ||
|
||
# take care of the importinc stuff ourselves by only doing it once | ||
# at the top level and having all subdirs use that one set #149843 | ||
sed -i \ | ||
-e '/^importinc:/s|^|importinc:\nmanual_|' \ | ||
-e '/-Iimportinc/s|-Iimp|-I"$(BUILDDIR)"/imp|g'\ | ||
common.mk || die | ||
sed -i \ | ||
-e '/%.c/s: importinc$::' \ | ||
common.mk lib/Makefile lib/util/Makefile || die | ||
sed -i \ | ||
-e 's:pkg-config:$(PKG_CONFIG):' \ | ||
GNUmakefile converter/other/Makefile other/pamx/Makefile || die | ||
|
||
# The postscript knob is currently bound up with a fork test. | ||
if ! use postscript ; then | ||
sed -i \ | ||
-e 's:$(DONT_HAVE_PROCESS_MGMT):Y:' \ | ||
converter/other/Makefile generator/Makefile || die | ||
sed -i -r \ | ||
-e 's:(pbmtextps|pnmtops|pstopnm).*::' \ | ||
test/all-in-place.{ok,test} || die | ||
sed -i -e 's:lps-roundtrip.*::' test/Test-Order || die | ||
sed -i -e '/^$/d' test/all-in-place.ok || die | ||
sed -i '2iexit 80' test/ps-{alt-,flate-,}roundtrip.test || die | ||
fi | ||
|
||
# the new postscript test needs +x | ||
chmod +x test/lps-roundtrip.test | ||
|
||
# Do not test png if not built | ||
if ! use png ; then | ||
sed -i -r \ | ||
-e 's:(pamtopng|pngtopam|pnmtopng).*::' \ | ||
test/all-in-place.{ok,test} || die | ||
sed -i -e '/^$/d' test/all-in-place.ok || die | ||
|
||
sed -i -r \ | ||
-e 's:(pamrgbatopng|pngtopnm).*::' \ | ||
test/legacy-names.{ok,test} || die | ||
sed -i -e '/^$/d' test/legacy-names.ok || die | ||
sed -i -e 's:png-roundtrip.*::' test/Test-Order || die | ||
fi | ||
|
||
# this test requires LC_ALL=en_US.iso88591, not available on musl | ||
if use elibc_musl; then | ||
sed -i -e 's:pbmtext-iso88591.*::' test/Test-Order || die | ||
fi | ||
} | ||
|
||
src_configure() { | ||
# cannot chain the die with the heredoc | ||
# repoman tries to parse the heredoc and fails | ||
cat config.mk.in - >> config.mk <<-EOF | ||
# Misc crap | ||
BUILD_FIASCO = N | ||
SYMLINK = ln -sf | ||
# These vars let src_test work by default | ||
PKGDIR_DEFAULT = ${T}/netpbm | ||
RESULTDIR_DEFAULT = ${T}/netpbm-test | ||
# Toolchain options | ||
CC = $(tc-getCC) -Wall | ||
LD = \$(CC) | ||
CC_FOR_BUILD = $(tc-getBUILD_CC) | ||
LD_FOR_BUILD = \$(CC_FOR_BUILD) | ||
AR = $(tc-getAR) | ||
RANLIB = $(tc-getRANLIB) | ||
PKG_CONFIG = $(tc-getPKG_CONFIG) | ||
STRIPFLAG = | ||
CFLAGS_SHLIB = -fPIC | ||
CFLAGS_FOR_BUILD += $(netpbm_cflags_for_build) | ||
LDRELOC = \$(LD) -r | ||
LDSHLIB = $(netpbm_ldshlib) | ||
LINKER_CAN_DO_EXPLICIT_LIBRARY = N # we can, but dont want to | ||
LINKERISCOMPILER = Y | ||
NETPBMLIBSUFFIX = $(netpbm_libsuffix) | ||
NETPBMLIBTYPE = $(netpbm_libtype) | ||
STATICLIB_TOO = $(usex static-libs Y N) | ||
# The var is called SSE, but the code is actually SSE2. | ||
WANT_SSE = $(usex cpu_flags_x86_sse2 Y N) | ||
# Gentoo build options | ||
TIFFLIB = $(netpbm_config tiff) | ||
# Let tiff worry about its own dependencies #395753 | ||
TIFFLIB_NEEDS_JPEG = N | ||
TIFFLIB_NEEDS_Z = N | ||
JPEGLIB = $(netpbm_config jpeg) | ||
PNGLIB = $(netpbm_config png) | ||
ZLIB = $($(tc-getPKG_CONFIG) --libs zlib) | ||
LINUXSVGALIB = $(netpbm_config svga vga) | ||
XML2_LIBS = $(netpbm_config xml xml2) | ||
JBIGLIB = $(netpbm_config jbig) | ||
JBIGHDR_DIR = | ||
JASPERLIB = NONE | ||
JASPERHDR_DIR = | ||
URTLIB = $(netpbm_config rle) | ||
URTHDR_DIR = | ||
X11LIB = $(netpbm_config X X11) | ||
X11HDR_DIR = | ||
EOF | ||
[[ $? -eq 0 ]] || die "writing config.mk failed" | ||
} | ||
|
||
src_compile() { | ||
emake -j1 pm_config.h version.h manual_importinc #149843 | ||
emake | ||
} | ||
|
||
src_test() { | ||
# The code wants to install everything first and then test the result. | ||
emake install.{bin,lib,data} | ||
emake check | ||
} | ||
|
||
src_install() { | ||
# Subdir make targets like to use `mkdir` all over the place | ||
# without any actual dependencies, thus the -j1. | ||
emake -j1 package pkgdir="${ED}"/usr | ||
|
||
if [[ $(get_libdir) != "lib" ]] ; then | ||
mv "${ED}"/usr/lib "${ED}"/usr/$(get_libdir) || die | ||
fi | ||
|
||
# Remove cruft that we don't need, and move around stuff we want | ||
rm "${ED}"/usr/{README,VERSION,{pkgconfig,config}_template,pkginfo} || die | ||
|
||
dodir /usr/share | ||
mv "${ED}"/usr/misc "${ED}"/usr/share/netpbm || die | ||
|
||
doman userguide/*.[0-9] | ||
dodoc README | ||
|
||
cd doc || die | ||
dodoc HISTORY Netpbm.programming USERDOC | ||
docinto html | ||
dodoc -r *.html | ||
dodoc -r ../userguide/*.html | ||
} |