recipe 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. # Build recipe for sane-backends.
  2. #
  3. # Copyright (c) 2022 Matias Fonzo, <selk@dragora.org>.
  4. #
  5. # Licensed under the Apache License, Version 2.0 (the "License");
  6. # you may not use this file except in compliance with the License.
  7. # You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. # Exit immediately on any error
  17. set -e
  18. program=sane-backends
  19. version=1.1.1
  20. release=1
  21. # Define a category for the output of the package name
  22. pkgcategory=scanning
  23. tarname=${program}-${version}.tar.gz
  24. # Remote source(s)
  25. fetch=https://gitlab.com/sane-project/backends/uploads/7d30fab4e115029d91027b6a58d64b43/$tarname
  26. homepage=http://www.sane-project.org/
  27. description="
  28. Essential libraries for the Scanning support.
  29. SANE stands for Scanner Access Now Easy. This package contains the
  30. SANE libraries (this means backends and network scanning parts) and
  31. the command line frontend scanimage. You always find the most
  32. recent version of SANE on:
  33. $homepage
  34. "
  35. license=GPLv2+
  36. # Source documentation
  37. docs=""; # The build system already installs the documentation.
  38. docsdir="${docdir}/${program}-${version}"
  39. build()
  40. {
  41. unpack "${tardir}/$tarname"
  42. cd "$srcdir"
  43. # Set sane permissions
  44. chmod -R u+w,go-w,a+rX-s .
  45. ./configure CPPFLAGS="$QICPPFLAGS" \
  46. CFLAGS="$QICFLAGS" CXXFLAGS="$QICXXFLAGS" LDFLAGS="$QILDFLAGS" \
  47. $configure_args \
  48. --libdir=/usr/lib${libSuffix} \
  49. --mandir=$mandir \
  50. --docdir=$docsdir \
  51. --enable-shared=yes \
  52. --enable-static=no \
  53. --with-group=scanner \
  54. --with-lockdir=/var/lock \
  55. --with-usb \
  56. --with-libcurl \
  57. --with-poppler-glib \
  58. --with-snmp \
  59. --build="$(gcc -dumpmachine)"
  60. make -j${jobs} V=1
  61. make -j${jobs} DESTDIR="$destdir" install
  62. # Install rules for udev
  63. install -p -m 644 tools/udev/libsane.rules -D \
  64. "${destdir}/etc/udev/rules.d/65-scanner.rules"
  65. # To handle (dot) .new files via graft(1)
  66. touch "${destdir}/etc/sane.d/.graft-config"
  67. # Compress and link man pages (if needed)
  68. if test -d "${destdir}/$mandir"
  69. then
  70. (
  71. cd "${destdir}/$mandir"
  72. find . -type f -exec lzip -9 {} +
  73. find . -type l | while read -r file
  74. do
  75. ln -sf "$(readlink -- "$file").lz" "${file}.lz"
  76. rm -- "$file"
  77. done
  78. )
  79. fi
  80. # Clean up some unnecessary documentation to reduce package size
  81. (
  82. cd "${destdir}/$docsdir"
  83. for extension in freebsd unixware7 windows solaris hp-ux aix netbsd \
  84. darwin os2 unixware2 openbsd beos zeta ; \
  85. do
  86. rm -f README.${extension}
  87. done
  88. # Re-create ChangeLogs directory to match only the current version
  89. rm -rf ChangeLogs
  90. mkdir -p ChangeLogs
  91. ln -sf ../ChangeLog ChangeLogs/ChangeLog-${version}
  92. )
  93. }