blob: deb443f1532ce7b240407271fa96037d58e45e14 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
# Maintainer (arch): Caleb Maclennan <caleb@alerque.com>
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
# 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.86.41
pkgrel=1
pkgrel+=.parabola1
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=(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
reproducible-man-gzip.patch)
sha256sums=('045f7796224a801512efb5e7d6150a321674cbfb566128b21abf8d4ba65b4513'
'74bcf840ee643c6917330c382484010cb99c004a3fcf05391bebcac63815acb3'
'SKIP'
'7348274b72b8285add042d0f45d124c9833206ee3440bd1846cfc792b9b4d5e5'
'698645215d46bcee515d75847fc550ce99c5fcb6fae63dacdba1d773f327c80e'
'5ee27b4187577cbb9e85f6b36c5e5a421e03927f9195f888be7be2b647a5ac9d'
'b0be94fbfbf247552c5cc3f1cdd93e2d549f59c3d218350ccc1bea44e9bebc9b')
validpgpkeys=('5357F3B111688D88C1D88119FCF2CB179205AC90')
# 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
# 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 '/pnmtopnm/d' netpbm.c
# Remove references about non-free licensed parts
echo "applying nonfree-licenses-docs.patch"
patch -p0 < ../nonfree-licenses-docs.patch
unset remove_program
}
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
# arch patching ##
cd $pkgname-$pkgver
patch -p1 < ../netpbm-CAN-2005-2471.patch
patch -p1 < ../netpbm-security-code.patch
patch -p1 < ../netpbm-security-scripts.patch
patch -p1 < ../reproducible-man-gzip.patch
cp config.mk.in config.mk
[ "${CARCH}" = 'x86_64' ] && echo 'CFLAGS_SHLIB = -fPIC' >> config.mk
[ "${CARCH}" = 'armv7h' ] && echo 'CFLAGS_SHLIB = -fPIC' >> config.mk
echo "NETPBM_DOCURL = file://${srcdir}/doc" >> config.mk
echo 'TIFFLIB = libtiff.so' >> config.mk
echo 'JPEGLIB = libjpeg.so' >> config.mk
echo 'PNGLIB = libpng.so' >> config.mk
echo 'ZLIB = libz.so' >> config.mk
echo 'JBIGLIB = /usr/lib/libjbig.a' >> config.mk
sed -i 's|misc|share/netpbm|' common.mk
sed -e 's|/sharedlink|/lib|' -e 's|/staticlink|/lib|' -i lib/Makefile
sed -i 's|install.manwebmain install.manweb install.man|install.man|' GNUmakefile
}
build() {
cd $pkgname-$pkgver
make
# Generating useful man pages with html doc
# 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
# 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
}
|