samba-technical digest, Vol 1 #42 - 2 msgs

papowell at papowell at
Thu Aug 10 02:36:54 GMT 2000

> 3) Printing is currently also not completely functional,
> because it is being developed in another tree and at times
> we try to merge this back into this tree.
> For win9x domain logins it would be helpful to know, wether
> they currently work in HEAD. If so, I can try to look for
> differences/similarities and merge some things over. If
> it's not working, a proper bugreport for HEAD should be
> written.
> Printing is currently more developed in HEAD. Some quite
> interesting stuff is happening there. I'm currently trying
> to merge some of the backend-functionality for printing
> over. But real functionality will take some time, because
> the merging is quite hard, cause a lot of stuff was
> changed in HEAD.
> As usual with bugreports, check out
> before writing
> them and also please check the latest cvs, if you can.
> And send them to samba-ntdom at, so others know,
> what is already reported.

I have spent the last couple of days using the CVS version
and folding some of my old changes to the 2.0.3 Version into the
CVS version.

Most of these changes do not effect anything at the SMB level,
as they are concerned with the UNIX side of things.


Printcap Information Caching

Printcap information is now cached.  Reduces much wear and
tear and overhead when you get printer information.
You refresh it just like you do with updating the smb.conf
information : send the smbd a SIGHUP.

There may be need for a 'periodic refresh', but that is
left as an exercise to the Samba Wizards.

Printcap Information Fetching

You can now get printcap information via a program as well
as from a file:
     printcap file = |/program

This means you can do:
     printcap file = |/bin/cat /etc/printcap

    (for the curious, this is the same as above, but
     with the overhead of an extra process.)

You can put this in /usr/local/samba/bin/getpc:

lpq -s -a | sed -n -e 's/[@:].*//p'

And use:
     printcap file = |/usr/local/samba/bin/getpc

Also, LPRng has had the 'lpc client all' enhanced so you 
can do:
     printcap file = |/usr/sbin/lpc client all

And the various LPRng majic wizardries of LDAP support,
NIS support, printcap mangling, etc., are automatically
taken care of.

Wildcard Printcap Entries Handled Correctly:

You can have printcap entries of the form:


And the new code will do a glob style match on printer names.
This allows you to set up printers by hand with the following

And LO!  The LPRng printer will now understand this.
This is the same as a 'MajikFilter'  but raised a couple of
octaves in confusion.

Printer Driver Specfication VIA Printcap Information

Now for the neat one:

In the current release of Samba you can specify a driver
for a print queue.  This is done by:

A) setting up a database that has all of the drivers
   neatly tucked away
B) putting the various driver files in a place where the
   Samba Server can find them.
C) Up to now,  you would specify a printer and a driver
   by setting up an entry:
   [ hp4 ]
     printer stuff...
     printer driver = HP4 LaserJet

The 'HP4 LaserJet' would be used as a key to look up the
driver and download the right stuff.  You could not
do this with printers that you had set up by 'autoloading'
or from a printcap.

Now,  if you set up a printcap with the following:

    printer:driver=HP4 LaserJet

You will be AMAZED (I hope) to discover that the printer
driver information is now set to be HP4 LaserJet.

CUPS and LPRng

What about CUPS support?  Well,  I have taken the CUPS stuff
(very nice job, CUPS folks did, I congratulate them),
and converted their information stuff to a simple printcap
entry.  Part of the CUPS information is the name of the
printer driver.  Right now I don't know quite how they
are doing this,  but I suspect after I post them the code
that they will improve this out of recognition as well.

Greatly Improved Print Job Status Reporting

On another topic,  I have just finished updating LPRng
and improving its status lookup (LPQ) tremendously.
Together with the changes to the printcap lookup,
this has made printing MUCH faster.

Patrick Powell                 Astart Technologies,
papowell at            9475 Chesapeake Drive, Suite D,
Network and System             San Diego, CA 92123
  Consulting                   858-874-6543 FAX 858-279-8424 
LPRng - Print Spooler (

More information about the samba-technical mailing list