File: README

package info (click to toggle)
printbill 4.1.2-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 660 kB
  • ctags: 151
  • sloc: perl: 5,488; ansic: 271; sh: 240; makefile: 108
file content (88 lines) | stat: -rw-r--r-- 4,744 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Print Quota / Authentication / Billing System Version 4.1.2
-----------------------------------------------------------

This is a collection of print billing and/or accounting programs with
associated administration utilities and detailed statistics collection
functionality.

A simple print filter and accompanying daemon perform pre-printing billing,
post-printing billing, print-accounting and print job quote generation. In
addition, various utilities for administrators and users are provided -
including programs to check your print quota and usage patterns, a web
interface for both users and administrators and a command-line quote
generator. Refer to docs/HOWTO for detailed setup instructions. Printbill is
known to work on Debian 3.0 (and sid), RedHat 6.2/7.0/7.1/7.2 (although some
users have reported various difficulties), Slackware and Solaris (only one
report, but it was generally positive). There is no reason it should be
unable to run on any other Unix, but you may need to put in some effort to
make it happen.

Charge rates may be specified on per-page, per-percent-coverage or both, and
any number of printers/print queues can be provided (with different charge
rates and printer parameters). Monochrome and CMYK colour printers are
supported (with separate charge rates for both colour and black ink). For
all filters, processing can happen out-of-order, and you may prioritise jobs
on the basis of size (jobs larger than a threshold can get lower priority or
higher priority as desired) and jobs are billed in parallel / overlapping -
jobs which finish billing first get printed first. This is not necessarily
the same as the order of arrival. Detailed stats are collected on a
per-printer basis for job size, CPU time for each job, page count and
ink/toner coverage, so you can analyse the usage patterns for your printers
and predict when a cartridge will need to be replaced. It supports an
optional user-supplied anything-to-postscript filter, so you can get
properly billed for plain text, DVI files, jpegs, and so forth as well as
PostScript. Databases and configuration files may be stored on a centralised
web server. This allows read-only access so that Unix (and conceivably
Windows) clients could easily check quota, calculate quotes etc. remotely.
It even has a user and administrator web interface!

For fun, an additional filter is provided which allows users to deduct fixed
amounts from their accounts (we use it to let students buy drinks and food
from an unsecured laboratory fridge).

Other important notes:

- You are running arbitrary postscript code using ghostscript. This should
be safe but I offer no guarantees. If you are truly paranoid (a normal and
healthy state of mind for a system administrator), run it in a chroot
environment.

- The administrative web interface should run on an ssl-enabled web server,
or be heavily restricted in terms of remote access.

- Programs which are setuid "daemon" (or whatever lpd_user is set to in the
configuration file) can theoretically print for free if they send their jobs
to the primary print queue. This is not really something which we can avoid.
Solution - be careful with setuid binaries!!! There may be other security
holes, I'm not a perl security guru by any means. It's probably not ideal
in an environment with hostile idiot users (malicious postscript code could
probably allow DOS attacks on your sever, but at least everything should get
logged). There is no substitute for vigilant system administration.

- To make it work with Samba you just need to ensure that the line

	printing = lprng
	
exists in the smb.conf file. By default it is usually set to bsd. This is a
samba thing, not specific to printbill.

- It is released under the terms of the GNU General Public License version
2.0 (see the COPYING file for details) and is Copyright (C) 2000, 2001 and
2002 Daniel Franklin and Phil Ciufo.

- Yes, it probably *is* buggy, full of security holes, will fill your server
up with rubbish and reformat your hard drive. If it does that or anything
else which it shouldn't, send your bug reports to the principal author. It
is currently being used in at least 3 low-volume environments and has not
caused any major problems. Yet. The University of Wollongong IEEE Student
Branch has printed about 15000 pages with this system so far without any
deaths or injuries reported.

- If this is your favourite open-source application ever, and you'd just
love to show your appreciation in a financial way, donate some money to the
Fred Hollows Foundation (low cost eye surgery and intra-ocular lenses for
the developing world), or the Debian project. They need it more than I do.

28th February 2002

Daniel Franklin (d.franklin@ieee.org)