Problems using Samba/VMS Print shares

Dave Jones JONESD at
Wed Jun 25 02:45:11 GMT 2003

I'm gradually working on a fresh port of 2.2.8, most recently working on
a VMS native printer interface.  All the print queue operations are done
by way of SYS$SNDJBC and SYS$GETQUI calls rather than spawning DCL commands.
It's fairly self-contained, so I put the sources in a zip file at

Below is the readme file from the

The print_vms.c source module defines a 'native' OpenVMS printer interface for
the Samba server.  The low level printer operations (get, pause, submit, etc)
are performed using direct VMS system service calls ($SNDJBC, $GETQUI) rather
than spawning print commands.  This work is being done on VMS 7.2-1 and 7.3
Alpha systems.

Configuration file (smb.conf) settings:

    printcap name:	Set to "vms" to force VMS_printif interface to be used.

    load printers:	Set to "yes".

    print command:	Specify just the qualfiers for the print command, e.g:
			   print command = /parameters=("DATA_TYPE=POSTSCRIPT")

			Only 17 of the myriad of VMS PRINT command qualifiers
			are recognized, see header comments in
			print_vms_parse.c for a description.  Note that /queue
			is not used to specify a queue.

    printing:		Ignored (there is no lpq output to parse, its value
			is meaningless).

    lp{*} command:	Ignored, commands aren't spawned.

New files:
    print_vms.c		This file defines the global structure (VMS_printif) 
			that samba uses to interface with the host OS print
			spooler.  This structure vectors 7 low-level functions
			(queue_get, queue_pause, queue_resume, job_delete, 
			job_pause, job_resume, job_submit) for managing a
			printer queue.  Is also defines a 'find' function,
			vms_printer_fn(), that samba uses to discover
			the printers on the system.

    print_vms_parse.c	This file handles the parsing of the "print command"
			parameter (from smb.conf) so that print_vms.c can
			apply site-specific item codes to submit requests.

Modified files:

    printing.c		Modify to recognize the special printcap name "vms"
			and switch the printer interface  to VMS_printif if so.
			Use the HAVE_CUPS code sections as your guide.

    pcap.c		Modify to force pcap_printername_ok() and
			pcap_printer_fn() to recognize the special "vms"
			printcap file and hand off to vms_printername_ok()
			and vms_printer_fn().

David L. Jones               |      Phone:    (614) 292-6929
Ohio State University        |      Internet:
140 W. 19th St. Rm. 231a     |               jonesd at
Columbus, OH 43210           |               vman+ at

More information about the samba-vms mailing list