File yast2-printer.spec of Package yast2-printer
#
# spec file for package yast2-printer
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: yast2-printer
Version: 3.1.1
Release: 0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source0: %{name}-%{version}.tar.bz2
# Source1 modify_cupsd_conf.for_cups-browsed is
# a replacement for modify_cupsd_conf in Source0
# that provides additional support for cups-browsed:
Source1: modify_cupsd_conf.for_cups-browsed
# Source2 cups_client_only.for_cups_since_version_1.6 is
# a replacement for cups_client_only in Source0
# that provides additional support for CUPS since version 1.6:
Source2: cups_client_only.for_cups_since_version_1.6
# Source3 test_remote_ipp.without_ping is
# a replacement for test_remote_ipp in Source0
# that does no longer use 'ping' so that there is
# no need to distinguish between IPv4 and IPv6
# and it does no longer use 'netcat' (fate#312491):
Source3: test_remote_ipp.without_ping
# Source4 test_remote_lpd.without_ping is
# a replacement for test_remote_lpd in Source0
# that does no longer use 'ping' so that there is
# no need to distinguish between IPv4 and IPv6
# and it does no longer require 'netcat' (fate#312491):
Source4: test_remote_lpd.without_ping
# Source5 test_remote_novell.without_ping is
# a replacement for test_remote_novell in Source0
# that does no longer use 'ping' so that there is
# no need to distinguish between IPv4 and IPv6
# and it does no longer use 'netcat' (fate#312491):
Source5: test_remote_novell.without_ping
# Source6 test_remote_smb.without_ping is
# a replacement for test_remote_smb in Source0
# that does no longer use 'ping' so that there is
# no need to distinguish between IPv4 and IPv6
# and it does no longer use 'netcat' (fate#312491):
Source6: test_remote_smb.without_ping
# Source7 test_remote_socket.without_ping is
# a replacement for test_remote_socket in Source0
# that does no longer use 'ping' so that there is
# no need to distinguish between IPv4 and IPv6
# and it does no longer use 'netcat' (fate#312491):
Source7: test_remote_socket.without_ping
# Patch100 replace_network_test_with_echo.diff implements
# fate#312491 "IPv6 support for YaST printer module":
Patch100: replace_network_test_with_echo.diff
# Patch101 use_fast_append_instead_of_slow_add.diff replaces
# slow Builtins.add() with fast '<<' append operator
# where needed to avoid "hang up impression" (bnc#877516):
Patch101: use_fast_append_instead_of_slow_add.diff
# Patch102 restart_cupsd_when_driver_RPMs_changed.diff
# shows the "Restart locally running CUPS daemon" user confirmation popup
# because usually a change in printer driver RPMs (installation or removal)
# changes print job processing which requires a restart of cupsd,
# see https://bugzilla.novell.com/show_bug.cgi?id=888782
Patch102: restart_cupsd_when_driver_RPMs_changed.diff
# Patch103 disable_legacy_items_and_add_beh_requirement.diff
# disables legacy stuff and adds the cups-backends RPM as requirement for beh:
Patch103: disable_legacy_items_and_add_beh_requirement.diff
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-libX11-devel
BuildRequires: yast2
BuildRequires: yast2-core-devel
BuildRequires: yast2-devtools >= 3.0.6
BuildRequires: yast2-testsuite
Recommends: cups-client iptables netcat samba-client
Requires: /bin/mktemp
Requires: /bin/ping
Requires: /usr/bin/sed
Requires: yast2 >= 2.16.12
# Used to exclude libX11, libXau, libxcb, and libxcb-xlib from the requires list
# which are pulled in by Autoreqprov because of the basicadd_displaytest tool:
%define my_requires /tmp/my-requires
Requires: yast2-ruby-bindings >= 1.0.0
Summary: YaST2 - Printer Configuration
License: GPL-2.0
Group: Documentation/SUSE
%package devel-doc
BuildRequires: cups-devel
BuildRequires: yast2-core-devel
Summary: Developer documentation for yast2-printer
Group: Documentation/SUSE
%description
This package contains the YaST2 component for printer configuration.
%description devel-doc
Developer documentation for yast2-printer.
%prep
%setup -n %{name}-%{version}
# Patch100 replace_network_test_with_echo.diff implements
# fate#312491 "IPv6 support for YaST printer module":
%patch100 -p1 -b .replace_network_test_with_echo.orig
# Patch101 use_fast_append_instead_of_slow_add.diff replaces
# slow Builtins.add() with fast '<<' append operator
# where needed to avoid "hang up impression" (bnc#877516):
%patch101 -b .use_fast_append_instead_of_slow_add.orig
# Patch102 restart_cupsd_when_driver_RPMs_changed.diff
# shows the "Restart locally running CUPS daemon" user confirmation popup
# because usually a change in printer driver RPMs (installation or removal)
# changes print job processing which requires a restart of cupsd,
# see https://bugzilla.novell.com/show_bug.cgi?id=888782
%patch102 -b .restart_cupsd_when_driver_RPMs_changed.orig
# Patch103 disable_legacy_items_and_add_beh_requirement.diff
# disables legacy stuff and adds the cups-backends RPM as requirement for beh:
%patch103 -b .disable_legacy_items_and_add_beh_requirement.orig
%build
%yast_build
%install
%yast_install
# Replace the installed modify_cupsd_conf by the new one in Source1:
install -m 755 %{SOURCE1} %{buildroot}%{yast_ybindir}/modify_cupsd_conf
# Replace the installed cups_client_only by the new one in Source2:
install -m 755 %{SOURCE2} %{buildroot}%{yast_ybindir}/cups_client_only
# Replace the installed test_remote_ipp by the new one in Source3:
install -m 755 %{SOURCE3} %{buildroot}%{yast_ybindir}/test_remote_ipp
# Replace the installed test_remote_lpd by the new one in Source4:
install -m 755 %{SOURCE4} %{buildroot}%{yast_ybindir}/test_remote_lpd
# Replace the installed test_remote_novell by the new one in Source5:
install -m 755 %{SOURCE5} %{buildroot}%{yast_ybindir}/test_remote_novell
# Replace the installed test_remote_smb by the new one in Source6:
install -m 755 %{SOURCE6} %{buildroot}%{yast_ybindir}/test_remote_smb
# Replace the installed test_remote_socket by the new one in Source7:
install -m 755 %{SOURCE7} %{buildroot}%{yast_ybindir}/test_remote_socket
# Exclude libX11, libXau, libxcb, and libxcb-xlib from the requires list
# which are pulled in by Autoreqprov because of the basicadd_displaytest tool:
cat << EOF > %{my_requires}
grep -v 'basicadd_displaytest' | %{__find_requires}
EOF
chmod 755 %{my_requires}
%define __find_requires %{my_requires}
%files
%defattr(-,root,root)
%dir %{yast_yncludedir}/printer
%{yast_desktopdir}/printer.desktop
%{yast_moduledir}/*.rb
%{yast_clientdir}/printer*
%{yast_yncludedir}/printer/*
%{yast_schemadir}/autoyast/rnc/printer.rnc
%{yast_ydatadir}/testprint.ps
%{yast_ydatadir}/testprint.2pages.ps
%{yast_ybindir}/autodetect_print_queues
%{yast_ybindir}/autodetect_printers
%{yast_ybindir}/create_printer_ppd_database
%{yast_ybindir}/determine_printer_driver_options
%{yast_ybindir}/cups_client_only
%{yast_ybindir}/modify_cupsd_conf
%{yast_ybindir}/test_device
%{yast_ybindir}/test_remote_ipp
%{yast_ybindir}/test_remote_lpd
%{yast_ybindir}/test_remote_novell
%{yast_ybindir}/test_remote_smb
%{yast_ybindir}/test_remote_socket
%{yast_ybindir}/basicadd_displaytest
#Documentation
%dir %{yast_docdir}
%{yast_docdir}/COPYING
%files devel-doc
%defattr(-,root,root)
%doc %{yast_docdir}
%exclude %{yast_docdir}/COPYING
%changelog