mirror of
https://abf.rosa.ru/djam/sane.git
synced 2025-02-23 17:23:00 +00:00
442 lines
14 KiB
RPMSpec
442 lines
14 KiB
RPMSpec
%define iscanversion 2.29.3
|
|
|
|
%define major 1
|
|
%define libname %mklibname %{name} %{major}
|
|
%define devname %mklibname %{name} %{major} -d
|
|
|
|
%bcond_without gphoto2
|
|
%bcond_without primax
|
|
%bcond_without v4l
|
|
%bcond_without epkowa
|
|
|
|
# All sane backends have SONAME libsane.so.1. We do not want
|
|
# sane-backends-iscan to provide libsane.so.1, so filter these out.
|
|
%define __noautoprovfiles %{_libdir}/sane
|
|
|
|
%define __libtoolize /bin/true
|
|
|
|
# Setting this makes the /etc/sane.d/dll.conf empty so that scanning apps
|
|
# do not search for all existing scanner models which makes their startup
|
|
# slow (the user or "scannerdrake" has to insert the names of the really
|
|
# installed scanners then)
|
|
%bcond_with empty_dll_conf
|
|
|
|
Summary: SANE - local and remote scanner access
|
|
Name: sane
|
|
Version: 1.0.25
|
|
Release: 3
|
|
# lib/ is LGPLv2+, backends are GPLv2+ with exceptions
|
|
# Tools are GPLv2+, docs are public domain
|
|
License: GPLv2+ and GPLv2+ with exceptions and Public Domain
|
|
Group: Graphics
|
|
Url: http://www.sane-project.org/
|
|
Source0: http://alioth.debian.org/frs/download.php/file/3958/sane-backends-%{version}.tar.gz
|
|
Source3: http://downloads.sourceforge.net/project/px-backend/primaxscan-source/1.1.beta1/primaxscan-1.1.beta1.tar.gz
|
|
Source5: saned-xinetd
|
|
Source9: http://downloads.sourceforge.net/project/hp44x0backend/hp44x0backend/sane_hp_rts88xx-0.18/sane_hp_rts88xx-0.18.tar.gz
|
|
Source10: http://downloads.sourceforge.net/project/brother-mfc/brother-mfc/sane-driver/sane-driver-0.2.tar.gz
|
|
Source11: http://www.geocities.com/trsh0101/SANE/primascan.h
|
|
Source12: http://www.geocities.com/trsh0101/SANE/primascan.c
|
|
# The free part of Epson's scanner driver package IScan, full package
|
|
# downloaded from http://www.avasys.jp/english/linux_e/index.html
|
|
# Non-free part stripped out with
|
|
# mkdir x; cd x; tar -xvzf ../iscan_2.21.0-6.tar.gz; rm -f */non-free/EAPL*.txt */non-free/lib*.so; tar -cvjf ../iscan_2.21.0-6-free.tar.bz2 *; cd ..; rm -rf x
|
|
Source13: iscan-%{iscanversion}-3-free.tar.bz2
|
|
Source14: http://downloads.sourceforge.net/project/geniusvp2/sane-backend-geniusvp2/1.0.16.1/sane-backend-geniusvp2_1.0.16.1.tar.gz
|
|
Source15: sane.rpmlintrc
|
|
Patch0: sane-backends-1.0.18-plustek-s12.patch
|
|
# (fc) 1.0.19-12mdv fix group for device
|
|
Patch1: sane-backends-1.0.20-group.patch
|
|
# (fc) list Brother MFC-260C, DCP130C as supported (Mdv bug # 52951)
|
|
Patch2: sane-backends-1.0.22-brother2list.patch
|
|
Patch3: sane-backends-1.0.20-strformat.patch
|
|
Patch4: sane-backends-1.0.23-have-pthread.patch
|
|
|
|
# Debian patches
|
|
# new build system breaks build when using pthreads.
|
|
Patch10: 01_missing_pthreads.dpatch
|
|
# add back SANE_CAP_ALWAYS_SETTABLE which was mistakenly
|
|
# removed from SANE 1.0.20
|
|
Patch11: 06_cap_always_settable.dpatch
|
|
# Use fedora's patch to remove rpath
|
|
# Patch to the dll backend to look for pieces of dll.conf inside the
|
|
# /etc/sane.d/dll.d/ directory. This is a facility for packages providing
|
|
# external backends (like libsane-extras, hpoj and hplip).
|
|
Patch12: 22_dll_backend_conf.dpatch
|
|
Patch13: 24_sane-desc.c_debian_mods.dpatch
|
|
|
|
# Fedora patches
|
|
Patch20: sane-backends-1.0.20-open-macro.patch
|
|
Patch21: sane-backends-1.0.23-udev.patch
|
|
|
|
Patch30: iscan-2.29.3-fix-link.patch
|
|
Patch31: iscan-2.20.1-no_non-free_please.diff
|
|
Patch32: iscan-2.28.1-linkage_fix.patch
|
|
|
|
BuildRequires: gettext
|
|
BuildRequires: gettext-devel
|
|
BuildRequires: ieee1284-devel
|
|
BuildRequires: jpeg-devel
|
|
BuildRequires: libtool-devel
|
|
BuildRequires: pkgconfig(gtk+-2.0)
|
|
BuildRequires: pkgconfig(libtiff-4)
|
|
%if %{with gphoto2}
|
|
BuildRequires: pkgconfig(libgphoto2)
|
|
%endif
|
|
BuildRequires: pkgconfig(libusb)
|
|
%if %{with v4l}
|
|
BuildRequires: pkgconfig(libv4l1)
|
|
%endif
|
|
# ensure resmgr is not pulled
|
|
BuildConflicts: resmgr-devel
|
|
|
|
%description
|
|
SANE (Scanner Access Now Easy) is a sane and simple interface
|
|
to both local and networked scanners and other image acquisition devices
|
|
like digital still and video cameras. SANE currently includes modules for
|
|
accessing a range of scanners, including models from Agfa SnapScan, Apple,
|
|
Artec, Canon, CoolScan, Epson, HP, Microtek, Mustek, Nikon, Siemens,
|
|
Tamarack, UMAX, Connectix, QuickCams and other SANE devices via network.
|
|
|
|
For the latest information on SANE, the SANE standard definition, and
|
|
mailing list access, see http://www.mostang.com/sane/
|
|
|
|
This package does not enable network scanning by default; if you wish
|
|
to enable it, install the saned package.
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n %{libname}
|
|
Summary: Shared libraries for SANE
|
|
License: LGPLv2.1+
|
|
Group: System/Libraries
|
|
|
|
%description -n %{libname}
|
|
This package contains the shared libraries for %{name}.
|
|
|
|
%files -n %{libname}
|
|
%{_libdir}/libsane.so.%{major}*
|
|
%dir %{_libdir}/sane
|
|
%{_libdir}/sane/*.so.%{major}*
|
|
%if %{with epkowa}
|
|
%exclude %{_libdir}/sane/libsane-epkowa.so.%{major}*
|
|
%endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n %{devname}
|
|
Summary: Development files for SANE
|
|
License: LGPLv2.1+
|
|
Group: Development/C
|
|
Requires: %{libname} = %{EVRD}
|
|
Provides: sane-devel = %{EVRD}
|
|
|
|
%description -n %{devname}
|
|
This package contains the headers and development libraries necessary
|
|
to develop applications using SANE.
|
|
|
|
%files -n %{devname}
|
|
%{_bindir}/sane-config
|
|
%{_libdir}/libsane.so
|
|
%{_libdir}/sane/*.so
|
|
%{_includedir}/sane
|
|
%{_libdir}/pkgconfig/sane-backends.pc
|
|
%if %{with epkowa}
|
|
%exclude %{_libdir}/sane/libsane-epkowa.so
|
|
%endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package backends
|
|
Summary: SANE - local and remote scanner access
|
|
License: LGPLv2.1+
|
|
Group: System/Kernel and hardware
|
|
Provides: %{name} = %{EVRD}
|
|
%if %{with epkowa}
|
|
Suggests: iscan
|
|
%endif
|
|
Suggests: sane-firmware
|
|
Requires(pre,postun): rpm-helper
|
|
|
|
%description backends
|
|
This package contains the backends for different scanners.
|
|
|
|
%files backends -f sane-backends.lang
|
|
%doc %{_docdir}/sane-backends-%{version}
|
|
%{_bindir}/sane-find-scanner
|
|
%{_bindir}/scanimage
|
|
%{_bindir}/gamma4scanimage
|
|
%if %{with primax}
|
|
%{_bindir}/primax_scan
|
|
%endif
|
|
%{_bindir}/umax_pp
|
|
%{_mandir}/man1/*
|
|
%{_mandir}/man5/*
|
|
%{_mandir}/man7/*
|
|
%dir %{_sysconfdir}/sane.d
|
|
%config(noreplace) %{_sysconfdir}/sane.d/*
|
|
%{_udevrulesdir}/*-libsane.rules
|
|
%attr(1777,root,root) %dir /var/lib/lock/sane
|
|
%if %{with epkowa}
|
|
# iscan files
|
|
%exclude %{_sysconfdir}/sane.d/epkowa.conf
|
|
%exclude %{_mandir}/man5/sane-epkowa.5*
|
|
%endif
|
|
|
|
%pre backends
|
|
%_pre_groupadd scanner
|
|
|
|
%postun backends
|
|
%_postun_groupdel scanner
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%if %{with epkowa}
|
|
%package backends-iscan
|
|
Summary: SANE - local and remote scanner access
|
|
License: LGPLv2.1+
|
|
Group: System/Kernel and hardware
|
|
Provides: iscan = %{iscanversion}
|
|
|
|
%description backends-iscan
|
|
This package contains the iscan backend, in order to not conflict with
|
|
manufacturer-supplied packages.
|
|
|
|
%files backends-iscan
|
|
%{_libdir}/sane/libsane-epkowa.so.%{major}*
|
|
%{_libdir}/sane/libsane-epkowa.so
|
|
%{_sysconfdir}/sane.d/epkowa.conf
|
|
%{_mandir}/man5/sane-epkowa.5*
|
|
%{_mandir}/man8/iscan-registry.*
|
|
%endif
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package backends-doc
|
|
Summary: Documentation for SANE backends
|
|
Group: Documentation
|
|
|
|
%description backends-doc
|
|
This package contains the SANE backend documentation for different
|
|
scanners.
|
|
|
|
%files backends-doc
|
|
%doc %{_docdir}/sane-backends-doc-%{version}
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%package -n saned
|
|
Summary: SANE - local and remote scanner access
|
|
License: LGPLv2.1+
|
|
Group: System/Kernel and hardware
|
|
Provides: saned = %{EVRD}
|
|
Requires: sane-backends >= %{EVRD}
|
|
Requires(post,postun): xinetd
|
|
Requires(preun,post): rpm-helper
|
|
|
|
%description -n saned
|
|
This package contains saned, a daemon that allows remote clients to
|
|
access image acquisition devices available on the local host.
|
|
|
|
%files -n saned
|
|
%{_sbindir}/*
|
|
%{_mandir}/man8/saned*
|
|
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/xinetd.d/saned
|
|
|
|
%post -n saned
|
|
systemctl restart xinetd
|
|
|
|
%pre -n saned
|
|
# Add saned to group scanner, cdwriter and usb for scanner access.
|
|
/usr/sbin/useradd -r -M -s /bin/false -c "system user for saned" saned -G cdwriter,usb,scanner || :
|
|
|
|
%preun -n saned
|
|
systemctl restart xinetd
|
|
|
|
%postun -n saned
|
|
systemctl restart xinetd
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
%prep
|
|
%setup -qn sane-backends-%{version}
|
|
|
|
%patch0 -p1 -b .plusteks12
|
|
%patch1 -p1 -b .group
|
|
%patch2 -p1 -b .brother2list
|
|
%patch3 -p1 -b .strformat
|
|
%patch4 -p1 -b .pthread
|
|
|
|
%patch10 -p1
|
|
%patch11 -p1
|
|
%patch12 -p1
|
|
%patch13 -p1
|
|
|
|
# Fedora patches
|
|
%patch20 -p1 -b .open-macro
|
|
%patch21 -p1 -b .udev
|
|
|
|
# Primax parallel port scanners
|
|
%if %{with primax}
|
|
%setup -q -T -D -a 3 -n sane-backends-%{version}
|
|
%endif
|
|
|
|
# "primascan" backend
|
|
# (commented out in dll.conf, as it claims to support every USB scanner)
|
|
cat %{SOURCE11} > backend/primascan.h
|
|
cat %{SOURCE12} > backend/primascan.c
|
|
echo '#primascan' >> backend/dll.conf.in
|
|
|
|
# Epson Avasys driver for Epson scanners
|
|
%if %{with epkowa}
|
|
%setup -q -T -D -a 13 -n sane-backends-%{version}
|
|
%endif
|
|
|
|
# lib64 fixes (avoid patch)
|
|
# NOTE: don't regenerate configure script past this line
|
|
perl -pi -e "s@/lib(\"|\b[^/])@/%_lib\1@g if /LDFLAGS=.*with_ptal/" configure
|
|
|
|
# Reduce number of retries done by the "snapscan" backend when accessing
|
|
# the scanner
|
|
perl -p -i -e 's:for \(retries = 20; retries; retries--\):for (retries = 5; retries; retries--):' backend/snapscan-scsi.c
|
|
|
|
%if %{with epkowa}
|
|
pushd iscan-%{iscanversion}
|
|
%patch30 -p0 -b .iscan-2.10.0-1_fix_link
|
|
%patch31 -p0 -b .no_non-free_please
|
|
%patch32 -p2 -b .linkage_fix
|
|
popd
|
|
%endif
|
|
|
|
# Remove the backend/dll.conf file generated by the patches, it prevents
|
|
# the Makefile from generating the real dll.conf file
|
|
rm -f backend/dll.conf
|
|
|
|
%build
|
|
%configure2_5x \
|
|
--disable-static \
|
|
--enable-rpath=no \
|
|
%if !%{with gphoto2}
|
|
--without-gphoto2
|
|
%endif
|
|
|
|
%make
|
|
|
|
# Primax parallel port scanners
|
|
%if %{with primax}
|
|
chmod a+rx tools/sane-config
|
|
cd primaxscan*
|
|
autoreconf -fi
|
|
PATH=`pwd`/../tools:${PATH}
|
|
CFLAGS="${RPM_OPT_FLAGS/-ffast-math/} -fPIC -I`pwd`/../include -L`pwd`/../backend/.libs/"\
|
|
%configure2_5x \
|
|
--disable-static
|
|
|
|
%make
|
|
%make primax_scan
|
|
cd ..
|
|
%endif
|
|
|
|
# Epson Avasys driver for Epson scanners
|
|
%if %{with epkowa}
|
|
chmod a+rx tools/sane-config
|
|
PATH=`pwd`/tools:${PATH}
|
|
cd iscan-%{iscanversion}
|
|
sh ./bootstrap
|
|
export CFLAGS="${RPM_OPT_FLAGS/-ffast-math/} -I`pwd`/../include -L`pwd`/../backend/ -fPIC"
|
|
export CXXFLAGS="${RPM_OPT_FLAGS/-ffast-math/} -I`pwd`/../include -L`pwd`/../backend/ -fPIC"
|
|
export LIBUSB_1_0_LIBS="-lusb"
|
|
%configure2_5x \
|
|
--disable-static \
|
|
--disable-frontend
|
|
%make
|
|
cd ..
|
|
%endif
|
|
|
|
%install
|
|
%makeinstall_std
|
|
|
|
# Create missing lock dir
|
|
install -d %{buildroot}/var/lib/lock/sane
|
|
|
|
perl -pi -e "s/installed.*/installed=yes/g" %{buildroot}%{_libdir}/libsane.la
|
|
/sbin/ldconfig -n %{buildroot}%{_libdir} %{buildroot}%{_libdir}/sane
|
|
|
|
# Comment out entry for the "geniusvp2" backend in
|
|
# /etc/sane.d/dll.conf as it makes SANE hanging on some systems when
|
|
# the appropriate scanner is not present
|
|
perl -p -i -e 's/^(\s*geniusvp2)/\#$1/g' %{buildroot}%{_sysconfdir}/sane.d/dll.conf
|
|
|
|
# Enable stocks driver by default
|
|
sed -i 's/^#epson/epson/g' %{buildroot}%{_sysconfdir}/sane.d/dll.conf
|
|
|
|
# Remove "hpoj" line from /etc/sane.d/dll.con
|
|
perl -p -i -e 's/HP\s+OfficeJet/HPLIP/g' %{buildroot}%{_sysconfdir}/sane.d/dll.conf
|
|
perl -p -i -e 's/hpoj.sf.net/hplip.sf.net/g' %{buildroot}%{_sysconfdir}/sane.d/dll.conf
|
|
perl -p -i -e 's/hpoj/hpaio/g' %{buildroot}%{_sysconfdir}/sane.d/dll.conf
|
|
|
|
%if %{with empty_dll_conf}
|
|
# The /etc/sane.d/dll.conf contains lines for every backend, so every
|
|
# backend probes for a scanner when a SANE frontend (e. g. xsane) is
|
|
# started. With this the user has always to wait around one minute
|
|
# before he can scan. We simply replace the file by a nearly empty one
|
|
# and let scannerdrake only insert the needed backends. So the
|
|
# frontends will start immediately
|
|
mv %{buildroot}%{_sysconfdir}/sane.d/dll.conf %{buildroot}%{_sysconfdir}/sane.d/dll.conf.orig
|
|
cat > %{buildroot}%{_sysconfdir}/sane.d/dll.conf <<EOF
|
|
# enable the next line if you want to allow access through the network:
|
|
net
|
|
EOF
|
|
%endif
|
|
|
|
# Move documentation from /usr/doc to /usr/share/doc
|
|
install -d %{buildroot}%{_docdir}/sane-backends-%{version}/
|
|
install -d %{buildroot}%{_docdir}/sane-backends-doc-%{version}/
|
|
pushd %{buildroot}/usr/doc/sane-%{version}
|
|
mv `find -mindepth 1 -type d` *.html *.txt %{buildroot}%{_docdir}/sane-backends-doc-%{version}/
|
|
mv README README.linux %{buildroot}%{_docdir}/sane-backends-%{version}/
|
|
rm -f README.*
|
|
mv * %{buildroot}%{_docdir}/sane-backends-%{version}/
|
|
popd
|
|
|
|
# Primax parallel port scanners
|
|
%if %{with primax}
|
|
cd primaxscan*
|
|
%makeinstall_std
|
|
rm -f %{buildroot}%{_libdir}/libsane-primax.a %{buildroot}%{_prefix}/lib/sane/libsane-primax.a
|
|
cp primax_scan %{buildroot}%{_bindir}
|
|
cd ..
|
|
|
|
%ifarch x86_64
|
|
mv -f %{buildroot}%{_prefix}/lib/sane/libsane-primax.* %{buildroot}%{_libdir}/sane/
|
|
rm -rf %{buildroot}%{_prefix}/lib/sane/
|
|
%endif
|
|
|
|
%endif
|
|
|
|
# Epson Avasys driver for Epson scanners
|
|
%if %{with epkowa}
|
|
cd iscan-%{iscanversion}
|
|
%makeinstall_std
|
|
rm -f %{buildroot}%{_libdir}/sane/libsane-epkowa.a
|
|
rm -f %{buildroot}%{_mandir}/man1/iscan.1*
|
|
rm -rf %{buildroot}%{_libdir}/iscan
|
|
cp backend/epkowa.conf %{buildroot}%{_sysconfdir}/sane.d/
|
|
echo 'epkowa' >> %{buildroot}%{_sysconfdir}/sane.d/dll.conf
|
|
cd ..
|
|
%endif
|
|
|
|
# Xinetd.d entry
|
|
mkdir %{buildroot}/etc/xinetd.d
|
|
cat %{SOURCE5} > %{buildroot}/etc/xinetd.d/saned
|
|
|
|
# udev rules for libusb user support
|
|
mkdir -p %{buildroot}/lib/udev/rules.d
|
|
install -m644 tools/udev/libsane.rules %{buildroot}/lib/udev/rules.d/60-libsane.rules
|
|
# Shorten too long comments
|
|
perl -p -i -e 's/(\#.{500}).*$/$1 .../' %{buildroot}/lib/udev/rules.d/60-libsane.rules
|
|
|
|
%find_lang sane-backends
|
|
|
|
sed -i '/^%dir/d' sane-backends.lang
|
|
|