hplip-vl.spec 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835
  1. # %define python_platlib %(python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib(1)')
  2. Summary: HP printer drivers & utilities for Linux
  3. Summary(ja): HP プリンタの Linux 向けドライバとユーティリティ
  4. Name: hplip
  5. Version: 3.20.6
  6. Release: 1%{?_dist_release}
  7. Vendor: Project Vine
  8. Distribution: Vine Linux
  9. Packager: kazutaka
  10. License: GPLv2+, MIT and BSD
  11. Group: Applications/Publishing
  12. URL: https://developers.hp.com/hp-linux-imaging-and-printing
  13. Source0: http://downloads.sourceforge.net/sourceforge/hplip/hplip-%{version}.tar.gz
  14. #Source1: hpcups-update-ppds.sh
  15. Source2: copy-deviceids.py
  16. Source3: %{name}.appdata.xml
  17. Source4: hp-laserjet_cp_1025nw.ppd.gz
  18. Source5: hp-laserjet_professional_p_1102w.ppd.gz
  19. Source1000: hplip.desktop.vine
  20. Patch1: hplip-pstotiff-is-rubbish.patch
  21. Patch2: hplip-strstr-const.patch
  22. Patch3: hplip-ui-optional.patch
  23. Patch4: hplip-no-asm.patch
  24. Patch5: hplip-deviceIDs-drv.patch
  25. Patch6: hplip-udev-rules.patch
  26. Patch7: hplip-retry-open.patch
  27. Patch8: hplip-snmp-quirks.patch
  28. Patch9: hplip-hpijs-marker-supply.patch
  29. Patch10: hplip-clear-old-state-reasons.patch
  30. Patch11: hplip-hpcups-sigpipe.patch
  31. Patch12: hplip-logdir.patch
  32. Patch13: hplip-bad-low-ink-warning.patch
  33. Patch14: hplip-deviceIDs-ppd.patch
  34. Patch15: hplip-ppd-ImageableArea.patch
  35. Patch16: hplip-scan-tmp.patch
  36. Patch17: hplip-log-stderr.patch
  37. Patch18: hplip-avahi-parsing.patch
  38. Patch20: hplip-dj990c-margin.patch
  39. Patch21: hplip-strncpy.patch
  40. Patch22: hplip-no-write-bytecode.patch
  41. Patch23: hplip-silence-ioerror.patch
  42. Patch24: hplip-3165-sourceoption.patch
  43. Patch25: hplip-noernie.patch
  44. Patch26: hplip-appdata.patch
  45. Patch27: hplip-check-cups.patch
  46. Patch30: hplip-typo.patch
  47. # python3 - recent HP release removed encoding/decoding to utf-8 in fax/pmlfax.py -
  48. # that results in text string going into translate function in base/utils.py, which
  49. # expects binary string because of parameters. Remove this patch if base/utils.py
  50. # code gets fixed.
  51. Patch31: hplip-use-binary-str.patch
  52. # m278-m281 doesn't work correctly again
  53. Patch32: hplip-error-print.patch
  54. Patch33: hplip-hpfax-importerror-print.patch
  55. Patch34: hplip-wifisetup.patch
  56. # pgp.mit.edu keyserver got bad connection, so we need to have pool of keyservers
  57. # to choose (Bz#1641100, launchpad#1799212)
  58. Patch35: hplip-keyserver.patch
  59. # QMessagebox call was copy-pasted from Qt4 version, but Qt5 has different arguments,
  60. # This patch solves most of them
  61. Patch36: 0026-Call-QMessageBox-constructors-of-PyQT5-with-the-corr.patch
  62. # HP upstream introduced new binary blob, which is not open-source, so it violates
  63. # FPG by two ways - shipping binary blob and non open source code - so it needs to be removed.
  64. # Patch is taken from Debian.
  65. Patch37: 0025-Remove-all-ImageProcessor-functionality-which-is-clo.patch
  66. # In hplip-3.18.10 some parts of UI code was commented out, which leaved hp-toolbox
  67. # unusable (crashed on the start). The patch removes usages of variables, which were
  68. # commented out.
  69. # The patch is taken from Debian.
  70. Patch38: 0027-Fixed-incomplete-removal-of-hp-toolbox-features-whic.patch
  71. # hp-setup crashed when user wanted to define a path to PPD file. It was due
  72. # byte + string variables incompatibility and it is fixed by decoding the
  73. # bytes-like variable
  74. # part of https://bugzilla.redhat.com/show_bug.cgi?id=1666076
  75. # reported upstream https://bugs.launchpad.net/hplip/+bug/1814272
  76. Patch39: hplip-add-ppd-crash.patch
  77. # external scripts, which are downloaded and run by hp-plugin, try to create links
  78. # in non-existing dirs. These scripts ignore errors, so plugin is installed fine
  79. # but then internal hp-plugin can check for plugin state, where links are checked too.
  80. # It results in corrupted plugin state, which breaks printer installation by GUI hp-setup.
  81. # Temporary workaround is to ignore these bad links and real fix should come from HP,
  82. # because their external scripts try to create links in non-existing dirs.
  83. # Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1671513
  84. # Reported upstream: https://bugs.launchpad.net/hplip/+bug/1814574
  85. Patch40: hplip-missing-links.patch
  86. # change in 3.18.9 in scanext.c caused broken scanning for HP LaserJet 3052. Since I cannot figure
  87. # it out what author wanted by the change (it sets option number 9 to true, but different handles
  88. # have different options, so I'm not sure what author wanted to set).
  89. # Remove the change for now, it works for user and me.
  90. Patch41: hplip-hplj-3052.patch
  91. # hpmud parses mdns txt record badly
  92. # upstream tickets: https://bugs.launchpad.net/hplip/+bug/1797501
  93. # https://bugs.launchpad.net/hplip/+bug/1817214
  94. # https://bugs.launchpad.net/hplip/+bug/1821932
  95. # with no response from upstream
  96. # Patch taken from Debian https://lists.debian.org/debian-printing/2018/11/msg00049.html
  97. Patch42: hplip-hpmud-string-parse.patch
  98. # Part of https://bugzilla.redhat.com/show_bug.cgi?id=1694663
  99. # It was found out that specific device needs plugin for scanning
  100. # Reported upstream as https://bugs.launchpad.net/hplip/+bug/1822762
  101. Patch43: hplip-m278-m281-needs-plugin.patch
  102. # hpcups crashes when a printer needs a plugin and does not have one installed
  103. # it crashes in destructor, because pointer is not initialized
  104. # bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1695716
  105. # reported upstream
  106. Patch44: hplip-hpcups-crash.patch
  107. # Fixing the issues found by coverity scan
  108. # reported upstream https://bugs.launchpad.net/hplip/+bug/1808145
  109. Patch45: hplip-covscan.patch
  110. # Segfault during logging to syslog because argument are switched
  111. # bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1727162
  112. # upstream https://bugs.launchpad.net/hplip/+bug/1837846
  113. Patch46: hplip-logging-segfault.patch
  114. # Traceback in hp-systray when there are no resource
  115. # wanted to report upstream, but launchpad ends with timeout error
  116. # bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=1738321
  117. Patch47: hplip-systray-blockerror.patch
  118. # several printers were removed in 3.19.1, but actually someone still uses them
  119. # reported upstream https://bugs.launchpad.net/hplip/+bug/1843592
  120. # bugzillas 1742949, 1740132, 1739855
  121. Patch48: hplip-missing-drivers.patch
  122. # laserjet 2200 and other devices have different device id than HP expects...
  123. # https://bugzilla.redhat.com/show_bug.cgi?id=1772698
  124. # reported upstream https://bugs.launchpad.net/hplip/+bug/1853002
  125. Patch49: hplip-model-mismatch.patch
  126. # sixext has problems with python3 strings (bz#1573430)
  127. # reported https://bugs.launchpad.net/bugs/1480152
  128. Patch50: hplip-unicodeerror.patch
  129. # error with new gcc, already reported in upstream as
  130. # https://bugs.launchpad.net/hplip/+bug/1836735
  131. Patch51: hplip-fix-Wreturn-type-warning.patch
  132. # upstream check for python clears OS build system
  133. # CFLAGS
  134. # https://bugs.launchpad.net/hplip/+bug/1879445
  135. Patch52: hplip-configure-python.patch
  136. # taken from hplip upstream report - toolbox uses deprecated method
  137. # setMargin(), which generates an exception, resulting in a infinite loop
  138. # of request on cupsd
  139. # https://bugs.launchpad.net/hplip/+bug/1880275
  140. Patch53: hplip-dialog-infinite-loop.patch
  141. # searching algorithm did not expect '-' in model name and thought it is a new PDL
  142. # it resulted in incorrect PPD match, so e.g. hpijs driver was used instead of hpcups
  143. # bug: https://bugzilla.redhat.com/show_bug.cgi?id=1590014
  144. # reported upstream: https://bugs.launchpad.net/hplip/+bug/1881587
  145. Patch54: hplip-find-driver.patch
  146. # hp-clean didn't work for Photosmart C1410 because it was comparing
  147. # string length with buffer size for string object, which is different,
  148. # causing cleaning to fail - the fix is to make the object bytes-like,
  149. # then buffer size is the same as the length.
  150. # Thanks to Stefan Assmann we were able to fix level 1 cleaning
  151. # for the device, but there can be similar issues with other devices
  152. # bug https://bugzilla.redhat.com/show_bug.cgi?id=1833308
  153. # reported upstream https://bugs.launchpad.net/hplip/+bug/1882193
  154. Patch55: hplip-clean-ldl.patch
  155. # 3.20.6 turned off requirement for most devices which needed it
  156. # - it will cause malfunction of printing and scanning for them
  157. # https://bugs.launchpad.net/hplip/+bug/1883898
  158. Patch56: hplip-revert-plugins.patch
  159. # python3.9 removes threading.Thread.isAlive() and it is substituted
  160. # by threading.Thread.is_alive()
  161. # https://bugzilla.redhat.com/show_bug.cgi?id=1861055
  162. # reported upstream https://bugs.launchpad.net/fedora/+bug/1889280
  163. Patch57: hplip-thread-isalive-removed.patch
  164. # Vine Patches
  165. Patch70: hplip-3.11.5-gksu.patch
  166. Patch80: hplip-3.16.5-hpijs.patch
  167. BuildRoot: %{_tmppath}/%{name}-%{version}-root
  168. Requires: cups
  169. Requires: dbus
  170. Requires: dbus-python3
  171. Requires: foomatic
  172. Requires: ghostscript
  173. Requires: openssl
  174. Requires: %{name}-libs = %{version}-%{release}
  175. BuildRequires: cups-devel
  176. BuildRequires: dbus-devel
  177. BuildRequires: desktop-file-utils
  178. BuildRequires: libusb1-devel
  179. BuildRequires: libjpeg-devel
  180. BuildRequires: net-snmp-devel
  181. BuildRequires: openssl-devel
  182. BuildRequires: python3-devel
  183. BuildRequires: python3-rpm-macros
  184. BuildRequires: python3-cups, cups
  185. BuildRequires: sane-devel
  186. BuildRequires: python3-qt5
  187. BuildRequires: libappstream-glib
  188. BuildRequires: gsettings-desktop-schemas
  189. # to force to use Qt5
  190. BuildConflicts: PyQt
  191. BuildConflicts: PyQt4
  192. Provides: hpijs = %{version}-%{release}
  193. Obsoletes: hpijs < %{version}-%{release}
  194. %description
  195. The Hewlett-Packard Linux Imaging and Printing Project provides
  196. drivers for HP printers and multi-function peripherals.
  197. It supports the DeskJet 350C, 600C, 600C Photo, 630C, Apollo 2000,
  198. Apollo 2100, Apollo 2560, DeskJet 800C, DeskJet 825, DeskJet 900,
  199. PhotoSmart, DeskJet 990C, and PhotoSmart 100 series.
  200. %description -l ja
  201. Hewlett-Packard Linux Imaging and Printing Project は HP 製プリンタ及びプリンタ複合機用のドライバを提供します。
  202. これには DeskJet 350C, 600C, 600C Photo, 630C, Apollo 2000, Apollo 2100, Apollo 2560, DeskJet 800C, DeskJet 825, DeskJet 900, PhotoSmart, DeskJet 990C, and PhotoSmart 100 シリーズ等が含まれます。
  203. #---------------------------------------------------------------------
  204. %package libs
  205. Summary: HPLIP libraries
  206. Summary(ja): HPLIP ライブラリ
  207. Group: System Environment/Libraries
  208. License: GPLv2+ and MIT
  209. Requires: python3
  210. %description libs
  211. Libraries needed by HPLIP.
  212. %description libs -l ja
  213. HPLIP 用のライブラリです。
  214. #---------------------------------------------------------------------
  215. %package gui
  216. Summary: HPLIP graphical tools
  217. Summary(ja): HPLIP 用 GUI ツール
  218. Group: Applications/System
  219. License: BSD
  220. Requires: %{name} = %{version}-%{release}
  221. Requires: python3-qt5
  222. #Requires: python3-reportlab
  223. Requires: python3-pygobject
  224. Requires: %{name}%{?_isa} = %{version}-%{release}
  225. Requires: libsane-hpaio%{?_isa} = %{version}-%{release}
  226. %description gui
  227. HP Device manager (toolbox) is a graphical utility including
  228. maintenance tools, supplies levels, and status information.
  229. %description gui -l ja
  230. HP デバイスマネージャ (toolbox) は、各種設定やインクや紙の残量確
  231. 認、ステータス情報の確認が行える HPLIP 用の GUI ユーティリティです。
  232. #---------------------------------------------------------------------
  233. %package -n libsane-hpaio
  234. Summary: SANE driver for scanners in HP's multi-function devices
  235. Summary(ja): HP 複合機のスキャナ用 SANE ドライバ
  236. Group: System Environment/Libraries
  237. License: GPLv2+
  238. Requires: %{name}-libs = %{version}-%{release}
  239. Requires: sane
  240. %description -n libsane-hpaio
  241. SANE driver for scanners in HP inkjet and laser based multi-function
  242. printers.
  243. %description -n libsane-hpaio -l ja
  244. HP インクジェット及びレーザープリンタ複合機のスキャナ機能を利用する
  245. 為の SANE ドライバです。
  246. #---------------------------------------------------------------------
  247. %prep
  248. %setup -q
  249. # The pstotiff filter is rubbish so replace it (launchpad #528394).
  250. %patch1 -p1 -b .pstotiff-is-rubbish
  251. # Fix compilation.
  252. %patch2 -p1 -b .strstr-const
  253. # Make utils.checkPyQtImport() look for the gui sub-package (bug #243273).
  254. %patch3 -p1 -b .ui-optional
  255. # Make sure to avoid handwritten asm.
  256. %patch4 -p1 -b .no-asm
  257. # Corrected several IEEE 1284 Device IDs using foomatic data.
  258. # Color LaserJet 2500 series (bug #659040)
  259. # LaserJet 4100 Series/2100 Series (bug #659039)
  260. %patch5 -p1 -b .deviceIDs-drv
  261. chmod +x %{SOURCE2}
  262. mv prnt/drv/hpijs.drv.in{,.deviceIDs-drv-hpijs}
  263. %{SOURCE2} prnt/drv/hpcups.drv.in \
  264. prnt/drv/hpijs.drv.in.deviceIDs-drv-hpijs \
  265. > prnt/drv/hpijs.drv.in
  266. # Move udev rules from /etc/ to /usr/lib/ (bug #748208).
  267. %patch6 -p1 -b .udev-rules
  268. # Retry when connecting to device fails (bug #532112).
  269. %patch7 -p1 -b .retry-open
  270. # Mark SNMP quirks in PPD for HP OfficeJet Pro 8500 (bug #581825).
  271. %patch8 -p1 -b .snmp-quirks
  272. # Fixed bogus low ink warnings from hpijs driver (bug #643643).
  273. %patch9 -p1 -b .hpijs-marker-supply
  274. # Clear old printer-state-reasons we used to manage (bug #510926).
  275. %patch10 -p1 -b .clear-old-state-reasons
  276. # Avoid busy loop in hpcups when backend has exited (bug #525944).
  277. %patch11 -p1 -b .hpcups-sigpipe
  278. # CUPS filters should use TMPDIR when available (bug #865603).
  279. %patch12 -p1 -b .logdir
  280. # Fixed Device ID parsing code in hpijs's dj9xxvip.c (bug #510926).
  281. %patch13 -p1 -b .bad-low-ink-warning
  282. # Add Device ID for
  283. # HP LaserJet Color M451dn (bug #1159380)
  284. for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4);
  285. do
  286. gunzip ${ppd_file#*/}.gz
  287. done
  288. %patch14 -p1 -b .deviceIDs-ppd
  289. for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4);
  290. do
  291. gzip -n ${ppd_file#*/}
  292. done
  293. # Fix ImageableArea for Laserjet 8150/9000 (bug #596298).
  294. for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4);
  295. do
  296. gunzip ${ppd_file#*/}.gz
  297. done
  298. %patch15 -p1 -b .ImageableArea
  299. for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4);
  300. do
  301. gzip -n ${ppd_file#*/}
  302. done
  303. # Scan to /var/tmp instead of /tmp (bug #1076954).
  304. %patch16 -p1 -b .scan-tmp
  305. # Treat logging before importing of logger module (bug #984699).
  306. %patch17 -p1 -b .log-stderr
  307. # Fix parsing of avahi-daemon output (bug #1096939).
  308. %patch18 -p1 -b .parsing
  309. # Fixed left/right margins for HP DeskJet 990C (LP #1405212).
  310. %patch20 -p1 -b .dj990c-margin
  311. # Fixed uses of strncpy throughout.
  312. %patch21 -p1 -b .strncpy
  313. # Don't try to write bytecode cache for hpfax backend (bug #1192761)
  314. # or hp-config_usb_printer (bug #1266903)
  315. # or hpps filter (bug #1241548).
  316. %patch22 -p1 -b .no-write-bytecode
  317. # Ignore IOError when logging output (bug #712537).
  318. %patch23 -p1 -b .silence-ioerror
  319. # [abrt] hplip: hp-scan:663:<module>:NameError: name 'source_option' is not defined (bug #1341304)
  320. %patch24 -p1 -b .sourceoption
  321. # hplip license problem (bug #1364711)
  322. %patch25 -p1 -b .no-ernie
  323. # hplip appdata
  324. %patch26 -p1 -b .appdata
  325. rm prnt/hpcups/ErnieFilter.{cpp,h} prnt/hpijs/ernieplatform.h
  326. # hp-check shows 'CUPS incompatible or not running' even if CUPS is running (bug #1456467)
  327. %patch27 -p1 -b .check-cups
  328. # hp-firmware:NameError: name 'INTERACTIVE_MODE4' is not defined (bug #1533869)
  329. %patch30 -p1 -b .typo
  330. %patch31 -p1 -b .use-binary-str
  331. # TypeError: 'Error' object does not support indexing (bug #1564770)
  332. # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1718129
  333. # in python2 it was possible to acces Exception message by index [0].
  334. # in python3 this is no longer possible and it causes TypeError.
  335. %patch32 -p1 -b .error-print-fix
  336. # TypeError: not all arguments converted during string formatting (bug #1566938)
  337. # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/616450
  338. # bug caused by more arguments than argument specifiers in formatted string
  339. %patch33 -p1 -b .hpfax-import-error-print
  340. # 'WifiSetupDialog' object has no attribute 'wifiobj' (bug #1626877)
  341. # upstream bug: https://bugs.launchpad.net/hplip/+bug/1752060
  342. # bug caused by typo in wifisetupdialog wifiObj property call
  343. %patch34 -p1 -b .wifisetup-bad-call-fix
  344. # have pool of keyservers to choose
  345. %patch35 -p1 -b .keyserver
  346. # TypeError: argument 5 has unexpected type 'StandardButtons' (bug #1594602)
  347. # upstream bug: https://bugs.launchpad.net/ubuntu/+source/hplip/+bug/1745383
  348. # bug caused by typo in QMessageBox constructor call
  349. # this patch fixes more of those typos - some fixed by tkorbar, some taken from ubuntu fix
  350. %patch36 -p1 -b .qmsgbox-typos-fix
  351. # removal of non open source code, taken from ubuntu
  352. %patch37 -p1 -b .libimageprocessor-removal
  353. %__rm prnt/hpcups/libImageProcessor-x86*
  354. %patch38 -p1 -b .toolbox-crash
  355. # part of https://bugzilla.redhat.com/show_bug.cgi?id=1666076
  356. %patch39 -p1 -b .add-ppd-crash
  357. # 1671513 - after 'successful' plugin installation it is not installed
  358. %patch40 -p1 -b .missing-links
  359. # 1684434 - Scanning broken for HP LaserJet 3052
  360. %patch41 -p1 -b .hp-laserjet-3052-broken-scanning
  361. # 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 1)
  362. %patch42 -p1 -b .hpmud-string-parse
  363. # 1694663 - Cannot scan with M281fdw LaserJet - failed: Error during device I/O (part 2)
  364. %patch43 -p1 -b .m278-m281-needs-plugin
  365. # 1695716 - hpcups crashes in Compressor destructor
  366. %patch44 -p1 -b .hpcups-crash
  367. # fixing issues found by coverity scan
  368. %patch45 -p1 -b .covscan
  369. # segfault during logging (1727162)
  370. %patch46 -p1 -b .logging-segfault
  371. # 1738321 - [abrt] hp-systray:BlockingIOError: [Errno 11] Resource temporarily unavailable
  372. %patch47 -p1 -b .systray-blockerror
  373. # 1742949, 1740132, 1739855 - missing drivers
  374. %patch48 -p1 -b .missing-drivers
  375. # 1772698 - Can't setup printer (HP LJ 2200): no attributes found in model.dat
  376. %patch49 -p1 -b .model-mismatch
  377. # 1573430 - sixext.py:to_string_utf8:UnicodeDecodeError: 'utf-8' codec can't decode bytes
  378. %patch50 -p1 -b .unicodeerror
  379. %patch51 -p1 -b .Wreturn-fix
  380. %patch52 -p1 -b .configure-python
  381. %patch53 -p1 -b .dialog-infinite-loop
  382. # 1590014 - hplip PPD search doesn't expect '-' in device name
  383. %patch54 -p1 -b .find-driver
  384. # 1833308 - hp-clean cannot clean HP PSC1410 - Device I/O error
  385. %patch55 -p1 -b .clean-ldl
  386. %patch56 -p1 -b .revert-plugins
  387. # 1861055 - hplip: remove threading.Thread.isAlive method calls - use threading.Thread.is_alive()
  388. %patch57 -p1 -b .thread-isalive-removed
  389. # vine
  390. #%patch70 -p1 -b .gksu
  391. %patch80 -p1 -b .hpijs
  392. sed -i.duplex-constraints \
  393. -e 's,\(UIConstraints.* \*Duplex\),//\1,' \
  394. prnt/drv/hpcups.drv.in
  395. # Change shebang /usr/bin/env python -> /usr/bin/python3 (bug #618351).
  396. find -name '*.py' -print0 | xargs -0 \
  397. sed -i.env-python -e 's,^#!/usr/bin/env python,#!%{__python3},'
  398. sed -i.env-python -e 's,^#!/usr/bin/env python,#!%{__python3},' \
  399. prnt/filters/hpps \
  400. fax/filters/pstotiff
  401. rm locatedriver
  402. cp -p %{SOURCE4} %{SOURCE5} ppd/hpcups
  403. %build
  404. # Work-around Makefile.am imperfections.
  405. sed -i 's|^AM_INIT_AUTOMAKE|AM_INIT_AUTOMAKE([foreign])|g' configure.in
  406. touch NEWS README AUTHORS ChangeLog
  407. autoreconf -fiv
  408. %configure \
  409. --enable-scan-build --enable-gui-build --enable-fax-build \
  410. --disable-foomatic-rip-hplip-install --enable-pp-build \
  411. --disable-qt4 --enable-qt5 \
  412. --enable-hpcups-install --enable-cups-drv-install \
  413. --enable-foomatic-drv-install --enable-dbus-build \
  414. --enable-hpijs-install \
  415. --enable-policykit \
  416. --with-mimedir=%{_datadir}/cups/mime \
  417. --with-cupsbackenddir=%{_libdir}/cups/backend \
  418. --with-cupsfilterdir=%{_libdir}/cups/filter \
  419. --with-hpppddir=%{_datadir}/foomatic/db/source/PPD/HP \
  420. PYTHON=%{__python3}
  421. make %{?_smp_mflags}
  422. %install
  423. rm -rf $RPM_BUILD_ROOT
  424. make install DESTDIR=$RPM_BUILD_ROOT PYTHON=%{__python3} rulesdir=/lib/udev/rules.d
  425. # Create /run/hplip & /var/lib/hp
  426. mkdir -p $RPM_BUILD_ROOT/run/hplip
  427. mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/lib/hp
  428. # install modified .desktop
  429. #{__install} -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}/%{_datadir}/applications/hplip.desktop
  430. # install /usr/lib/tmpfiles.d/hplip.conf (bug #1015831)
  431. mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d
  432. cat > $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/hplip.conf <<EOF
  433. # See tmpfiles.d(5) for details
  434. d /run/hplip 0775 root lp -
  435. EOF
  436. # remove unpacked files.
  437. rm -rf %{buildroot}%{_sysconfdir}/sane.d \
  438. %{buildroot}%{_docdir} \
  439. %{buildroot}%{_datadir}/hal/fdi \
  440. %{buildroot}%{_datadir}/hplip/pkservice.py \
  441. %{buildroot}%{_bindir}/hp-pkservice \
  442. %{buildroot}%{_datadir}/hplip/locatedriver* \
  443. %{buildroot}%{_datadir}/hplip/dat2drv*
  444. rm -f %{buildroot}%{_bindir}/hp-logcapture \
  445. %{buildroot}%{_bindir}/hp-doctor \
  446. %{buildroot}%{_bindir}/hp-pqdiag \
  447. %{buildroot}%{_datadir}/hplip/logcapture.py \
  448. %{buildroot}%{_datadir}/hplip/doctor.py \
  449. %{buildroot}%{_datadir}/hplip/pqdiag.py
  450. rm -f %{buildroot}%{_bindir}/foomatic-rip \
  451. %{buildroot}%{_libdir}/cups/filter/foomatic-rip \
  452. %{buildroot}%{_libdir}/*.la \
  453. %{buildroot}%{python3_sitearch}/*.la \
  454. %{buildroot}%{_libdir}/libhpip.so \
  455. %{buildroot}%{_libdir}/libhpipp.so \
  456. %{buildroot}%{_libdir}/libhpdiscovery.so \
  457. %{buildroot}%{_libdir}/sane/*.la \
  458. %{buildroot}%{_datadir}/cups/model/foomatic-ppds \
  459. %{buildroot}%{_datadir}/applications/hplip.desktop \
  460. %{buildroot}%{_datadir}/ppd/HP/*.ppd
  461. mkdir -p %{buildroot}%{_datadir}/metainfo
  462. cp %{SOURCE3} %{buildroot}%{_datadir}/metainfo/
  463. mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,64x64}/apps
  464. install -p -m644 %{buildroot}%{_datadir}/hplip/data/images/16x16/hp_logo.png \
  465. %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/hp_logo.png
  466. install -p -m644 %{buildroot}%{_datadir}/hplip/data/images/32x32/hp_logo.png \
  467. %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/hp_logo.png
  468. install -p -m644 %{buildroot}%{_datadir}/hplip/data/images/64x64/hp_logo.png \
  469. %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/hp_logo.png
  470. mkdir -p %{buildroot}%{_datadir}/applications
  471. sed -i -e '/^Categories=/d' hplip.desktop
  472. # Encoding key is deprecated
  473. sed -i -e '/^Encoding=/d' hplip.desktop
  474. desktop-file-validate hplip.desktop
  475. desktop-file-install \
  476. --dir %{buildroot}/%{_datadir}/applications \
  477. --add-category System \
  478. --add-category Settings \
  479. --add-category HardwareSettings \
  480. hplip.desktop
  481. appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/*.appdata.xml
  482. # install hp-uiscan desktop file
  483. sed -i 's/\/usr\/share\/icons\/Humanity\/devices\/48\/printer\.svg/hp_logo/' hp-uiscan.desktop
  484. # Regenerate hpcups PPDs on upgrade if necessary (bug #579355).
  485. #install -p -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/hpcups-update-ppds
  486. %{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/sane.d/dll.d
  487. echo hpaio > $RPM_BUILD_ROOT%{_sysconfdir}/sane.d/dll.d/hpaio
  488. # Images in docdir should not be executable (bug #440552).
  489. find doc/images -type f -exec chmod 644 {} \;
  490. # Create an empty plugins directory to make sure it gets the right
  491. # SELinux file context (bug #564551).
  492. %{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/hplip/prnt/plugins
  493. # Remove files we don't want to package.
  494. rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/hpaio.desc
  495. rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/hplip-install
  496. rm -rf $RPM_BUILD_ROOT%{_datadir}/hplip/install.*
  497. rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/uninstall.*
  498. rm -f $RPM_BUILD_ROOT%{_bindir}/hp-uninstall
  499. rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/upgrade.*
  500. rm -f $RPM_BUILD_ROOT%{_bindir}/hp-upgrade
  501. rm -f $RPM_BUILD_ROOT%{_bindir}/hp-config_usb_printer
  502. rm -f $RPM_BUILD_ROOT%{_unitdir}/hplip-printer@.service
  503. rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/config_usb_printer.*
  504. rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/hpijs.drv.in.template
  505. rm -f $RPM_BUILD_ROOT%{_datadir}/cups/mime/pstotiff.types
  506. rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/fax/pstotiff*
  507. rm -rf $RPM_BUILD_ROOT%{_prefix}/lib/systemd
  508. # The systray applet doesn't work properly (displays icon as a
  509. # window), so don't ship the launcher yet.
  510. rm -f $RPM_BUILD_ROOT%{_sysconfdir}/xdg/autostart/hplip-systray.desktop
  511. %clean
  512. rm -rf $RPM_BUILD_ROOT
  513. %post libs -p /sbin/ldconfig
  514. %postun libs -p /sbin/ldconfig
  515. %files
  516. %defattr(-,root,root)
  517. %doc COPYING doc/*
  518. #%doc %{_datadir}/doc/%{name}-%{version}
  519. %{_bindir}/hp-align
  520. %{_bindir}/hp-clean
  521. %{_bindir}/hp-colorcal
  522. %{_bindir}/hp-devicesettings
  523. %{_bindir}/hp-diagnose_plugin
  524. %{_bindir}/hp-diagnose_queues
  525. %{_bindir}/hp-fab
  526. %{_bindir}/hp-faxsetup
  527. %{_bindir}/hp-firmware
  528. %{_bindir}/hp-info
  529. %{_bindir}/hp-levels
  530. %{_bindir}/hp-linefeedcal
  531. %{_bindir}/hp-makecopies
  532. %{_bindir}/hp-makeuri
  533. %{_bindir}/hp-plugin
  534. %{_bindir}/hp-printsettings
  535. %{_bindir}/hp-probe
  536. %{_bindir}/hp-query
  537. %{_bindir}/hp-scan
  538. %{_bindir}/hp-sendfax
  539. %{_bindir}/hp-setup
  540. %{_bindir}/hp-testpage
  541. %{_bindir}/hp-timedate
  542. %{_bindir}/hp-unload
  543. %{_bindir}/hp-wificonfig
  544. %{_libdir}/cups/backend/hp
  545. %{_libdir}/cups/backend/hpfax
  546. %{_libdir}/cups/filter/hpcups
  547. %{_libdir}/cups/filter/hpcupsfax
  548. %{_libdir}/cups/filter/hpps
  549. %{_libdir}/cups/filter/pstotiff
  550. %{_datadir}/cups/mime/pstotiff.convs
  551. # Files
  552. %{_datadir}/hplip/align.py*
  553. %{_datadir}/hplip/check-plugin.py*
  554. %{_datadir}/hplip/clean.py*
  555. %{_datadir}/hplip/colorcal.py*
  556. %{_datadir}/hplip/devicesettings.py*
  557. %{_datadir}/hplip/diagnose_plugin.py*
  558. %{_datadir}/hplip/diagnose_queues.py*
  559. %{_datadir}/hplip/fab.py*
  560. %{_datadir}/hplip/fax
  561. %{_datadir}/hplip/faxsetup.py*
  562. %{_datadir}/hplip/firmware.py*
  563. %{_datadir}/hplip/hpdio.py*
  564. %{_datadir}/hplip/hplip_clean.sh
  565. %{_datadir}/hplip/hpssd*
  566. %{_datadir}/hplip/info.py*
  567. %{_datadir}/hplip/__init__.py*
  568. %{_datadir}/hplip/levels.py*
  569. %{_datadir}/hplip/linefeedcal.py*
  570. %{_datadir}/hplip/makecopies.py*
  571. %{_datadir}/hplip/makeuri.py*
  572. %{_datadir}/hplip/plugin.py*
  573. %{_datadir}/hplip/printsettings.py*
  574. %{_datadir}/hplip/probe.py*
  575. %{_datadir}/hplip/query.py*
  576. %{_datadir}/hplip/scan.py*
  577. %{_datadir}/hplip/sendfax.py*
  578. %{_datadir}/hplip/setup.py*
  579. %{_datadir}/hplip/testpage.py*
  580. %{_datadir}/hplip/timedate.py*
  581. %{_datadir}/hplip/unload.py*
  582. %{_datadir}/hplip/wificonfig.py*
  583. # Directories
  584. %{_datadir}/hplip/base
  585. %{_datadir}/hplip/copier
  586. %{_datadir}/hplip/data/ldl
  587. %{_datadir}/hplip/data/localization
  588. %{_datadir}/hplip/data/pcl
  589. %{_datadir}/hplip/data/ps
  590. %{_datadir}/hplip/installer
  591. %{_datadir}/hplip/pcard
  592. %{_datadir}/hplip/prnt
  593. %{_datadir}/hplip/scan
  594. %{_localstatedir}/lib/hp
  595. %dir %attr(0775,root,lp) /run/hplip
  596. %{_prefix}/lib/tmpfiles.d/hplip.conf
  597. %dir %{_sysconfdir}/hp
  598. %config(noreplace) %{_sysconfdir}/hp/hplip.conf
  599. /lib/udev/rules.d/56-hpmud.rules
  600. %dir %{_datadir}/hplip
  601. %dir %{_datadir}/hplip/data
  602. %{_datadir}/hplip/data/models
  603. %{_bindir}/hpijs
  604. #{_bindir}/hpcups-update-ppds
  605. %{_datadir}/cups/drv/*
  606. %dir %{_datadir}/foomatic/db/source/PPD/HP
  607. %{_datadir}/foomatic/db/source/PPD/HP/*
  608. %{_sysconfdir}/dbus-1/system.d/com.hp.hplip.conf
  609. %{_datadir}/dbus-1/system-services/com.hp.hplip.service
  610. %{_datadir}/polkit-1/actions/com.hp.hplip.policy
  611. %files libs
  612. %defattr(-,root,root)
  613. %{_libdir}/libhpip.so.*
  614. # The so symlink is required here (see bug #489059).
  615. %{_libdir}/libhpmud.so*
  616. %{_libdir}/libhpdiscovery.so*
  617. %{_libdir}/libhpipp.so*
  618. # Python extension
  619. %{python3_sitearch}/*
  620. %files gui
  621. %defattr(-,root,root)
  622. %{_bindir}/hp-check
  623. %{_bindir}/hp-print
  624. %{_bindir}/hp-systray
  625. %{_bindir}/hp-toolbox
  626. %{_bindir}/hp-uiscan
  627. %{_datadir}/applications/*.desktop
  628. %{_datadir}/metainfo/hplip.appdata.xml
  629. # Files
  630. %{_datadir}/icons/hicolor/*/apps/*
  631. %{_datadir}/hplip/check.py*
  632. %{_datadir}/hplip/print.py*
  633. %{_datadir}/hplip/systray.py*
  634. %{_datadir}/hplip/toolbox.py*
  635. %{_datadir}/hplip/uiscan.py*
  636. # Directories
  637. %{_datadir}/hplip/data/images
  638. %{_datadir}/hplip/ui5
  639. %{_datadir}/hplip/uiscan.py*
  640. %files -n libsane-hpaio
  641. %defattr(-,root,root)
  642. %{_libdir}/sane/libsane-hpaio*
  643. %config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio
  644. %changelog
  645. * Thu May 16 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.18.12-1
  646. - dropped R:gksu.
  647. - imported Patche36-47 from rawhide.
  648. - switched to python3.
  649. - switched gui to Qt5.
  650. * Wed Nov 07 2018 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.18.10-1
  651. - new upstream release.
  652. - updated Patch12.
  653. - imported Patche24-35 from rawhide.
  654. * Sat Jul 2 2016 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.16.5-1
  655. - new upstream release.
  656. - dropped all patches.
  657. - imported all patches from rawhide.
  658. - added Patch80 to fix error in building hpijs.
  659. * Sun May 15 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.15.2-2
  660. - rebuild with openssl-1.0.2
  661. * Thu Mar 19 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 3.15.2-1
  662. - updated to 3.15.2
  663. - updated Source1
  664. - renumbered former Patch 0 and 1 to Patch 70 and 6
  665. - built with libusb1
  666. - added BR: desktop-file-utils
  667. * Wed Mar 07 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.11.5-5
  668. - rebuild with net-snmp-5.7.1
  669. * Wed Mar 07 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.11.5-5
  670. - rebuild with net-snmp-5.7.1
  671. * Sun Feb 19 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.11.5-4
  672. - rebuild with python-2.7.2
  673. * Mon Jun 13 2011 Kazutaka HARADA <kazutaka@vinelinux.org> 3.11.5-3
  674. - add Obsoletes: hpijs < 3.10
  675. * Sun Jun 12 2011 Kazutaka HARADA <kazutaka@vinelinux.org> 3.11.5-2
  676. - change configure option to --enable-hpijs-install
  677. - add Provides: hpijs
  678. - change ppd installation path to %{_datadir}/foomatic/db/source/PPD/HP
  679. - update Source1 (hplip.desktop.vine)
  680. - update Patch0 (hplip-3.11.5-gksu.patch)
  681. - add Patch1 to fix udev old syntax (hplip-udev-rules.patch)
  682. * Tue Mar 15 2011 Kazutaka HARADA <kazutaka@vinelinux.org> 3.11.5-1
  683. - new upstream release
  684. - change configure option: disable qt3 and enable qt4
  685. - add configure option: --enable-foomatic-drv-install
  686. - add BuildRequires: openssl-devel
  687. - add Requires: dbus-python
  688. - add Requires: notify-python (gui)
  689. - change Requires: PyQt to PyQt4 (gui)
  690. - add BuildConflicts: PyQt
  691. - add ppds below %{_datadir}/cups/model/foomatic/hp-*
  692. because foomatic (>= 4.0.3) drop PPDs for HP printers.
  693. * Fri Jul 24 2009 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 3.9.4b-3
  694. - add Patch0 to require root privilege (via gksu) when adding printer
  695. - add Requires: gksu
  696. * Mon Jun 08 2009 Shu KONNO <owa@bg.wakwak.com> 3.9.4b-2
  697. - added --with-cupsfilterdir to configure option
  698. - use python_sitearch macro instead of python_platlib
  699. * Sun Jun 07 2009 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 3.9.4b-1
  700. - new upstream release
  701. - split libraries to -libs sub package
  702. - update configure option
  703. add --enable-dbus-build, --enable-qt3, --disable-qt4
  704. * Mon Jul 21 2008 Shu KONNO <owa@bg.wakwak.com> 2.7.12-1vl5
  705. - rebuilt with python-2.5.2
  706. - added python_platlib macro
  707. - applied new versioning policy and spec in utf-8
  708. * Sun Jan 6 2008 Shu KONNO <owa@bg.wakwak.com> 2.7.12-0vl2
  709. - added --with-cupsbackenddir=%%{_libdir}/cups/backend to configure
  710. * Thu Jan 3 2008 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 2.7.12-0vl1
  711. - new upstream release
  712. - build with net-snmp-5.4.1
  713. * Thu Jun 28 2007 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 2.7.6-0vl1
  714. - initial build for Vine Linux