Blob Blame History Raw
%global checkout 20111121svn

Summary: Driver for QPDL/SPL2 printers (Samsung and several Xerox printers)
Name: splix
Version: 2.0.1
Release: 0.6.%{checkout}%{?dist}
License: GPLv2
Group: System Environment/Base
URL: http://splix.sourceforge.net/

# This is a SVN snapshot downloaded via
# http://splix.svn.sourceforge.net/viewvc/splix/splix/?view=tar
# and renamed to follow naming guidelines
Source0: splix-%{version}.%{checkout}.tar.gz

# Don't strip symbols out of the binaries so the debuginfo can be created
Patch0:  splix-nostrip.patch

# Add Device ID for
# Samsung ML-1610
Patch1:  splix-deviceID.patch

# Install PPDs to custom directory
Patch2:  splix-custom-ppd-dir.patch

# Don't install PPD files at all, only DRV files.
Patch3:  splix-drv.patch

Requires: cups

# PPD re-compilation
BuildRequires: cups, recode

# _cups_serverbin macro
BuildRequires: cups-devel

# postscriptdriver tags
BuildRequires: python-cups

%description
This driver is usable by all printer devices which understand the QPDL
(Quick Page Description Language) also known as SPL2 (Samsung Printer Language)
language. It covers several Samsung, Xerox and Dell printers.
Splix doesn't support old SPL(1) printers.

%prep
%setup -q -n splix
# some files have wrongly set executable bit
chmod -x include/algo0x0d.h
chmod -x include/algo0x0e.h
chmod -x src/algo0x0e.cpp
chmod -x ppd/po/pt.po

%patch0 -p1 -b .nostrip
%patch1 -p1 -b .deviceID
%patch2 -p1 -b .custom-ppd-dir
%patch3 -p1 -b .drv-only

pushd ppd
# rename *.drv to *.drv.in
for i in *.drv; do mv $i ${i}.in; done
# remove old PPDs
make distclean
popd

%build
# The situation is that we can't ship jbigkit (JBIG1 implementation) in Fedora
# because of one known patent. It can be found in rpmfusion-free repository.
# DISABLE_JBIG=1 prevents splix from building against jbigkit and also from
# installing PPD files for printers that require JBIG1 support.
#
# Luckily JBIG1 will be free of known patents in all countries from
# 2012-04-04 onwards. (http://www.cl.cam.ac.uk/~mgk25/jbigkit/patents/)
# So once jbigkit is in Fedora we could do the following with this spec:
# - remove DISABLE_JBIG=1
# - replace 'make ppd' with 'make drv'
# - remove cups and recode from BuildRequires
# - add 'DRV_ONLY=1 CUPSDRV=%{_datadir}/cups/drv/splix' to make install
# That will result in building splix with JBIG1 support and also
# installing DRV files instead of only selected set of PPD files.

pushd ppd
make ppd
popd

DISABLE_JBIG=1 \
V=1 \
CXXFLAGS="%{optflags} -fno-strict-aliasing" \
make %{?_smp_mflags}


%install
DISABLE_JBIG=1 \
CUPSPPD=%{_datadir}/cups/model/splix \
DESTDIR=%{buildroot} \
make install

%files
%doc COPYING AUTHORS ChangeLog THANKS
%{_cups_serverbin}/filter/pstoqpdl
%{_cups_serverbin}/filter/rastertoqpdl
%{_datadir}/cups/model/splix/

%changelog
* Wed Nov 30 2011 Jiri Popelka <jpopelka@redhat.com> - 2.0.1-0.6.20111121svn
- Install splix PPDs into separate directory.
- Added patch for compiling/installing DRVs instead of PPDs.
  However we still ship only selected PPDs instead of DRVs as some printers
  require JBIG1 support.

* Tue Nov 29 2011 Jiri Popelka <jpopelka@redhat.com> - 2.0.1-0.5.20111121svn
- Re-compile PPD files.

* Mon Nov 28 2011 Jiri Popelka <jpopelka@redhat.com> - 2.0.1-0.4.20111121svn
- Add Device ID for Samsung ML-1610.

* Tue Nov 22 2011 Jiri Popelka <jpopelka@redhat.com> - 2.0.1-0.3.20111121svn
- Include more files into documentation (#755069).

* Mon Nov 21 2011 Jiri Popelka <jpopelka@redhat.com> - 2.0.1-0.2.20111121svn
- Download only trunk from upstream SVN repository.

* Fri Nov 18 2011 Jiri Popelka <jpopelka@redhat.com> - 2.0.1-0.1.20111118svn
- Initial spec file.