All of lore.kernel.org
 help / color / mirror / Atom feed
* [Printing-architecture] Debian dropping the Linux Standard Base - Better way to supply distribution-independent printer driver packages?
@ 2016-02-03 21:50 Till Kamppeter
  2016-02-03 22:22 ` Michael Sweet
  2016-02-06  1:31 ` Till Kamppeter
  0 siblings, 2 replies; 3+ messages in thread
From: Till Kamppeter @ 2016-02-03 21:50 UTC (permalink / raw)
  To: Open Printing

Hi,

after looking through participants and achievements of the first 
OpenPrinting Summit in spring 2006 in Atlanta I got in contact with Mats 
Wichmann about the LSB and ended up googling and found this one:

https://lwn.net/Articles/658809/

An article at LWN about Debian having decided to quit the LSB.

The LSB was created to allow software vendors to make 
distribution-independent binary software packages, based on the 
resources which the distributions have in common. It got a huge, awkward 
collection of libraries, functions, commands, and interfaces about which 
the upstream developers of the LSB have found out that the major Linux 
distributions for corporate users provide them and there are actually 
very few software vendors actually making use of it, leading to the fact 
that no one actually wants to invest time in the LSB.

Several years ago I was seeing an opportunity in the LSB to make 
distribution-independent binary driver packages and I wrote up design 
guidelines and packaging instructions for manufacturers, created a 
mechanism for looking up such packages by querying the printer's 
IEEE-1284 device ID on the OpenPrinting database and automatically 
downloading and installing the packages with system-config-printer. All 
this I also presented on several OpenPrinting Summits and Epson actually 
put up such packages, but no one else. OpenPrinting (and Epson) got one 
of the few users of the LSB that way.

The dropping of the LSB by Debian was leading to the auto-download of 
LSB-based packages to break in Ubuntu (which syncs the LSB packages of 
Debian):

https://bugs.launchpad.net/ubuntu/+source/lsb/+bug/1536353

IPP Everywhere will soon be formally approved by the PWG (Printing 
Working Group) and so we will have an open standard for driver-less 
printing, but this does not necessarily mean that in a few months all 
printers sold are IPP-Everywhere printers and there are still lots of 
legacy printers.

So printer drivers are still needed and therefore we need a way to 
package and distribute them, ideally so that they work correctly on all 
currently available Linux distributions. It would be great if one could 
do so without needing the awkward ballast of the LSB. What about static 
or semi-static linking? Restricting interfaces as much as possible, only 
allowing CUPS-Raster-based rasterto... filters for raster-based 
printing, allowing backends for awkward communication protocols, 
allowing PostScript, PCL, PDF only with the filters of the cups-filters 
package, ... Working without the LSB could perhaps also simplify things 
and make more manufacturers doing distribution-independent packages.

Should we discuss possibilities here on the list? Or on the Summit?

    Till







^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Printing-architecture] Debian dropping the Linux Standard Base - Better way to supply distribution-independent printer driver packages?
  2016-02-03 21:50 [Printing-architecture] Debian dropping the Linux Standard Base - Better way to supply distribution-independent printer driver packages? Till Kamppeter
@ 2016-02-03 22:22 ` Michael Sweet
  2016-02-06  1:31 ` Till Kamppeter
  1 sibling, 0 replies; 3+ messages in thread
From: Michael Sweet @ 2016-02-03 22:22 UTC (permalink / raw)
  To: Till Kamppeter; +Cc: printing-architecture

Till,

> On Feb 3, 2016, at 4:50 PM, Till Kamppeter <till.kamppeter@gmail.com> wrote:
> ...
> Should we discuss possibilities here on the list? Or on the Summit?

I believe both should be done - mailing list to get the discussion framed, the summit to hopefully come up with a concrete proposal.

