File cnijfilter.spec of Package cnijfilter-mp495series

# vim: set ts=4 sw=4 et:

%define MODELS mp230:401 mg2200:402 e510:403 mg3200:404 mg4200:405 ip7200:406 mg5400:407 mg6300:408

%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 lgmon cngpijmon

Summary:        Canon Inkjet Printer Driver Collection for Linux
Name:           cnijfilter
Version:        3.80+1
%define pkg_version 3.80-1
%define pure_version 3.80
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.gz
Patch2:         cnijfilter-fix_missing_includes.patch
Patch3:         cnijfilter-fix_cngpijmon.patch
Patch4:         cnijfilter-new-cups-include.patch
Patch5:         cnijfilter-new-png.patch
Patch6:         cnijfilter-include-gtk.patch
Patch7:         cnijfilter-new-cups-ipp.patch 
Patch8:         cnijfilter-no-sysctl.patch
BuildRoot:      %{_tmppath}/build-%{name}-%{version}-%{release}
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 mp230series
Summary:        Canon Inkjet printer driver for the MP230 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description mp230series
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 MP230.

%package mg2200series
Summary:        Canon Inkjet printer driver for the MG2200 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description mg2200series
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 MG2200.

%package e510series
Summary:        Canon Inkjet printer driver for the E510 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description e510series
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 E510.

%package mg3200series
Summary:        Canon Inkjet printer driver for the MG3200 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description mg3200series
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 MG3200.

%package mg4200series
Summary:        Canon Inkjet printer driver for the MG4200 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description mg4200series
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 MG4200.

%package ip7200series
Summary:        Canon Inkjet printer driver for the IP7200 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description ip7200series
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 IP7200.

%package mg5400series
Summary:        Canon Inkjet printer driver for the MG5400 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description mg5400series
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 MG5400.

%package mg6300series
Summary:        Canon Inkjet printer driver for the MG6300 series
Vendor:         CANON INC.
Group:          Hardware/Printing
Requires:       cnijfilter-common = %{version}-%{release}
%description mg6300series
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 MG6300.


%prep
%autosetup -n "cnijfilter-source-%{pkg_version}" -p 1

%__cp lgmon/include/cncl/cncldef.h backendnet/lmonitor/

%build
for d in ppd cnijfilter lgmon cngpijmon libs cngpij pstocanonij backend backendnet cngpijmon/cnijnpr cngpijmnt ; 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 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
pushd cngpijmnt
    CFLAGS="%{optflags}" \
    %configure --program-suffix="$model" --enable-progpath=%{_bindir}
	make clean
	make %{?_smp_flags} CFLAGS="%{optflags}"
    %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
if test -d "%{buildroot}%{_datadir}/locale" ; then
pushd "%{buildroot}%{_datadir}/locale"
if [ -d zh_CN ]; then
    %__rm -rf zh
else
    %__mv zh zh_CN
fi
popd
fi

for m in %{MODELS}; do
    model="${m%%:*}"
    echo -n >"${model}.lang"
    for n in cngpijmon"$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}/cngpijmnt${model}
%dir %{_ppddir}/share/cups
%dir %{_ppddir}/share/cups/model
%{_ppddir}/share/cups/model/canon${model}.ppd
%{_prefix}/share/cngpijmon${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   mp230series -p /sbin/ldconfig
%postun mp230series -p /sbin/ldconfig

%post   mg2200series -p /sbin/ldconfig
%postun mg2200series -p /sbin/ldconfig

%post   e510series -p /sbin/ldconfig
%postun e510series -p /sbin/ldconfig

%post   mg3200series -p /sbin/ldconfig
%postun mg3200series -p /sbin/ldconfig

%post   mg4200series -p /sbin/ldconfig
%postun mg4200series -p /sbin/ldconfig

%post   ip7200series -p /sbin/ldconfig
%postun ip7200series -p /sbin/ldconfig

%post   mg5400series -p /sbin/ldconfig
%postun mg5400series -p /sbin/ldconfig

%post   mg6300series -p /sbin/ldconfig
%postun mg6300series -p /sbin/ldconfig

%files mp230series -f rpm.mp230
%defattr(-,root,root)

%files mg2200series -f rpm.mg2200
%defattr(-,root,root)

%files e510series -f rpm.e510
%defattr(-,root,root)

%files mg3200series -f rpm.mg3200
%defattr(-,root,root)

%files mg4200series -f rpm.mg4200
%defattr(-,root,root)

%files ip7200series -f rpm.ip7200
%defattr(-,root,root)

%files mg5400series -f rpm.mg5400
%defattr(-,root,root)

%files mg6300series -f rpm.mg6300
%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

openSUSE Build Service is sponsored by