# %define python_platlib %(python -c 'from distutils.sysconfig import get_python_lib; print get_python_lib(1)')
Summary:	HP printer drivers & utilities for Linux
Summary(ja): 	HP プリンタの Linux 向けドライバとユーティリティ
Name:		hplip
Version:	3.15.2
Release: 	2%{?_dist_release}

License:	GPLv2+, MIT and BSD
Group:		Applications/Publishing
URL:		http://hplip.sourceforge.net/

Source0:	http://downloads.sourceforge.net/sourceforge/hplip/hplip-%{version}.tar.gz
#Source1:	hpcups-update-ppds.sh
Source1:	hplip.desktop.vine
Source2:	copy-deviceids.py

Patch1:		hplip-pstotiff-is-rubbish.patch
Patch2: 	hplip-strstr-const.patch
Patch3: 	hplip-ui-optional.patch
Patch4: 	hplip-no-asm.patch
Patch5: 	hplip-deviceIDs-drv.patch
Patch6: 	hplip-udev-rules.patch
Patch7: 	hplip-retry-open.patch
Patch8: 	hplip-snmp-quirks.patch
Patch9: 	hplip-hpijs-marker-supply.patch
Patch10: 	hplip-clear-old-state-reasons.patch
Patch11: 	hplip-hpcups-sigpipe.patch
Patch12: 	hplip-logdir.patch
Patch13: 	hplip-bad-low-ink-warning.patch
Patch14: 	hplip-deviceIDs-ppd.patch
Patch15: 	hplip-ppd-ImageableArea.patch
Patch16: 	hplip-scan-tmp.patch
Patch17: 	hplip-log-stderr.patch
Patch18: 	hplip-avahi-parsing.patch
Patch19: 	hplip-reportlab.patch
Patch20: 	hplip-dj990c-margin.patch
Patch21: 	hplip-strncpy.patch
Patch22: 	hplip-no-write-bytecode.patch
Patch23: 	hplip-silence-ioerror.patch

# Vine Patches
Patch70:	hplip-3.11.5-gksu.patch
#Patch1:		hplip-udev-rules.patch

BuildRoot:	%{_tmppath}/%{name}-%{version}-root
Requires:	cups
Requires:	dbus
Requires:	dbus-python
Requires:	foomatic
Requires:	ghostscript
Requires:	openssl
Requires:	python-imaging
Requires:	%{name}-libs = %{version}-%{release}
Requires:	gksu
BuildRequires:	cups-devel
BuildRequires:	dbus-devel
BuildRequires:	desktop-file-utils
BuildRequires:	libusb1-devel
BuildRequires:	libjpeg-devel
BuildRequires:	net-snmp-devel
BuildRequires:	openssl-devel
BuildRequires:	python-devel >= 2.3
BuildRequires:	python-cups, cups
BuildRequires:	sane-devel
BuildRequires:	PyQt4-devel
# to force to use PyQt4
BuildConflicts:	PyQt

Provides:	hpijs = %{version}-%{release}
Obsoletes:	hpijs < %{version}-%{release}


Vendor:		Project Vine
Distribution:	Vine Linux
Packager:	kazutaka

%description
The Hewlett-Packard Linux Imaging and Printing Project provides
drivers for HP printers and multi-function peripherals.

It supports the DeskJet 350C, 600C, 600C Photo, 630C, Apollo 2000,
Apollo 2100, Apollo 2560, DeskJet 800C, DeskJet 825, DeskJet 900,
PhotoSmart, DeskJet 990C, and PhotoSmart 100 series.

%description -l ja
Hewlett-Packard Linux Imaging and Printing Project は HP 製プリンタ及びプリンタ複合機用のドライバを提供します。

これには DeskJet 350C, 600C, 600C Photo, 630C, Apollo 2000, Apollo 2100, Apollo 2560, DeskJet 800C, DeskJet 825, DeskJet 900, PhotoSmart, DeskJet 990C, and PhotoSmart 100 シリーズ等が含まれます。

#---------------------------------------------------------------------

%package libs
Summary:	HPLIP libraries
Summary(ja):	HPLIP ライブラリ
Group:		System Environment/Libraries
License:	GPLv2+ and MIT
Requires:	python3

%description libs
Libraries needed by HPLIP.

%description libs -l ja
HPLIP 用のライブラリです。

#---------------------------------------------------------------------

%package gui
Summary:	HPLIP graphical tools
Summary(ja):	HPLIP 用 GUI ツール
Group:		Applications/System
License:	BSD
Requires:	%{name} = %{version}-%{release}
Requires:	PyQt4
Requires:	notify-python