_________________________________________________________
Michael Sweet, Senior Printing System Engineer


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Printing-architecture] Debian dropping the Linux Standard Base - Better way to supply distribution-independent printer driver packages?
  2016-02-03 21:50 [Printing-architecture] Debian dropping the Linux Standard Base - Better way to supply distribution-independent printer driver packages? Till Kamppeter
  2016-02-03 22:22 ` Michael Sweet
@ 2016-02-06  1:31 ` Till Kamppeter
  1 sibling, 0 replies; 3+ messages in thread
From: Till Kamppeter @ 2016-02-06  1:31 UTC (permalink / raw)
  To: Open Printing

Hi,

here are some first thoughts about how to distribute printer drivers in 
distribution-indpendent package without making use of the LSB:

First thought is to link the executables of the package statically to 
not depend on the presence and version of locally available libraries.

But static linking causes several problems, especially see

https://www.akkadia.org/drepper/no_static_linking.html

and

http://unix.stackexchange.com/questions/227910/will-my-linux-binary-work-on-all-distros

One problem is that libc uses dlopen() to link libraries dynamically and 
if you link in libc statically you need exactly the same libc on your 
computer so that the dlopen() works.

A possibility is to replace libc by specialized alternative, musl, when 
building the executables:

http://www.musl-libc.org/

musl only needs to be installed on the machine where the packages get 
built and there not even as the system's libc. So for statically linked 
executables this looks like a good possibility.

Another possibility is to link only some libs (libc, X11, openGL) 
dynamically and the rest statically:

http://blog.sagargv.com/2014/09/on-building-portable-linux-binaries.html

In general, we need to find the least complicated way which can be 
easily adopted by most printer manufacturers.

Another way to get universally working printers/drivers is keeping the 
level of complexity of the drivers as low as possible by dosigning 
printers (and drivers) the right way:


Level 0:

driverless printing, the standard Linux distributions bring already all 
software needed to print on the printer and the printer can get queried 
for all needed capability info, usually via Bonjour and/or IPP. A good 
example are IPP Everywhere printers.

Level 1:

Only data files, like PPDs are needed, all executable files are already 
contained in the standard Linux distributions. This can be done with 
PostScript, PCL, PDF, PWG Raster, ... printers.

Level 2:

Only executables are filters, meaning that the printer works with the 
backends supplied by CUPS and cups-filters and only needs a known PDL, 
usually PWG or CUPS Raster being converted to the printer-specific, 
proprietary language.

Level 3:

Backends are needed to make the printer work. Backends are more complex 
than filters as they have to implement a way of communication between 
the computer and a peripheral, via USB, network, ... so more resources 
of system libraries are needed which could make static linking or 
universally working binaries more difficult.

Extras:

Scanner driver (SANE):

For multi-function devices often a scanner driver is supplied. Scanner 
drivers are dynamic libraries which are linked by scanning clients, I do 
not know whether such a library by itself can get linked statically.

Scripting languages:

If a scripting language is used, it must be a standard one, usually 
Python, perhaps also Perl, and if libraries are needed they should be 
preferrably shipped with the package.

GUI:

Should be avoided whenever possible for a printer driver package because 
making this universally executable is even more complicated.


First step is a good printer design, ideally an IPP Everywhere printer. 
If the printer is already there and a Linux driver has to be designed, 
at first the level of complexity needs to be minimized. Especially if 
the printer follows a standard PDL (like PCL XL) or a standard 
communication protocol (like IPP-over-USB) but it does not work with the 
software of the Linux distributions, do not write your own, proprietary 
work-around filters and backends, but report bugs of feature requests on 
the existing software or better contribute patches.

Any thoughts and any additional hints to get distribution-independent 
printer driver packages without needing the LSB?

    Till


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-02-06  1:31 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-03 21:50 [Printing-architecture] Debian dropping the Linux Standard Base - Better way to supply distribution-independent printer driver packages? Till Kamppeter
2016-02-03 22:22 ` Michael Sweet
2016-02-06  1:31 ` Till Kamppeter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.