diff options
Diffstat (limited to 'patches')
-rw-r--r-- | patches/xcb_proto-1.12.local.patch | 276 | ||||
-rw-r--r-- | patches/xorgproto-2018.4.local.patch | 425 |
2 files changed, 425 insertions, 276 deletions
diff --git a/patches/xcb_proto-1.12.local.patch b/patches/xcb_proto-1.12.local.patch deleted file mode 100644 index 9930c12b..00000000 --- a/patches/xcb_proto-1.12.local.patch +++ /dev/null @@ -1,276 +0,0 @@ -From ea7a3ac6c658164690e0febb55f4467cb9e0bcac Mon Sep 17 00:00:00 2001 -From: Thomas Klausner <wiz@NetBSD.org> -Date: Thu, 19 May 2016 17:30:04 +0200 -Subject: Make whitespace use consistent. - -At least python-3.5.x complains about this forcefully. - -Signed-off-by: Thomas Klausner <wiz@NetBSD.org> -Signed-off-by: Uli Schlachter <psychon@znc.in> - -diff --git a/xcbgen/align.py b/xcbgen/align.py -index 5e31838..d4c12ee 100644 ---- a/xcbgen/align.py -+++ b/xcbgen/align.py -@@ -16,12 +16,12 @@ class Alignment(object): - return self.align == other.align and self.offset == other.offset - - def __str__(self): -- return "(align=%d, offset=%d)" % (self.align, self.offset) -+ return "(align=%d, offset=%d)" % (self.align, self.offset) - - @staticmethod - def for_primitive_type(size): -- # compute the required start_alignment based on the size of the type -- if size % 8 == 0: -+ # compute the required start_alignment based on the size of the type -+ if size % 8 == 0: - # do 8-byte primitives require 8-byte alignment in X11? - return Alignment(8,0) - elif size % 4 == 0: -@@ -33,7 +33,7 @@ class Alignment(object): - - - def align_after_fixed_size(self, size): -- new_offset = (self.offset + size) % self.align -+ new_offset = (self.offset + size) % self.align - return Alignment(self.align, new_offset) - - -@@ -41,7 +41,7 @@ class Alignment(object): - ''' - Assuming the given external_align, checks whether - self is fulfilled for all cases. -- Returns True if yes, False otherwise. -+ Returns True if yes, False otherwise. - ''' - if self.align == 1 and self.offset == 0: - # alignment 1 with offset 0 is always fulfilled -@@ -55,9 +55,9 @@ class Alignment(object): - # the external align guarantees less alignment -> not guaranteed - return False - -- if external_align.align % self.align != 0: -+ if external_align.align % self.align != 0: - # the external align cannot be divided by our align -- # -> not guaranteed -+ # -> not guaranteed - # (this can only happen if there are alignments that are not - # a power of 2, which is highly discouraged. But better be - # safe and check for it) -@@ -72,7 +72,7 @@ class Alignment(object): - - def combine_with(self, other): - # returns the alignment that is guaranteed when -- # both, self or other, can happen -+ # both, self or other, can happen - new_align = gcd(self.align, other.align) - new_offset_candidate1 = self.offset % new_align - new_offset_candidate2 = other.offset % new_align -@@ -83,8 +83,8 @@ class Alignment(object): - new_align = gcd(new_align, offset_diff) - new_offset_candidate1 = self.offset % new_align - new_offset_candidate2 = other.offset % new_align -- assert new_offset_candidate1 == new_offset_candidate2 -- new_offset = new_offset_candidate1 -+ assert new_offset_candidate1 == new_offset_candidate2 -+ new_offset = new_offset_candidate1 - # return the result - return Alignment(new_align, new_offset) - -@@ -92,44 +92,44 @@ class Alignment(object): - class AlignmentLog(object): - - def __init__(self): -- self.ok_list = [] -- self.fail_list = [] -- self.verbosity = 1 -+ self.ok_list = [] -+ self.fail_list = [] -+ self.verbosity = 1 - - def __str__(self): -- result = "" -+ result = "" - -- # output the OK-list -- for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: -- stacksize = len(callstack) -+ # output the OK-list -+ for (align_before, field_name, type_obj, callstack, align_after) in self.ok_list: -+ stacksize = len(callstack) - indent = ' ' * stacksize -- if self.ok_callstack_is_relevant(callstack): -+ if self.ok_callstack_is_relevant(callstack): - if field_name is None or field_name == "": -- result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" -- % (indent, str(type_obj), indent, str(align_before), str(align_after))) -- else: -- result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" -- % (indent, str(field_name), str(type_obj), -- indent, str(align_before), str(align_after))) -+ result += (" %sok: %s:\n\t%sbefore: %s, after: %s\n" -+ % (indent, str(type_obj), indent, str(align_before), str(align_after))) -+ else: -+ result += (" %sok: field \"%s\" in %s:\n\t%sbefore: %s, after: %s\n" -+ % (indent, str(field_name), str(type_obj), -+ indent, str(align_before), str(align_after))) - if self.verbosity >= 1: -- result += self.callstack_to_str(indent, callstack) -+ result += self.callstack_to_str(indent, callstack) - -- # output the fail-list -- for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: -- stacksize = len(callstack) -+ # output the fail-list -+ for (align_before, field_name, type_obj, callstack, reason) in self.fail_list: -+ stacksize = len(callstack) - indent = ' ' * stacksize -- if field_name is None or field_name == "": -- result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" -- % (indent, str(align_before), indent, str(type_obj), indent, reason)) -- else: -- result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" -- % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) -+ if field_name is None or field_name == "": -+ result += (" %sfail: align %s is incompatible with\n\t%s%s\n\t%sReason: %s\n" -+ % (indent, str(align_before), indent, str(type_obj), indent, reason)) -+ else: -+ result += (" %sfail: align %s is incompatible with\n\t%sfield \"%s\" in %s\n\t%sReason: %s\n" -+ % (indent, str(align_before), indent, str(field_name), str(type_obj), indent, reason)) - - if self.verbosity >= 1: -- result += self.callstack_to_str(indent, callstack) -+ result += self.callstack_to_str(indent, callstack) - - -- return result -+ return result - - - def callstack_to_str(self, indent, callstack): -@@ -137,41 +137,41 @@ class AlignmentLog(object): - for stack_elem in callstack: - result += "\t %s%s\n" % (indent, str(stack_elem)) - result += "\t%s]\n" % indent -- return result -+ return result - - - def ok_callstack_is_relevant(self, ok_callstack): - # determine whether an ok callstack is relevant for logging -- if self.verbosity >= 2: -- return True -+ if self.verbosity >= 2: -+ return True - - # empty callstacks are always relevant -- if len(ok_callstack) == 0: -+ if len(ok_callstack) == 0: - return True - -- # check whether the ok_callstack is a subset or equal to a fail_callstack -+ # check whether the ok_callstack is a subset or equal to a fail_callstack - for (align_before, field_name, type_obj, fail_callstack, reason) in self.fail_list: - if len(ok_callstack) <= len(fail_callstack): - zipped = zip(ok_callstack, fail_callstack[:len(ok_callstack)]) -- is_subset = all([i == j for i, j in zipped]) -- if is_subset: -+ is_subset = all([i == j for i, j in zipped]) -+ if is_subset: - return True - - return False - - - def ok(self, align_before, field_name, type_obj, callstack, align_after): -- self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) -+ self.ok_list.append((align_before, field_name, type_obj, callstack, align_after)) - - def fail(self, align_before, field_name, type_obj, callstack, reason): -- self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) -+ self.fail_list.append((align_before, field_name, type_obj, callstack, reason)) - - def append(self, other): -- self.ok_list.extend(other.ok_list) -- self.fail_list.extend(other.fail_list) -+ self.ok_list.extend(other.ok_list) -+ self.fail_list.extend(other.fail_list) - - def ok_count(self): -- return len(self.ok_list) -+ return len(self.ok_list) - - - --- -cgit v0.10.2 - -From bea5e1c85bdc0950913790364e18228f20395a3d Mon Sep 17 00:00:00 2001 -From: Thomas Klausner <wiz@NetBSD.org> -Date: Thu, 19 May 2016 17:30:05 +0200 -Subject: print() is a function and needs parentheses. - -Fixes build with python-3.x. - -Signed-off-by: Thomas Klausner <wiz@NetBSD.org> -Signed-off-by: Uli Schlachter <psychon@znc.in> - -diff --git a/xcbgen/xtypes.py b/xcbgen/xtypes.py -index c3b5758..b83b119 100644 ---- a/xcbgen/xtypes.py -+++ b/xcbgen/xtypes.py -@@ -501,7 +501,7 @@ class ComplexType(Type): - int(required_start_align_element.get('align', "4"), 0), - int(required_start_align_element.get('offset', "0"), 0)) - if verbose_align_log: -- print "Explicit start-align for %s: %s\n" % (self, self.required_start_align) -+ print ("Explicit start-align for %s: %s\n" % (self, self.required_start_align)) - - def resolve(self, module): - if self.resolved: -@@ -592,7 +592,7 @@ class ComplexType(Type): - if verbose_align_log: - print ("calc_required_start_align: %s has start-align %s" - % (str(self), str(self.required_start_align))) -- print "Details:\n" + str(log) -+ print ("Details:\n" + str(log)) - if self.required_start_align.offset != 0: - print (("WARNING: %s\n\thas start-align with non-zero offset: %s" - + "\n\tsuggest to add explicit definition with:" -@@ -619,12 +619,12 @@ class ComplexType(Type): - for offset in range(0,align): - align_candidate = Alignment(align, offset) - if verbose_align_log: -- print "trying %s for %s" % (str(align_candidate), str(self)) -+ print ("trying %s for %s" % (str(align_candidate), str(self))) - my_log = AlignmentLog() - if self.is_possible_start_align(align_candidate, callstack, my_log): - log.append(my_log) - if verbose_align_log: -- print "found start-align %s for %s" % (str(align_candidate), str(self)) -+ print ("found start-align %s for %s" % (str(align_candidate), str(self))) - return align_candidate - else: - my_ok_count = my_log.ok_count() -@@ -641,7 +641,7 @@ class ComplexType(Type): - # none of the candidates applies - # this type has illegal internal aligns for all possible start_aligns - if verbose_align_log: -- print "didn't find start-align for %s" % str(self) -+ print ("didn't find start-align for %s" % str(self)) - log.append(best_log) - return None - -@@ -900,7 +900,7 @@ class SwitchType(ComplexType): - # aux function for unchecked_get_alignment_after - def get_align_for_selected_case_field(self, case_field, start_align, callstack, log): - if verbose_align_log: -- print "get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field)) -+ print ("get_align_for_selected_case_field: %s, case_field = %s" % (str(self), str(case_field))) - total_align = start_align - for field in self.bitcases: - my_callstack = callstack[:] --- -cgit v0.10.2 - diff --git a/patches/xorgproto-2018.4.local.patch b/patches/xorgproto-2018.4.local.patch new file mode 100644 index 00000000..50339c60 --- /dev/null +++ b/patches/xorgproto-2018.4.local.patch @@ -0,0 +1,425 @@ +diff -Nru xorgproto-2018.4.orig/man/Xprint.man xorgproto-2018.4/man/Xprint.man +--- xorgproto-2018.4.orig/man/Xprint.man 1970-01-01 01:00:00.000000000 +0100 ++++ xorgproto-2018.4/man/Xprint.man 2018-07-29 01:06:04.000000000 +0200 +@@ -0,0 +1,421 @@ ++.\" -*- coding: us-ascii -*- ++.TH Xprint __miscmansuffix__ "8 October 2004" ++.SH NAME ++Xprint \- The "X print service" - a portable, network-transparent printing system based on the X11 protocol ++.SH SYNOPSIS ++Xprint is a very flexible, extensible, scaleable, client/server ++print system based on ISO 10175 (and some other specs) and the X11 ++rendering protocol. ++Using Xprint an application can search, query and use devices like ++printers, FAX machines or create documents in formats like PDF. ++In particular, an application can seek a printer, query supported ++attributes (like paper size, trays, fonts etc.), configure the printer ++device to match it\(cqs needs and print on it like on any other X device ++reusing parts of the code which is used for the video card Xserver. ++.SH OVERVIEW ++The "X Print Service" technology allows X rendering to devices such as ++printers and fax. Most of the service is available in the X11 ++technology stack as Xp, with the remainder in single toolkit stacks (e.g. DtPrint for CDE). ++Modifications have also been made to the LessTif/Motif/Qt technology ++stacks to support Xprint. ++.PP ++The Xp portion consists of: ++.TP 0.2i ++\(bu ++Xp Extension for the X-Server (included in the X-Server Xprt) ++.TP 0.2i ++\(bu ++Xp Extension API for the client side (libXp/libXprintUtils) ++.TP 0.2i ++\(bu ++PCL ddx driver that converts core X to native PCL ++.TP 0.2i ++\(bu ++PDF ddx driver that converts core X to native PDF ++.TP 0.2i ++\(bu ++PostScript ddx driver that converts core X to native PostScript ++.TP 0.2i ++\(bu ++Raster ddx driver that generates xwd rasters which can be converted to PCL, PDF or PostScript rasters ++.PP ++.PP ++From an X clients perspective, it can attach to one of two nearly ++identical X-Servers, a "Video" X-Server, and a "Print" X-Server ++which has the additional Xp capability but otherwise looks and ++behaves the same. ++.SH "HOW THE X PRINT SERVICE WORKS" ++The X Print Service expands on the traditional X-Server and Xlib world ++in four ways. ++.TP 0.4i ++1. ++Most obvious is the use of "print ddx drivers" instead of ++"video ddx drivers". While a video ddx driver modifies pixels ++in a video frame buffer, a print ddx driver generates "page ++description language (PDL)" output (such as PCL, PDF or PostScript) ++or sends the print rendering instructions to a platform-specific ++print API (like Win32/GDI). ++ ++Once a print ddx driver generates PDL output, it can be sent to ++a spooler such as \fBlp\fR(1) ++or retrieved by the client (to implement functionality like "print-to-file"). ++ ++Though not currently done, a single X-Server can support both ++print and video ddx drivers. ++.TP 0.4i ++2. ++Since printers support "paged" output, unlike video, a portion ++of the Xp Extension supports APIs to delineate printed output. ++For example, XpStartPage and XpEndPage tell the X-Server where ++a physical page starts and ends in an otherwise continuous ++stream of X rendering primitives. Likewise, XpStartJob and ++XpEndJob determine when a collection of pages starts and ends. ++XpEndJob typically causes the generated PDL to be submitted to ++a spooler, such as \fBlp\fR(1). ++.TP 0.4i ++3. ++Since printers have extensive capabilities, another portion of ++the Xp Extension supports APIs to manipulate "print contexts". ++ ++Once a printer is selected using the Xp Extension API, a print ++context to represent it can be created. A print context ++embodies the printer selected - it contains the printer's ++default capabilities, selectable range of capabilities, ++printer state, and generated output. Some "attributes" within ++the print context can be modified by the user, and the ++X-Server and print ddx driver will react accordingly. For ++example, the attribute "content-orientation" can be set to ++"landscape" or "portrait" (if the printer supports these ++values - which can be queried using the Xprint API as well). ++.TP 0.4i ++4. ++Since printers can have "built in" fonts, the Xp Extension in ++the X-Server works with the print ddx drivers to make ++available (for printing only) additional fonts on a per print ++context basis. ++ ++When a print context is created and set for a given printer, ++the X font calls may be able to access additional printer ++fonts. To do this (typically), the X-Server must have access ++to "printer metric files" (.pmf) that describe at minimum the ++metrics of the built in fonts. ++.PP ++.SH USAGE ++There are three tasks to start the X Print Service: ++.TP 0.4i ++1. ++configuring the X Print Server, ++.TP 0.4i ++2. ++starting the X Print Service ++.TP 0.4i ++3. ++configuring the user session so that clients can find the running X Print Service ++.PP ++.PP ++The tasks are described in detail below. ++.SH "SERVER CONFIGURATION" ++The X Print Server (Xprt) can read a number of configuration files which ++control its behavior and support for printers. Each vendor platform has ++a default location for this information. Xprt can also read the ++environment variable \fBXPCONFIGDIR\fR to locate alternate configuration ++directories. Common settings include: ++ ++export XPCONFIGDIR=/X11/lib/X11/XpConfig/ ++.PP ++export XPCONFIGDIR=/proj/x11/xc/programs/Xserver/XpConfig/ ++ ++.PP ++Xprt has many built-in defaults, and lacking any configuration files, ++will immediately try to support all printers visible via \fBlpstat\fR(1). ++.PP ++In order of importance for configuration by a system administrator, the ++configuration files for a "C" locale are as follows (see \fBXprt\fR(__appmansuffix__) for more ++details (including support for non-"C" locales)): ++.TP ++\fB${XPCONFIGDIR}/C/print/Xprinters\fR ++\&'Xprinters' is the top most configuration file. It tells ++Xprt which specific printer names (e.g. mylaser) should ++be supported, and whether \fBlpstat\fR(1) or other commands ++should be used to automatically supplement the list of ++printers. ++.TP ++\fB${XPCONFIGDIR}/C/print/attributes/printer\fR ++The 'printer' file maps printer names to model ++configurations (see 'model-config' below). For example, ++"mylaser" could be mapped to a "HPDJ1600C", and all other ++arbitrary printers could be mapped to a default, such as ++"HPLJ4SI". When depending on \fBlpstat\fR(1) in the Xprinters ++file, setting up defaults in 'printer' becomes all the ++more important. ++.TP ++\fB${XPCONFIGDIR}/C/print/attributes/document\fR ++The 'document' file specifies the initial document values ++for any print jobs. For example, which paper tray to ++use, what default resolution, etc. ++.TP ++\fB${XPCONFIGDIR}/C/print/attributes/job\fR ++The 'job' file specifies the initial job values for any ++print jobs. For example, "notification-profile" can be ++set so that when a print job is successfully sent to a ++printer, e-mail is sent to the user. ++.TP ++\fB${XPCONFIGDIR}/C/print/models/PSdefault/model\-config\fR, \fB${XPCONFIGDIR}/C/print/models/PSdefault/fonts/fonts.dir\fR, \fB${XPCONFIGDIR}/C/print/models/PSdefault/fonts/9nb00051.pmf\fR, \fB${XPCONFIGDIR}/C/print/models/PSdefault/fonts/9nb00093.pmf\fR ++The 'model-config' file has attributes that describe the ++printer model\(cqs capabilities and default settings. ++Printer model fonts may also be present. The model-config ++file also identifies the print ddx driver to be used. ++For each printer model supported, a complete hierarchy of ++files should exist. In most cases, these files do not ++need to be modified. ++.TP ++\fB${XPCONFIGDIR}/C/print/ddx\-config/raster/pcl\fR, \fB${XPCONFIGDIR}/C/print/ddx\-config/raster/pdf\fR, \fB${XPCONFIGDIR}/C/print/ddx\-config/raster/postscript\fR ++The print ddx drivers can have highly specific ++configuration files to control their behavior. In most ++cases, these files do not need to be modified. ++.PP ++More information in how to configure and customize the X print server can be found in the ++\fBXprt\fR(__appmansuffix__) ++manual page. ++.SH "STARTING UP" ++The summary checklist for starting the X Print Service is as follows: ++.TP 0.4i ++1. ++Choose an execution model for the X Print Service. The X ++Print Service can be run on a per-user session basis, per ++machine basis, or can be run on a few machines globally ++available to a number of users. ++.TP 0.4i ++2. ++If print jobs are to be submitted to a spooler (almost always ++the case), make sure all needed printers are available to the ++spooler subsystem (most often \fBlp\fR(1)) ++on the same machine running the X Print Service. ++.TP 0.4i ++3. ++Configure the X Print Server. See ``X Print Server ++Configuration''. ++.TP 0.4i ++4. ++Depending on #1, start the X Print Server process "Xprt", and ++then the toolkit-specific Print Dialog Manager Daemon process ++(such as CDEnext's "dtpdmd") at the appropriate times. ++Note that libXprintUtils-based applications/toolkits do not need ++a Print Dialog Manager Daemon process to use Xprint. ++.PP ++The details are described below. ++.PP ++Because the X Print Service is based on X, it can be easily distributed. ++The most significant factors in which execution model to choose will be ++driven by: ++.TP 0.2i ++\(bu ++how many printers will be accessable through the printer ++subsystem on any given machine. A system administrator may ++choose to cluster printers on a few given machines, or ++scatter them across an organization and possibly make ++extensive use of remote spoolers to make them globally ++available. ++.TP 0.2i ++\(bu ++how many machines will need a copy of the X Print Server ++configuration files. The files have been architected so ++that one super-set version of them can be maintained and ++distributed (e.g. via NFS), and a per-machine or per-user ++version of the `Xprinters' is all that is needed to have the ++appropriate information in them utilized or ignored. ++.TP 0.2i ++\(bu ++how many users can demand services from a given X Print ++Service. ++.PP ++With the above in mind, some obvious execution models include: ++.TP 0.2i ++\(bu ++Global - in this model, the system administrator is choosing ++to run the X Print Service on a *few* select machines with ++appropriate printers configured, and allow clients access to ++the global resource. This can centralize the administration ++of printers and configuration files, but may have to be ++monitored for performance loading. ++ ++Startup would likely be done by boot-up scripts (such as \fB/etc/init.d/xprint\fR). ++.TP 0.2i ++\(bu ++Per-machine - every machine with potential X Print Service ++users would run the service. Printer and configuration file ++administration is decentralized, and usage would be limited ++to the users on the machine. ++ ++Startup would likely be done by boot-up scripts (such as \fB/etc/init.d/xprint\fR). ++.TP 0.2i ++\(bu ++Per-user session - every user would run an entire X Print ++Service for themselves. In the future, the Video X Server ++normally started may contain Print X Server capability, so ++this model becomes very natural. ++ ++Startup would likely be done at session login or by ++launching actions or processes manually once the user ++logs in. Note: Deamons like "dtpdmd" must be started after Xprt. ++.PP ++.PP ++Starting of the processes is straight forward. In strict order (example is for manually starting the X print server for CDEnext usage): ++.TP 0.4i ++1. ++ ++.nf ++[machineA] % Xprt [\-XpFile <Xprinters file>] [:dispNum] & ++.fi ++ ++ ++Note that Xprt will look for configuration files in either ++a default location or where \fBXPCONFIGDIR\fR points. ++ ++\fB\-XpFile\fR specifies an alternate `Xprinters' file, rather ++than the default one or `\fB${XPCONFIGDIR}/C/print/Xprinters\fR'. ++.TP 0.4i ++2. ++ ++.nf ++[machineA] % dtpdmd \-d machineA[:dispNum] [\-l /tmp/dtpdmd.log] & ++.fi ++ ++ ++The dtpdmd will maintain an X-Selection on the X-Server, ++and will start dtpdm's as required to service requests. ++.PP ++.PP ++In all but the per-user session model, the machine running the dtpdmd ++(thus dtpdm's) will need display authorization to the users video ++display. ++.SH "CLIENT CONFIGURATION" ++Once a X Print Server and dtpdmd have been started -- many of them ++in some cases -- clients will need to find and use them. There are ++two mechanisms that allow clients to discover X Print Servers and ++printers. ++.TP 0.2i ++\(bu ++"X Print Specifier" - assuming usage of the DtPrint/XprintUtils-based print ++applications, the following notation is understood: ++ ++ ++.nf ++printer_name@machine[:dispNum] ++.fi ++ ++ ++For example: ++ ++ ++.nf ++colorlj7@printhub:2 ++.fi ++ ++ ++In the above example, the X Print Server running at `printhub:2' ++is assumed to support the printer named `colorlj7'. ++.TP 0.2i ++\(bu ++\fB${XPSERVERLIST}\fR - assuming usage of the DtPrint print dialogs, ++the environment variable \fB${XPSERVERLIST}\fR can contain a list ++of X Print Servers. For example: ++ ++ ++.nf ++XPSERVERLIST="printhub:2 printhub:3 otherdept:0" ++.fi ++ ++ ++Then in the dialogs, only a printer name needs to be entered. ++The dialog will then search the X Print Servers in \fB${XPSERVERLIST}\fR ++for a server than supports the printer, and then establish ++contact. ++.PP ++.SH "END-USER SEQUENCE" ++From most CDEnext applications, printing is accomplished by bringing ++down the <File> menu and selecting <Print...>. This will result in ++the DtPrintSetupBox dialog, which will request the name of a printer, ++and offer limited capability to configure print options (e.g. number ++of copies). If the user wishes, they can select <Setup...>, which ++will start a dtpdm capable of modifying additional print options. ++Finally, the user should select <Print>. ++.SH ENVIRONMENT ++.TP ++\fB${XPCONFIGDIR}\fR ++This environment variable points to the root ++of the Xprint server configuration directory hierarchy. ++If the variable is not defined, the default ++path is be assumed. The default path may be ++\fB/usr/X11R6/lib/X11/xserver/\fR, ++\fB/usr/lib/X11/xserver/\fR, ++\fB/usr/share/Xprint/xserver/\fR or ++\fB/usr/openwin/server/etc/XpConfig\fR, depending on the ++system, and may be configured in \fB/etc/init.d/xprint\fR. ++.TP ++\fB${LANG}\fR ++This environment variable selects the locale settings used by the Xprint server. ++Xprt allows language-specific settings (stored in \fB${XPCONFIGDIR}/${LANG}/print/\fR) ++which will override the default settings (stored in \fB${XPCONFIGDIR}/C/print/\fR). ++If \fB${LANG}\fR is not set "C" is assumed. ++.TP ++\fB${XPSERVERLIST}\fR ++The environment variable \fB${XPSERVERLIST}\fR contains a list ++of display identifiers (separated by whitespace) which tell an ++application where it can find the Xprint servers. Usually ++\fB${XPSERVERLIST}\fR is set by the profile startup scripts (e.g. ++\fB/etc/profile\fR or \fB/etc/profile.d/xprint.sh\fR) using the output of ++\fB/etc/init.d/xprint get_xpserverlist\fR. ++ ++Example: ++ ++.nf ++ ++ export XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`" ++.fi ++ ++ ++Alternatively \fB${XPSERVERLIST}\fR can be set ++manually. Example: ++ ++.nf ++ ++ export XPSERVERLIST="littlecat:80 bitdog:72" ++.fi ++ ++instructs an application to find an Xprint server at display ++80 on the machine "littlecat" and at display 72 on the ++machine bigdog. ++.TP ++\fB${XPRINTER}\fR ++The environment variable \fB${XPRINTER}\fR ++defines the default printer used by print ++applications. The syntax is either ++\fIprintername\fR or ++\fIprintername\fR@\fIdisplay\fR. ++ ++Examples: ++.RS ++.TP ++\fBXPRINTER=ps003\fR ++tells an application to look for the ++first printer named "ps003" on all Xprint ++servers. ++.TP ++\fBXPRINTER=hplaser19@littlecat:80\fR ++tells an application to use the printer "hplaser19" ++on the Xprint server at display ++"littlecat:80". ++.RE ++ ++ ++If \fB${XPRINTER}\fR is not set the applications ++will examine the values of the \fB${PDPRINTER}\fR, ++\fB${LPDEST}\fR, and ++\fB${PRINTER}\fR environment variables (in that order). ++.SH "SEE ALSO" ++\fBX11\fR(__miscmansuffix__), \fBxplsprinters\fR(__appmansuffix__), \fBxprehashprinterlist\fR(__appmansuffix__), \fBxphelloworld\fR(__appmansuffix__), \fBxpxmhelloworld\fR(__appmansuffix__), \fBxpawhelloworld\fR(__appmansuffix__), \fBxpxthelloworld\fR(__appmansuffix__), \fBxpsimplehelloworld\fR(__appmansuffix__), \fBXserver\fR(__appmansuffix__), \fBXprt\fR(__appmansuffix__), \fBlibXp\fR(__libmansuffix__), \fBlibXprintUtils\fR(__libmansuffix__), \fBlibXprintAppUtils\fR(__libmansuffix__), \fBXmPrintShell\fR(__libmansuffix__), \fBXawPrintShell\fR(__libmansuffix__), Xprint FAQ (http://xprint.mozdev.org/docs/Xprint_FAQ.html), Xprint main site (http://xprint.mozdev.org/) ++.SH AUTHORS ++This manual page was written by ++Roland Mainz <roland.mainz@nrubsig.org> based on the original X11R6.6 ++\fBxc/programs/Xserver/XpConfig/README\fR. |