Patch for compiling/installing DRVs instead of PPDs.

However we still ship only selected PPDs instead of DRVs as some printers
require JBIG1 support.

Install splix PPDs into separate directory.
This commit is contained in:
Jiri Popelka 2011-11-30 19:33:53 +01:00
parent 99adee3923
commit 5f43bc4bb6
3 changed files with 263 additions and 12 deletions

View File

@ -0,0 +1,12 @@
diff -up splix/module.mk.custom-ppd-dir splix/module.mk
--- splix/module.mk.custom-ppd-dir 2011-07-20 18:20:18.000000000 +0200
+++ splix/module.mk 2011-11-30 17:05:22.909275151 +0100
@@ -55,7 +55,7 @@ endif
# Get some information
CUPSFILTER := `cups-config --serverbin`/filter
-CUPSPPD := `cups-config --datadir`/model
+CUPSPPD ?= `cups-config --datadir`/model
ifeq ($(ARCHI),Darwin)
PSTORASTER := pstocupsraster
else

211
splix-drv.patch Normal file
View File

@ -0,0 +1,211 @@
diff -up splix/INSTALL.drv-only splix/INSTALL
--- splix/INSTALL.drv-only 2008-06-15 00:22:11.000000000 +0200
+++ splix/INSTALL 2011-11-30 19:27:25.112732948 +0100
@@ -114,6 +114,9 @@ options are:
memory will use an average of 9Mo of RAM. Other pages
are swapped into the disk. A little CACHESIZE value will
increase disk access and increase the job rendering time.
+ * DRV_ONLY=1 [0 by default]:
+ Don't install PPD files at all, only DRV
+ (driver information file) files.
Example:
diff -up splix/module.mk.drv-only splix/module.mk
--- splix/module.mk.drv-only 2011-11-30 19:27:25.110732973 +0100
+++ splix/module.mk 2011-11-30 19:27:25.113732935 +0100
@@ -9,6 +9,7 @@
# Compilation option:
# V=1 Verbose mode
# DESTDIR=xxx Change the destination directory prefix
+# DRV_ONLY Don't install PPD files at all, only DRV files.
MODE := optimized
@@ -23,6 +24,7 @@ CACHESIZE ?= 30
DISABLE_JBIG ?= 0
DISABLE_THREADS ?= 0
DISABLE_BLACKOPTIM ?= 0
+DRV_ONLY ?= 0
# Flags
@@ -56,6 +58,7 @@ endif
# Get some information
CUPSFILTER := `cups-config --serverbin`/filter
CUPSPPD ?= `cups-config --datadir`/model
+CUPSDRV ?= `cups-config --datadir`/drv
ifeq ($(ARCHI),Darwin)
PSTORASTER := pstocupsraster
else
@@ -63,7 +66,7 @@ PSTORASTER := pstoraster
endif
GSTORASTER := gstoraster
CUPSPROFILE := `cups-config --datadir`/profiles
-export CUPSFILTER CUPSPPD
+export CUPSFILTER CUPSPPD CUPSDRV
# Specific information needed by pstoqpdl
diff -up splix/ppd/compile.sh.drv-only splix/ppd/compile.sh
--- splix/ppd/compile.sh.drv-only 2010-07-31 19:11:24.000000000 +0200
+++ splix/ppd/compile.sh 2011-11-30 19:27:25.113732935 +0100
@@ -28,13 +28,13 @@ parseFile() {
#
# Main script
#
-if [ "$2" = "debug" ]; then
- TMPFILE="output.drv"
+if [ "$2" = "drv" ]; then
DRIVER=$1
+ OUTFILE=${DRIVER%.in}
shift 1
- echo "" > $TMPFILE
- parseFile $DRIVER $TMPFILE
+ echo "" > $OUTFILE
+ parseFile $DRIVER $OUTFILE
elif [ "$2" = "lang" ]; then
diff -up splix/ppd/Makefile.drv-only splix/ppd/Makefile
--- splix/ppd/Makefile.drv-only 2011-07-21 17:22:26.000000000 +0200
+++ splix/ppd/Makefile 2011-11-30 19:28:36.440841223 +0100
@@ -5,7 +5,8 @@
#
#
-SOURCE := samsung.drv dell.drv xerox.drv lexmark.drv toshiba.drv
+SOURCE := samsung.drv.in dell.drv.in xerox.drv.in lexmark.drv.in toshiba.drv.in
+DRVS := samsung.drv dell.drv xerox.drv lexmark.drv toshiba.drv
DELL := 1100 1110
SAMSUNG := clp500 clp550 clp510 clp610 clp610nd ml1510 ml1520 ml1610 \
ml1630 ml1640 ml1660 ml1710 ml1740 ml1750 ml1910 ml1915 \
@@ -42,39 +43,47 @@ printCmd = $(if $(filter $(V),1),
all:
+.PHONY: drv
+drv: $(SOURCE)
+ ./compile.sh samsung.drv.in drv
+ ./compile.sh dell.drv.in drv
+ ./compile.sh xerox.drv.in drv
+ ./compile.sh lexmark.drv.in drv
+ ./compile.sh toshiba.drv.in drv
+
.PHONY: ppd
ppd: $(DRIVER) $(LANGDRIVERSEXT)
$(DRIVER): $(SOURCE)
- ./compile.sh samsung.drv -I . -d ./
- ./compile.sh dell.drv -I . -d ./
- ./compile.sh xerox.drv -I . -d ./
- ./compile.sh lexmark.drv -I . -d ./
- ./compile.sh toshiba.drv -I . -d ./
+ ./compile.sh samsung.drv.in -I . -d ./
+ ./compile.sh dell.drv.in -I . -d ./
+ ./compile.sh xerox.drv.in -I . -d ./
+ ./compile.sh lexmark.drv.in -I . -d ./
+ ./compile.sh toshiba.drv.in -I . -d ./
$(LANGDRIVERSEXT): $(SOURCE) $(patsubst %, $(PODIR)/%.$(POEXT), $(LANGUAGES))
lang=$(patsubst $(MASTERDRIVER)%.$(DRIVERSEXT),%, $@); \
- ./compile.sh samsung.drv -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
+ ./compile.sh samsung.drv.in -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
for filename in ${SAMSUNG}; do \
recode utf8..latin1 ${PODIR}/$$lang/$$filename.${DRIVERSEXT}; \
mv ${PODIR}/$$lang/$$filename.${DRIVERSEXT} $$filename$$lang.${DRIVERSEXT}; \
done; \
- ./compile.sh xerox.drv -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
+ ./compile.sh xerox.drv.in -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
for filename in ${XEROX}; do \
recode utf8..latin1 ${PODIR}/$$lang/$$filename.${DRIVERSEXT}; \
mv ${PODIR}/$$lang/$$filename.${DRIVERSEXT} $$filename$$lang.${DRIVERSEXT}; \
done; \
- ./compile.sh dell.drv -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
+ ./compile.sh dell.drv.in -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
for filename in ${DELL}; do \
recode utf8..latin1 ${PODIR}/$$lang/$$filename.${DRIVERSEXT}; \
mv ${PODIR}/$$lang/$$filename.${DRIVERSEXT} $$filename$$lang.${DRIVERSEXT}; \
done; \
- ./compile.sh lexmark.drv -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
+ ./compile.sh lexmark.drv.in -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
for filename in ${LEXMARK}; do \
recode utf8..latin1 ${PODIR}/$$lang/$$filename.${DRIVERSEXT}; \
mv ${PODIR}/$$lang/$$filename.${DRIVERSEXT} $$filename$$lang.${DRIVERSEXT}; \
done; \
- ./compile.sh toshiba.drv -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
+ ./compile.sh toshiba.drv.in -l $$lang -c ${PODIR}/$$lang.${POEXT} -d ${PODIR}/$$lang; \
for filename in ${TOSHIBA}; do \
recode utf8..latin1 ${PODIR}/$$lang/$$filename.${DRIVERSEXT}; \
mv ${PODIR}/$$lang/$$filename.${DRIVERSEXT} $$filename$$lang.${DRIVERSEXT}; \
@@ -83,19 +92,21 @@ $(LANGDRIVERSEXT): $(SOURCE) $(patsubst
.PHONY: update
update: $(patsubst %, $(PODIR)/%.$(POEXT), $(LANGUAGES))
%.po: $(SOURCE)
- ./compile.sh samsung.drv lang $@
- ./compile.sh dell.drv lang $@
- ./compile.sh xerox.drv lang $@
- ./compile.sh lexmark.drv lang $@
- ./compile.sh toshiba.drv lang $@
+ ./compile.sh samsung.drv.in lang $@
+ ./compile.sh dell.drv.in lang $@
+ ./compile.sh xerox.drv.in lang $@
+ ./compile.sh lexmark.drv.in lang $@
+ ./compile.sh toshiba.drv.in lang $@
cmd_install_samsung = INSTALL Samsung PPD files
cmd_install_xerox = INSTALL Xerox PPD files
cmd_install_dell = INSTALL Dell PPD files
cmd_install_lexmark = INSTALL Lexmark PPD files
cmd_install_toshiba = INSTALL Toshiba PPD files
+cmd_install_drv = INSTALL DRV files
.PHONY: install
install:
+ifneq ($(DRV_ONLY),1)
$(call printCmd, $(cmd_install_samsung))
$(Q)install -d -m 755 ${DESTDIR}${CUPSPPD}/samsung
$(Q)for filename in ${SAMSUNG}; do \
@@ -136,8 +147,16 @@ install:
install -m 644 $$filename$$lang.${DRIVERSEXT} ${DESTDIR}${CUPSPPD}/toshiba;\
done; \
done;
+else
+ $(call printCmd, $(cmd_install_drv))
+ $(Q)install -d -m 755 ${DESTDIR}${CUPSDRV}
+ $(Q)for filename in ${DRVS}; do \
+ install -m 644 $$filename ${DESTDIR}${CUPSDRV};\
+ done;
+endif
.PHONY: clean distclean
clean:
distclean:
$(RM) *.${DRIVERSEXT}
+ $(RM) *.drv
diff -up splix/rules.mk.drv-only splix/rules.mk
--- splix/rules.mk.drv-only 2011-11-30 19:27:25.104733048 +0100
+++ splix/rules.mk 2011-11-30 19:27:25.114732922 +0100
@@ -75,6 +75,11 @@ BLACKOPTIMSTATE := disabled
else
BLACKOPTIMSTATE := enabled
endif
+ifeq ($(DRV_ONLY),0)
+DRVSTATE := disabled
+else
+DRVSTATE := enabled
+endif
MSG := +---------------------------------------------+\n
@@ -85,8 +90,9 @@ MSG += | THREADS Nr = %8i
MSG += | CACHESIZE = %8i |\n
MSG += | JBIG = %8s |\n
MSG += | BLACK OPTIM = %8s |\n
+MSG += | DRV ONLY = %8s |\n
MSG += +---------------------------------------------+\n
MSG += (Do a \"make clean\" before updating these values)\n\n
optionList:
@printf " $(MSG)" $(THREADSSTATE) $(THREADS) $(CACHESIZE) $(JBIGSTATE) \
- $(BLACKOPTIMSTATE)
+ $(BLACKOPTIMSTATE) $(DRVSTATE)

View File

@ -3,7 +3,7 @@
Summary: Driver for QPDL/SPL2 printers (Samsung and several Xerox printers)
Name: splix
Version: 2.0.1
Release: 0.5.%{checkout}%{?dist}
Release: 0.6.%{checkout}%{?dist}
License: GPLv2
Group: System Environment/Base
URL: http://splix.sourceforge.net/
@ -20,9 +20,15 @@ Patch0: splix-nostrip.patch
# 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
# needed for PPD re-compilation
# PPD re-compilation
BuildRequires: cups, recode
# _cups_serverbin macro
@ -47,15 +53,36 @@ 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
# re-compile PPD files
# 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 distclean
make ppd
popd
# remove DISABLE_JBIG=1 once jbigkit is shipped with Fedora (i.e. after April 2012)
DISABLE_JBIG=1 \
V=1 \
CXXFLAGS="%{optflags} -fno-strict-aliasing" \
@ -63,23 +90,24 @@ make %{?_smp_mflags}
%install
# remove DISABLE_JBIG=1 once jbigkit is shipped with Fedora (i.e. after April 2012)
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/dell
%{_datadir}/cups/model/lexmark
%{_datadir}/cups/model/samsung
%{_datadir}/cups/model/toshiba
%{_datadir}/cups/model/xerox
%{_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.