summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 93c3bac3fed606ebd1e44263d6d09504953871aa (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
# Maintainer: ihipop <ihipop@users.noreply.github.com>

pkgname=brscan
pkgver=1.0.1
pkgrel=6
pkgdesc="Open-source SANE backend for Brother MFC/DCP scanners"
arch=('x86_64' 'aarch64' 'armv7h')
url="https://github.com/dmikushin/brscan"
license=('GPL-2.0-only' 'LGPL-2.1-only' 'LicenseRef-Brother')
depends=('sane' 'libusb-compat' 'libjpeg-turbo')
makedepends=('cmake' 'libusb' 'ninja' 'patchelf' 'pkgconf')
conflicts=('brscan-bin' 'brscan2' 'brscan3' 'brscan4' 'brscan5')
backup=('etc/sane.d/dll.d/brscan.conf')
source=(
  "${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz"
  'brscan-1.0.1-arch-fixes.patch'
  'brscan-extra-models.txt'
  'brscan.conf'
  '60-brscan.rules'
)
b2sums=('2b4250ea0f02a1aef9b6c7bfb8ab38745ff11387f0545e982f802c54afa07103d99d249e06807bace81e1c510b2422bfae2b0b78df15a66a5ddeae14360db5b5'
        '8a4e0009f141396040d24ee56c66e1f5bab7989c882924eb0e6ae4c51e0fc15045d1a4b40e18761d1423da6a2326e9c0197437771024762d7914469c2e020a05'
        '05752fcd7e740684d85bcf7ceb48897008fa7b57fc2f93b50df30cdc8b0ba8ca89842eb82620fef2be1aa36d66b8a08aa4005c6074e736f501a257d2c616d1e1'
        'ab8364e68de0fbc8cfe82013f2a1313b477f05db03dcf0bbff3345aee2d9ce6e82205babf9b2cccb858728b209d0e0d3450d5ee027faead6776f2bdb0197bdd4'
        'e81319e87083d8785489a3c4c5621939c821f3e9d78d39b7272f739e791720ee02aadf6152c96bfb0c319b1770841a08e7c60617aa71d031827634d945d6e25f')

prepare() {
  cd "${pkgname}-${pkgver}"

  patch -Np1 -i "${srcdir}/brscan-1.0.1-arch-fixes.patch"
  while IFS= read -r model; do
    [[ -z "${model}" || "${model}" == \#* ]] && continue
    grep -Fxq "${model}" data/Brsane.ini ||
      sed -i "/^\\[Support Model\\]$/a ${model}" data/Brsane.ini
  done < "${srcdir}/brscan-extra-models.txt"
}

build() {
  cmake -S "${pkgname}-${pkgver}" -B build -G Ninja \
    -DCMAKE_BUILD_TYPE=None \
    -DCMAKE_C_FLAGS="${CFLAGS} ${CPPFLAGS} -ffile-prefix-map=${srcdir}=. -fmacro-prefix-map=${srcdir}=." \
    -DCMAKE_CXX_FLAGS="${CXXFLAGS} ${CPPFLAGS} -ffile-prefix-map=${srcdir}=. -fmacro-prefix-map=${srcdir}=." \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DBRSCAN_BUILD_TESTS=OFF \
    -Wno-dev
  cmake --build build
}

package() {
  DESTDIR="${pkgdir}" cmake --install build
  patchelf --set-rpath '$ORIGIN/../lib/sane' "${pkgdir}/usr/bin/brsaneconfig"

  install -Dm644 brscan.conf "${pkgdir}/etc/sane.d/dll.d/brscan.conf"
  install -Dm644 60-brscan.rules "${pkgdir}/usr/lib/udev/rules.d/60-brscan.rules"

  install -Dm644 "${pkgname}-${pkgver}/Copying" "${pkgdir}/usr/share/licenses/${pkgname}/Copying"
  install -Dm644 "${pkgname}-${pkgver}/copying.lib" "${pkgdir}/usr/share/licenses/${pkgname}/copying.lib"
  install -Dm644 "${pkgname}-${pkgver}/copying.brother" "${pkgdir}/usr/share/licenses/${pkgname}/copying.brother"
}