root / pykota / trunk / setup.py @ 2146

Revision 2146, 11.7 kB (checked in by jerome, 19 years ago)

It seems that $Log$ is not implemented or doesn't work for some reason

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