%description gui
HP Device manager (toolbox) is a graphical utility including 
maintenance tools, supplies levels, and status information.

%description gui -l ja
HP デバイスマネージャ (toolbox) は、各種設定やインクや紙の残量確
認、ステータス情報の確認が行える HPLIP 用の GUI ユーティリティです。

#---------------------------------------------------------------------

%package -n libsane-hpaio
Summary:	SANE driver for scanners in HP's multi-function devices
Summary(ja):	HP 複合機のスキャナ用 SANE ドライバ
Group:		System Environment/Libraries
License:	GPLv2+
Requires:	%{name}-libs = %{version}-%{release}
Requires:	sane

%description -n libsane-hpaio
SANE driver for scanners in HP inkjet and laser based multi-function 
printers.

%description -n libsane-hpaio -l ja
HP インクジェット及びレーザープリンタ複合機のスキャナ機能を利用する
為の SANE ドライバです。

#---------------------------------------------------------------------

%prep
%setup -q
#patch1 -p1 -b .udev-rules

# The pstotiff filter is rubbish so replace it (launchpad #528394).
%patch1 -p1 -b .pstotiff-is-rubbish

# Fix compilation.
%patch2 -p1 -b .strstr-const

# Make utils.checkPyQtImport() look for the gui sub-package (bug #243273).
%patch3 -p1 -b .ui-optional

# Make sure to avoid handwritten asm.
%patch4 -p1 -b .no-asm

# Corrected several IEEE 1284 Device IDs using foomatic data.
# Color LaserJet 2500 series (bug #659040)
# LaserJet 4100 Series/2100 Series (bug #659039)
%patch5 -p1 -b .deviceIDs-drv
chmod +x %{SOURCE2}
mv prnt/drv/hpijs.drv.in{,.deviceIDs-drv-hpijs}
%{SOURCE2} prnt/drv/hpcups.drv.in \
           prnt/drv/hpijs.drv.in.deviceIDs-drv-hpijs \
           > prnt/drv/hpijs.drv.in

# Don't add printer queue, just check plugin.
# Move udev rules from /etc/ to /usr/lib/ (bug #748208).
%patch6 -p1 -b .udev-rules

# Retry when connecting to device fails (bug #532112).
%patch7 -p1 -b .retry-open

# Mark SNMP quirks in PPD for HP OfficeJet Pro 8500 (bug #581825).
%patch8 -p1 -b .snmp-quirks

# Fixed bogus low ink warnings from hpijs driver (bug #643643).
%patch9 -p1 -b .hpijs-marker-supply

# Clear old printer-state-reasons we used to manage (bug #510926).
%patch10 -p1 -b .clear-old-state-reasons

# Avoid busy loop in hpcups when backend has exited (bug #525944).
%patch11 -p1 -b .hpcups-sigpipe

# CUPS filters should use TMPDIR when available (bug #865603).
%patch12 -p1 -b .logdir

# Fixed Device ID parsing code in hpijs's dj9xxvip.c (bug #510926).
%patch13 -p1 -b .bad-low-ink-warning

