summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 38a362ad1986640dc7ca06bdcccc14fefd4e9891 (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
# Maintainer:  Vitalii Kuzhdin <vitaliikuzhdin@gmail.com>
# Contributor: AndyRTR <andyrtr@archlinux.org>

_name="ghostscript"
pkgbase="lib32-${_name}"
pkgname=('lib32-ghost'{'script','xps','pcl'})
pkgver=10.04.0
pkgrel=2
pkgdesc="An interpreter for the PostScript language (32-bit)"
arch=('x86_64')
url="https://www.ghostscript.com"
license=('AGPL-3.0-or-later')
depends=("${_name}" 'lib32-fontconfig' 'lib32-gcc-libs' 'lib32-glibc'
         'lib32-ijs' 'lib32-jbig2dec' 'lib32-lcms2' 'lib32-leptonica'
         'lib32-libcups' 'lib32-libjpeg-turbo' 'lib32-libpaper' 'lib32-libpng'
         'lib32-libtiff' 'lib32-libx11' 'lib32-libxt' 'lib32-openjpeg2'
         'lib32-tesseract>=4.1' 'lib32-zlib')
makedepends=('lib32-expat' 'lib32-libidn' 'lib32-gtk3')
options=('!lto')
_pkgsrc="ghostpdl-${pkgver}"
source=("${_pkgsrc}.tar.xz::https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver//./}/${_pkgsrc}.tar.xz"
        '2010_add_build_timestamp_setting.patch')
sha512sums=('bf54939006e7c0c981cde8434a3c443f37cd31dea3c54ad72c127a00dfc6148a07555caefab6076bea68e17c3f42427a80c47aed09911b1ab4c9cae00e333cde'
            'cd7794ee4f28b11177021b950196385200b610127ed6cb94a45e3202b690b721a0dfcc0276ff39448d4dab64c1b31a76e6c323696a8315aad9edc22077f18a3d')

prepare() {
  cd "${srcdir}/${_pkgsrc}"

  # *** remove after final decision ***
  # new in 9.54.0: 
  # https://www.ghostscript.com/doc/9.54.0/News.htm

  # 1) inclusion of the tesseract/leptonica sources for OCR capabilities
  # at the moment we do not support linking with tesseract/leptonica shared libraries. 
  # As is normal with such included libraries, deleting those directories and (re)running
  # configure (on Unix like systems) will automatically build without the OCR functionality.
  # increases package size ghostpcl 2.7->4.9MB | ghostscript 18->23MB | ghostxps 2,7->4.9MB
  # https://www.ghostscript.com/doc/9.54.0/VectorDevices.htm#UseOCR - 
  # this doesn't seem to be worth to keep enabled until linking with shared libs is supported
  rm -rf tesseract leptonica

  # 2) new directory addition in the source tree: "extract/". 
  # It contains the implementation for the writing of docx format files used by the
  # new "docxwrite" device. This is *not* a "thirdparty library". 
  # For distribution package maintainers, if you want your packaged Ghostscript to include
  # the "docxwrite" device, do not delete this directory.
  # ^ this one doesn't affect package size - so let's keep it

  # force it to use system-libs
  rm -rf cups/libs expat ijs jbig2dec jpeg lcms2mt libpng openjpeg tiff zlib
  # using tree freetype because of https://bugs.archlinux.org/task/56849
  # lcms2mt is the new lcms2 fork aimed to replace lcms2 in a thread safe way
  
  # http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=40dc5b409c6262b18b4bf5386b5482ead4c511e3
  # libs link unwanted to libgpdl that isn't installed
  rm -rf gpdl
  
  # Remove internal CMaps (CMaps from poppler-data are used instead)
  rm -rf Resource/CMap

  # Debian: # allow the build timestamp to be externally set
  patch -Np1 -i "${srcdir}/2010_add_build_timestamp_setting.patch"
}

build() {
  export CFLAGS+=" -m32 -Wno-incompatible-pointer-types -Wno-int-conversion"
  export CXXFLAGS+=" -m32"
  export LDFLAGS+=" -m32 -Wl,--no-warn-search-mismatch"
  export PKG_CONFIG_PATH='/usr/lib32/pkgconfig'

  cd "${srcdir}/${_pkgsrc}"
  ./autogen.sh \
    --prefix=/usr \
    --program-suffix="-32" \
    --lib{exec,}dir='/usr/lib32' \
    --build=i686-pc-linux-gnu \
    --with-ijs \
    --with-jbig2dec \
    --with-x \
    --with-drivers=ALL \
    --with-fontpath=/usr/share/fonts/gsfonts \
    --without-versioned-path \
    --enable-fontconfig \
    --enable-freetype \
    --enable-openjpeg \
    --with-system-libtiff \
    --with-libpaper \
    --disable-compile-inits #--help # needed for linking with system-zlib
  make so
}

package_lib32-ghostscript() {
  depends+=('lib32-libidn')

  cd "${srcdir}/${_pkgsrc}"
  make -j1 DESTDIR="${pkgdir}" soinstall

  cd "${pkgdir}/usr"
  rm -rf "bin" "include" "share"
  
  cd "lib32"
  rm -f libgpcl6.so* libgxps.so*
}

package_lib32-ghostxps() {
  pkgdesc="${pkgdesc/PostScript/XPS document}"
  depends+=('lib32-expat')

  cd "${srcdir}/${_pkgsrc}"
  make DESTDIR="${pkgdir}" install-so-gxps

  cd "${pkgdir}/usr"
  rm -rf "bin" "include" "share"

  # fix file conflict - FS#70238
  cd "lib32"
  rm -f "libgxps.so"
}

package_lib32-ghostpcl() {
  pkgdesc="${pkgdesc/PostScript/PCL 6}"

  cd "${srcdir}/${_pkgsrc}"
  make DESTDIR="${pkgdir}" install-so-gpcl6

  cd "${pkgdir}/usr"
  rm -rf "bin" "include" "share"
}