Skip to content

Commit

Permalink
libppd 2.0b1 Release
Browse files Browse the repository at this point in the history
  • Loading branch information
tillkamppeter committed Nov 17, 2022
1 parent 66ff59b commit 079e625
Show file tree
Hide file tree
Showing 3 changed files with 151 additions and 1,739 deletions.
12 changes: 6 additions & 6 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# CHANGES - libppd v2.0b1 - 2022-11-14
# CHANGES - libppd v2.0b1 - 2022-11-17

## CHANGES IN V2.0b1 (TBA)
## CHANGES IN V2.0b1 (17th November 2022)

- Added the new libppd library overtaking all the PPD handling
functions from libcups, CUPS' ppdc utility (PPD compiler using *.drv
files), and the PPD file collection handling functionality from
cups-driverd, as they are deprecated there and will probably get
removed with the next CUPS version. This form of conservation is
mainly intended for converting classic printer drivers which use
PPDs into Printer Applications without completely rewriting them.
cups-driverd, as they are deprecated there and will get removed in
CUPS 3.x. This form of conservation is mainly intended for
converting classic printer drivers which use PPDs into Printer
Applications without completely rewriting them.

- Added functions ppdLoadAttributes(), ppdFilterLoadPPD(),
ppdFilterLoadPPDFile(), ppdFilterFreePPD(), and
Expand Down
152 changes: 38 additions & 114 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -1,82 +1,51 @@
INSTALL - OpenPrinting libppd v2.0b1 - 2022-11-14
INSTALL - OpenPrinting libppd v2.0b1 - 2022-11-17
-------------------------------------------------

This file describes how to compile and install OpenPrinting CUPS
Filters from source code. For more information on OpenPrinting CUPS
Filters see the file called "README.txt". A complete change log can
be found in "CHANGES.txt".

**** IF YOU HAVE A NON-POSTSCRIPT PRINTER AND ARE NOT ****
**** RUNNING MAC OS X, YOU WILL ALSO NEED TO INSTALL ****
**** GHOSTSCRIPT WITH AT LEAST THE "cups", "pwgraster", ****
**** "appleraster", "urf", "pclm", "pclm8", "pdfwrite", ****
**** "pdfimage24", "pdfimage32", "pdfimage8" DRIVERS AFTER ****
**** YOU INSTALL CUPS AND BEFORE YOU INSTALL THIS PACKAGE. ****

This file describes how to compile and install OpenPrinting libppd
from source code. For more information on OpenPrinting libppd see the
file called "README.md". A complete change log can be found in
"CHANGES.md".

BEFORE YOU BEGIN

You'll need ANSI-compliant C and C++ compilers, plus a make program and
POSIX-compliant shell (/bin/sh). The GNU compiler tools and Bash work well
and we have tested the current CUPS code against several versions of GCC
with excellent results.

The Makefiles used by the project should work with most versions of make.
We've tested them with GNU make as well as the make programs shipped by
Compaq, HP, SGI, and Sun. BSD users should use GNU make (gmake) since BSD
make does not support "include".

Poppler, freetype, fontconfig, and liblcms (liblcms2 recommended)
must be installed to be able to compile this package.
You'll need ANSI-compliant C and C++ compilers, plus a make
program and POSIX-compliant shell (/bin/sh). The GNU compiler
tools and Bash work well and we have tested the current CUPS code
against several versions of GCC with excellent results.

Note that Poppler has to be compiled with the
"--enable-poppler-cpp" configure option (or the
"libpoppler-cpp-dev(el)" package has to be installed if the
Poppler packages from a Linux distribution are used).
The Makefiles used by the project should work with most versions
of make. We've tested them with GNU make as well as the make
programs shipped by Compaq, HP, SGI, and Sun. BSD users should
use GNU make (gmake) since BSD make does not support "include".

Besides these tools you'll want the JPEG, PNG, TIFF, ZLIB libraries for
image support. CUPS Filters will compile and run without these, however
you'll miss out on many of the features provided by CUPS Filters.

To get cups-browsed, the daemon to browse Bonjour broadcasts of
remote CUPS queues and make the queues available locally, you also
need libavahi-common and libavahi-client.
libcups of CUPS 2.2.2 or newer and libcupsfilters 2.0.0 or newer
must be installed to be able to compile this package. As none of
the PPD-file-supporting functions in libcups are used, porting
this library to use libcups3 (of CUPS 3.x) should be easy, or
libppd will already just work with libcups3.

COMPILING THE GIT REPOSITORY CODE

