source: trunk/third/lprng/doc/LPRng-HOWTO.html @ 14517

Revision 14517, 15.7 KB checked in by mwhitson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14516, which included commits to RCS files with non-trunk default branches.
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2<HTML>
3<HEAD>
4 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
5 <TITLE> LPRng-HOWTO</TITLE>
6 <LINK HREF="LPRng-HOWTO-1.html" REL=next>
7
8
9</HEAD>
10<BODY>
11<A HREF="LPRng-HOWTO-1.html">Next</A>
12Previous
13Contents
14<HR>
15<H1> LPRng-HOWTO</H1>
16
17<H2>Patrick Powell <CODE>
18<A HREF="mailto:papowell@astart.com">papowell@astart.com</A></CODE></H2> 11 Feb 2000 (For LPRng-3.6.13)
19<P><HR>
20<EM>The LPRng software is an enhanced, extended, and portable implementation
21of the Berkeley LPR print spooler functionality. While providing the same
22interface and meeting RFC1179 requirements, the implementation is completely
23independent and provides support for the following features: lightweight (no databases
24needed) lpr, lpc, and lprm programs; dynamic redirection of print queues;
25automatic job holding; highly verbose diagnostics; multiple printers serving
26a single queue; client programs do not need to run SETUID root; greatly enhanced
27security checks; load balancing across multiple printers;
28and a greatly improved permission and authorization mechanism.
29The source software compiles and runs on a wide variety of UNIX systems,
30and is compatible with other print spoolers and network printers that use
31the LPR interface and meet RFC1179 requirements. The package comes with filters for PostScript and HP printers, as well
32as the usual 'dumb' printers, and the PostScript and HP filters support
33page counting and produce accounting information accounting. In addition
34there are a wide variety of filters for page formatting
35and to produce banner pages. For users that require compatibility with the SVR4 lp and lpstat programs,
36the LPRng package provides emulation of these programs.
37In addition, a publicly available PCNFSD server
38is distributed with LPRng and interfaces with the PC/DOS/Windows based
39NFS style print spoolers.
40In addition,
41LPRng can be easily integrated with the Samba SMB support package.
42For users that require secure and/or authenticated printing support,
43LPRng supports Kerberos 5,
44MIT Kerberos 4 extensions to LPR,
45PGP,
46and simple MD5 based authentication.
47Additional authentication support is extremely simple to add. </EM>
48<HR>
49<P>
50<H2><A NAME="toc1">1.</A> <A HREF="LPRng-HOWTO-1.html">Introduction</A></H2>
51
52<UL>
53<LI><A HREF="LPRng-HOWTO-1.html#ss1.1">1.1 What is LPRng?</A>
54<LI><A HREF="LPRng-HOWTO-1.html#ss1.2">1.2 More Information</A>
55<LI><A HREF="LPRng-HOWTO-1.html#ss1.3">1.3 Frequently Asked Questions</A>
56<LI><A HREF="LPRng-HOWTO-1.html#ss1.4">1.4 Copyright</A>
57<LI><A HREF="LPRng-HOWTO-1.html#ss1.5">1.5 Disclaimer</A>
58<LI><A HREF="LPRng-HOWTO-1.html#ss1.6">1.6 Commercial Support</A>
59<LI><A HREF="LPRng-HOWTO-1.html#ss1.7">1.7 Web Site</A>
60<LI><A HREF="LPRng-HOWTO-1.html#ss1.8">1.8 FTP Sites</A>
61<LI><A HREF="LPRng-HOWTO-1.html#ss1.9">1.9 Mailing List</A>
62<LI><A HREF="LPRng-HOWTO-1.html#ss1.10">1.10 PGP Public Key</A>
63</UL>
64<P>
65<H2><A NAME="toc2">2.</A> <A HREF="LPRng-HOWTO-2.html">Print Spooling Overview</A></H2>
66
67<UL>
68<LI><A HREF="LPRng-HOWTO-2.html#ss2.1">2.1 Overview</A>
69<LI><A HREF="LPRng-HOWTO-2.html#ss2.2">2.2 Sample Printcap Entry</A>
70<LI><A HREF="LPRng-HOWTO-2.html#ss2.3">2.3 Print Server Configuration</A>
71</UL>
72<P>
73<H2><A NAME="toc3">3.</A> <A HREF="LPRng-HOWTO-3.html">Attaching Your Printer</A></H2>
74
75<UL>
76<LI><A HREF="LPRng-HOWTO-3.html#ss3.1">3.1 Network Printers</A>
77<LI><A HREF="LPRng-HOWTO-3.html#ss3.2">3.2 Network Print Server Boxes</A>
78<LI><A HREF="LPRng-HOWTO-3.html#ss3.3">3.3 Parallel Printers</A>
79<LI><A HREF="LPRng-HOWTO-3.html#ss3.4">3.4 Serial Printers</A>
80</UL>
81<P>
82<H2><A NAME="toc4">4.</A> <A HREF="LPRng-HOWTO-4.html">Installing the Software</A></H2>
83
84<UL>
85<LI><A HREF="LPRng-HOWTO-4.html#ss4.1">4.1 Source Code and Support Programs</A>
86<LI><A HREF="LPRng-HOWTO-4.html#ss4.2">4.2 Configuration</A>
87<LI><A HREF="LPRng-HOWTO-4.html#ss4.3">4.3 Installation</A>
88<LI><A HREF="LPRng-HOWTO-4.html#ss4.4">4.4 Solving Installation Problems</A>
89<LI><A HREF="LPRng-HOWTO-4.html#ss4.5">4.5 Advanced Configuration Options</A>
90<LI><A HREF="LPRng-HOWTO-4.html#ss4.6">4.6 Printcap and lpd.conf files</A>
91<LI><A HREF="LPRng-HOWTO-4.html#ss4.7">4.7 Security, Permissions, and CHECKPC</A>
92<LI><A HREF="LPRng-HOWTO-4.html#ss4.8">4.8 Stopping Existing Spooler Software</A>
93<LI><A HREF="LPRng-HOWTO-4.html#ss4.9">4.9 Initial System Testing</A>
94<LI><A HREF="LPRng-HOWTO-4.html#ss4.10">4.10 Startup Scripts</A>
95<LI><A HREF="LPRng-HOWTO-4.html#ss4.11">4.11 Replacing UNIX SystemV lp, lpstat Printing Services</A>
96</UL>
97<P>
98<H2><A NAME="toc5">5.</A> <A HREF="LPRng-HOWTO-5.html">System Specific Notes</A></H2>
99
100<UL>
101<LI><A HREF="LPRng-HOWTO-5.html#ss5.1">5.1 Solaris 2.4, 2.5, 2.6, 2.7</A>
102<LI><A HREF="LPRng-HOWTO-5.html#ss5.2">5.2 Solaris, Newsprint and FrameMaker</A>
103<LI><A HREF="LPRng-HOWTO-5.html#ss5.3">5.3 Linux</A>
104<LI><A HREF="LPRng-HOWTO-5.html#ss5.4">5.4 AIX</A>
105<LI><A HREF="LPRng-HOWTO-5.html#ss5.5">5.5 AppleTalk Support</A>
106<LI><A HREF="LPRng-HOWTO-5.html#ss5.6">5.6 Apple to LPRng Printing</A>
107<LI><A HREF="LPRng-HOWTO-5.html#ss5.7">5.7 LPRng to AppleTalk Printing</A>
108<LI><A HREF="LPRng-HOWTO-5.html#ss5.8">5.8 SAMBA, SMB and LPRng</A>
109<LI><A HREF="LPRng-HOWTO-5.html#ss5.9">5.9 Printing to a NetBEUI Printer</A>
110<LI><A HREF="LPRng-HOWTO-5.html#ss5.10">5.10 Printer Specific notes</A>
111<LI><A HREF="LPRng-HOWTO-5.html#ss5.11">5.11 HP Deskjet</A>
112<LI><A HREF="LPRng-HOWTO-5.html#ss5.12">5.12 HP LaserJet IIISiMX</A>
113<LI><A HREF="LPRng-HOWTO-5.html#ss5.13">5.13 HP JetDirect Interface</A>
114<LI><A HREF="LPRng-HOWTO-5.html#ss5.14">5.14 Lexmark Printers</A>
115<LI><A HREF="LPRng-HOWTO-5.html#ss5.15">5.15 Network Base Tektronix Phaser Printers</A>
116<LI><A HREF="LPRng-HOWTO-5.html#ss5.16">5.16 Duplex Printing</A>
117<LI><A HREF="LPRng-HOWTO-5.html#ss5.17">5.17 Test Version  and Portability Testing</A>
118</UL>
119<P>
120<H2><A NAME="toc6">6.</A> <A HREF="LPRng-HOWTO-6.html">The Most Frequently Asked Questions</A></H2>
121
122<UL>
123<LI><A HREF="LPRng-HOWTO-6.html#ss6.1">6.1 Why do I get malformed from address errors?</A>
124<LI><A HREF="LPRng-HOWTO-6.html#ss6.2">6.2 It was working normally, then I get connection refused errors</A>
125<LI><A HREF="LPRng-HOWTO-6.html#ss6.3">6.3 Job is not in print queue, but it gets printed!</A>
126<LI><A HREF="LPRng-HOWTO-6.html#ss6.4">6.4 Job disappears and is never printed, but lpr works</A>
127<LI><A HREF="LPRng-HOWTO-6.html#ss6.5">6.5 I get messages about bad control file format</A>
128<LI><A HREF="LPRng-HOWTO-6.html#ss6.6">6.6 What is RFC 1179, the Line Printer Daemon Protocol?</A>
129<LI><A HREF="LPRng-HOWTO-6.html#ss6.7">6.7 I want to replace lp, lpstat, etc, but my programs need them</A>
130<LI><A HREF="LPRng-HOWTO-6.html#ss6.8">6.8 What are the drawbacks to LPRng?</A>
131</UL>
132<P>
133<H2><A NAME="toc7">7.</A> <A HREF="LPRng-HOWTO-7.html">Client To Server Connection Information</A></H2>
134
135<UL>
136<LI><A HREF="LPRng-HOWTO-7.html#ss7.1">7.1 Printer Name and Server IP Address</A>
137<LI><A HREF="LPRng-HOWTO-7.html#ss7.2">7.2 LPD Server Runnning on Localhost</A>
138</UL>
139<P>
140<H2><A NAME="toc8">8.</A> <A HREF="LPRng-HOWTO-8.html">Using the Printcap Database</A></H2>
141
142<UL>
143<LI><A HREF="LPRng-HOWTO-8.html#ss8.1">8.1 Simple Client Printcap Entry</A>
144<LI><A HREF="LPRng-HOWTO-8.html#ss8.2">8.2 Simple Server Printcap Example</A>
145<LI><A HREF="LPRng-HOWTO-8.html#ss8.3">8.3 The Printcap Parsing Rules</A>
146<LI><A HREF="LPRng-HOWTO-8.html#ss8.4">8.4 Displaying Printcap Information</A>
147<LI><A HREF="LPRng-HOWTO-8.html#ss8.5">8.5 Remote Printer Using RFC1179</A>
148<LI><A HREF="LPRng-HOWTO-8.html#ss8.6">8.6 Remote Printer Using Socket API</A>
149<LI><A HREF="LPRng-HOWTO-8.html#ss8.7">8.7 Parallel Printer</A>
150<LI><A HREF="LPRng-HOWTO-8.html#ss8.8">8.8 A serial printer queue</A>
151<LI><A HREF="LPRng-HOWTO-8.html#ss8.9">8.9 Single Printcap File for Large Installation</A>
152<LI><A HREF="LPRng-HOWTO-8.html#ss8.10">8.10 Bounce queues</A>
153<LI><A HREF="LPRng-HOWTO-8.html#ss8.11">8.11 Changing Job Formats</A>
154<LI><A HREF="LPRng-HOWTO-8.html#ss8.12">8.12 LPR Filters Files</A>
155<LI><A HREF="LPRng-HOWTO-8.html#ss8.13">8.13 Dynamic Routing</A>
156<LI><A HREF="LPRng-HOWTO-8.html#ss8.14">8.14 Printer Load Balancing</A>
157<LI><A HREF="LPRng-HOWTO-8.html#ss8.15">8.15 Locations of Printcap Files</A>
158<LI><A HREF="LPRng-HOWTO-8.html#ss8.16">8.16 Management Strategies for Large Installations</A>
159<LI><A HREF="LPRng-HOWTO-8.html#ss8.17">8.17 Using Programs To Get Printcap Information</A>
160</UL>
161<P>
162<H2><A NAME="toc9">9.</A> <A HREF="LPRng-HOWTO-9.html">LPRng checkpc Utility</A></H2>
163
164<UL>
165<LI><A HREF="LPRng-HOWTO-9.html#ss9.1">9.1 Maintenance</A>
166<LI><A HREF="LPRng-HOWTO-9.html#ss9.2">9.2 Printcap Information</A>
167</UL>
168<P>
169<H2><A NAME="toc10">10.</A> <A HREF="LPRng-HOWTO-10.html">Spool Queues and Files</A></H2>
170
171<UL>
172<LI><A HREF="LPRng-HOWTO-10.html#ss10.1">10.1 Spool Queue</A>
173<LI><A HREF="LPRng-HOWTO-10.html#ss10.2">10.2 Queue Lock File</A>
174<LI><A HREF="LPRng-HOWTO-10.html#ss10.3">10.3 Spool Control File</A>
175<LI><A HREF="LPRng-HOWTO-10.html#ss10.4">10.4 Log and Status Files</A>
176<LI><A HREF="LPRng-HOWTO-10.html#ss10.5">10.5 Job Files</A>
177<LI><A HREF="LPRng-HOWTO-10.html#ss10.6">10.6 Job Hold File</A>
178<LI><A HREF="LPRng-HOWTO-10.html#ss10.7">10.7 Job State</A>
179<LI><A HREF="LPRng-HOWTO-10.html#ss10.8">10.8 Job Identifier</A>
180</UL>
181<P>
182<H2><A NAME="toc11">11.</A> <A HREF="LPRng-HOWTO-11.html">Configuration File lpd.conf and Options</A></H2>
183
184<UL>
185<LI><A HREF="LPRng-HOWTO-11.html#ss11.1">11.1 Configuration File Format</A>
186<LI><A HREF="LPRng-HOWTO-11.html#ss11.2">11.2 Configuration Information</A>
187<LI><A HREF="LPRng-HOWTO-11.html#ss11.3">11.3 Configuration Options</A>
188<LI><A HREF="LPRng-HOWTO-11.html#ss11.4">11.4 The Record Queue Name qq and force_queuename flags</A>
189<LI><A HREF="LPRng-HOWTO-11.html#ss11.5">11.5 The check_for_nonprintable Flag</A>
190<LI><A HREF="LPRng-HOWTO-11.html#ss11.6">11.6 The rg Restrict Use to Group Members Option</A>
191<LI><A HREF="LPRng-HOWTO-11.html#ss11.7">11.7 The fx Allowed Formats Option</A>
192<LI><A HREF="LPRng-HOWTO-11.html#ss11.8">11.8 Fixing Bad Control Files and Metacharacters</A>
193<LI><A HREF="LPRng-HOWTO-11.html#ss11.9">11.9 Using the bk Option and Control File Filters</A>
194<LI><A HREF="LPRng-HOWTO-11.html#ss11.10">11.10 Maximum Copies</A>
195<LI><A HREF="LPRng-HOWTO-11.html#ss11.11">11.11 The minfree Minimum Spool Queue Space Option</A>
196<LI><A HREF="LPRng-HOWTO-11.html#ss11.12">11.12 Debugging</A>
197<LI><A HREF="LPRng-HOWTO-11.html#ss11.13">11.13 LPD Specific</A>
198<LI><A HREF="LPRng-HOWTO-11.html#ss11.14">11.14 Legacy Compatibility</A>
199</UL>
200<P>
201<H2><A NAME="toc12">12.</A> <A HREF="LPRng-HOWTO-12.html">Job Processing</A></H2>
202
203<UL>
204<LI><A HREF="LPRng-HOWTO-12.html#ss12.1">12.1 Opening the Output Device</A>
205<LI><A HREF="LPRng-HOWTO-12.html#ss12.2">12.2 Printing Banner At Beginning</A>
206<LI><A HREF="LPRng-HOWTO-12.html#ss12.3">12.3 Printing Job Files</A>
207<LI><A HREF="LPRng-HOWTO-12.html#ss12.4">12.4 Printing Banner At End</A>
208<LI><A HREF="LPRng-HOWTO-12.html#ss12.5">12.5 Normal Termination</A>
209<LI><A HREF="LPRng-HOWTO-12.html#ss12.6">12.6 Abnormal Termination</A>
210<LI><A HREF="LPRng-HOWTO-12.html#ss12.7">12.7 LPD Spool Queue Processing</A>
211</UL>
212<P>
213<H2><A NAME="toc13">13.</A> <A HREF="LPRng-HOWTO-13.html">Filters</A></H2>
214
215<UL>
216<LI><A HREF="LPRng-HOWTO-13.html#ss13.1">13.1 What are filters?</A>
217<LI><A HREF="LPRng-HOWTO-13.html#ss13.2">13.2 What are print formats?</A>
218<LI><A HREF="LPRng-HOWTO-13.html#ss13.3">13.3 OF Filter</A>
219<LI><A HREF="LPRng-HOWTO-13.html#ss13.4">13.4 LPR -p format</A>
220<LI><A HREF="LPRng-HOWTO-13.html#ss13.5">13.5 LPR binary (-l) format</A>
221<LI><A HREF="LPRng-HOWTO-13.html#ss13.6">13.6 Filter Command Line Flags</A>
222<LI><A HREF="LPRng-HOWTO-13.html#ss13.7">13.7 LPRng Supported Filters</A>
223<LI><A HREF="LPRng-HOWTO-13.html#ss13.8">13.8 lpf</A>
224<LI><A HREF="LPRng-HOWTO-13.html#ss13.9">13.9 IFHP Filter</A>
225<LI><A HREF="LPRng-HOWTO-13.html#ss13.10">13.10 Using your own filters</A>
226</UL>
227<P>
228<H2><A NAME="toc14">14.</A> <A HREF="LPRng-HOWTO-14.html">Permissions and Authentication</A></H2>
229
230<UL>
231<LI><A HREF="LPRng-HOWTO-14.html#ss14.1">14.1 Information for matching</A>
232<LI><A HREF="LPRng-HOWTO-14.html#ss14.2">14.2 Permission Checks</A>
233<LI><A HREF="LPRng-HOWTO-14.html#ss14.3">14.3 Match Procedure</A>
234<LI><A HREF="LPRng-HOWTO-14.html#ss14.4">14.4 Permission File Location</A>
235<LI><A HREF="LPRng-HOWTO-14.html#ss14.5">14.5 Example Permission File</A>
236<LI><A HREF="LPRng-HOWTO-14.html#ss14.6">14.6 Complex Permission Checking</A>
237<LI><A HREF="LPRng-HOWTO-14.html#ss14.7">14.7 More Examples</A>
238</UL>
239<P>
240<H2><A NAME="toc15">15.</A> <A HREF="LPRng-HOWTO-15.html">Accounting</A></H2>
241
242<UL>
243<LI><A HREF="LPRng-HOWTO-15.html#ss15.1">15.1 Printer Accounting Reality Check</A>
244<LI><A HREF="LPRng-HOWTO-15.html#ss15.2">15.2 How HP Printers Implement Page Counters</A>
245<LI><A HREF="LPRng-HOWTO-15.html#ss15.3">15.3 Accounting Printcap Options</A>
246<LI><A HREF="LPRng-HOWTO-15.html#ss15.4">15.4 Accounting File</A>
247<LI><A HREF="LPRng-HOWTO-15.html#ss15.5">15.5 Accounting Using an Accounting Server</A>
248<LI><A HREF="LPRng-HOWTO-15.html#ss15.6">15.6 Using Filters For Accounting</A>
249<LI><A HREF="LPRng-HOWTO-15.html#ss15.7">15.7 Accounting Utility accounting.pl</A>
250</UL>
251<P>
252<H2><A NAME="toc16">16.</A> <A HREF="LPRng-HOWTO-16.html">Authentication and Encryption</A></H2>
253
254<UL>
255<LI><A HREF="LPRng-HOWTO-16.html#ss16.1">16.1 Authentication</A>
256<LI><A HREF="LPRng-HOWTO-16.html#ss16.2">16.2 Identifiers</A>
257<LI><A HREF="LPRng-HOWTO-16.html#ss16.3">16.3 RFC1179 Protocol Extensions</A>
258<LI><A HREF="LPRng-HOWTO-16.html#ss16.4">16.4 Authentication Operations</A>
259<LI><A HREF="LPRng-HOWTO-16.html#ss16.5">16.5 Permission Checking</A>
260<LI><A HREF="LPRng-HOWTO-16.html#ss16.6">16.6 PGP Authentication Support</A>
261<LI><A HREF="LPRng-HOWTO-16.html#ss16.7">16.7 Using Kerberos 5 for Authentication</A>
262<LI><A HREF="LPRng-HOWTO-16.html#ss16.8">16.8 Using Kerberos 4 for Authentication</A>
263<LI><A HREF="LPRng-HOWTO-16.html#ss16.9">16.9 Using MD5 for Authentication</A>
264<LI><A HREF="LPRng-HOWTO-16.html#ss16.10">16.10 Adding Authentication Support</A>
265</UL>
266<P>
267<H2><A NAME="toc17">17.</A> <A HREF="LPRng-HOWTO-17.html">Status Monitoring and Logging</A></H2>
268
269<UL>
270<LI><A HREF="LPRng-HOWTO-17.html#ss17.1">17.1 LPQ status reporting</A>
271<LI><A HREF="LPRng-HOWTO-17.html#ss17.2">17.2 LPQ Short Format (lpq -s)</A>
272<LI><A HREF="LPRng-HOWTO-17.html#ss17.3">17.3 LPQ Long Format (lpq default, lpq -l, lpq -L)</A>
273<LI><A HREF="LPRng-HOWTO-17.html#ss17.4">17.4 LPQ Verbose Format (lpq -v)</A>
274<LI><A HREF="LPRng-HOWTO-17.html#ss17.5">17.5 lpc status</A>
275<LI><A HREF="LPRng-HOWTO-17.html#ss17.6">17.6 Remote Logger Operation</A>
276<LI><A HREF="LPRng-HOWTO-17.html#ss17.7">17.7 LPR -mhost%port and user logging support</A>
277</UL>
278<P>
279<H2><A NAME="toc18">18.</A> <A HREF="LPRng-HOWTO-18.html">RFC 1179 - Line Printer Daemon Protocol</A></H2>
280
281<UL>
282<LI><A HREF="LPRng-HOWTO-18.html#ss18.1">18.1 Ports and Connections</A>
283<LI><A HREF="LPRng-HOWTO-18.html#ss18.2">18.2 Protocol Requests and Replies</A>
284<LI><A HREF="LPRng-HOWTO-18.html#ss18.3">18.3 Job Transfer</A>
285<LI><A HREF="LPRng-HOWTO-18.html#ss18.4">18.4 Data File Transfer</A>
286<LI><A HREF="LPRng-HOWTO-18.html#ss18.5">18.5 Control File Contents</A>
287<LI><A HREF="LPRng-HOWTO-18.html#ss18.6">18.6 LPQ Requests</A>
288<LI><A HREF="LPRng-HOWTO-18.html#ss18.7">18.7 LPRM Requests</A>
289<LI><A HREF="LPRng-HOWTO-18.html#ss18.8">18.8 LPC Requests</A>
290<LI><A HREF="LPRng-HOWTO-18.html#ss18.9">18.9 Block Job Transfer</A>
291<LI><A HREF="LPRng-HOWTO-18.html#ss18.10">18.10 Authenticated Transfer</A>
292</UL>
293<P>
294<H2><A NAME="toc19">19.</A> <A HREF="LPRng-HOWTO-19.html">Defective RFC1179 Implementations</A></H2>
295
296<UL>
297<LI><A HREF="LPRng-HOWTO-19.html#ss19.1">19.1 OS2 Print Spoolers</A>
298<LI><A HREF="LPRng-HOWTO-19.html#ss19.2">19.2 Serious Security Loophole</A>
299</UL>
300<P>
301<H2><A NAME="toc20">20.</A> <A HREF="LPRng-HOWTO-20.html">Acknowledgements</A></H2>
302
303<P>
304<H2><A NAME="toc21">21.</A> <A HREF="LPRng-HOWTO-21.html">Index To All The Configuration and Printcap Options</A></H2>
305
306<HR>
307<A HREF="LPRng-HOWTO-1.html">Next</A>
308Previous
309Contents
310</BODY>
311</HTML>
Note: See TracBrowser for help on using the repository browser.