summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: cbbfde4d1029daed71dcc927e20c624f4af84740 (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
# Maintainer:  Chris Severance aur.severach aATt spamgourmet dott com
# Maintainer:  Lone_Wolf <lonewolf@xs4all.nl>
# Contributor: Steven She <mintcoffee@gmail.com>
# Contributor: vbPadre <vbPadre@gmail.com>

# TODO: cndrvcups-common-lb and cndrvcups-lb should be a single split package

set -u
pkgbase='cndrvcups-lb'
pkgname="${pkgbase}"
#_pkgver='3.40'; _commonver='3.80'; _dl='8/0100002708/17'
_pkgver='3.50'; _commonver='3.90'; _dl='8/0100007658/05'
pkgver="${_pkgver}"
pkgrel='1'
pkgdesc='Canon UFR II /LIPSLX printer driver build from source for LBP iR MF ImageCLASS ImageRUNNER Laser Shot i-SENSYS ImagePRESS ADVANCE printers and copiers'
arch=('i686' 'x86_64')
# Direct links to the download reference go bad on the next version. We want something that will persist for a while.
url='https://www.canon.co.uk/for_work/products/office_print_copy_solutions/office_black_white/imagerunner_1730i/'
#url='https://www.usa.canon.com/internet/portal/us/home/support/details/printers/black-and-white-laser/mf212w/imageclass-mf212w'
license=('custom')
depends=("cndrvcups-common-lb>=${_commonver}") # >= makes upgrades easier
depends_i686=('libxml2')
depends_x86_64=("${depends_i686[@]/#/lib32-}")
optdepends_i686=('libjpeg6-turbo: improves printing results for color imageRUNNER/i-SENSYS LBP devices')
optdepends_x86_64=("${optdepends_i686[@]/#/lib32-}")
makedepends=('autoconf' 'automake')
makedepends+=('gzip')
conflicts=('cndrvcups-lb-cpca')
options=('!emptydirs' '!strip')
options+=('!libtool')
install="${pkgname}.install"
_srcdir="${pkgbase}-${pkgver}"
source=(
  "http://gdlp01.c-wss.com/gds/${_dl}/linux-UFRII-drv-v${_pkgver//\./}-uken.tar.gz"
  'how-to.txt'
)
sha256sums=('c00324177a6f77f0a6deb4ecc6bee8150607dd4029bad3dfc1a521f84f811e7f'
            '62c4bfe3e4155e5e805b51eaa4b9dd3581ba029259c2817d9ebe66077aad7280')
sha512sums=('2eeb1448cb76ac156e1e5f6df46141ee5605b0bed1c25f31b0f039fb9f579fe3d5732b132cae391e78276c550febc19366f958d1fb53c93f955303f1f5c37ab3'
            '736e1785c443c4d129c8801a127410012889f46691259e8a7f6a54106a0647beb5b6267aabb78b3ed0a1c7a9d8ce216e159515d3aad425812e5be52c8b58e4ee')

# build instructions are adapted from upstream file
# cndrvcups-lb.spec

prepare() {
  set -u
  bsdtar -xf "linux-UFRII-drv-v${_pkgver//\./}-uken/Sources/${_srcdir}-1.tar.gz"
  set +u
}

build() {
  set -u

  set +u; msg2 'Building ppd'; set -u
  cd "${_srcdir}/ppd"
  autoreconf -fi
  ./autogen.sh --prefix='/usr'

  set +u; msg2 'Building pstoufr2cpca'; set -u
  cd '../pstoufr2cpca'
  autoreconf -fi
  ./autogen.sh --prefix='/usr' --libdir='/usr/lib'

  set +u; msg2 'Building cpca'; set -u
  cd '../cpca'
  autoreconf -fi
  ./autogen.sh --prefix='/usr' --enable-progpath='/usr/bin' --libdir='/usr/lib'

  set +u; msg2 'Building cngplp'; set -u
  cd '../cngplp'
  aclocal
  autoreconf -fi
  ./autogen.sh --prefix='/usr' --libdir='/usr/lib'

  set +u; msg2 'Building cngplp/files'; set -u
  cd 'files'
  autoreconf -fi
  ./autogen.sh --prefix='/usr'

  set +u; msg2 'Building all'; set -u
  cd "${srcdir}/${_srcdir}"
  make

  set +u
}

package() {
  set -u

  cd "${_srcdir}"

  declare -A _lib32dirs=([i686]='lib' [x86_64]='lib32')
  local _lib32dir="${_lib32dirs[${CARCH}]}"

  make install DESTDIR="${pkgdir}"
  gzip "${pkgdir}/usr/share/cups/model"/*.ppd

  cd 'libs'
  install -s -Dpm755 'cnpkbidi' -t "${pkgdir}/usr/bin/"
  install -Dpm4755 'cnpkmoduleufr2' -t "${pkgdir}/usr/bin/"

  local _libs=(
    'libcanonufr2.so.1.0.0'
    'libufr2filter.so.1.0.0'
    'libEnoJBIG.so.1.0.0'
    'libEnoJPEG.so.1.0.0'
    'libcaiocnpkbidi.so.1.0.0'
    'libcnlbcm.so.1.0'
  )
  install -s -Dpm755 "${_libs[@]}" -t "${pkgdir}/usr/${_lib32dir}/"
  install -Dpm755 'libcanonufr2.la' -t "${pkgdir}/usr/${_lib32dir}/"

  install -Dpm644 cnpkbidi_info* -t "${pkgdir}/usr/share/cnpkbidi/"
  install -Dpm644 ThLB* -t "${pkgdir}/usr/share/ufr2filter/"

  cd '../data'
  install -Dpm644 CnLB* -t "${pkgdir}/usr/share/caepcm/"

  local _lib _libt
  cd "${pkgdir}/usr/${_lib32dir}"
  for _lib in "${_libs[@]}"; do
    echo "soname ${_lib}"
    test -f "${_lib}" || echo "${}"
    if [[ "${_lib}" =~ ^(lib[^.]+\.so\.[0-9]+)\. ]]; then
      _libt="${BASH_REMATCH[1]}"
      ln -s "${_lib}" "${_libt}"
      _libt="${_libt%.*}"
      ln -s "${_lib}" "${_libt}"
    fi
  done

  # according to Gentoo ebuild v2.90 c3pldrv dlopens the absolute path
  # /usr/lib/libcnlbcm.so
  if [ "${CARCH}" = 'x86_64' ]; then
    ln -s '../lib32/libcnlbcm.so' -t "${pkgdir}/usr/lib/"
  fi

  cd "${srcdir}/${_srcdir}"
  if [ "$(vercmp "${pkgver}" '3.50')" -lt 0 ]; then
    install -Dpm644 LICENSE-*.txt -t "${pkgdir}/usr/share/licenses/${pkgname}/"
    install -Dpm644 "${srcdir}/linux-UFRII-drv-v340-uken/Documents/guide-ufr2-3.4xUK.tar.gz" -t "${pkgdir}/usr/share/doc/${pkgname}/"
  else
    local _lics=(
      $(find -type 'f' -name 'LICENSE*.txt')
    )
    local _lic _licd _lico
    for _lic in "${_lics[@]}"; do
      _licd="$(dirname "${_lic}")"
      _licd="$(basename "${_licd}")"
      _lico="LICENSE.${_licd}.txt"
      echo "license ${_lico}"
      install -Dpm644 "${_lic}" "${pkgdir}/usr/share/licenses/${pkgname}/${_lico}"
    done
  fi
  install -Dpm644 README* -t "${pkgdir}/usr/share/doc/${pkgname}/"

  set +u
}
set +u