The CUPS Filters GIT repository doesn't hold a copy of the pre-built
configure script. You'll need to run the GNU autoconf software (2.65 or
higher) to create it:
The libppd GIT repository doesn't hold a copy of the pre-built
configure script. You'll need to run the GNU autoconf software
(2.65 or higher) to create it:

./autogen.sh


CONFIGURATION

CUPS Filters uses GNU autoconf, so you should find the usual "configure"
script in the main CUPS Filters source directory. To configure CUPS
Filters for your system, type:
libppd uses GNU autoconf, so you should find the usual "configure"
script in the main libppd source directory. To configure libppd
for your system, type:

./configure

The default installation will put the CUPS Filters software in the
"/etc" and "/usr" directories on your system, which will overwrite
some of the original filters and their auxiliary files of CUPS
1.5.x or earlier and the auxiliary files of bannertops in all CUPS
versions including version 1.6.x (see also the section "PACKAGING
THE SOFTWARE FOR OPERATING SYSTEM DISTRIBUTIONS" below). The
system will still have the same functionality as before, but CUPS
will not convert all incoming files into PostScript any more, it
will convert them into PDF instead and after applying page
management (N-up, selected pages, reverse order, ...) by the
pdftopdf filter and convert PDF into the printer's native format
then (PDF-based printing workflow). CUPS 1.6.x or later does not
contain any filters which this package provides. It requires the
installation of this package for printing with filters and drivers
under Linux (or other non-Mac-OS-X operation systems).

Use the "--prefix" option to install the CUPS Filters software in another
location:
The default installation will put the libppd software into the
"/usr" directory on your system.

Use the "--prefix" option to install the libppd software into
another location:

./configure --prefix=/some/directory

Expand Down Expand Up @@ -129,57 +98,12 @@ INSTALLING THE SOFTWARE

PACKAGING THE SOFTWARE FOR OPERATING SYSTEM DISTRIBUTIONS

The use of cups-filters is supported for CUPS from version 1.5.x
on (to switch to the PDF-based printing workflow already now) and
required for CUPS 1.6.x (as it does not ship a complete filter set
any more). In both cases cups-filters ships some files which exist
also in CUPS, but the versions of cups-filters have to be used to
assure that printing works correctly. So in the packaging of CUPS
the files should be removed.

Use the alternatives facility (see update-alternatives(8)) only if
your CUPS version is 1.5.x and you want to make the use of
cups-filters optional. Note that then the files of cups-filters
need to have priority.

When using cups-filters with CUPS 1.5.x, many of the original CUPS
filters get replaced or at least useless. Please remove the
following files from your CUPS package:

/usr/lib/cups/backend/serial
/usr/lib/cups/backend/parallel
/usr/lib/cups/filter/bannertops
/usr/lib/cups/filter/commandtoescpx
/usr/lib/cups/filter/commandtopclx
/usr/lib/cups/filter/imagetops
/usr/lib/cups/filter/imagetoraster
/usr/lib/cups/filter/pdftops
/usr/lib/cups/filter/rastertoescpx
/usr/lib/cups/filter/rastertopclx
/usr/lib/cups/filter/texttops
/usr/share/cups/banners/*
/usr/share/cups/data/testprint
/usr/share/cups/data/psglyphs
/usr/share/cups/fonts/*

Also comment out all conversion rules which use any of the removed
filters. You can do it with the following command line:

perl -p -i -e 's:^(.*\s+(pdftops|texttops|imagetops|bannertops|imagetoraster)\s*)$:#\1:' /usr/share/cups/mime/mime.convs

If you use CUPS 1.6.x there is less to remove from the CUPS
package. It is only bannertops and its auxiliary files which are
in the way for bannertopdf:

/usr/lib/cups/filter/bannertops
/usr/share/cups/banners/*
/usr/share/cups/data/testprint

The conversion rules get commented out via:

perl -p -i -e 's:^(.*\s+bannertops\s*)$:#\1:' /usr/share/cups/mime/mime.convs

For CUPS 1.6.x a bug report/feature request is posted to ask for
(at least optional) removal of bannertops:

http://www.cups.org/str.php?L4120
libppd is only for retro-fitting legacy CUPS drivers using PPD
files. So it only needs to get packaged for and included in an OS
distribution if retro-fitting Printer Applications are installed
as classic packages (like RPM or DEB).

If legacy printer support is only done via the Printer Application
Snaps (or other containers of the Printer Applications) or no
legacy printer support is required (only support for modern,
driverless IPP printers), libppd is not needed.
Loading

0 comments on commit 079e625

Please sign in to comment.