summaryrefslogtreecommitdiff
path: root/libre/netpbm/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'libre/netpbm/PKGBUILD')
-rw-r--r--libre/netpbm/PKGBUILD214
1 files changed, 126 insertions, 88 deletions
diff --git a/libre/netpbm/PKGBUILD b/libre/netpbm/PKGBUILD
index d79440322..deb443f15 100644
--- a/libre/netpbm/PKGBUILD
+++ b/libre/netpbm/PKGBUILD
@@ -1,109 +1,146 @@
+# Maintainer (arch): Caleb Maclennan <caleb@alerque.com>
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
-# Contributor (Hyperbola): André Silva <emulatorman@hyperbola.info>
+# Contributor: André Silva <emulatorman@hyperbola.info>
+# Contributor: bill-auger <bill-auger@programmer.net>
+
+
+# parabola changes and rationale:
+# - Added armv7h and i686 support
+# - Removed non-free parts
+
pkgname=netpbm
-pkgver=10.73.31
+pkgver=10.86.41
pkgrel=1
pkgrel+=.parabola1
-pkgdesc="A toolkit for manipulation of graphic images"
-pkgdesc+=", without nonfree parts and patent issues"
-arch=('x86_64')
-arch+=('i686' 'armv7h')
-license=('custom' 'BSD' 'GPL' 'LGPL')
+pkgdesc='A toolkit for manipulation of graphic images'
+arch=(x86_64)
+arch+=(armv7h i686)
+#license=(Artistic-1.0 GPL-2.0-only LGPL-2.0.only MIT) # TODO: SPDX
+license=('custom' 'custom:BSD3' 'GPL' 'LGPL')
url="http://netpbm.sourceforge.net/"
-depends=('perl' 'libpng' 'libtiff' 'libxml2')
-makedepends=('python2' 'jbigkit' 'subversion')
-options=('!makeflags')
+depends=(bash
+ gcc-libs
+ glibc
+ jbigkit
+ libjpeg-turbo
+ libpng
+ libtiff
+ libxml2
+ perl
+ zlib)
+options=(!makeflags)
# Get docs with: wget --recursive --relative -nH http://netpbm.sourceforge.net/doc/
source=(https://downloads.sourceforge.net/project/netpbm/super_stable/$pkgver/netpbm-$pkgver.tgz
https://sources.archlinux.org/other/packages/netpbm/netpbm-doc-31Jan2014.tar.xz{,.sig}
- netpbm-CAN-2005-2471.patch netpbm-security-code.patch netpbm-security-scripts.patch)
-sha256sums=('584c95f1ccdcd66d5ca68d7d5501728ae1184cba324d713f6b2a3ca86424243b'
+ netpbm-CAN-2005-2471.patch
+ netpbm-security-code.patch
+ netpbm-security-scripts.patch
+ reproducible-man-gzip.patch)
+sha256sums=('045f7796224a801512efb5e7d6150a321674cbfb566128b21abf8d4ba65b4513'
'74bcf840ee643c6917330c382484010cb99c004a3fcf05391bebcac63815acb3'
'SKIP'
- '991aba7897e0710687369b4e2edfba1397ecd77d62578eac496afbc47b5ca970'
- '2eaa0f842d90bb3dcbc66273d58ec9117b97029da231b141159e580e65b98eb0'
- '2c397588d9cba2c40dee55c07713d5e77e0e04245db939fdc1962d7de4cf4a33')
+ '7348274b72b8285add042d0f45d124c9833206ee3440bd1846cfc792b9b4d5e5'
+ '698645215d46bcee515d75847fc550ce99c5fcb6fae63dacdba1d773f327c80e'
+ '5ee27b4187577cbb9e85f6b36c5e5a421e03927f9195f888be7be2b647a5ac9d'
+ 'b0be94fbfbf247552c5cc3f1cdd93e2d549f59c3d218350ccc1bea44e9bebc9b')
validpgpkeys=('5357F3B111688D88C1D88119FCF2CB179205AC90')
-prepare() {
+
+# parabola mksource over-rides
+_N_MKSOURCES=3 # number of upstream sources to be isolated for mksource
+mksource=( ${source[*]:0:${_N_MKSOURCES}} )
+mksha256sums=( ${sha256sums[*]:0:${_N_MKSOURCES}} )
+mkvalidpgpkeys=( ${validpgpkeys[*]} )
+mksource+=(nonfree-licenses-docs.patch)
+mksha256sums+=(5ee57bba37dca542df9abea1061d8d343a1ba299038f0e01888210acc08d4779)
+source=(https://repo.parabola.nu/other/${pkgname}-libre/${pkgname}-${pkgver}-parabola.tar.gz{,.sig}
+ ${source[*]:${_N_MKSOURCES}})
+sha256sums=(a75a8530140f0d6b59b2902cef23d388192bd278eb391fbc2cee265fef816917
+ SKIP
+ ${sha256sums[*]:${_N_MKSOURCES}})
+validpgpkeys=(3954A7AB837D0EA9CFA9798925DB7D9B5A8D4B40) # bill-auger
+
+
+_UNLICENSED_FILES=( converter/ppm/ppmtogif.c
+ other/pamchannel.c
+ converter/other/pamtopnm.c
+ converter/pbm/pbmto4425.c
+ converter/pbm/pbmtoln03.c
+ converter/pbm/pbmtolps.c
+ converter/pbm/pbmtopk.c
+ converter/pbm/pktopbm.c
+ converter/ppm/ppmtopjxl.c
+ converter/pgm/spottopgm.c)
+
+
+mksource() {
+ remove_program() {
+ file="$1"
+ progname="$(basename ${file} | sed 's/\.c$//')"
+
+ rm -v "${file}"
+ sed -i "s/${progname}//g" "$(dirname ${file})/Makefile"
+ sed -i "s/${progname}\.1//g" buildtools/manpage.mk
+ }
+
+
cd $pkgname-$pkgver
- # Removing hpcdtoppm/pcdindex (non comercial)
- rm -rv converter/ppm/hpcdtoppm
-
- # Removing ppmtogif/giftopnm (patent restriction)
- rm -v converter/other/giftopnm.c converter/ppm/ppmtogif.c
- rm -v test/gif-quant-roundtrip.test test/gif-roundtrip.test test/all-in-place.ok
-
- # Removing programs without license information
- rm -v other/pamchannel.c test/pamchannel.ok
- rm -v converter/other/pamtopnm.c
- rm -v converter/pbm/pbmto4425.c
- rm -v converter/pbm/pbmtoln03.c
- rm -v converter/pbm/pbmtolps.c
- rm -v converter/pbm/pbmtopk.c
- rm -v converter/pbm/pktopbm.c
- rm -v converter/ppm/ppmtopjxl.c
- rm -v converter/pgm/spottopgm.c
-
- rm -v test/avs-roundtrip.test test/facesaver-roundtrip.test test/ilbm-roundtrip.test test/pamchannel.test \
- test/pamditherbw.test test/pamenlarge.test test/pamfile.test test/pfm-roundtrip.test \
- test/pgmtoppm.test test/pict-roundtrip.test test/pnminvert.test test/pnmremap1.test \
- test/pnmremap2.test test/pnmtopnm-plain.test test/pnm-pam-roundtrip.test test/pnm-plain-roundtrip.test \
- test/ps-alt-roundtrip.test test/ps-roundtrip.test test/sbig-roundtrip.test test/st4-roundtrip.test \
- test/targa-roundtrip.test test/utahrle-roundtrip.test test/winicon-roundtrip.test test/xwd-roundtrip.test
-
- # Removing references about hpcdtoppm/pcdindex (non comercial)
- sed -i 's/hpcdtoppm//g' converter/ppm/Makefile
- sed -i 's/hpcdtoppm\.1//g' buildtools/manpage.mk
- sed -i 's/pcdindex\.1//g' buildtools/manpage.mk
-
- # Removing references about ppmtogif/giftopnm (patent restriction)
- sed -i 's/ppmtogif//g' converter/ppm/Makefile test/all-in-place.test
- sed -i 's/ppmtogif\.1//g' buildtools/manpage.mk
- sed -i 's/giftopnm//g' converter/other/Makefile test/all-in-place.test
- sed -i 's/giftopnm\.1//g' buildtools/manpage.mk
- sed -i '/giftopnm/d' converter/other/pnmtopalm/README
-
- # Removing references about programs without license information
- sed -i 's/pamchannel//g' other/Makefile test/all-in-place.test
- sed -i 's/pamchannel\.1//g' buildtools/manpage.mk
- sed -i 's/pamchannel\.test//g' test/Test-Order
-
- sed -i 's/pamtopnm//g' converter/other/Makefile test/all-in-place.test
- sed -i 's/pamtopnm\.1//g' buildtools/manpage.mk
- sed -i '/pnmtopnm/d' netpbm.c
+ # Remove the converter/ppm/hpcdtoppm directory:
+ # - hpcdtoppm: as hpcdtoppm is not even redistributable, this hpcdtoppm only
+ # prints a message to download "the real hpcdtoppm" (non-free)
+ # - pcdovtoppm: no licensing information
+ rm -rfv converter/ppm/hpcdtoppm
+ sed '/\.\/converter\/ppm\/hpcdtoppm\/ \\/d' -i GNUmakefile
+ sed 's/hpcdtoppm//g' -i converter/ppm/Makefile
+
+ # Remove programs without licensing information
+ for f in ${_UNLICENSED_FILES[*]} ; do remove_program $f ; done ;
+
+ # Tests have no license information
+ rm -v -rf test/
+
+ # Remove test from "SUPPORT_SUBDIRS = urt icon buildtools test"
+ awk '{
+ if ($1 != "SUPPORT_SUBDIRS") {
+ print $0
+ } else {
+ for (i=1;i<=NF;i++) {
+ if($i != "test") {
+ printf $i " "
+ }
+ }
+ }
+ }' GNUmakefile > GNUmakefile.1
+ mv -f GNUmakefile.1 GNUmakefile
- sed -i 's/pbmto4425//g' converter/pbm/Makefile test/all-in-place.test
- sed -i 's/pbmto4425\.1//g' buildtools/manpage.mk
+ sed -i '/pnmtopnm/d' netpbm.c
- sed -i 's/pbmtoln03//g' converter/pbm/Makefile test/all-in-place.test
- sed -i 's/pbmtoln03\.1//g' buildtools/manpage.mk
+ # Remove references about non-free licensed parts
+ echo "applying nonfree-licenses-docs.patch"
+ patch -p0 < ../nonfree-licenses-docs.patch
- sed -i 's/pbmtolps//g' converter/pbm/Makefile test/all-in-place.test
- sed -i 's/pbmtolps\.1//g' buildtools/manpage.mk
+ unset remove_program
+}
- sed -i 's/pbmtopk//g' converter/pbm/Makefile test/all-in-place.test
- sed -i 's/pbmtopk\.1//g' buildtools/manpage.mk
- sed -i 's/pktopbm//g' converter/pbm/Makefile test/all-in-place.test
- sed -i 's/pktopbm\.1//g' buildtools/manpage.mk
+prepare() {
+ # delete patches which would apply to deleted files
+ _UNLICENSED_FILES+=(converter/ppm/hpcdtoppm)
+ local files="($(sed 's|/|\\/|g ; s|\.|\\.|g' <<<${_UNLICENSED_FILES[*]} | tr ' ' '|'))"
+ local awk_script="( \$1 !~ /^a\/$files/ ) { print \"diff --git \"\$0 }"
+ awk -i inplace -v INPLACE_SUFFIX=.orig "$awk_script" RS='diff --git ' FS='\n' *.patch
- sed -i 's/ppmtopjxl//g' converter/ppm/Makefile test/all-in-place.test
- sed -i 's/ppmtopjxl\.1//g' buildtools/manpage.mk
- sed -i 's/spottopgm//g' converter/pgm/Makefile test/all-in-place.test
- sed -i 's/spottopgm\.1//g' buildtools/manpage.mk
+ # arch patching ##
- #Removing references about nonfree licenses part
- sed -i '338,383d' doc/copyright_summary
+ cd $pkgname-$pkgver
patch -p1 < ../netpbm-CAN-2005-2471.patch
patch -p1 < ../netpbm-security-code.patch
patch -p1 < ../netpbm-security-scripts.patch
- sed -i 's|#!/usr/bin/python|#!/usr/bin/python2|' buildtools/makeman
- sed -i 's|@python|@python2|' buildtools/manpage.mk
+ patch -p1 < ../reproducible-man-gzip.patch
cp config.mk.in config.mk
[ "${CARCH}" = 'x86_64' ] && echo 'CFLAGS_SHLIB = -fPIC' >> config.mk
@@ -116,7 +153,7 @@ prepare() {
echo 'JBIGLIB = /usr/lib/libjbig.a' >> config.mk
sed -i 's|misc|share/netpbm|' common.mk
- sed -i 's|/link|/lib|' lib/Makefile
+ sed -e 's|/sharedlink|/lib|' -e 's|/staticlink|/lib|' -i lib/Makefile
sed -i 's|install.manwebmain install.manweb install.man|install.man|' GNUmakefile
}
@@ -124,24 +161,25 @@ build() {
cd $pkgname-$pkgver
make
# Generating useful man pages with html doc
- make MAKEMAN="${srcdir}/$pkgname-$pkgver/buildtools/makeman" USERGUIDE=. \
- -C ../doc -f "${srcdir}/$pkgname-$pkgver/buildtools/manpage.mk" manpages
+ # TODO: Enable when we have it updated
+ # make MAKEMAN="${srcdir}/$pkgname-$pkgver/buildtools/makeman" USERGUIDE="-v ." \
+ # -C ../doc -f "${srcdir}/$pkgname-$pkgver/buildtools/manpage.mk" manpages
}
package() {
cd $pkgname-$pkgver
make pkgdir="${pkgdir}/usr" PKGMANDIR=share/man install-run install-dev
-# Removing dummy man pages
- rm "${pkgdir}"/usr/share/man/man{1,3,5}/*
-
- make MAKEMAN="${srcdir}/$pkgname-$pkgver/buildtools/makeman" MANDIR="${pkgdir}/usr/share/man" \
- -C ../doc -f "${srcdir}/$pkgname-$pkgver/buildtools/manpage.mk" installman
-
# Replace obsolete utility
echo -e '#!/bin/sh\npamditherbw $@ | pamtopnm\n' > "${pkgdir}/usr/bin/pgmtopbm"
# Licensing. Note that each program in the package has a separate license.
install -D -m644 "${srcdir}/$pkgname-$pkgver/doc/copyright_summary" \
"${pkgdir}/usr/share/licenses/${pkgname}/copyright_summary.txt"
+
+
+ ## parabola changes ##
+
+ # Remove symlinks to deleted programs
+ rm -v "${pkgdir}"/usr/bin/pnmtopnm
}