Changeset 1600

Show
Ignore:
Timestamp:
07/16/04 14:22:47 (20 years ago)
Author:
jalet
Message:

LPRng support early version

Location:
pykota/trunk
Files:
1 added
12 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/bin/cupspykota

    r1584 r1600  
    2424# 
    2525# $Log$ 
     26# Revision 1.67  2004/07/16 12:22:45  jalet 
     27# LPRng support early version 
     28# 
    2629# Revision 1.66  2004/07/01 19:56:25  jalet 
    2730# Better dispatching of error messages 
     
    471474            maskval.append("POLLNVAL") 
    472475        return "%s (%s)" % (fd, " | ".join(maskval)) 
    473          
    474     def sendBackChannelData(self, message) :     
    475         """Sends an informational message to CUPS via back channel stream (stderr).""" 
    476         self.printInfo("PyKota (PID %s) : %s" % (os.getpid(), message.strip())) 
    477476         
    478477    def handleData(self) :                     
  • pykota/trunk/docs/filterpykota.sgml

    r1500 r1600  
    1111      <para> 
    1212        PyKota doesn't currently account for ink usage, it only accounts 
    13         pages. To account for ink usage, you should use PrintBill instead. 
     13        pages. To account for ink usage, you should use PrintBill instead for now. 
    1414      </para>   
    1515    </footnote>   
     
    2626    PostScript data as its input, and, as its name implies, outputs PostScript data too, but after having 
    2727    eventually rearranged the pages to fit several pages on a single sheet of paper, or other manipulations 
    28     like that.  
     28    like that. <application>LPRng</application> also contains several filters like this. 
    2929  </para> 
    3030   
     
    3636   
    3737  <para> 
    38     <application>LPRng</application> can also use filters, one often used in combination with 
    39     <application>LPRng</application> is <application>magicfilter</application> which can convert  
    40     different input formats to native printers languages like PostScript or ESC/P2. 
     38    <application>LPRng</application> can also use filters, often used in combination with 
     39    <application>LPRng</application> are <application>magicfilter</application> which can convert  
     40    different input formats to native printers languages like PostScript or ESC/P2 and  
     41    <application>ifhp</application> which can do low-level accounting. 
    4142  </para>   
    4243   
     
    4445    So to do its own accounting, <application>PyKota</application> has its own filters, for <application>CUPS</application> 
    4546    it's named <filename>cupspykota</filename>, which is in fact a <application>CUPS</application> backends wrapper, 
    46     and for <application>LPRng</application> it's named ########## TODO ########## . 
     47    and for <application>LPRng</application> it's named <filename>lprngpykota</filename>, as you have probably guessed. 
    4748    The procedure to plug the correct filter into your printing system is described in the  
    4849    <xref linkend="installation" endterm="installation"> chapter. 
     
    5253    Currently with a <application>CUPS</application> internal accounting mechanism, the <filename>pstops</filename> 
    5354    filter can be bypassed. That's why <application>PyKota</application> uses its own backend. 
    54     The <filename>cupspykota</filename> backend wrapper ensures that jobs can't bypass the filtering mechanism, so you can use 
     55    The <filename>cupspykota</filename> backend wrapper ensures that jobs can't bypass it, so you can use 
    5556    any printer with any driver and any command line option, and you can be sure that your 
    5657    print job will be correctly accounted for. 
     
    5859   
    5960  <para> 
    60     When used with an <application>LPRng</application> backend, the accounting filter is not defined the same way  
    61     input filters are, so the problem described above doesn't exist, and <application>PyKota</application> 
    62     may work with non-postscript printers, provided they can report their page counter and you know how to retrieve 
    63     it. 
    64   </para> 
    65    
    66   <para> 
    67     When you submit a print job, <application>PyKota</application>'s accounting mechanism is automatically launched by your printing system, 
    68     so it has to detect which system you are using (<application>CUPS</application> or <application>LPRng</application>) 
    69     and behave like if it was specifically designed for your printing system. Fortunately there's not a lot 
    70     of differences, the more important one is the exit codes used to tell the printing environment if a job 
    71     has to be accepted or rejected.  
    72   </para> 
    73    
    74   <para> 
    7561    When using the <literal>hardware</literal> accounting method, 
    76     the <application>cupspykota</application> CUPS backend  
    77     asks the printer for its internal page counter at the start and at the end of the print job, and 
    78     computes the values' difference so accounting is done immediately.  
     62    <application>PyKota</application> launches the script you specified to 
     63    ask the printer for its internal page counter at the start and at the end of the print job, and 
     64    computes the values' difference to know the job's size.  
    7965  </para> 
    8066   
    8167  <para> 
    8268    When using the <literal>software</literal> accounting method, 
    83     and if the user is still allowed to print, 
    8469    the command you specified is launched with the job's data on its  
    8570    standard input. Your command must print the job's size in number of 
    8671    pages on a single line on its standard output. This number is then 
    8772    read by <application>PyKota</application> and used to update the current user's quota information. 
    88     Of course checks are also done like with the <literal>hardware</literal> 
    89     accounting method, to see if the current job is allowed to be printed or not. 
    9073  </para> 
    9174   
     
    10386 
    10487$Log$ 
     88Revision 1.12  2004/07/16 12:22:45  jalet 
     89LPRng support early version 
     90 
    10591Revision 1.11  2004/05/25 09:49:52  jalet 
    10692The old pykota filter has been removed. LPRng support disabled for now. 
  • pykota/trunk/docs/installation.sgml

    r1500 r1600  
    2929    have to decompress and visit its archive, to do so just type the following commands : 
    3030    <screen> 
    31 jerome@nordine:~$ tar -zxf pykota-1.18_official.tar.gz     
    32 jerome@nordine:~$ cd pykota-1.18_official 
    33 jerome@nordine:~/pykota-1.18_official$ 
     31jerome@nordine:~$ tar -zxf pykota-1.19_official.tar.gz     
     32jerome@nordine:~$ cd pykota-1.19_official 
     33jerome@nordine:~/pykota-1.19_official$ 
    3434    </screen> 
    3535  </para> 
     
    152152            <filename>initscripts/postgresql/pykota-postgresql.sql</filename> file 
    153153            accordingly, and report your changes into <application>PyKota</application>'s 
    154             configuration file. 
     154            configuration files. 
    155155          </para> 
    156156        </note>   
     
    165165        From a command line interpreter (i.e. shell), type the following commands : 
    166166        <screen> 
    167 jerome@nordine:~$ cd pykota-1.18_official/initscripts/postgresql 
    168 jerome@nordine:~/pykota-1.18_official/initscripts$ psql -h localhost -U postgres template1 
     167jerome@nordine:~$ cd pykota-1.19_official/initscripts/postgresql 
     168jerome@nordine:~/pykota-1.19_official/initscripts$ psql -h localhost -U postgres template1 
    169169Welcome to psql, the PostgreSQL interactive terminal. 
    170170 
     
    197197ALTER USER 
    198198pykota=# \q 
    199 jerome@nordine:~/pykota-1.18_official/initscripts/postgresql$ 
     199jerome@nordine:~/pykota-1.19_official/initscripts/postgresql$ 
    200200        </screen> 
    201201      </para> 
     
    210210        take any other step as needed. Please refer to <application>PostgreSQL</application>'s 
    211211        documentation for details. Also if <application>PyKota</application>'s configuration 
    212         file <filename>/etc/pykota/pykotadmin.conf</filename> is readable by anyone with access on your file system, a local user could  
    213         create some script to modify his own print quota. 
     212        file <filename>/etc/pykota/pykotadmin.conf</filename> is readable by anyone with access on your file system,  
     213        a local user could create some script to modify his own print quota. 
    214214        <warning> 
    215215          <title>Warning</title> 
     
    248248      <para> 
    249249        From version 1.09 on, <application>OpenLDAP</application> can be used as a Quota Storage Backend. 
    250         It is possible that other LDAP servers can be used, but this is currently untested. 
     250        Some other LDAP servers can be used, but this is currently untested in production. 
    251251      </para> 
    252252       
     
    283283        While this is not mandatory, it is recommended that you setup 
    284284        some indexes for some often accessed PyKota attributes. 
    285         Actually, the <acronym>LDAP</acronym> schema included with 
    286         PyKota doesn't allow indexes of another type than <literal>eq</literal>, 
    287         but this will change in a next release. Here are the minimal indexes 
     285        Here are the minimal indexes 
    288286        lines you may want to put in <filename>slapd.conf</filename> : 
    289287        <screen> 
    290288# Indexes for PyKota 
    291 index pykotaUserName eq 
    292 index pykotaGroupName eq 
    293 index pykotaPrinterName eq 
     289index pykotaUserName pres,eq,sub 
     290index pykotaGroupName pres,eq,sub 
     291index pykotaPrinterName pres,eq,sub 
    294292index pykotaLastJobIdent eq 
    295293        </screen> 
     294      </para> 
     295       
     296      <para> 
     297        Now you must ensure that the DNs you'll use to bind to     
     298        your OpenLDAP server don't have search queries size limits, 
     299        which gives for example (OpenLDAP 2.1.x or above) : 
     300         
     301<screen>         
     302# No Limits for PyKota's administrator and read-only user 
     303limits dn="cn=RWadmin,dc=example,dc=com" size.soft=-1 size.hard=soft 
     304limits dn="cn=ROadmin,dc=example,dc=com" size.soft=-1 size.hard=soft 
     305</screen>         
     306 
     307        Where RWadmin and ROadmin are the usernames used to bind to your 
     308        OpenLDAP server within PyKota, respectively in ReadWrite mode  
     309        (as set in pykotadmin.conf) and in ReadOnly mode (as set in pykota.conf). 
    296310      </para> 
    297311       
     
    381395          <para> 
    382396            <application>CUPS</application> version 1.1 or above, or <application>LPRng</application> 
    383             version 3.8.20 or above (it probably works with older versions but this is untested). 
     397            version 3.8.27 or above (it probably works with older versions but this is untested). 
    384398            You can download them from <ulink url="http://www.cups.org">http://www.cups.org</ulink> 
    385399            or <ulink url="http://lprng.sourceforge.net">http://lprng.sourceforge.net</ulink> 
     
    532546      Please create a backup of the <filename>/etc/pykota</filename> 
    533547      directory before modifying anything. 
    534       Under some circumstances, the setup PyKota may refuse to install PyKota 
     548      Under some circumstances, PyKota's setup script may refuse to install PyKota 
    535549      until you have modified your configuration. Just do it and restart 
    536550      the installation script as described above. 
     
    611625      <para> 
    612626        Then when creating new printers or reconfiguring existing ones, just 
    613         choose devices which are <literal>PyKota managed</literal> instead of 
     627        choose devices which are <literal>PyKota managed</literal> 
     628        <footnote> 
     629          <para> 
     630            Debian 3.0 Woody is known to have problems : CUPS 1.1.14 doesn't automatically 
     631            detect <literal>PyKota managed</literal> devices. So you have to manually 
     632            modify CUPS' <filename>printers.conf</filename> file as explained in  
     633            PyKota's toplevel <filename>README</filename> file. 
     634          </para> 
     635        </footnote> 
     636        instead of 
    614637        normal devices. You've got one <literal>PyKota managed</literal> device 
    615638        for each regular device available from CUPS, so just choose the appropriate 
     
    645668    <sect2> 
    646669      <title>With LPRng</title> 
    647       <para> 
    648         ######### TODO ########## 
    649       </para> 
    650        
    651       <para> 
    652         You have to restart <application>LPRng</application> for this modification to 
    653         take effect :  
     670       
     671      <para> 
     672        For each printer on which you want to use <application>PyKota</application>, just modify the printer's  
     673        entry in <filename>/etc/printcap</filename> : you have to add 
     674        the three following lines : 
     675         
     676<screen>         
     677  :ac=true:\ 
     678  :as=/usr/share/pykota/lprngpykota:\ 
     679  :ae=/usr/share/pykota/lprngpykota:\ 
     680</screen>           
     681 
     682        This will tell <application>LPRng</application> to activate accounting, and use the <filename>lprngpykota</filename>  
     683        accounting filter both at the start and at the end of printing.  
     684      </para> 
     685       
     686       
     687      <para> 
     688        Repeat the above procedure for each print queue on which you want to use 
     689        PyKota. That's all ! 
     690      </para> 
     691       
     692      <para> 
     693        When all modifications are done, just save the <filename>/etc/printcap</filename> file  
     694        and restart <application>LPRng</application> for the changes to take effect :  
    654695        <screen> 
    655696$ /etc/init.d/lprng restart         
    656697        </screen> 
    657       </para> 
    658        
    659       <para> 
    660         Repeat the above procedure for each print queue on which you want to use 
    661         PyKota. That's all ! 
    662698      </para> 
    663699       
     
    689725 
    690726$Log$ 
     727Revision 1.26  2004/07/16 12:22:46  jalet 
     728LPRng support early version 
     729 
    691730Revision 1.25  2004/05/25 09:49:53  jalet 
    692731The old pykota filter has been removed. LPRng support disabled for now. 
  • pykota/trunk/docs/pykota.sgml

    r1409 r1600  
    1010  <!entity SCRIPTS system "scripts.sgml"> 
    1111  <!entity PKHINT system "pkhint.sgml"> 
     12  <!entity PYKOSD system "pykosd.sgml"> 
    1213  <!entity GNUGPL system "gnugpl.sgml"> 
    1314 
     
    120121   
    121122  &PKHINT; 
     123   
     124  &PYKOSD; 
    122125     
    123126  &GNUGPL; 
     
    128131 
    129132$Log$ 
     133Revision 1.13  2004/07/16 12:22:46  jalet 
     134LPRng support early version 
     135 
    130136Revision 1.12  2004/03/18 10:32:23  jalet 
    131137Added pkhint's documentation 
  • pykota/trunk/MANIFEST.in

    r1595 r1600  
    1 include README FAQ COPYING LICENSE TODO NEWS CREDITS SECURITY MANIFEST.in clean.sh bin/cupspykota bin/edpykota bin/warnpykota bin/repykota bin/pykotme bin/pykosd bin/pkprinters bin/pkhint bin/pkpgcounter bin/snmpprinterstatus bin/waitprinter.sh bin/papwaitprinter.sh bin/mailandpopup.sh bin/README 
     1include README FAQ COPYING LICENSE TODO NEWS CREDITS SECURITY MANIFEST.in clean.sh bin/lprngpykota bin/cupspykota bin/edpykota bin/warnpykota bin/repykota bin/pykotme bin/pykosd bin/pkprinters bin/pkhint bin/pkpgcounter bin/snmpprinterstatus bin/waitprinter.sh bin/papwaitprinter.sh bin/mailandpopup.sh bin/README 
    22recursive-include po README *.po *.mo *.pot 
    33recursive-include man README *.sh *.1 
  • pykota/trunk/NEWS

    r1599 r1600  
    2222PyKota NEWS : 
    2323 
     24    - 1.19alpha32 : 
     25     
     26        - Early (not working) version of the LPRng support rewrite 
     27         
    2428    - 1.19alpha31 : 
    2529     
  • pykota/trunk/pykota/accounter.py

    r1499 r1600  
    2222# 
    2323# $Log$ 
     24# Revision 1.17  2004/07/16 12:22:47  jalet 
     25# LPRng support early version 
     26# 
    2427# Revision 1.16  2004/05/25 09:15:15  jalet 
    2528# accounter.py : old code deleted 
     
    9194        self.filter = kotafilter 
    9295        self.arguments = arguments 
     96        self.isSoftware = 1 # by default software accounting 
    9397         
    9498    def getLastPageCounter(self) :     
  • pykota/trunk/pykota/accounters/hardware.py

    r1584 r1600  
    2222# 
    2323# $Log$ 
     24# Revision 1.7  2004/07/16 12:22:47  jalet 
     25# LPRng support early version 
     26# 
    2427# Revision 1.6  2004/07/01 19:56:42  jalet 
    2528# Better dispatching of error messages 
     
    5457        """Initializes querying accounter.""" 
    5558        AccounterBase.__init__(self, kotabackend, arguments) 
     59        self.isSoftware = 0 
    5660         
    5761    def getPrinterInternalPageCounter(self) :     
  • pykota/trunk/pykota/tool.py

    r1593 r1600  
    2222# 
    2323# $Log$ 
     24# Revision 1.112  2004/07/16 12:22:47  jalet 
     25# LPRng support early version 
     26# 
    2427# Revision 1.111  2004/07/06 18:09:42  jalet 
    2528# Reduced the set of invalid characters in names 
     
    931934        signal.signal(signal.SIGTERM, self.sigterm_handler) 
    932935         
     936    def sendBackChannelData(self, message) :     
     937        """Sends an informational message to CUPS via back channel stream (stderr).""" 
     938        self.printInfo("PyKota (PID %s) : %s" % (os.getpid(), message.strip())) 
     939         
    933940    def openJobDataStream(self) :     
    934941        """Opens the file which contains the job's datas.""" 
     
    11051112                self.printInfo(_("Printer hostname undefined, set to 'localhost'"), "warn") 
    11061113                rseen = "localhost" 
     1114            try :     
     1115                df_name = [line[8:] for line in os.environ.get("HF").split() if line.startswith("df_name=")][0] 
     1116            except IndexError : 
     1117                inputfile = None         
     1118            else :     
     1119                inputfile = os.path.join(os.environ.get("SPOOL_DIR", "."), df_name) 
    11071120            if jseen and Pseen and nseen and rseen :         
    1108                 # job is always in stdin (None) 
    1109                 return ("LPRNG", rseen, Pseen, nseen, jseen, None, Kseen, None, None, None) 
     1121                return ("LPRNG", rseen, Pseen, nseen, jseen, inputfile, Kseen, None, None, None) 
    11101122        self.printInfo(_("Printing system unknown, args=%s") % " ".join(sys.argv), "warn") 
    11111123        return (None, None, None, None, None, None, None, None, None, None)   # Unknown printing system 
  • pykota/trunk/pykota/version.py

    r1599 r1600  
    2222# 
    2323 
    24 __version__ = "1.19alpha31_unofficial" 
     24__version__ = "1.19alpha32_unofficial" 
    2525 
    2626__doc__ = """PyKota : a complete Printing Quota Solution for CUPS and LPRng.""" 
  • pykota/trunk/README

    r1580 r1600  
    2525     FROM THIS FILE, PYKOTA CAN'T BE USED ANYMORE WITH LPRNG. 
    2626      
    27      SUPPORT FOR LPRNG SHOULD BE RE-ADDED SOON WHEN A HUGE REWRITE 
    28      OF SOME PARTS OF PYKOTA WILL HAVE TAKEN PLACE 
     27     LPRNG SUPPORT IS CURRENTLY BEING REWRITTEN, AND YOU CAN 
     28     ALREADY PLAY WITH IT, BUT DON'T USE IT IN PRODUCTION UNTIL 
     29     THIS NOTE IS REMOVED. 
    2930 
    3031==================================================================== 
     
    4748        - Supports both CUPS and LPRng as the printing system. 
    4849         
    49           NB : LPRng support is currently being rewritten, so 
    50           LPRng is actually not supported in latest CVS versions. 
    51              
    5250    Databases : 
    5351     
     
    174172    counter. 
    175173     
    176     With CUPS, this is done both at the beginning and at the end of a 
     174    This is done both at the beginning and at the end of a 
    177175    print job. The counters difference is then immediately used to  
    178176    decrease the user's account balance or increase his quota usage. 
    179      
    180     With LPRng, this is done just before the beginning of a job, and used  
    181     this to modify the *preceding* user's quota. So you're always late  
    182     of one print job, but this is generally ok. 
    183177     
    184178  - The 'software' method consists in delegating the computation of the 
     
    186180    The command can read the job's data from its standard input and MUST 
    187181    output the job's size on its standard output. Changes to the user 
    188     account are reported immediately, both with CUPS and LPRng. 
    189      
    190 PyKota is known to work fine with HP Laserjet 2100 and 2200, and  
    191 Apple LaserWriter 16/600 PS, both with CUPS and LPRng, under  
    192 Debian GNU/Linux (Sarge and Sid) operating systems. It should work 
    193 fine with most network printers. 
     182    account are reported immediately. 
     183     
     184PyKota is known to work fine with most laser printers, either with 
     185software accounting, or with hardware accounting if the printer 
     186supports this. 
    194187 
    195188============================================================ 
     
    237230       
    238231  Other architectures may be supported as well in the future, check     
    239   on Psyco's website. 
     232  this on Psyco's website. 
    240233   
    241234  Installing Psyco is not mandatory, but it will speedup PCL5 parsing 
     
    244237  is already optimal. For PCL5 this is a completely different matter, 
    245238  and if you install Psyco you will never regret it ! 
    246   Same remark applies for PCL6 (aka PCLXL) but performance improvement 
    247   is yet to be fully tested (it is very high anyway). 
     239  Same remark applies for PCL6 (aka PCLXL) : the parser is completely 
     240  different, but the performance gain with Psyco is impressive. 
    248241   
    249242  You may also benefit from having the following tools installed to 
     
    268261  the Print Server. The PostgreSQL client libraries' version must  
    269262  match the PostgreSQL version used on the Quota Storage Server.  
    270   BEWARE : under Debian Sarge, as of March 15th 2004, there's a 
    271   problem with python2.2-pygresql and python-2.3-pygresql, so please 
    272   install python2.1-pygresql and use Python 2.1 to install and run 
    273   PyKota. This is not a bug in PyKota, and this should be fixed 
    274   by Debian in a few days I hope. 
    275263   
    276264or   
     
    307295 
    308296Go to the initscripts subdirectory of PyKota's sources, and choose 
    309 the appropriate storage backend for your configuration. Read 
     297the appropriate storage backend for your configuration. Read carefully 
    310298the associated README file and execute the initialization script 
    311299to create an empty PyKota Storage. Upgrade scripts may be  
     
    314302Copy the conf/pykota.conf.sample and  conf/pykotadmin.conf.sample  
    315303sample configuration files to /etc/pykota/pykota.conf and  
    316 /etc/pykota/pykotadmin.conf. The installation script tries to do  
    317 this for you if needed and you agreed to this action. You need to  
    318 adapt these files to your own needs. Especially you have to create  
     304/etc/pykota/pykotadmin.conf (the installation script tries to do  
     305this for you if needed and you agreed to this action). You need to  
     306adapt these files to your own needs. Especially you may have to create  
    319307sections named after your own printers, and change the  
    320308administrator's email address which by default is root@localhost. 
     
    342330          $ /etc/init.d/cupsys restart 
    343331           
     332        or :     
     333       
     334          $ /etc/rc.d/init.d/cupsysrestart 
     335           
     336        or any similar command depending on your operating system.   
     337           
    344338    For new printers : 
    345339     
     
    358352         
    359353        Now double check /etc/pykota/pykota.conf  
    360         This file should contain a section named after the 
     354         
     355        You should manually create a section named after the 
    361356        printer you've just added, unless you have set 
    362357        all options globally. 
     358         
    363359        The new pkhint command can help you with correct settings  
    364360        for your printers, but don't rely on it because it is still 
    365         incomplete. 
     361        experimental work. To use pkhint, you have to feed it with 
     362        CUPS' printers.conf file this way : 
     363         
     364          $ pkhint </etc/cups/printers.conf 
     365         
     366        pkhint will try to tell you what is the best accounting 
     367        method for each printer and will print some lines you'll 
     368        just have to copy&paste in the appropriate sections in 
     369        /etc/pykota/pykota.conf 
    366370         
    367371        That's all. 
     
    399403         
    400404        Save the file and restart CUPS. 
     405         
     406        Here too, you may find it interesting to use the pkhint command as 
     407        described above to help with manual configuration of the file 
     408        /etc/pykota/pykota.conf 
    401409 
    402410  - LPRng Printing System : 
    403411   
    404       For now LPRng support in PyKota is deactivated. Please be patient. 
     412    For each printer on which you want to use PyKota : 
     413     
     414        Modify the printer's entry in /etc/printcap : you have to add 
     415        the three following lines : 
     416         
     417          :ac=true:\ 
     418          :as=/usr/share/pykota/lprngpykota:\ 
     419          :ae=/usr/share/pykota/lprngpykota:\ 
     420           
     421        This will tell LPRng to activate accounting, and use the lprngpykota  
     422        accounting filter both at the start and at the end of printing.  
     423         
     424    When all modifications are done, just save the /etc/printcap file and     
     425    restart LPRng : 
     426     
     427          $ /etc/init.d/lprng restart 
     428           
     429        or :     
     430       
     431          $ /etc/rc.d/init.d/lprng restart 
     432           
     433        or any similar command depending on your operating system.   
     434         
     435    NB : the pkhint command can't be used with LPRng for now, so you     
     436         have to modify /etc/pykota/pykota.conf carefully. The comments 
     437         in this file will help you. 
    405438       
    406439Now you can begin to populate the PyKota's database with printers, 
     
    489522    http://cgi.librelogiciel.com/mailman/listinfo/pykota 
    490523     
     524  The mailing list is the preferred way to obtain support, because   
     525  all members can help and can also benefit from the solutions 
     526  proposed by other members.  
     527   
     528  Posts by non-members are usually rejected. 
     529   
     530  The mailing list language is english and only english. 
     531     
    491532IRC :     
    492533----- 
     
    496537        /server irc.freenode.net 
    497538        /join #pykota 
     539         
     540  Preferred language on this channel is english, but french       
     541  is also accepted. Try to avoid exposing complex problems 
     542  in french because english speaking people on the channel 
     543  wouldn't benefit from the solutions. 
     544   
     545  PyKota's main author is known as 'tamere' on IRC. 
    498546     
    499547============================================================ 
  • pykota/trunk/setup.py

    r1595 r1600  
    2424# 
    2525# $Log$ 
     26# Revision 1.47  2004/07/16 12:22:45  jalet 
     27# LPRng support early version 
     28# 
    2629# Revision 1.46  2004/07/07 13:21:26  jalet 
    2730# Introduction of the pykosd command 
     
    453456 
    454457directory = os.sep.join(["share", "pykota"]) 
    455 data_files.append((directory, ["bin/cupspykota", "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"])) 
     458data_files.append((directory, ["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"])) 
    456459 
    457460setup(name = "pykota", version = __version__,