# Add Device ID for
# HP LaserJet Color M451dn (bug #1159380)
for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4);
do
  gunzip ${ppd_file#*/}.gz
done
%patch14 -p1 -b .deviceIDs-ppd
for ppd_file in $(grep '^diff' %{PATCH14} | cut -d " " -f 4);
do
  gzip -n ${ppd_file#*/}
done

# Fix ImageableArea for Laserjet 8150/9000 (bug #596298).
for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4);
do
  gunzip ${ppd_file#*/}.gz
done
%patch15 -p1 -b .ImageableArea
for ppd_file in $(grep '^diff' %{PATCH15} | cut -d " " -f 4);
do
  gzip -n ${ppd_file#*/}
done

# Scan to /var/tmp instead of /tmp (bug #1076954).
%patch16 -p1 -b .scan-tmp

# Treat logging before importing of logger module (bug #984699).
%patch17 -p1 -b .log-stderr

# Fix parsing of avahi-daemon output (bug #1096939).
%patch18 -p1 -b .parsing

# Fixed version comparisons for x.y.z-style versions such as
# reportlab (bug #1121433).
%patch19 -p1 -b .reportlab

# Fixed left/right margins for HP DeskJet 990C (LP #1405212).
%patch20 -p1 -b .dj990c-margin

# Fixed uses of strncpy throughout.
%patch21 -p1 -b .strncpy

# Don't try to write bytecode cache for hpfax backend (bug #1192761).
%patch22 -p1 -b .no-write-bytecode

# Ignore IOError when logging output (bug #712537).
%patch23 -p1 -b .silence-ioerror

%patch70 -p1 -b .gksu

sed -i.duplex-constraints \
    -e 's,\(UIConstraints.* \*Duplex\),//\1,' \
    prnt/drv/hpcups.drv.in

# Change shebang /usr/bin/env python -> /usr/bin/python3 (bug #618351).
#find -name '*.py' -print0 | xargs -0 \
#    sed -i.env-python -e 's,^#!/usr/bin/env python,#!%{__python3},'

%build
%configure \
        --enable-scan-build --enable-gui-build --enable-fax-build \
        --disable-foomatic-rip-hplip-install --enable-pp-build \
        --enable-qt4 --enable-hpcups-install --enable-cups-drv-install \
        --enable-foomatic-drv-install --enable-dbus-build \
        --enable-hpijs-install \
	--disable-policykit \
	--with-mimedir=%{_datadir}/cups/mime \
	--with-cupsbackenddir=%{_libdir}/cups/backend \
	--with-cupsfilterdir=%{_libdir}/cups/filter \
	--with-hpppddir=%{_datadir}/foomatic/db/source/PPD/HP

sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool

make


%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT rulesdir=/lib/udev/rules.d

# Create /run/hplip
mkdir -p $RPM_BUILD_ROOT/run/hplip

# install modified .desktop
#{__install} -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}/%{_datadir}/applications/hplip.desktop

# install /usr/lib/tmpfiles.d/hplip.conf (bug #1015831)
mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d
cat > $RPM_BUILD_ROOT%{_prefix}/lib/tmpfiles.d/hplip.conf <<EOF
# See tmpfiles.d(5) for details

d /run/hplip 0775 root lp -
EOF

# remove unpacked files.
rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/sane.d \
        $RPM_BUILD_ROOT%{_docdir} \
        $RPM_BUILD_ROOT%{_datadir}/hal/fdi \
        $RPM_BUILD_ROOT%{_datadir}/hplip/pkservice.py \
        $RPM_BUILD_ROOT%{_bindir}/hp-pkservice
rm -f   $RPM_BUILD_ROOT%{_bindir}/hp-logcapture \
        $RPM_BUILD_ROOT%{_bindir}/hp-doctor \
        $RPM_BUILD_ROOT%{_datadir}/hplip/logcapture.py \
        $RPM_BUILD_ROOT%{_datadir}/hplip/doctor.py

rm -f   $RPM_BUILD_ROOT%{_bindir}/foomatic-rip \
        $RPM_BUILD_ROOT%{_libdir}/cups/filter/foomatic-rip \
        $RPM_BUILD_ROOT%{_libdir}/*.la \
        $RPM_BUILD_ROOT%{python_sitearch}/*.la \
        $RPM_BUILD_ROOT%{_libdir}/libhpip.so \
        $RPM_BUILD_ROOT%{_libdir}/sane/*.la \
        $RPM_BUILD_ROOT%{_datadir}/cups/model/foomatic-ppds \
        $RPM_BUILD_ROOT%{_datadir}/applications/hplip.desktop \
        $RPM_BUILD_ROOT%{_datadir}/ppd/HP/*.ppd


cp -p %{SOURCE1} hplip.desktop
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
sed -i -e '/^Categories=/d' hplip.desktop
# Encoding key is deprecated
sed -i -e '/^Encoding=/d' hplip.desktop
desktop-file-install --vendor ""                                \
        --dir $RPM_BUILD_ROOT%{_datadir}/applications              \
        --add-category System                                   \
        --add-category Settings                                 \
        --add-category HardwareSettings                         \
        hplip.desktop

# Regenerate hpcups PPDs on upgrade if necessary (bug #579355).
#install -p -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/hpcups-update-ppds

%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/sane.d/dll.d
echo hpaio > $RPM_BUILD_ROOT%{_sysconfdir}/sane.d/dll.d/hpaio

# Images in docdir should not be executable (bug #440552).
find doc/images -type f -exec chmod 644 {} \;

# Create an empty plugins directory to make sure it gets the right
# SELinux file context (bug #564551).
%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/hplip/prnt/plugins

# Remove files we don't want to package.
rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/hpaio.desc
rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/hplip-install
rm -rf $RPM_BUILD_ROOT%{_datadir}/hplip/install.*
rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/uninstall.*
rm -f $RPM_BUILD_ROOT%{_bindir}/hp-uninstall
rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/upgrade.*
rm -f $RPM_BUILD_ROOT%{_bindir}/hp-upgrade
rm -f $RPM_BUILD_ROOT%{_bindir}/hp-config_usb_printer
rm -f $RPM_BUILD_ROOT%{_unitdir}/hplip-printer@.service
rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/config_usb_printer.*
rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/hpijs.drv.in.template
rm -f $RPM_BUILD_ROOT%{_datadir}/cups/mime/pstotiff.types
rm -f $RPM_BUILD_ROOT%{_datadir}/hplip/fax/pstotiff*
rm -rf $RPM_BUILD_ROOT%{_prefix}/lib/systemd

# The systray applet doesn't work properly (displays icon as a
# window), so don't ship the launcher yet.
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/xdg/autostart/hplip-systray.desktop


%clean
rm -rf $RPM_BUILD_ROOT


%post libs -p /sbin/ldconfig

%postun libs -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc COPYING doc/*
#%doc %{_datadir}/doc/%{name}-%{version}
%{_bindir}/hp-align
%{_bindir}/hp-clean
%{_bindir}/hp-colorcal
%{_bindir}/hp-devicesettings
%{_bindir}/hp-diagnose_plugin
%{_bindir}/hp-diagnose_queues
%{_bindir}/hp-fab
%{_bindir}/hp-faxsetup
%{_bindir}/hp-firmware
%{_bindir}/hp-info
%{_bindir}/hp-levels
%{_bindir}/hp-linefeedcal
%{_bindir}/hp-makecopies
%{_bindir}/hp-makeuri
%{_bindir}/hp-plugin
%{_bindir}/hp-pqdiag
%{_bindir}/hp-printsettings
%{_bindir}/hp-probe
%{_bindir}/hp-query
%{_bindir}/hp-scan
%{_bindir}/hp-sendfax
%{_bindir}/hp-setup
%{_bindir}/hp-testpage
%{_bindir}/hp-timedate
%{_bindir}/hp-unload
%{_bindir}/hp-wificonfig
%{_libdir}/cups/backend/hp
%{_libdir}/cups/backend/hpfax
%{_libdir}/cups/filter/hpcups
%{_libdir}/cups/filter/hpcupsfax
%{_libdir}/cups/filter/hpps
%{_libdir}/cups/filter/pstotiff
%{_datadir}/cups/mime/pstotiff.convs

# Files
%{_datadir}/hplip/align.py*
%{_datadir}/hplip/check-plugin.py*
%{_datadir}/hplip/clean.py*
%{_datadir}/hplip/colorcal.py*
%{_datadir}/hplip/devicesettings.py*
%{_datadir}/hplip/diagnose_plugin.py*
%{_datadir}/hplip/diagnose_queues.py*
%{_datadir}/hplip/fab.py*
%{_datadir}/hplip/fax
%{_datadir}/hplip/faxsetup.py*
%{_datadir}/hplip/firmware.py*
%{_datadir}/hplip/hpdio.py*
%{_datadir}/hplip/hplip_clean.sh
%{_datadir}/hplip/hpssd*
%{_datadir}/hplip/info.py*
%{_datadir}/hplip/__init__.py*
%{_datadir}/hplip/levels.py*
%{_datadir}/hplip/linefeedcal.py*
%{_datadir}/hplip/makecopies.py*
%{_datadir}/hplip/makeuri.py*
%{_datadir}/hplip/plugin.py*
%{_datadir}/hplip/pqdiag.py*
%{_datadir}/hplip/printsettings.py*
%{_datadir}/hplip/probe.py*
%{_datadir}/hplip/query.py*
%{_datadir}/hplip/scan.py*
%{_datadir}/hplip/sendfax.py*
%{_datadir}/hplip/setup.py*
%{_datadir}/hplip/testpage.py*
%{_datadir}/hplip/timedate.py*
%{_datadir}/hplip/unload.py*
%{_datadir}/hplip/wificonfig.py*
# Directories
%{_datadir}/hplip/base
%{_datadir}/hplip/copier
%{_datadir}/hplip/data/ldl
%{_datadir}/hplip/data/localization
%{_datadir}/hplip/data/pcl
%{_datadir}/hplip/data/ps
%{_datadir}/hplip/installer
%{_datadir}/hplip/pcard
%{_datadir}/hplip/prnt
%{_datadir}/hplip/scan
%{_localstatedir}/lib/hp
%dir %attr(0775,root,lp) /run/hplip
%{_prefix}/lib/tmpfiles.d/hplip.conf

%dir %{_sysconfdir}/hp
%config(noreplace) %{_sysconfdir}/hp/hplip.conf
/lib/udev/rules.d/56-hpmud.rules
%dir %{_datadir}/hplip
%dir %{_datadir}/hplip/data
%{_datadir}/hplip/data/models

%{_bindir}/hpijs
#{_bindir}/hpcups-update-ppds
%{_datadir}/cups/drv/*
%dir %{_datadir}/foomatic/db/source/PPD/HP
%{_datadir}/foomatic/db/source/PPD/HP/*

%files libs
%defattr(-,root,root)
%{_libdir}/libhpip.so.*
# The so symlink is required here (see bug #489059).
%{_libdir}/libhpmud.so*
# Python extension
%{python_sitearch}/*

%files gui
%defattr(-,root,root)
%{_bindir}/hp-check
%{_bindir}/hp-print
%{_bindir}/hp-systray
%{_bindir}/hp-toolbox
%{_datadir}/applications/*.desktop
# Files
%{_datadir}/hplip/check.py*
%{_datadir}/hplip/print.py*
%{_datadir}/hplip/systray.py*
%{_datadir}/hplip/toolbox.py*
# Directories
%{_datadir}/hplip/data/images
%{_datadir}/hplip/ui4

%files -n libsane-hpaio
%defattr(-,root,root)
%{_libdir}/sane/libsane-hpaio*
%config(noreplace) %{_sysconfdir}/sane.d/dll.d/hpaio

%changelog
* Sun May 15 2016 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.15.2-2
- rebuild with openssl-1.0.2

* Thu Mar 19 2015 Ryoichi INAGAKI <ryo1@toki.waseda.jp> 3.15.2-1
- updated to 3.15.2
- updated Source1
- renumbered former Patch 0 and 1 to Patch 70 and 6
- built with libusb1
- added BR: desktop-file-utils

* Wed Mar 07 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.11.5-5
- rebuild with net-snmp-5.7.1

* Wed Mar 07 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.11.5-5
- rebuild with net-snmp-5.7.1

* Sun Feb 19 2012 Yoji TOYODA <bsyamato@sea.plala.or.jp> 3.11.5-4
- rebuild with python-2.7.2

* Mon Jun 13 2011 Kazutaka HARADA <kazutaka@vinelinux.org> 3.11.5-3
- add Obsoletes: hpijs < 3.10

* Sun Jun 12 2011 Kazutaka HARADA <kazutaka@vinelinux.org> 3.11.5-2
- change configure option to --enable-hpijs-install
- add Provides: hpijs
- change ppd installation path to %{_datadir}/foomatic/db/source/PPD/HP
- update Source1 (hplip.desktop.vine)
- update Patch0 (hplip-3.11.5-gksu.patch)
- add Patch1 to fix udev old syntax (hplip-udev-rules.patch)

* Tue Mar 15 2011 Kazutaka HARADA <kazutaka@vinelinux.org> 3.11.5-1
- new upstream release
- change configure option: disable qt3 and enable qt4
- add configure option: --enable-foomatic-drv-install
- add BuildRequires: openssl-devel
- add Requires: dbus-python
- add Requires: notify-python (gui)
- change Requires: PyQt to PyQt4 (gui)
- add BuildConflicts: PyQt
- add ppds below %{_datadir}/cups/model/foomatic/hp-*
  because foomatic (>= 4.0.3) drop PPDs for HP printers.

* Fri Jul 24 2009 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 3.9.4b-3
- add Patch0 to require root privilege (via gksu) when adding printer
- add Requires: gksu

* Mon Jun 08 2009 Shu KONNO <owa@bg.wakwak.com> 3.9.4b-2
- added --with-cupsfilterdir to configure option
- use python_sitearch macro instead of python_platlib

* Sun Jun 07 2009 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 3.9.4b-1
- new upstream release
- split libraries to -libs sub package
- update configure option
  add --enable-dbus-build, --enable-qt3, --disable-qt4

* Mon Jul 21 2008 Shu KONNO <owa@bg.wakwak.com> 2.7.12-1vl5
- rebuilt with python-2.5.2
- added python_platlib macro
- applied new versioning policy and spec in utf-8

* Sun Jan  6 2008 Shu KONNO <owa@bg.wakwak.com> 2.7.12-0vl2
- added --with-cupsbackenddir=%%{_libdir}/cups/backend to configure

* Thu Jan  3 2008 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 2.7.12-0vl1
- new upstream release
- build with net-snmp-5.4.1

* Thu Jun 28 2007 Kazutaka HARADA <kazutaka@dc4.so-net.ne.jp> 2.7.6-0vl1
- initial build for Vine Linux
