File cnijfilter.spec of Package cnijfilter-mp495series
# vim: set ts=4 sw=4 et:
%define MODELS mp250:356 mp280:370 mp495:369 mg5100:373 ip4800:375 mg5200:374 mg6100:376 mg8100:377
%define _arc %(getconf LONG_BIT)
%define _is64 %(if [ `getconf LONG_BIT` = "64" ] ; then printf "64"; fi)
%define _cupsbindir %{_libdir}/cups
%define _ppddir %{_prefix}
%define CNBP_LIBS libcnbpcmcm libcnbpcnclapi libcnbpcnclbjcmd libcnbpcnclui libcnbpess libcnbpo
%define COM_LIBS libcnnet
%define PRINT_PKG_PROGRAM ppd cnijfilter printui lgmon cngpijmon
Summary: Canon Inkjet Printer Driver Collection for Linux
Name: cnijfilter
Version: 3.40+1
%define pkg_version 3.40-1
%define pure_version 3.40
Release: 1
License: GPL-3.0+
Vendor: CANON INC.
Group: Hardware/Printing
# http://files.canon-europe.com/files/soft40245/software/cnijfilter-source-%{pkg_version}.tar.gz
Source0: cnijfilter-source-%{pkg_version}.tar.bz2
Patch1: cnijfilter-fix_l10n.patch
Patch2: cnijfilter-fix_cngpijmon.patch
Patch3: cnijfilter-fix_missing_includes.patch
Patch4: cnijfilter-new-cups-include.patch
Patch5: cnijfilter-new-png.patch
Patch6: cnijfilter-drop-sys-sysctl-include.patch
Patch7: cnijfilter-new-cups-ipp.patch
BuildRequires: gtk2-devel cups-devel popt-devel libtiff-devel libxml2-devel libglade2-devel
%if "0%{?suse_version}" > "1120"
BuildRequires: libpng12-devel
%else
BuildRequires: libpng-devel
%endif
BuildRequires: gcc-c++
BuildRequires: automake autoconf libtool
ExclusiveArch: %ix86 x86_64
%description
Empty package, this one won't be built as a binary package, but needed as top-level anyway.
%package common
Summary: Common Canon Inkjet Printer Driver files
License: GPL-3.0+
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cups
%description common
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment.
%package mp250series
Summary: Canon Inkjet printer driver for the MP250 series
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description mp250series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model MP250.
%package mp280series
Summary: Canon Inkjet printer driver for the MP280 series
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description mp280series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model MP280.
%package mp495series
Summary: Canon Inkjet printer driver for the MP495 series
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description mp495series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model MP495.
%package mg5100series
Summary: Canon Inkjet printer driver for the MG5100 series
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description mg5100series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model MG5100.
%package mg5200series
Summary: Canon Inkjet printer driver for the MG5200 series
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description mg5200series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model MG5200.
%package mg6100series
Summary: Canon Inkjet printer driver for the MG6100 series
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description mg6100series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model MG6100.
%package mg8100series
Summary: Canon Inkjet printer driver for the MG8100 series
Vendor: CANON INC.
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description mg8100series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model MG8100.
%package ip4800series
Summary: Canon Inkjet printer driver for the IP4800 series
Group: Hardware/Printing
Requires: cnijfilter-common = %{version}-%{release}
%description ip4800series
IJ Printer Driver for Linux.
This IJ Printer Driver provides printing functions for Canon Inkjet
printers operating under the CUPS (Common UNIX Printing System) environment,
for the model IP4800.
%prep
%autosetup -p1 -n "cnijfilter-source-%{pkg_version}"
%__cp lgmon/include/cncl/cncldef.h backendnet/lmonitor/
%build
for d in ppd cnijfilter printui lgmon cngpijmon libs cngpij pstocanonij backend backendnet cngpijmon/cnijnpr; do
pushd "$d"
NOCONFIGURE=1 ./autogen.sh
popd #"$d"
done
for m in %{MODELS}; do
model="${m%%:*}"
mnum="${m##*:}"
pushd ppd
CFLAGS="%{optflags}" \
%configure --program-suffix="$model"
make clean
make %{?_smp_flags}
%makeinstall
popd
pushd cnijfilter
CFLAGS="%{optflags} -I%{_includedir}/libpng12" \
%configure --program-suffix="$model" --enable-libpath=%{_libdir}/bjlib --enable-binpath=%{_bindir}
make clean
make %{?_smp_flags} CFLAGS="%{optflags} -I%{_includedir}/libpng12"
%makeinstall
popd
pushd printui
CFLAGS="%{optflags}" \
%configure --program-suffix="$model" --datadir=%{_prefix}/share --enable-libpath=%{_libdir}/bjlib
make clean
make %{?_smp_flags} CFLAGS="%{optflags}"
%makeinstall
popd
pushd lgmon
CFLAGS="%{optflags}" \
%configure --program-suffix="$model" --enable-progpath=%{_bindir}
make clean
make %{?_smp_flags} CFLAGS="%{optflags}"
%makeinstall
popd
pushd cngpijmon
CFLAGS="%{optflags}" \
%configure --program-suffix="$model" --enable-progpath=%{_bindir}
make clean
make %{?_smp_flags} \
CFLAGS="%{optflags} `pkg-config --cflags libglade-2.0` -DUSE_libglade" \
LIBS="`pkg-config --libs libglade-2.0`"
%makeinstall
popd
%__install -d "%{buildroot}%{_libdir}/bjlib"
%__install -c -m 644 "$mnum/database"/* "%{buildroot}%{_libdir}/bjlib/"
%__install -c -s -m 755 "$mnum/libs_bin%{_arc}"/*.so.* "%{buildroot}%{_libdir}/"
done # for m in ...
pushd libs
CFLAGS="%{optflags}" \
%configure
popd
pushd cngpij
CFLAGS="%{optflags}" \
%configure --enable-progpath=%{_bindir}
popd
pushd pstocanonij
CFLAGS="%{optflags}" \
%configure --enable-progpath=%{_bindir}
popd
pushd backend
CFLAGS="%{optflags}" \
%configure --enable-progpath=%{_bindir}
popd
BDIR="$PWD"
pushd backendnet
CFLAGS="%{optflags} -I$BDIR/backendnet/lmonitor/common" \
LDFLAGS="-L$BDIR/com/libs_bin%{_arc}" \
%configure --enable-progpath=%{_bindir} LDFLAGS="-L$BDIR/com/libs_bin%{_arc}"
popd
pushd cngpijmon/cnijnpr
CFLAGS="%{optflags}" \
%configure --enable-progpath=%{_bindir}
popd
make %{?_smp_flags} CFLAGS="%{optflags} -Icommon"
mv ${RPM_BUILD_ROOT} ${RPM_BUILD_ROOT}.backup
%install
mkdir -p ${RPM_BUILD_ROOT}
mv ${RPM_BUILD_ROOT}.backup/* ${RPM_BUILD_ROOT}
mkdir -p ${RPM_BUILD_ROOT}%{_bindir}
mkdir -p ${RPM_BUILD_ROOT}%{_cupsbindir}/filter
mkdir -p ${RPM_BUILD_ROOT}%{_cupsbindir}/backend
mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/share/cups/model
install -c -m 644 com/ini/cnnet.ini ${RPM_BUILD_ROOT}%{_libdir}/bjlib
make install DESTDIR=${RPM_BUILD_ROOT}
install -c -s -m 755 com/libs_bin%{_arc}/*.so.* ${RPM_BUILD_ROOT}%{_libdir}
%if "%{_lib}" != "lib"
%__install -d "%{buildroot}%{_libdir}/cups/backend"
%__mv "%{buildroot}%{_prefix}/lib/cups/backend"/* "%{buildroot}%{_libdir}/cups/backend/"
%__rm -rf "%{buildroot}%{_prefix}/lib/cups"
%__install -d "%{buildroot}%{_prefix}/lib/cups/filter"
%__ln_s "%{_libdir}/cups/filter/pstocanonij" "%{buildroot}%{_prefix}/lib/cups/filter/pstocanonij"
%__install -d "%{buildroot}%{_prefix}/lib/cups/backend"
%__ln_s "%{_libdir}/cups/backend/cnijnet" "%{buildroot}%{_prefix}/lib/cups/backend/cnijnet"
%__ln_s "%{_libdir}/cups/backend/cnijusb" "%{buildroot}%{_prefix}/lib/cups/backend/cnijusb"
%endif
# fix invalid locales
pushd "%{buildroot}%{_datadir}/locale"
if [ -d zh_CN ]; then
%__rm -rf zh
else
%__mv zh zh_CN
fi
popd
for m in %{MODELS}; do
model="${m%%:*}"
echo -n >"${model}.lang"
for n in cngpijmon"$model" printui"$model"; do
%find_lang "$n"
%__cat "$n.lang" >>"${model}.lang"
%__rm "$n.lang"
done
done # for m in ...
# Generate file lists for each package
for m in %{MODELS}; do
model="${m%%:*}"
mnum="${m##*:}"
F="rpm.$model"
echo -n >"$F"
cat<<EOF >>"$F"
%{_bindir}/cngpijmon${model}
%{_bindir}/lgmon${model}
%{_bindir}/printui${model}
%dir %{_ppddir}/share/cups
%dir %{_ppddir}/share/cups/model
%{_ppddir}/share/cups/model/canon${model}.ppd
%{_prefix}/share/cngpijmon${model}
%{_prefix}/share/printui${model}
%{_bindir}/cif${model}
%{_libdir}/libcnbp*${mnum}.so*
%dir %{_libdir}/bjlib
%{_libdir}/bjlib/cif${model}.conf
%{_libdir}/bjlib/cnb_${mnum}0.tbl
%{_libdir}/bjlib/cnbpname${mnum}.tbl
%doc LICENSE-cnijfilter-*.txt
EOF
cat "$model.lang" >>"$F"
done # for m in ...
%clean
%{?buildroot:%__rm -rf "%{buildroot}"}
#post -p /sbin/ldconfig
#postun -p /sbin/ldconfig
%post common -p /sbin/ldconfig
%postun common -p /sbin/ldconfig
%post mp250series -p /sbin/ldconfig
%postun mp250series -p /sbin/ldconfig
%post mp280series -p /sbin/ldconfig
%postun mp280series -p /sbin/ldconfig
%post mp495series -p /sbin/ldconfig
%postun mp495series -p /sbin/ldconfig
%post mg5100series -p /sbin/ldconfig
%postun mg5100series -p /sbin/ldconfig
%post mg5200series -p /sbin/ldconfig
%postun mg5200series -p /sbin/ldconfig
%post mg6100series -p /sbin/ldconfig
%postun mg6100series -p /sbin/ldconfig
%post mg8100series -p /sbin/ldconfig
%postun mg8100series -p /sbin/ldconfig
%post ip4800series -p /sbin/ldconfig
%postun ip4800series -p /sbin/ldconfig
%files mp250series -f rpm.mp250
%defattr(-,root,root)
%files mp280series -f rpm.mp280
%defattr(-,root,root)
%files mp495series -f rpm.mp495
%defattr(-,root,root)
%files mg5100series -f rpm.mg5100
%defattr(-,root,root)
%files mg5200series -f rpm.mg5200
%defattr(-,root,root)
%files mg6100series -f rpm.mg6100
%defattr(-,root,root)
%files mg8100series -f rpm.mg8100
%defattr(-,root,root)
%files ip4800series -f rpm.ip4800
%defattr(-,root,root)
%files common
%defattr(-,root,root)
%dir %{_cupsbindir}
%dir %{_cupsbindir}/filter
%{_cupsbindir}/filter/pstocanonij
%if "%{_lib}" != "lib"
%dir %{_prefix}/lib/cups
%dir %{_prefix}/lib/cups/filter
%{_prefix}/lib/cups/filter/pstocanonij
%endif
%dir %{_cupsbindir}/backend
%{_cupsbindir}/backend/cnijusb
%{_cupsbindir}/backend/cnijnet
%if "%{_lib}" != "lib"
%dir %{_prefix}/lib/cups/backend
%{_prefix}/lib/cups/backend/cnijusb
%{_prefix}/lib/cups/backend/cnijnet
%endif
%{_bindir}/cngpij
%{_bindir}/cnijnpr
%{_bindir}/cnijnetprn
%{_libdir}/libcnnet.so*
%attr(644, lp, lp) %{_libdir}/bjlib/cnnet.ini
%doc LICENSE-cnijfilter-*.txt