root / pykota / trunk / setup.py @ 2019

Revision 2019, 11.6 kB (checked in by jalet, 19 years ago)

dumpykota.cgi was added to allow the use of dumpykota through the web.
This makes real time interfacing with the third party software phpPrintAnalyzer
a breeze !

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
Line 
1#! /usr/bin/env python
2# -*- coding: ISO-8859-15 -*-
3#
4# PyKota
5#
6# PyKota : Print Quotas for CUPS and LPRng
7#
8# (c) 2003-2004 Jerome Alet <alet@librelogiciel.com>
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
22#
23# $Id$
24#
25# $Log$
26# Revision 1.61  2005/01/08 19:13:11  jalet
27# dumpykota.cgi was added to allow the use of dumpykota through the web.
28# This makes real time interfacing with the third party software phpPrintAnalyzer
29# a breeze !
30#
31# Revision 1.60  2004/11/21 21:50:02  jalet
32# Introduced the new pkmail command as a simple email gateway
33#
34# Revision 1.59  2004/11/15 19:59:34  jalet
35# PyKota banners now basically work !
36#
37# Revision 1.58  2004/11/12 23:46:43  jalet
38# Heavy work on pkbanner. Not finished yet though, but mostly works.
39#
40# Revision 1.57  2004/11/10 22:40:45  jalet
41# Logos are installed now
42#
43# Revision 1.56  2004/11/10 22:17:12  jalet
44# Installation script is now non-interactive again, and doesn't install
45# the sample configuration files into /etc/pykota anymore.
46# Dependencies check is now done by running checkdeps.py
47# The database creation scripts will now be included in RPM packages.
48#
49# Revision 1.55  2004/10/16 10:20:32  jalet
50# Now installs translated manual pages
51#
52# Revision 1.54  2004/10/13 07:45:01  jalet
53# Modified installation script to please both me and the Debian packagers
54#
55# Revision 1.53  2004/10/04 21:25:29  jalet
56# dumpykota can now output datas in the XML format
57#
58# Revision 1.52  2004/09/30 09:52:45  jalet
59# Initial release of autopykota. Reading help or manpage is greatly
60# encouraged !
61#
62# Revision 1.51  2004/09/21 21:31:35  jalet
63# Installation script now checks for availability of Python-SNMP (http://pysnmp.sf.net)
64#
65# Revision 1.50  2004/09/14 22:29:12  jalet
66# First version of dumpykota. Works fine but only with PostgreSQL backend
67# for now.
68#
69# Revision 1.49  2004/07/28 13:00:02  jalet
70# Now takes care of .sxi and .sxc files if any
71#
72# Revision 1.48  2004/07/27 07:14:24  jalet
73# Now warns the user if pyosd is not present
74#
75# Revision 1.47  2004/07/16 12:22:45  jalet
76# LPRng support early version
77#
78# Revision 1.46  2004/07/07 13:21:26  jalet
79# Introduction of the pykosd command
80#
81# Revision 1.45  2004/07/06 09:37:01  jalet
82# Integrated most of the Debian packaging work made by Sergio Gonz�z Gonz�z
83#
84# Revision 1.44  2004/06/05 22:03:49  jalet
85# Payments history is now stored in database
86#
87# Revision 1.43  2004/05/25 09:49:41  jalet
88# The old pykota filter has been removed. LPRng support disabled for now.
89#
90# Revision 1.42  2004/05/18 14:48:46  jalet
91# Big code changes to completely remove the need for "requester" directives,
92# jsut use "hardware(... your previous requester directive's content ...)"
93#
94# Revision 1.41  2004/05/13 14:17:32  jalet
95# Warning about changed accounter and requester directives
96#
97# Revision 1.40  2004/05/13 13:59:27  jalet
98# Code simplifications
99#
100# Revision 1.39  2004/04/08 17:07:41  jalet
101# pkpgcounter added
102#
103# Revision 1.38  2004/03/18 09:18:09  jalet
104# Installation now checks for old scripts
105#
106# Revision 1.37  2004/03/03 19:35:36  jalet
107# Spelling problem. Thanks to Jurandy Martins
108#
109# Revision 1.36  2004/02/25 15:10:38  jalet
110# Preliminary snmpprinterstatus command added.
111#
112# Revision 1.35  2004/02/12 22:43:58  jalet
113# Better integration in Debian and more LSB compliance, thanks to
114# Peter Hawkins.
115#
116# Revision 1.34  2004/02/07 13:45:51  jalet
117# Preliminary work on the pkhint command
118#
119# Revision 1.33  2004/02/04 11:16:59  jalet
120# pkprinters command line tool added.
121#
122# Revision 1.32  2004/01/18 20:52:50  jalet
123# Portuguese portuguese translation replaces brasilian portuguese one, which
124# moves in its own directory.
125# Installation script modified to reorganise installed documentation and include
126# the documentation on OpenOffice.org + ODBC
127#
128# Revision 1.31  2004/01/15 12:50:41  jalet
129# Installation scripts now tells where the documentation was installed.
130#
131# Revision 1.30  2004/01/12 15:45:03  jalet
132# Now installs documentation in /usr/share/doc/pykota too.
133#
134# Revision 1.29  2004/01/08 14:10:32  jalet
135# Copyright year changed.
136#
137# Revision 1.28  2003/12/27 16:49:25  uid67467
138# Should be ok now.
139#
140# Revision 1.28  2003/12/06 09:03:43  jalet
141# Added Perl script to retrieve printer's internal page counter via PJL,
142# contributed by Ren�und Jensen.
143#
144# Revision 1.27  2003/11/28 08:31:28  jalet
145# Shell script to wait for AppleTalk enabled printers being idle was added.
146#
147# Revision 1.26  2003/11/08 16:05:31  jalet
148# CUPS backend added for people to experiment.
149#
150# Revision 1.25  2003/10/08 07:01:19  jalet
151# Job history can be disabled.
152# Some typos in README.
153# More messages in setup script.
154#
155# Revision 1.24  2003/10/07 09:07:27  jalet
156# Character encoding added to please latest version of Python
157#
158# Revision 1.23  2003/07/29 20:55:17  jalet
159# 1.14 is out !
160#
161# Revision 1.22  2003/07/29 09:54:03  jalet
162# Added configurable LDAP mail attribute support
163#
164# Revision 1.21  2003/07/28 09:11:12  jalet
165# PyKota now tries to add its attributes intelligently in existing LDAP
166# directories.
167#
168# Revision 1.20  2003/07/23 16:51:32  jalet
169# waitprinter.sh is now included to prevent PyKota from asking the
170# printer's internal page counter while a job is still being printer.
171#
172# Revision 1.19  2003/07/16 21:53:07  jalet
173# Really big modifications wrt new configuration file's location and content.
174#
175# Revision 1.18  2003/07/03 09:44:00  jalet
176# Now includes the pykotme utility
177#
178# Revision 1.17  2003/06/30 12:46:15  jalet
179# Extracted reporting code.
180#
181# Revision 1.16  2003/06/06 20:49:15  jalet
182# Very latest schema. UNTESTED.
183#
184# Revision 1.15  2003/05/17 16:32:30  jalet
185# Also outputs the original import error message.
186#
187# Revision 1.14  2003/05/17 16:31:38  jalet
188# Dies gracefully if DistUtils is not present.
189#
190# Revision 1.13  2003/04/29 18:37:54  jalet
191# Pluggable accounting methods (actually doesn't support external scripts)
192#
193# Revision 1.12  2003/04/23 22:13:56  jalet
194# Preliminary support for LPRng added BUT STILL UNTESTED.
195#
196# Revision 1.11  2003/04/17 13:49:29  jalet
197# Typo
198#
199# Revision 1.10  2003/04/17 13:48:39  jalet
200# Better help
201#
202# Revision 1.9  2003/04/17 13:47:28  jalet
203# Help added during installation.
204#
205# Revision 1.8  2003/04/15 17:49:29  jalet
206# Installation script now checks the presence of Netatalk
207#
208# Revision 1.7  2003/04/03 20:03:37  jalet
209# Installation script now allows to install the sample configuration file.
210#
211# Revision 1.6  2003/03/29 13:45:26  jalet
212# GPL paragraphs were incorrectly (from memory) copied into the sources.
213# Two README files were added.
214# Upgrade script for PostgreSQL pre 1.01 schema was added.
215#
216# Revision 1.5  2003/03/29 13:08:28  jalet
217# Configuration is now expected to be found in /etc/pykota.conf instead of
218# in /etc/cups/pykota.conf
219# Installation script can move old config files to the new location if needed.
220# Better error handling if configuration file is absent.
221#
222# Revision 1.4  2003/03/29 09:47:00  jalet
223# More powerful installation script.
224#
225# Revision 1.3  2003/03/26 17:48:36  jalet
226# First shot at trying to detect the availability of the needed software
227# during the installation.
228#
229# Revision 1.2  2003/03/09 16:49:04  jalet
230# The installation script installs the man pages too now.
231#
232# Revision 1.1  2003/02/05 21:28:17  jalet
233# Initial import into CVS
234#
235#
236#
237
238import sys
239import glob
240import os
241import shutil
242try :
243    from distutils.core import setup
244except ImportError, msg :   
245    sys.stderr.write("%s\n" % msg)
246    sys.stderr.write("You need the DistUtils Python module.\nunder Debian, you may have to install the python-dev package.\nOf course, YMMV.\n")
247    sys.exit(-1)
248
249sys.path.insert(0, "pykota")
250from pykota.version import __version__, __doc__
251
252data_files = []
253mofiles = glob.glob(os.sep.join(["po", "*", "*.mo"]))
254for mofile in mofiles :
255    lang = mofile.split(os.sep)[1]
256    directory = os.sep.join(["share", "locale", lang, "LC_MESSAGES"])
257    data_files.append((directory, [ mofile ]))
258   
259docdir = "share/doc/pykota"   
260docfiles = ["README", "FAQ", "SECURITY", "COPYING", "LICENSE", "CREDITS", "TODO", "NEWS"]
261data_files.append((docdir, docfiles))
262
263docfiles = glob.glob(os.sep.join(["docs", "*.pdf"]))
264docfiles += glob.glob(os.sep.join(["docs", "*.sx?"]))
265data_files.append((docdir, docfiles))
266
267docfiles = glob.glob(os.sep.join(["docs", "spanish", "*.pdf"]))
268docfiles += glob.glob(os.sep.join(["docs", "spanish", "*.sxw"]))
269data_files.append((os.path.join(docdir, "spanish"), docfiles))
270
271docfiles = glob.glob(os.sep.join(["docs", "pykota", "*.html"]))
272data_files.append((os.path.join(docdir, "html"), docfiles))
273
274docfiles = glob.glob(os.sep.join(["openoffice", "*.sx?"]))
275docfiles += glob.glob(os.sep.join(["openoffice", "*.png"]))
276docfiles += glob.glob(os.sep.join(["openoffice", "README"]))
277data_files.append((os.path.join(docdir, "openoffice"), docfiles))
278
279data_files.append((os.path.join(docdir, "postgresql"), ["initscripts/postgresql/README.postgresql"]))
280data_files.append((os.path.join(docdir, "ldap"), ["initscripts/ldap/README.ldap"]))
281
282directory = os.sep.join(["share", "man", "man1"])
283manpages = glob.glob(os.sep.join(["man", "*.1"]))   
284data_files.append((directory, manpages))
285
286modirs = [ os.path.split(os.path.split(mof)[0])[1] for mof in mofiles ]
287for dir in modirs :
288    directory = os.sep.join(["share", "man", dir, "man1"])
289    manpages = glob.glob(os.sep.join(["man", dir, "*.1"]))   
290    data_files.append((directory, manpages))
291
292directory = os.sep.join(["share", "pykota"])
293data_files.append((directory, ["checkdeps.py", "bin/cupspykota", "bin/lprngpykota", "bin/waitprinter.sh", "bin/papwaitprinter.sh", "bin/mailandpopup.sh", "contributed/pagecount.pl", "untested/pjl/pagecount.pjl", "untested/pjl/status.pjl", "untested/netatalk/netatalk.sh", "untested/netatalk/pagecount.ps"]))
294
295data_files.append((os.sep.join([directory, "conf"]), ["conf/README", "conf/pykota.conf.sample", "conf/pykotadmin.conf.sample"]))
296
297data_files.append((os.sep.join([directory, "cgi-bin"]), ["cgi-bin/README", "cgi-bin/printquota.cgi", "cgi-bin/dumpykota.cgi"]))
298
299data_files.append((os.sep.join([directory, "logos"]), glob.glob(os.sep.join(["logos", "*.jpeg"])) + glob.glob(os.sep.join(["logos", "*.png"])) + glob.glob(os.sep.join(["logos", "*.xcf"]))))
300
301pgdirectory = os.sep.join([directory, "postgresql"])
302data_files.append((pgdirectory, ["initscripts/postgresql/README.postgresql", "initscripts/postgresql/pykota-postgresql.sql"]))
303
304ldapdirectory = os.sep.join([directory, "ldap"])
305data_files.append((ldapdirectory, ["initscripts/ldap/README.ldap", "initscripts/ldap/pykota.schema", "initscripts/ldap/pykota-sample.ldif"]))
306
307setup(name = "pykota", version = __version__,
308      license = "GNU GPL",
309      description = __doc__,
310      author = "Jerome Alet",
311      author_email = "alet@librelogiciel.com",
312      url = "http://www.librelogiciel.com/software/",
313      packages = [ "pykota", "pykota.storages", "pykota.loggers", "pykota.accounters", "pykota.reporters" ],
314      scripts = [ "bin/pkmail", "bin/pkbanner", "bin/autopykota", "bin/dumpykota", "bin/pkpgcounter", "bin/snmpprinterstatus", "bin/pykosd", "bin/edpykota", "bin/repykota", "bin/warnpykota", "bin/pykotme", "bin/pkprinters", "bin/pkhint" ],
315      data_files = data_files)
Note: See TracBrowser for help on using the browser.