# $Id: PKGBUILD 264943 2016-04-14 11:29:39Z arojas $
# Maintainer: Omar Vega Ramos <ovruni@gnu.org.pe>
# Contributor: André Silva <emulatorman@parabola.nu>

_pkgname=netpbm-libre
pkgname=netpbm
pkgver=10.73
_rev=r2692
pkgrel=1.parabola1
pkgdesc="A toolkit for manipulation of graphic images, without nonfree parts and patent issues"
arch=('i686' 'x86_64' 'armv7h')
license=('custom' 'BSD' 'GPL' 'LGPL')
url="http://netpbm.sourceforge.net/"
depends=('perl' 'libpng' 'libtiff' 'libxml2')
makedepends=('python2' 'jbigkit' 'subversion')
options=('!makeflags')
# Get docs with: wget --recursive --relative -nH http://netpbm.sourceforge.net/doc/
mksource=(svn://svn.code.sf.net/p/netpbm/code/stable#revision=$_rev)
source=(https://repo.parabola.nu/other/${_pkgname}/${_pkgname}-${pkgver}.tar.gz
        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)
mksha1sums=('SKIP')
sha1sums=('757825cb27458a73026a2956bdd91745c918917f'
          '25a58975bd8cd383238b4ae31f4405c60914faac'
          'SKIP'
          'b79cf9d42488fea065ba16262ed97694c47af08d'
          'af0b348b0d5f863fcf742167bd7f08d5a3a8140b'
          'ca61aabdeb24a6421781ca975719ce7314be2bb9')
validpgpkeys=('5357F3B111688D88C1D88119FCF2CB179205AC90')

mksource() {
  cd stable

  # 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
}

prepare() {
  cd stable

  # 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

  sed -i 's/pbmto4425//g' converter/pbm/Makefile test/all-in-place.test
  sed -i 's/pbmto4425\.1//g' buildtools/manpage.mk

  sed -i 's/pbmtoln03//g' converter/pbm/Makefile test/all-in-place.test
  sed -i 's/pbmtoln03\.1//g' buildtools/manpage.mk

  sed -i 's/pbmtolps//g' converter/pbm/Makefile test/all-in-place.test
  sed -i 's/pbmtolps\.1//g' buildtools/manpage.mk

  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

  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

  #Removing references about nonfree licenses part
  sed -i '338,383d' doc/copyright_summary

  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

  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 -i 's|/link|/lib|' lib/Makefile
  sed -i 's|install.manwebmain install.manweb install.man|install.man|' GNUmakefile
}

build() {
  cd stable
  make
  # Generating useful man pages with html doc
  make MAKEMAN="${srcdir}/stable/buildtools/makeman" USERGUIDE=. \
    -C ../doc -f "${srcdir}/stable/buildtools/manpage.mk" manpages
}

package() {
  cd stable
  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}/stable/buildtools/makeman" MANDIR="${pkgdir}/usr/share/man" \
    -C ../doc -f "${srcdir}/stable/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}/stable/doc/copyright_summary" \
    "${pkgdir}/usr/share/licenses/${pkgname}/copyright_summary.txt"
}