Index: tags/0.70/AUTHORS
===================================================================
--- tags/0.70/AUTHORS	(revision 255)
+++ tags/0.70/AUTHORS	(revision 255)
@@ -0,0 +1,15 @@
+The email2trac package is written by:
+  Bas van der Vlies <basv@sara.nl>
+  Walter de Jong <walter@sara.nl>
+
+regular patch contributor(s):
+   Ben Artin <ben at fetchsoftworks dot com>
+
+The 0.9 port:
+  Michel Jouvin <jouvin@lal.in2p3.fr>
+
+RPM spec file:
+ Jon Topper <jon at topper dot me dot uk>
+
+Initial setup and ideas from:
+  Daniel Lundin <daniel@edgewall.com>
Index: tags/0.70/COPYING
===================================================================
--- tags/0.70/COPYING	(revision 255)
+++ tags/0.70/COPYING	(revision 255)
@@ -0,0 +1,345 @@
+ GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+Copyright (C) <year> <name of author>
+
+This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: tags/0.70/ChangeLog
===================================================================
--- tags/0.70/ChangeLog	(revision 255)
+++ tags/0.70/ChangeLog	(revision 255)
@@ -0,0 +1,641 @@
+2009-01-30
+  * applied patch exit with non-zero return code on failure, closes #117
+    Author: admin-egon at ikw dot uos dot de
+    Applied by : Bas van der Vlies
+
+  * Ticket update with attachments did not work, closes #120
+    Reported by: Alexander Verkooijen (alexander at sara dot nl)
+    Fixed by: Bas van der Vlies
+
+  * Removed obsolete code
+    Author :  Bas van der Vlies
+
+  * When email address is known then the author name and email address
+    is used from the preference tab.  The match is case insensitive,
+    closes #118
+    Reported by: Pusateri, Matthew <Matthew dot Pusateri at tekelec dot com
+    Fixed by: Bas van der Vlies
+
+  * Ticket id is not reported as ticket change, eg:
+    {{{
+        *   id  set to 118
+    }}}
+    Author :  Bas van der Vlies
+
+2009-01-19
+  * applied patch to support RFC 3676 (format=flowed), closes #94, #99
+    This patch adds a new option: reflow (default: False/0)
+    Author: ben at fetchsoftworks dot com
+    Applied by : Bas van der Vlies
+
+  * Fixed a bug in reply_all option, closes #95
+    Reported by: gmcgrath at princeton dot edu
+    Fixed by: Bas van der Vlies
+
+  * Applied a patch for default values for custom ticket fields, closes #101
+    Author: ben at fetchsoftworks dot com
+    Applied by: Bas van der Vlies
+
+  * Fixed a bug that a ticket was not updated when we only update ticket 
+    field(s) via email (empty body email), closes #113
+    Reported by: winnie at debian dot org
+    Fixed by: Bas van der Vlies
+ 
+  * Better support for inline attachments and multiple body parts, closes #105,
+    #80. Inline images in email are also shown in the ticket with the trac
+    [[Image(..)]] macro.
+    Author: ben at fetchsoftworks dot com
+
+  * More versatile support for Apple attachments. closes #106
+    for explanation read: 
+    - https://subtrac.sara.nl/oss/email2trac/wiki/Email2tracConfiguration#AppleAttachmentsoptions
+    Author: ben at fetchsoftworks dot com
+
+  * Applied a patch that solves problems with Window attachments, closes #110,
+    #93.
+    Author: martin.poeschmann add eiskonzept dot com  	
+    Applied by: Bas van der Vlies
+
+2008-10-13
+  * Fixed a bug in email_header formating. When an email2trac ticket 
+    was updated via the web interface it would trigger a description 
+    field update.
+
+    Fixed by: Bas van der Vlies
+
+  * Reopen closed ticket if an update is received via email, closes #70
+    Requested by: Garrett McGrath gmcgrath add princeton dot edu
+    Fixed by: Bas van der Vlies
+
+
+  * The [DEFAULT] section did not work any more due to change to internal
+    trac parser, closes ticket #73
+    Reported by: email2trac at bulk dot squeakyblue dot com
+    Fixed by: Bas van der Vlies
+   
+  * black_list paramter must be comma-separated as mentioned in the 
+    documentation (#75) and removed the default value 
+    "MAILER-DAEMON@" (#74)
+    Reported by: email2trac at bulk dot squeakyblue dot com
+    Fixed by: Bas van der Vlies
+
+  * If a blank email is sent with just an attachment, a blank 
+    comment is appended to the comments. fixed closes #89
+
+    Reported/Fixed by: ???
+    Applied by: Bas van der Vlies
+
+  * added white_list parameter.  If set then only mail is accepted if
+    sender matches.
+    Author: Bas van der Vlies, jon dot wbstr at gmail dot com
+
+  * added recipient_list parameter.  If set then only mail is accepted if
+    to-field matches. This only uses when people use a drop box to accept
+    email for several email addresses, (closes #77)
+    Author: Bas van der Vlies, jon dot wbstr at gmail dot com
+
+  * alternate notify template did not work for trac version 0.11 
+    (#90).
+    Reported/Fixed by: hju at jochenkuhl dot de
+    Applied by       : Bas van der Vlies
+
+  * added 'alternate_notify_template_update'. When set this notify 
+    template name will be used for ticket updates (#90).
+    Author: Bas van der Vlies, hju at jochenkuhl dot de
+    
+   
+2008-05-30
+  * Fixed debian control file. Package can be build on any platform and
+    not only on i386 platforms:
+
+    Author: Christian Iversen ci add sikkerhed dot org
+    Applied by: Bas van der Vlies
+
+  * We now use the trac configuration parser routine
+    Author: andrei2102 add gmail dot com
+    Applied by: Bas van der Vlies
+
+  * Added new command line option -n/--dry-run. This option only show
+    what commands will be executed.
+    Author: Bas van der Vlies
+
+  * the default values for tickets can now also be set in 
+   'email2trac.conf'. So you can use different values when an email
+    is converted to a ticket. The ticket value is set to this rules
+     - email2trac.conf
+     - trac.ini
+
+    email2trac.conf use same format as trac.ini, eg email2trac.conf:
+      [project]
+      default_component : test
+
+    closes request #55, for more info see:
+    - https://subtrac.sara.nl/oss/email2trac/wiki/Email2tracConfiguration
+
+     Requested by: greg dot deakyne at etapestry dot com
+     Implemented by: Bas van der Vlies
+
+  * Fixed a bug in ticket_update. It failed when project did not have 
+    ticket component field,  closes bug #62
+    Reported by: gernot dot hillier add siemens dot com
+    Fixed by: Bas van der Vlies
+	  
+  * run_email2trac.c:
+     - can no longer segfault after a failed malloc.
+     - after set*id failure, you'll get a diagnostic (or at least 
+       nonzero exit status) and it won't attempt the exec.
+
+    Author: Jim Meyering jim add meyering dot net
+    Applied by: Bas van der Vlies
+
+  * Made some approvements to spam function:
+     - If the he X-Spam-Score header is present, but has no value 
+	email2trac will crash, closes #63
+
+     - Added config option which header field we must check 
+       for determing if mail is Spam, eg:
+        - spam_header : X-Spam-Level (default: X-Spam-Score)
+ 
+    Author: email2trac at bulk dot squeakyblue dot com
+    Applied by: Bas van der Vlies
+
+
+  * black_list  is now a configuration option and is used to deny
+    email addesses, default value is: MAILER-DAEMON@
+
+    Can specifiy more then one email adress seperated by ',', eg:
+    black_list : basv@sara.nl, walter@sara.nl
+
+    closes #39, #56
+    
+    Author: Bas van der Vlies
+
+  * if mailto_link + german umlaut problem is fixed, closes #60
+    Reported by: alex at pirsig dot net
+    Fixed by: Bas van der Vlies
+    
+
+2008-02-04
+	* Added version check and exit if we do not support the trac version
+	  closes bug #23
+	  Reported By: Marc Zahnlecker m.zahnlecker at lxbyte dot de
+
+	  Fixed By: Bas van der Vlies
+
+	* Added check if syslog module is available. If it is not available
+          disable the syslog functionality.
+	  Author: michael.th add gmx dot net 
+
+	  Implemented by: Bas van der Vlies
+
+	* Added strip_quotes function, default settings:
+		strip_quotes: <int> (default: 0) 
+		mail_quote: <quote chars> (default: "> ")
+	  Author: nicolasm @ opera dot com
+
+	  Implemented by: Bas van der Vlies
+
+	* Added patch to make notify email work with trac 0.11 dev.
+	  Author: tbaschak add ktc dot mb dot ca	
+	  Author: andrei2102 add gmail dot com 
+
+	  Implemented by: Bas van der Vlies
+
+	* greedy matching in Subject line, We must stop after the first ':'
+	  else we get wrong values for ticket fields when we update a ticket
+	  via mail, closes ticket #37
+	  Reported by: dmaziuk at bmrb dot wisc dot edu
+	  Fixed    by: Bas van der Vlies
+
+	* added IGNORECASE flag to regular expression for black list. This
+	  is a quick fix, still want to implement this as configuration 
+	  option, closed bug #39
+
+	  Reported By: jodok at lovelysystems dot com
+	  Fixed by   : Bas van der Vlies
+
+	* When a known user mails a ticket. We will set the Reporter to
+	  its login name, closes bug #33, #41
+
+	  Also add configuration option: 
+	  	ignore_trac_user_settings : 0 (default value)
+
+	  This option will skip the email address to trac user login name
+	  mapping.
+
+	  Reported by: anonymous
+	  Fixed by   : Bas van der Vlies
+
+	
+	* SPAM detection was only for new mails not for ticket updates,
+	  closed ticket #44
+
+	  Reported by: Bas van der Vlies
+	  Fixed by   : Bas van der Vlies
+	  
+	   
+2007-07-18
+
+	* Implemented python_egg_cache environment variable. Some trac
+	  installations may depend on it, closes ticket #10, eg:
+	  	python_egg_cache : /var/cache/eggcache
+
+	  Reported By: Anonymous
+	  Fixed by   : Bas van der Vlies <basv@sara.nl>
+
+	* Implemented update ticket fields via email subject line, eg:
+	  	Re: [email2trac] #7?owner=bas,priority=minor: Error in parsing
+
+	  	- Sets the owner of the ticket to: bas
+		- Sets the priority of the ticket to: minor
+	 
+	  For some ticket fields there are only a limited number of allowed
+	  values. The supplied value will be checked against this list. If it
+	  is not vaild value the field update will be ignored.
+
+	  Requested by  : trac at yadan dotnet, Jan Parchmann, see ticket #7
+	  Implemented by: Bas van der Vlies <basv@sara.nl>
+
+	* Dropped support for version trac version 0.8. Removed all 0.8
+	  specific code.  
+	  Fixed by: Bas van der Vlies <basv@sara.nl>
+
+	* Added a new config parameter: tmpdir: /var/tmp, default is '/tmp'
+	  All functions now use this new parameter and use OS independent 
+	  path functions. 
+	  Implemented by: Bas van der Vlies <basv@sara.nl>
+
+	* fixed and a creating directory problem email2trac.spec file
+	  Fixed by: artrus at netzero dot net
+
+	* set_owner function is obsolete. When component is set the trac code
+	  will set the owner to the component owner. 
+	  Fixed by    : Bas van der Vlies <basv@sara.nl>
+
+	* Also show email headers in a ticket update.
+	  Requested by: Ramon Bastiaans 
+	  Fixed by    : Bas van der Vlies <basv@sara.nl>
+
+	* A date patch so it works with trac version 0.11 for ticket updates. 
+	  Also applied for other trac versions.
+	  Thanks to: tbaschak at ktc dot mb dot ca
+
+2007-04-27
+
+	* Added check to catch an error when attachment size
+	  is too large, bug #1153
+	  Author: Bas van der Vlies
+
+	* Wrap long line into user given length, use_textwrap: 72. Wraps lines
+	  greater then 72 chars, #1123
+	  Author: Bas van der Vlies & 
+	          Rainer Sokoll (r.sokoll at intershop dot de)
+
+	* Fixed a dutch spelling, #1295
+	  Author: Rainer Sokoll (r.sokoll at intershop dot de)
+
+        * email2trac.py : blacklist (don't create ticket) mail from
+	  MAILER-DAEMON to avoid loops
+	  Author: Michel Jouvin <jouvin at lal dot in2p3 dot fr>
+
+	* msg.bad.txt : add an example of message from MAILER-DAEMON
+	  Author: Michel Jouvin <jouvin at lal dot in2p3 dot fr>
+
+2006-12-08
+	* email2trac.py:
+	  - Added verbatim_format option default is: 1
+	  Added by : Bas van der Vlies
+
+	  - Added strip_signature option default is: 0 
+	  Added by : Bas van der Vlies
+
+	  - Fixed some unicode errors, thanks to japanes SPAM. 
+	    If we can not unicode email message then display which
+	    charset must be installed in ticket description. Else we 
+	    trac crashed with unicode errors ;-(
+	  Fixed by: Bas van der Vlies
+
+	  - Fixed statements: str + unicode, raises an exception if 
+	    non-ascii value in unicode object.
+
+	  - Forgot to unicode the author. So we got an error if we use 
+	    the mailto_link option in email2trac.conf. 
+	  Fixed by: Bas van der Vlies
+
+	* delete_spam.py:
+	  - Now works for version 0.10 with new API-functions
+	  Fixed by: Bas van der Vlies
+
+	* Makefile.in
+	  - Added install-conf. Install email2trac.conf if there is none
+	    installed.
+	  Fixed by: Bas van der Vlies
+
+2006-10-27
+
+	* run_email2trac.c. 
+	
+	  - Setgid() must be called before setuid().
+	  Reported by:  Anonymous
+	  Fixed    by:  Bas van der Vlies
+
+	* email2trac.py, 
+	
+	  - Fixed an error in Ticket Update. When ticket
+	  does not exists, proceed as if it is a new ticket
+	  Fixed    by:  Bas van der Vlies
+
+	  - Fixed a strang bug in 0.9 version, if ticket update 
+	  is enabled and email has attachment(s). We are not allowed to 
+	  set the description and author field of the attachment else 
+	  the comment text is lost ;-(
+	  Fixed    by:  Bas van der Vlies
+
+	  - Fixed an error if enable_syslog and drop_spam is set. We get
+	  an exception in the syslog if we use sys.exit(0), replaced by
+	  return.
+	  Fixed    by:  Bas van der Vlies
+
+	* delete_spam.py. 
+	
+	  - Trac version 0.10 made it easier to delete tickets.
+	  Fixed    by:  Bas van der Vlies
+	
+2006-10-10
+	* Fixed race conditions in delete_spam.py and added some 
+	  debug code.
+	  Fixed by   : Bas van der Vlies
+
+	* Added author and description field when attachment is
+	  added to ticket. This is for trac version greater than
+	  0.8.
+	  Fixed by   : Bas van der Vlies
+	  Thanks to Matthew Good for the hint
+
+	* Added drop_spam option, default = 0. If set then
+	  mail marked as Spam is not accepted.
+	  Added by   : Bas van der Vlies
+
+	* Do not send notification if message is marked as Spam 
+	  and drop_spam is not set.
+	  Fixed by   : Bas van der Vlies
+
+2006-10-02
+	* Fixes possible segmentation faults in run_email2trac.c 
+	  Reported by: bcornec
+	  Fixed by   : Bas van der Vlies
+
+	* Can set DEBUG level while configuring package, eg:
+	  DEBUG=1 ./configure ( default : 0)
+	  Reported by: syd at plug dot ca
+	  Fixed By   : Bas van der Vlies
+
+	* delete_spam.py did not delete everything from the SQL tables
+	  Reported by: brent at rcfile dot org
+	  Fixed by   : Bas van der Vlies
+
+	* Do not send notification when message is marked as Spam
+	  Fixed by   : Bas van der Vlies
+	  
+2006-08-28
+	* fixes an error in the 'reply_all' setting
+	  Thanks to and Patch by: ncarlson@ibsys.com
+
+	* Added RPM spec file 
+	  Thanks to:  Jon Topper <jon@topper.me.uk>
+
+2006-07-14
+	* Use X11R5 install-sh to install email2trac components to hide
+          native install program differences.
+	  Author: Michel Jouvin <jouvin@lal.in2p3.fr>
+
+	* Fixed an error in saving attachments for new tickets for trac 
+	  versions greater then 0.9.
+	  Fixed by: Bas van der Vlies
+
+	* When something went wrong save the offending email for debug
+	  purposes.
+	  Fixed by: Bas van der Vlies
+
+	* delete_spam.py 
+	   - did not clean up the attachment table. So we got nasty new 
+	     mails with fake attachments.
+	   - It works now for versions higher then 0.8
+
+	* Finally understand the unicode/encode functions and hopefully
+	  fixed the errors.
+	  Fixed by: Bas van der Vlies
+
+	* Remove the temporarly created attachment files.
+	  Fixed by: Bas van der Vlies
+	
+2006-07-06
+	* Fixed an error in already added attachments. Do not close
+	  the database connection.
+	  Fixed by: Walter de Jong en Bas van der Vlies
+
+	* Added enable_syslog option. If enabled log errors to syslog
+	  instead of stderr. If enabled no errors are send back to the 
+	  user.
+	  Implemented by: Bas van der Vlies
+
+	* Fixed an error with updating tickets with attachments for trac 
+	  versions 0.9 and 0.10. Field "id" is not known when a existing
+	  ticket is fetched (Error = KeyError: 'id')
+	  Fixed By: See tickets #258 and #449 on trac-hacks
+
+	* Fixed and spell error, self.mail_addr must be self.email_addr
+	  Fixed by: Bas van der Vlies
+
+	* Catch a LookupError in unicode/encode conversion in function 
+	  get_body_text()
+	  Fixed by: Bas van der Vlies
+
+	* Description field was always changed when updating the ticket 
+	  via the web. Asked the mailing list for a solution and got one
+	  ;-)
+	  Patch/Suggestion by: Christian Boos
+	  Applied by: Bas van der Vlies
+
+	* Fixed an encoding problem when email_header is set to 1
+	  Fixed by: Bas van der Vlies
+
+	* Fixed a bug in to_unicode() function.
+	  Fixed by: Bas van der Vlies
+
+	* Fixed an unicodedata.normalize TypeError bug for filenames in the 
+	  attachment function
+	  Fixed by: Bas van der Vlies
+
+
+2006-06-02
+	* Added ticketing merging. To enable it there are two options for
+	  both options enable 'ticket_update' in email2trac.conf
+	  1 - Configure trac notification, eg: 
+	  	* (ticket address: ticket@test.nl)
+	  	[notification]
+		smtp_enabled = true
+		smtp_always_cc = test@test.nl
+		smtp_server = localhost
+		smtp_from =  ticket@test.nl
+	  	always_notify_reporter = true
+
+	  2 - Use the mailto_cc in email2trac.conf if you want to sent
+	      an email to the user and the trac ticket email address.
+
+	  With both options you get the right format of the subject line.
+
+	* Use the short options for the install command. So it works for
+	  MacOSx Reported by: Nathaniel Irons.
+
+	* Updated inline documentation by Nathaniel Irons.
+	  	 
+2006-05-16
+	* Fixed a bug when there was no plain text body.
+	  Reported by: Greg Deakyne
+	* Fixed a small bug if default component owner is unknown.
+	  Just fill in some bogus info.
+	* Use the short options for the install command. So it works for
+	  MacOSx
+	  Reported by: Nathaniel Irons
+	* Messages that has X-Virus-found in header are marked as SPAM
+	  Implemented by: Walter de Jong
+	* Some modules are changed for version 0.10, Added and made some
+	  minor changes: Patch supplied by: Markus Tacker  
+	* Ported delete_spam.py to version 0.9 and higher:
+	  Reported by: Nathaniel Irons
+
+
+2006-03-08
+        - Fixed an bug for 0.9, there was a space in front of the ' ticket' directory.
+	  removed it.
+	  Reported by: mi-trachacks@moensolutions.com	
+	  Fixed by: Bas van der Vlies
+	* Fixed an exception error in delete_spam.py
+	  when shutil has not enough priveledges to remove the
+	  attachments it is reported
+	  Fixed by: Bas van der Vlies
+	* email2trac.py: When you include the body tag, some 
+	  mailers (like Thunderbird) will leave out the signature.
+          Therefore this version leaves out the body tag.
+	  Fixed by: Walter de Jong
+	* Added msg.txt for testing
+	  Fixed by: Bas van der Vlies
+
+2006-02-01  Bas van der Vlies <basv@sara.nl>:
+	* Added Tikcet notification, send email when there is
+	  a new ticket. Depends on notification setting in
+	  trac.ini. 
+	  Implemented by: Kilian Cavalotti 
+	* Can use different template for ticket notification,
+	  eg: alternate_notify_template: "a_tkt.css" 
+	  Implemented by: Kilian Cavalotti 
+	* Added reply_all config parameter. If set put all
+	  CC-addresses from orginal mail in ticket CC-field.
+	  Suggested by: Kilian Cavalotti
+	* Text in ticket description is also properly UTF-8
+	  encoded
+	  Implemented by: Kilian Cavalotti 
+	* Removed reply_address from config file. Is not
+	  necessary anymore. See Ticket notification.
+	* Added support for known users. If email address is
+	  known then use the trac known username instead
+	  of the email-address (only for trac version > 0.9)
+	  Implemented by: Kilian Cavalotti 
+	* Fixed an error in saving attachments for version < 0.9.
+	  Sometimes we got bogus attachments.
+	  Fixed by: Walter de Jong
+	* Added support to make an debian package
+	  Implemented by: Bas van der Vlies
+
+2006-01-21  Bas van der Vlies <basv@sara.nl>:
+	* Fixed run_email2trac.c, did not work
+	* Added TRAC_SCRIPT_NAME to Makefile.in to 
+	  solve run_email2trac problem
+
+	Both errors reported by: kilian.cavalotti@lip6.fr
+
+2006-01-20  Bas van der Vlies <basv@sara.nl>:
+	* A warning error is fixed by kilian.cavalotti@lip6.fr
+	* Several errors in make install ;-(, reported by
+	  tacker
+
+2006-01-15  Bas van der Vlies <basv@sara.nl>:
+	* Added configure script.
+
+2006-01-10  Bas van der Vlies <basv@sara.nl>:
+	* Removed project_root from source and config file
+	* Adjust code so we can use mulitple stanza's in config file, eg:
+	  [bas]
+	  project: /data/trac/bas
+	  spam_level: 3
+
+	  use option "-p|--project bas" to select the stanza
+
+2006-01-04  Bas van der Vlies <basv@sara.nl>:
+
+	* Fixed getopt for -f option
+	* Added suppport for different TRAC versions (0.8 and 0.9)
+
+2006-01-03  Michel Jouvin  <jouvin@lal.in2p3.fr>
+
+	* email2trac.py (ReadConfig) : allow project name relative to project root in configuration file
+	
+	* email2trac.py (TicketEmailParser.parse): save entire email for debugging only if debug >= 2
+
+	* run_email2trac.c: pass wrapper arguments to Python script, filtering out --file 
+
+	* email2trac.py (TicketEmailParser.debug_attachments): set tmp file created for debugging writable by anybody (to avoid problem if the script is run with a different uid during tests)
+
+	* email2trac.py (TicketEmailParser.parse): set tmp file created for debugging writable by anybody (to avoid problem if the script is run with a different uid during tests)
+
+2005-12-22  Michel Jouvin  <jouvin@lal.in2p3.fr>
+
+	* Makefile: add a Makefile to build and install email2trac
+
+	* email2trac.py: migrate to Trac 0.9 API
+
+2005-12-21  Michel Jouvin  <jouvin@lal.in2p3.fr>
+
+	* run_email2trac.c: add error messages if DEBUG macro defined
+
+	* run_email2trac.c: add error testing and specific return values for each error
+
+	* run_email2trac.c: Move site specific paramaters to run_email2trac.h
+
+	* run_email2trac.h: include file to define site specific paramaters
+
+0.2.4 01/11/2005
+	Added email_header option if set then show TO/CC fields in
+	description of the ticket.
+
+	Fixed an error in the mailto URL. This was an old error that 
+	supposed to be fixed but reoccured in this version.
+	
+0.2.3 31/10/2005
+	Fixed a bug with base64 encoded attachments/emails
+	Fixed by: Walter de Jong
+
+0.2.2 10/10/2005
+	according to RFC 2368 (titled "the mailto URL scheme") the mailto
+	URL can only work with short &body messages. It fails with long
+	messages and the link won't work. Therefore the mail body is
+	no longer copied into the mail reply.
+
+0.2.1 10/07/2005
+	body of reply email looks better
+
+
+0.2   10/07/2005
+	mailto is replaced by a html mailto to line. If 
+	you reply to the ticket via this link then an 
+	email client is started with some default values:
+		To: <reporter>
+		Subject: Re: <orginal subject>
+		Body: email_comment <orginal text>
+
+	email2trac.conf:
+		email_comment: # (default:  >)
+
+		
+
Index: tags/0.70/INSTALL
===================================================================
--- tags/0.70/INSTALL	(revision 255)
+++ tags/0.70/INSTALL	(revision 255)
@@ -0,0 +1,4 @@
+= Installation and Configuration of email2trac =
+
+See for installation:
+	https://subtrac.sara.nl/oss/email2trac 
Index: tags/0.70/Makefile.in
===================================================================
--- tags/0.70/Makefile.in	(revision 255)
+++ tags/0.70/Makefile.in	(revision 255)
@@ -0,0 +1,53 @@
+# Authors: Bas van der Vlies & Michel Jouvin
+# Date   : 13 Jan 2005
+# Desc.  : Simple Makefile
+#
+# SVN INFO:
+#      $Id$
+#
+#
+prefix=@prefix@
+EXEC_PREFIX=@exec_prefix@/bin
+PYTHON_BIN=@PYTHON@
+CONFIG=@sysconfdir@
+
+# User names 
+#
+TRAC_USER=@trac_user@
+MTA_USER=@mta_user@
+DEBUG=@DEBUG@
+
+TRAC_SCRIPT_NAME=email2trac
+
+CC=@CC@
+INSTALL=./install-sh
+CFLAGS=-DMTA_USER=\"$(MTA_USER)\" -DTRAC_USER=\"$(TRAC_USER)\" -DTRAC_SCRIPT_NAME=\"$(TRAC_SCRIPT_NAME)\" -DTRAC_SCRIPT_PATH=\"$(EXEC_PREFIX)\" -DDEBUG=$(DEBUG)
+
+PYTHON_FILES=delete_spam.py email2trac.py
+WRAPPER_SRC=run_email2trac.c run_email2trac.h
+
+all: run_email2trac
+
+run_email2trac: $(WRAPPER_SRC) Makefile
+	$(CC) $(CFLAGS) -o $@ run_email2trac.c
+
+install: all install-conf
+	$(INSTALL) -d $(DESTDIR)$(EXEC_PREFIX)
+	$(INSTALL) -m 4111 -o root run_email2trac $(DESTDIR)$(EXEC_PREFIX)
+	for script in $(PYTHON_FILES) ; \
+	do \
+          name=`basename $$script '.py'` ;\
+	  $(INSTALL) -m 755 -o root $$script  $(DESTDIR)$(EXEC_PREFIX)/$$name ;\
+	done
+
+install-conf:
+	if [ ! -f  $(DESTDIR)/$(CONFIG)/email2trac.conf ] ; \
+	then \
+		$(INSTALL) -c -m 644 -o root email2trac.conf $(DESTDIR)/$(CONFIG)/email2trac.conf ;\
+	fi
+ 
+clean:
+	rm run_email2trac
+
+distclean:
+	rm run_email2trac email2trac.py delete_spam.py config.log config.status Makefile
Index: tags/0.70/README
===================================================================
--- tags/0.70/README	(revision 255)
+++ tags/0.70/README	(revision 255)
@@ -0,0 +1,23 @@
+email2trac - utilities
+----------------------
+
+This is a release of the SARA package email2trac that contains utilities that 
+we use to convert emails to trac tickets. The initial setup was made by 
+Daniel Lundin from Edgewall Software. SARA has extend the initial setup,  
+with the following extensions:
+
+  - HTML messages
+  - Attachments
+  - Use commandline options
+  - Config file is used to control the behaviour of the email2trac software 
+  - Unicode support for special characters in the headers of an email
+    message
+  - Ticket updates via mail
+
+
+See INSTALL for the how to setup the utilities
+
+Comments or Suggestions mail them to: 
+	email2trac <email2trac@sara.nl>
+
+http://www.sara.nl for more info about SARA.
Index: tags/0.70/aclocal.m4
===================================================================
--- tags/0.70/aclocal.m4	(revision 255)
+++ tags/0.70/aclocal.m4	(revision 255)
@@ -0,0 +1,1023 @@
+# generated automatically by aclocal 1.7.9 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Do all the work for Automake.                            -*- Autoconf -*-
+
+# This macro actually does too much some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 10
+
+AC_PREREQ([2.54])
+
+# Autoconf 2.50 wants to disallow AM_ names.  We explicitly allow
+# the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_CC],
+                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_CXX],
+                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $1 | $1:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright 2002  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.7"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+	 [AM_AUTOMAKE_VERSION([1.7.9])])
+
+# Helper functions for option handling.                    -*- Autoconf -*-
+
+# Copyright 2001, 2002  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+#
+# Check to make sure that the build environment is sane.
+#
+
+# Copyright 1996, 1997, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+#  -*- Autoconf -*-
+
+
+# Copyright 1997, 1999, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# AM_AUX_DIR_EXPAND
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+# Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_AUX_DIR_EXPAND], [
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# AM_PROG_INSTALL_STRIP
+
+# Copyright 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+#                                                          -*- Autoconf -*-
+# Copyright (C) 2003  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 1
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# serial 5						-*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      : > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored.
+      if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking.   -*- Autoconf -*-
+
+# Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+#serial 2
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  grep '^DEP_FILES *= *[[^ @%:@]]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+	s/\\\\$//
+	p
+	n
+	/\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Check to see how 'make' treats includes.	-*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# AM_CONDITIONAL                                              -*- Autoconf -*-
+
+# Copyright 1997, 2000, 2001 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 5
+
+AC_PREREQ(2.52)
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+        [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.])
+fi])])
+
+
+# Copyright 1999, 2000, 2001, 2002, 2003  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# AM_PATH_PYTHON([MINIMUM-VERSION])
+
+# Adds support for distributing Python modules and packages.  To
+# install modules, copy them to $(pythondir), using the python_PYTHON
+# automake variable.  To install a package with the same name as the
+# automake package, install to $(pkgpythondir), or use the
+# pkgpython_PYTHON automake variable.
+
+# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
+# locations to install python extension modules (shared libraries).
+# Another macro is required to find the appropriate flags to compile
+# extension modules.
+
+# If your package is configured with a different prefix to python,
+# users will have to add the install directory to the PYTHONPATH
+# environment variable, or create a .pth file (see the python
+# documentation for details).
+
+# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
+# cause an error if the version of python installed on the system
+# doesn't meet the requirement.  MINIMUM-VERSION should consist of
+# numbers and dots only.
+
+AC_DEFUN([AM_PATH_PYTHON],
+ [
+  dnl Find a Python interpreter.  Python versions prior to 1.5 are not
+  dnl supported because the default installation locations changed from
+  dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages
+  dnl in 1.5.
+  m4_define([_AM_PYTHON_INTERPRETER_LIST],
+	    [python python2 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5])
+
+  m4_if([$1],[],[
+    dnl No version check is needed.
+    # Find any Python interpreter.
+    AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST)
+    am_display_PYTHON=python
+  ], [
+    dnl A version check is needed.
+    if test -n "$PYTHON"; then
+      # If the user set $PYTHON, use it and don't search something else.
+      AC_MSG_CHECKING([whether $PYTHON version >= $1])
+      AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
+			      [AC_MSG_RESULT(yes)],
+			      [AC_MSG_ERROR(too old)])
+    else
+      # Otherwise, try each interpreter until we find one that satisfies
+      # VERSION.
+      AC_CACHE_CHECK([for a Python interpreter with version >= $1],
+	[am_cv_pathless_PYTHON],[
+	for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST : ; do
+          if test "$am_cv_pathless_PYTHON" = : ; then
+            AC_MSG_ERROR([no suitable Python interpreter found])
+	  fi
+          AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
+        done])
+      # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
+      AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
+      am_display_PYTHON=$am_cv_pathless_PYTHON
+    fi
+  ])
+
+  dnl Query Python for its version number.  Getting [:3] seems to be
+  dnl the best way to do this; it's what "site.py" does in the standard
+  dnl library.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
+    [am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`])
+  AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
+
+  dnl Use the values of $prefix and $exec_prefix for the corresponding
+  dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX.  These are made
+  dnl distinct variables so they can be overridden if need be.  However,
+  dnl general consensus is that you shouldn't need this ability.
+
+  AC_SUBST([PYTHON_PREFIX], ['${prefix}'])
+  AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}'])
+
+  dnl At times (like when building shared libraries) you may want
+  dnl to know which OS platform Python thinks this is.
+
+  AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
+    [am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`])
+  AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
+
+
+  dnl Set up 4 directories:
+
+  dnl pythondir -- where to install python scripts.  This is the
+  dnl   site-packages directory, not the python standard library
+  dnl   directory like in previous automake betas.  This behavior
+  dnl   is more consistent with lispdir.m4 for example.
+  dnl Query distutils for this directory.  distutils does not exist in
+  dnl Python 1.5, so we fall back to the hardcoded directory if it
+  dnl doesn't work.
+  AC_CACHE_CHECK([for $am_display_PYTHON script directory],
+    [am_cv_python_pythondir],
+    [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
+     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`])
+  AC_SUBST([pythondir], [$am_cv_python_pythondir])
+
+  dnl pkgpythondir -- $PACKAGE directory under pythondir.  Was
+  dnl   PYTHON_SITE_PACKAGE in previous betas, but this naming is
+  dnl   more consistent with the rest of automake.
+
+  AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
+
+  dnl pyexecdir -- directory for installing python extension modules
+  dnl   (shared libraries)
+  dnl Query distutils for this directory.  distutils does not exist in
+  dnl Python 1.5, so we fall back to the hardcoded directory if it
+  dnl doesn't work.
+  AC_CACHE_CHECK([for $am_display_PYTHON extension module directory],
+    [am_cv_python_pyexecdir],
+    [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
+     echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`])
+  AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
+
+  dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE)
+
+  AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
+])
+
+
+# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
+# ---------------------------------------------------------------------------
+# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
+# Run ACTION-IF-FALSE otherwise.
+# This test uses sys.hexversion instead of the string equivalent (first
+# word of sys.version), in order to cope with versions such as 2.2c1.
+# hexversion has been introduced in Python 1.5.2; it's probably not
+# worth to support older versions (1.5.1 was released on October 31, 1998).
+AC_DEFUN([AM_PYTHON_CHECK_VERSION],
+ [prog="import sys, string
+# split strings by '.' and convert to numeric.  Append some zeros
+# because we need at least 4 digits for the hex conversion.
+minver = map(int, string.split('$2', '.')) + [[0, 0, 0]]
+minverhex = 0
+for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[[i]]
+sys.exit(sys.hexversion < minverhex)"
+  AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+
+# Copyright 2001 Free Software Foundation, Inc.             -*- Autoconf -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
Index: tags/0.70/configure
===================================================================
--- tags/0.70/configure	(revision 255)
+++ tags/0.70/configure	(revision 255)
@@ -0,0 +1,3590 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="email2trac.py.in"
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS pyexecdir trac_user mta_user PYTHON PYTHON_VERSION PYTHON_PREFIX PYTHON_EXEC_PREFIX PYTHON_PLATFORM pythondir pkgpythondir pkgpyexecdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP DEBUG email2trac_conf SYSTEM_EMAIL2TRAC_CONF LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_$ac_feature='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_$ac_package='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+	      localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+			  [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+			  [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+
+  --with-trac_user=USER    Specify the name of the user that trac use,
+                          default=www-data
+
+  --with-mta_user=USER    Specify the name of the user that your MTA use,
+                          default=nobody
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+	   test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd "$ac_popdir"
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=$`echo $ac_var`
+	echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h | sort
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+	ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#DEBUG=0
+
+
+
+
+
+        # Find any Python interpreter.
+    for ac_prog in python python2 python2.3 python2.2 python2.1 python2.0 python1.6 python1.5
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PYTHON+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PYTHON in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  ;;
+esac
+fi
+PYTHON=$ac_cv_path_PYTHON
+
+if test -n "$PYTHON"; then
+  echo "$as_me:$LINENO: result: $PYTHON" >&5
+echo "${ECHO_T}$PYTHON" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$PYTHON" && break
+done
+
+    am_display_PYTHON=python
+
+
+
+  echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5
+echo $ECHO_N "checking for $am_display_PYTHON version... $ECHO_C" >&6
+if test "${am_cv_python_version+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  am_cv_python_version=`$PYTHON -c "import sys; print sys.version[:3]"`
+fi
+echo "$as_me:$LINENO: result: $am_cv_python_version" >&5
+echo "${ECHO_T}$am_cv_python_version" >&6
+  PYTHON_VERSION=$am_cv_python_version
+
+
+
+  PYTHON_PREFIX='${prefix}'
+
+  PYTHON_EXEC_PREFIX='${exec_prefix}'
+
+
+
+  echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5
+echo $ECHO_N "checking for $am_display_PYTHON platform... $ECHO_C" >&6
+if test "${am_cv_python_platform+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`
+fi
+echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5
+echo "${ECHO_T}$am_cv_python_platform" >&6
+  PYTHON_PLATFORM=$am_cv_python_platform
+
+
+
+
+                echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5
+echo $ECHO_N "checking for $am_display_PYTHON script directory... $ECHO_C" >&6
+if test "${am_cv_python_pythondir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null ||
+     echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`
+fi
+echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5
+echo "${ECHO_T}$am_cv_python_pythondir" >&6
+  pythondir=$am_cv_python_pythondir
+
+
+
+  pkgpythondir=\${pythondir}/$PACKAGE
+
+
+            echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5
+echo $ECHO_N "checking for $am_display_PYTHON extension module directory... $ECHO_C" >&6
+if test "${am_cv_python_pyexecdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null ||
+     echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`
+fi
+echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5
+echo "${ECHO_T}$am_cv_python_pyexecdir" >&6
+  pyexecdir=$am_cv_python_pyexecdir
+
+
+
+  pkgpyexecdir=\${pyexecdir}/$PACKAGE
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CC" && break
+done
+
+  CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+	;;
+    conftest.$ac_ext )
+	# This is the source file.
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	# FIXME: I believe we export ac_cv_exeext for Libtool,
+	# but it would be cool to find out if it's true.  Does anybody
+	# maintain Libtool? --akim.
+	export ac_cv_exeext
+	break;;
+    * )
+	break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  export ac_cv_exeext
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+if test $ac_cv_c_compiler_gnu = yes; then
+    echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
+echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
+if test "${ac_cv_prog_gcc_traditional+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    ac_pattern="Autoconf.*'x'"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sgtty.h>
+Autoconf TIOCGETP
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "$ac_pattern" >/dev/null 2>&1; then
+  ac_cv_prog_gcc_traditional=yes
+else
+  ac_cv_prog_gcc_traditional=no
+fi
+rm -f conftest*
+
+
+  if test $ac_cv_prog_gcc_traditional = no; then
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <termio.h>
+Autoconf TCGETA
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "$ac_pattern" >/dev/null 2>&1; then
+  ac_cv_prog_gcc_traditional=yes
+fi
+rm -f conftest*
+
+  fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
+echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
+  if test $ac_cv_prog_gcc_traditional = yes; then
+    CC="$CC -traditional"
+  fi
+fi
+
+
+if test "x$DEBUG" = "x";then
+  DEBUG=0
+fi
+
+
+# Now a user can specify the TRAC user
+#
+
+# Check whether --with-trac_user or --without-trac_user was given.
+if test "${with_trac_user+set}" = set; then
+  withval="$with_trac_user"
+  case "${withval}" in
+        *) trac_user="${withval}" ;;
+  esac
+else
+  trac_user="www-data"
+
+fi;
+# Now a user can specify MTA TRAC user
+#
+
+# Check whether --with-mta_user or --without-mta_user was given.
+if test "${with_mta_user+set}" = set; then
+  withval="$with_mta_user"
+  case "${withval}" in
+        *) mta_user="${withval}" ;;
+  esac
+else
+  mta_user="nobody"
+
+fi;
+if test "$sysconfdir" = '${prefix}/etc'; then
+  if test "x$prefix" = xNONE; then
+    email2trac_conf="$ac_default_prefix/etc/email2trac.conf"
+  else
+    email2trac_conf="$prefix/etc/email2trac.conf"
+  fi
+else
+  email2trac_conf="$sysconfdir/email2trac.conf"
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define SYSTEM_EMAIL2TRAC_CONF "$email2trac_conf"
+_ACEOF
+
+
+
+
+
+
+                              ac_config_files="$ac_config_files Makefile email2trac.py delete_spam.py"
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[	 ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[	 ]*$//;
+}'
+fi
+
+# Transform confdefs.h into DEFS.
+# Protect against shell expansion while executing Makefile rules.
+# Protect against Makefile macro expansion.
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
+t clear
+: clear
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
+t quote
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output.  A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
+
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+		   instantiate the configuration file FILE
+
+Configuration files:
+$config_files
+
+Report bugs to <bug-autoconf@gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.59,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_option=$1
+     ac_need_defaults=false;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "email2trac.py" ) CONFIG_FILES="$CONFIG_FILES email2trac.py" ;;
+  "delete_spam.py" ) CONFIG_FILES="$CONFIG_FILES delete_spam.py" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./confstat$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s,@SHELL@,$SHELL,;t t
+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s,@exec_prefix@,$exec_prefix,;t t
+s,@prefix@,$prefix,;t t
+s,@program_transform_name@,$program_transform_name,;t t
+s,@bindir@,$bindir,;t t
+s,@sbindir@,$sbindir,;t t
+s,@libexecdir@,$libexecdir,;t t
+s,@datadir@,$datadir,;t t
+s,@sysconfdir@,$sysconfdir,;t t
+s,@sharedstatedir@,$sharedstatedir,;t t
+s,@localstatedir@,$localstatedir,;t t
+s,@libdir@,$libdir,;t t
+s,@includedir@,$includedir,;t t
+s,@oldincludedir@,$oldincludedir,;t t
+s,@infodir@,$infodir,;t t
+s,@mandir@,$mandir,;t t
+s,@build_alias@,$build_alias,;t t
+s,@host_alias@,$host_alias,;t t
+s,@target_alias@,$target_alias,;t t
+s,@DEFS@,$DEFS,;t t
+s,@ECHO_C@,$ECHO_C,;t t
+s,@ECHO_N@,$ECHO_N,;t t
+s,@ECHO_T@,$ECHO_T,;t t
+s,@LIBS@,$LIBS,;t t
+s,@pyexecdir@,$pyexecdir,;t t
+s,@trac_user@,$trac_user,;t t
+s,@mta_user@,$mta_user,;t t
+s,@PYTHON@,$PYTHON,;t t
+s,@PYTHON_VERSION@,$PYTHON_VERSION,;t t
+s,@PYTHON_PREFIX@,$PYTHON_PREFIX,;t t
+s,@PYTHON_EXEC_PREFIX@,$PYTHON_EXEC_PREFIX,;t t
+s,@PYTHON_PLATFORM@,$PYTHON_PLATFORM,;t t
+s,@pythondir@,$pythondir,;t t
+s,@pkgpythondir@,$pkgpythondir,;t t
+s,@pkgpyexecdir@,$pkgpyexecdir,;t t
+s,@CC@,$CC,;t t
+s,@CFLAGS@,$CFLAGS,;t t
+s,@LDFLAGS@,$LDFLAGS,;t t
+s,@CPPFLAGS@,$CPPFLAGS,;t t
+s,@ac_ct_CC@,$ac_ct_CC,;t t
+s,@EXEEXT@,$EXEEXT,;t t
+s,@OBJEXT@,$OBJEXT,;t t
+s,@CPP@,$CPP,;t t
+s,@EGREP@,$EGREP,;t t
+s,@DEBUG@,$DEBUG,;t t
+s,@email2trac_conf@,$email2trac_conf,;t t
+s,@SYSTEM_EMAIL2TRAC_CONF@,$SYSTEM_EMAIL2TRAC_CONF,;t t
+s,@LIBOBJS@,$LIBOBJS,;t t
+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+
+
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+				     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s,@configure_input@,$configure_input,;t t
+s,@srcdir@,$ac_srcdir,;t t
+s,@abs_srcdir@,$ac_abs_srcdir,;t t
+s,@top_srcdir@,$ac_top_srcdir,;t t
+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s,@builddir@,$ac_builddir,;t t
+s,@abs_builddir@,$ac_abs_builddir,;t t
+s,@top_builddir@,$ac_top_builddir,;t t
+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
Index: tags/0.70/configure.in
===================================================================
--- tags/0.70/configure.in	(revision 255)
+++ tags/0.70/configure.in	(revision 255)
@@ -0,0 +1,77 @@
+#
+# Author: Bas van der Vlies <basv@sara.nl>
+# Desc. : Simple configure script for email2trac package
+# SVN INFO:
+#	$Id$
+#
+#
+AC_INIT(email2trac.py.in)
+AC_SUBST(prefix)
+AC_SUBST(exec_prefix)
+AC_SUBST(pyexecdir)
+AC_SUBST(trac_user)
+AC_SUBST(mta_user)
+AC_SUBST(sysconfdir)
+
+#DEBUG=0
+
+AM_PATH_PYTHON
+AC_PROG_GCC_TRADITIONAL
+
+if test "x$DEBUG" = "x";then
+  DEBUG=0
+fi
+AC_SUBST(DEBUG)
+
+# Now a user can specify the TRAC user
+#
+AC_ARG_WITH(trac_user,
+[
+  --with-trac_user=USER    Specify the name of the user that trac use,
+                          default=www-data],
+
+  [case "${withval}" in
+        *) trac_user="${withval}" ;;
+  esac],
+
+  [trac_user="www-data"]
+)dnl            
+
+# Now a user can specify MTA TRAC user
+#
+AC_ARG_WITH(mta_user,
+[
+  --with-mta_user=USER    Specify the name of the user that your MTA use,
+                          default=nobody],
+
+  [case "${withval}" in
+        *) mta_user="${withval}" ;;
+  esac],
+
+  [mta_user="nobody"]
+)dnl            
+
+dnl ##### Path to email2trac.conf
+dnl This ugly kludge to get the sysconfdir path is needed because
+dnl autoconf doesn't actually set the prefix variable until later.
+if test "$sysconfdir" = '${prefix}/etc'; then
+  if test "x$prefix" = xNONE; then
+    email2trac_conf="$ac_default_prefix/etc/email2trac.conf"
+  else
+    email2trac_conf="$prefix/etc/email2trac.conf"
+  fi
+else
+  email2trac_conf="$sysconfdir/email2trac.conf"
+fi
+AC_DEFINE_UNQUOTED(SYSTEM_EMAIL2TRAC_CONF, "$email2trac_conf",
+                   [Full path for the system-wide email2trac.conf file.])
+
+AC_SUBST(email2trac_conf)
+AC_SUBST(SYSTEM_EMAIL2TRAC_CONF)
+
+
+AC_OUTPUT(
+        Makefile
+	email2trac.py
+	delete_spam.py
+	)
Index: tags/0.70/debian/changelog
===================================================================
--- tags/0.70/debian/changelog	(revision 255)
+++ tags/0.70/debian/changelog	(revision 255)
@@ -0,0 +1,298 @@
+email2trac (0.70-1) stable; urgency=low
+
+  * New stable version
+
+ -- root <root@subtrac2.rc.sara.nl>  Tue, 27 Jan 2009 15:42:32 +0100
+
+email2trac (0.60-1) stable; urgency=low
+
+  *  New stable version
+
+ -- root <root@subtrac2.rc.sara.nl>  Thu, 20 Nov 2008 11:29:59 +0100
+
+email2trac (0.40-1) stable; urgency=low
+
+  * New Version, see ChangeLog 
+
+ -- root <root@subtrac2.rc.sara.nl>  Fri, 10 Oct 2008 17:24:09 +0200
+
+email2trac (0.30-3) stable; urgency=low
+
+  * Non-maintainer upload.
+  * Reopen ticket if an email update is received 
+
+ -- root <root@subtrac2.rc.sara.nl>  Mon, 04 Aug 2008 16:14:12 +0200
+
+email2trac (0.30-2) stable; urgency=low
+
+  *  Fixed an error in formating email_header.
+
+ -- Bas van der Vlies <basv@sara.nl>  Thu, 03 Jul 2008 12:53:39 +0200
+
+email2trac (0.30-1) stable; urgency=low
+
+  * a lot improvements and fixes, see Changelog
+
+ -- Bas van der Vlies <basv@sara.nl>  Tue,  3 Jun 2008 23:00:27 +0200
+
+email2trac (0.20-1) stable; urgency=low
+
+  * New version, see Changelog
+
+ -- Bas van der Vlies <root@rc.sara.nl>  Tue, 27 May 2008 23:12:54 +0200
+
+email2trac (0.13.0-1) stable; urgency=low
+
+  * New version with a lot of improvements
+
+ -- root <root@rc.sara.nl>  Mon,  4 Feb 2008 11:27:27 +0100
+
+email2trac (0.10.0-2) stable; urgency=low
+
+  *  Added extra info to syslog when exception occurs
+
+ -- root <root@rc.sara.nl>  Fri,  3 Aug 2007 09:45:26 +0200
+
+email2trac (0.10.0-1) stable; urgency=low
+
+  * New release, see ChangeLog
+
+ -- bas <basv@sara.nl>  Tue, 17 Jul 2007 14:15:14 +0200
+
+email2trac (0.9.5-1) stable; urgency=low
+
+  * New version with some new features see ChangeLog 
+
+ -- bas <basv@sara.nl>  Tue, 24 Apr 2007 14:27:25 +0200
+
+email2trac (0.9.0-2) stable; urgency=low
+
+  * add email2trac.conf to conffiles
+
+ -- bas <basv@sara.nl>  Wed,  6 Dec 2006 14:28:04 +0100
+
+email2trac (0.9.0-1) stable; urgency=low
+
+  * New version nothing changed 
+
+ -- bas <basv@sara.nl>  Mon,  4 Dec 2006 18:57:16 +0100
+
+email2trac (0.8.2-2) stable; urgency=low
+
+  * Try new version with unicode fixes 
+
+ -- bas <basv@sara.nl>  Mon,  4 Dec 2006 12:04:30 +0100
+
+email2trac (0.8.2-1) stable; urgency=low
+
+  * New release version 
+
+ -- bas <basv@sara.nl>  Thu, 26 Oct 2006 08:19:56 +0200
+
+email2trac (0.8.1-6) stable; urgency=low
+
+  * Fixed a strang bug in 0.9 version, if ticket update and email has
+    attachment we are not allowed to set the description and author
+    field of the attachment else the comment text is lost
+
+ -- bas <basv@sara.nl>  Fri, 20 Oct 2006 13:06:28 +0200
+
+email2trac (0.8.1-5) stable; urgency=low
+
+  *  Adjust delete_spam.py for version 0.10
+
+ -- bas <basv@sara.nl>  Thu, 19 Oct 2006 10:57:30 +0200
+
+email2trac (0.8.1-4) stable; urgency=low
+
+  * Fixed an error in ticket update, when a ticket does not exists
+    proceed if it is a new ticket.
+
+ -- bas <bas@rc.sara.nl>  Wed, 18 Oct 2006 09:50:36 +0200
+
+email2trac (0.8.1-3) stable; urgency=low
+
+  * setgid() must be called before setuid() 
+
+ -- bas <bas@rc.sara.nl>  Tue, 17 Oct 2006 11:17:13 +0200
+
+email2trac (0.8.1-2) stable; urgency=low
+
+  * Replace sys.exit(0) bij return else there is an exception
+
+ -- bas <bas@rc.sara.nl>  Wed, 11 Oct 2006 14:08:50 +0200
+
+email2trac (0.8.1-1) stable; urgency=low
+
+  * Fixed some errors in delete_spam.py
+  * added drop_spam option
+  * add author and description field when adding a attachment
+
+ -- bas <bas@rc.sara.nl>  Thu,  5 Oct 2006 15:03:23 +0200
+
+email2trac (0.8.0-2) stable; urgency=low
+
+  * Do not send notification when message is marked as Spam
+
+ -- bas <bas@subtrac.sara.nl>  Mon,  2 Oct 2006 10:57:09 +0200
+
+email2trac (0.8.0-1) stable; urgency=low
+
+  * See ChangeLog
+
+ -- bas <bas@subtrac.sara.nl>  Fri, 29 Sep 2006 12:29:30 +0200
+
+email2trac (0.7.7-1) stable; urgency=low
+
+  * added RPM specfile 
+
+ -- bas <bas@rc.sara.nl>  Mon, 28 Aug 2006 10:11:30 +0200
+
+email2trac (0.7.6-5) stable; urgency=low
+
+  *  Fixed reply_all bug, thanks to ncarlson@ibsys.com
+
+ -- Bas van der Vlies <basv@sara.nl>  Fri, 21 Jul 2006 14:45:14 +0200
+
+email2trac (0.7.6-4) stable; urgency=low
+
+  *  Remove the temporarly create files by trac for attachment insertion
+
+ -- Bas van der Vlies <basv@sara.nl>  Mon, 17 Jul 2006 10:46:29 +0200
+
+email2trac (0.7.6-3) stable; urgency=low
+
+  * Hopefully now fixed the unicode/encode problems
+
+ -- Bas van der Vlies <basv@sara.nl>  Fri, 14 Jul 2006 10:59:25 +0200
+
+email2trac (0.7.6-2) stable; urgency=low
+
+  * Fixed delete_spam.py for versions higher then 0.8
+
+ -- Bas van der Vlies <basv@sara.nl>  Thu, 13 Jul 2006 14:28:55 +0200
+
+email2trac (0.7.6-1) stable; urgency=low
+
+  * Fixes delete_spam.py also delete from attachment table
+    Fixes: Jaap Dijkshoorn
+
+ -- bas <bas@rc.sara.nl>  Thu, 13 Jul 2006 12:33:41 +0200
+
+email2trac (0.7.5-1) stable; urgency=low
+
+  * Fix for release greater than 0.8, now attachments where saved
+    when a new ticket was inserted
+
+ -- bas <bas@rc.sara.nl>  Thu, 13 Jul 2006 10:23:27 +0200
+
+email2trac (0.7.4-2) stable; urgency=low
+
+  * New bug fixes for unicode support 
+
+ -- bas <bas@subtrac.sara.nl>  Tue, 11 Jul 2006 14:52:58 +0200
+
+email2trac (0.7.4-1) stable; urgency=low
+
+  * Unicode bug fixes
+
+ -- bas <bas@subtrac.sara.nl>  Tue, 11 Jul 2006 09:24:00 +0200
+
+email2trac (0.7.3-7) stable; urgency=low
+
+  * removed some unicode data conversions
+
+ -- bas <bas@subtrac.sara.nl>  Thu,  6 Jul 2006 09:04:35 +0200
+
+email2trac (0.7.3-6) stable; urgency=low
+
+  * Fixed an encoding problem when email_header is set to 1
+
+ -- bas <bas@subtrac.sara.nl>  Fri, 30 Jun 2006 13:42:38 +0200
+
+email2trac (0.7.3-5) stable; urgency=low
+
+  *  Description always changed when accesing the ticket via the web.
+     Suggestion/Patch by: Christian Boos
+
+ -- bas <bas@subtrac.sara.nl>  Fri, 30 Jun 2006 09:50:32 +0200
+
+email2trac (0.7.3-4) stable; urgency=low
+
+  * Fixed a LookupError  
+
+ -- bas <basv@sara.nl>  Mon, 26 Jun 2006 09:58:07 +0200
+
+email2trac (0.7.3-3) stable; urgency=low
+
+  * Fixed and spell error, self.mail_addr must be self.email_addr
+
+ -- bas <basv@sara.nl>  Thu, 22 Jun 2006 15:17:55 +0200
+
+email2trac (0.7.3-1) stable; urgency=low
+
+  * Enabled syslog option
+
+ -- bas <bas@subtrac.sara.nl>  Thu, 22 Jun 2006 12:45:37 +0200
+
+email2trac (0.7.2-0) stable; urgency=low
+
+  * Added new try/except statement and fixed LookupError
+
+ -- bas <bas@subtrac.sara.nl>  Thu, 22 Jun 2006 09:59:02 +0200
+
+email2trac (0.7.1-3) stable; urgency=low
+
+  * Fixed an error for already added attachments. Do not close the 
+    database connection 
+
+ -- bas <bas@subtrac.sara.nl>  Fri, 16 Jun 2006 13:52:26 +0200
+
+email2trac (0.7.0-2) stable; urgency=low
+
+  * Fixed some language errors by Nathaniel Irons 
+
+ -- bas <bas@subtrac.sara.nl>  Fri,  2 Jun 2006 09:27:22 +0200
+
+email2trac (0.7.0-1) stable; urgency=low
+
+  * Added Ticket merging
+
+ -- bas <bas@subtrac.sara.nl>  Fri, 26 May 2006 15:01:03 +0200
+
+email2trac (0.6.0-1) stable; urgency=low
+
+  * New Version 0.6
+
+ -- bas <bas@sara.nl>  Tue, 16 May 2006 11:14:11 +0200
+
+email2trac (0.5.7-1) stable; urgency=low
+
+  * New version that fixes serveral bugs 
+
+ -- bas <bas@subtrac.sara.nl>  Wed, 12 Apr 2006 15:54:30 +0200
+
+email2trac (0.5.0-4) stable; urgency=low
+
+  *  Continue instead of going on
+
+ -- bas <bas@subtrac.sara.nl>  Fri, 17 Feb 2006 14:29:48 +0100
+
+email2trac (0.5.0-3) stable; urgency=low
+
+  *  Fixed delete_spam.py if there are not enough permissions to
+     delete tickets
+
+ -- bas <bas@subtrac.sara.nl>  Fri, 17 Feb 2006 12:38:19 +0100
+
+email2trac (0.5.0-2) stable; urgency=low
+
+  * leave out the body tag for email urls
+
+ -- bas <bas@subtrac.sara.nl>  Thu, 16 Feb 2006 16:01:02 +0100
+
+email2trac (0.5.0-1) stable; urgency=low
+
+  *  First package
+
+ -- Bas van der Vlies  <bas@sara.nl>  Thu, 29 Dec 2005 14:40:11 +0100
Index: tags/0.70/debian/compat
===================================================================
--- tags/0.70/debian/compat	(revision 255)
+++ tags/0.70/debian/compat	(revision 255)
@@ -0,0 +1,1 @@
+4
Index: tags/0.70/debian/conffiles
===================================================================
--- tags/0.70/debian/conffiles	(revision 255)
+++ tags/0.70/debian/conffiles	(revision 255)
@@ -0,0 +1,1 @@
+/etc/email2trac.conf
Index: tags/0.70/debian/control
===================================================================
--- tags/0.70/debian/control	(revision 255)
+++ tags/0.70/debian/control	(revision 255)
@@ -0,0 +1,14 @@
+Source: email2trac
+Section: misc
+Priority: optional
+Maintainer: Bas van der Vlies <bas@sara.nl>
+Build-Depends: debhelper (>> 4.0.0), cdbs, chrpath, python
+Standards-Version: 3.2.1
+
+Package: email2trac
+Section: misc
+Architecture: any
+Maintainer: Bas van der Vlies <bas@sara.nl>
+Depends: ${slibs:Depends}, python, cdbs
+Description: Converts email to a trac ticket
+	Name says it All
Index: tags/0.70/debian/copyright
===================================================================
--- tags/0.70/debian/copyright	(revision 255)
+++ tags/0.70/debian/copyright	(revision 255)
@@ -0,0 +1,345 @@
+ GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+Copyright (C) <year> <name of author>
+
+This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
Index: tags/0.70/debian/postinst
===================================================================
--- tags/0.70/debian/postinst	(revision 255)
+++ tags/0.70/debian/postinst	(revision 255)
@@ -0,0 +1,9 @@
+#!/bin/sh
+#
+# Authors: Bas van der Vlies
+#
+# SVN Info:
+#	$Id$
+
+dpkg-statoverride --remove /usr/bin/run_email2trac >/dev/null 2>&1 || true
+dpkg-statoverride --update --add root root 04111 /usr/bin/run_email2trac
Index: tags/0.70/debian/postrm
===================================================================
--- tags/0.70/debian/postrm	(revision 255)
+++ tags/0.70/debian/postrm	(revision 255)
@@ -0,0 +1,8 @@
+#!/bin/sh
+#
+# Authors: Bas van der Vlies
+#
+# SVN Info:
+#	$Id$
+
+dpkg-statoverride --remove /usr/bin/run_email2trac >/dev/null 2>&1 || true
Index: tags/0.70/debian/rules
===================================================================
--- tags/0.70/debian/rules	(revision 255)
+++ tags/0.70/debian/rules	(revision 255)
@@ -0,0 +1,27 @@
+#!/usr/bin/make -f
+# Copyrignt 2006 Bas van der Vlies <bas@sara.nl>
+#
+#
+# DEB_AUTO_UPDATE_DEBIAN_CONTROL := yes
+#
+#
+include /usr/share/cdbs/1/rules/buildcore.mk
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+include /usr/share/cdbs/1/class/makefile.mk
+#include /usr/share/cdbs/1/class/makefile-vars.mk
+
+# Example to set the trac_user id to other value
+#
+#DEB_CONFIGURE_EXTRA_FLAGS := --enable-python --with-trac_user=bas
+
+DEB_CONFIGURE_EXTRA_FLAGS := --enable-python 
+
+# does on package by package bases so doesn't work :-/
+# #DEB_DH_INSTALL_ARGS := --list-missing
+#
+# #DEB_CONFIGURE_EXTRA_FLAGS := --enable-debug
+#
+# # tight versioning
+# #DEB_DH_MAKESHLIBS_ARGS := -V
+# ~
Index: tags/0.70/delete_spam.py.in
===================================================================
--- tags/0.70/delete_spam.py.in	(revision 255)
+++ tags/0.70/delete_spam.py.in	(revision 255)
@@ -0,0 +1,219 @@
+#!@PYTHON@
+#
+# Copyright (C) 2002
+#
+# This file is part of the email2trac utils
+#
+# This program is free software; you can redistribute it and/or modify it 
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+#
+# vi:
+#	set ts=4
+"""
+Author: Bas van der Vlies
+Date  : 29 September 2205
+Desc. : Delete Spam tickets from database. Else we get an lot of 
+        tickets
+
+Usage :
+	delete_spam [ -f/--file <configfile> -p/--project <name>]
+
+defaults:
+	configfile = /etc/email2trac.conf
+
+SVN Info:
+        $Id$
+"""
+
+import os
+import sys
+import getopt
+import shutil
+import ConfigParser
+
+trac_default_version = 0.10
+
+def ReadConfig(file, name):
+	"""
+	Parse the config file
+	"""
+
+	if not os.path.isfile(file):
+		print 'File %s does not exists' %file
+		sys.exit(1)
+
+	config = ConfigParser.ConfigParser()
+	try:
+		config.read(file)
+	except ConfigParser.MissingSectionHeaderError,detail:
+		print detail
+	  	sys.exit(1)
+
+  	# Use given project name else use defaults
+  	#
+	if name:
+		if not config.has_section(name):
+			print "Not an valid project name: %s" %name
+			print "Valid names: %s" %config.sections()
+			sys.exit(1)
+
+		project =  dict()
+		for option in  config.options(name):
+			project[option] = config.get(name, option) 
+
+	else:
+		project = config.defaults()
+
+	return project
+
+
+
+def new_delete_spam(project, debug):
+	"""
+	This only works for trac versions higher or equal then 0.10
+	"""
+	env = Environment(project, create=0)
+	db = env.get_db_cnx()
+
+	cursor = db.cursor()
+	cursor.execute("SELECT id FROM ticket WHERE  component = 'Spam';") 
+	while 1: 
+		row = cursor.fetchone()
+		if not row:
+			break 
+
+		spam_id =  row[0]
+
+		if debug:
+			print "Deleting ticket %s" %spam_id
+
+		try:
+			tkt = Ticket(env, spam_id, db)
+		except util.TracError, detail:
+		        print detail
+			continue
+
+		tkt.delete()
+
+def old_delete_spam(project, debug):
+	"""
+	This only works for trac versions before 0.10
+	"""
+	env = Environment(project, create=0)
+	db = env.get_db_cnx() 
+	
+	attachment_dir = os.path.join(env.path, 'attachments', 'ticket') 
+	cursor = db.cursor()
+	tkt_cursor = db.cursor() 
+	
+	# Delete the attachments associated with Spam tickets
+	#
+	cursor.execute("SELECT id FROM ticket WHERE  component = 'Spam';") 
+	while 1:
+		row = cursor.fetchone()
+		if not row:
+			break
+		spam_id =  row[0] 
+	
+		if debug:
+			print spam_id 
+
+			sql_cmd = "SELECT *  FROM attachment WHERE type='ticket' and id='%s';" %spam_id
+			tkt_cursor.execute(sql_cmd) 
+			row = tkt_cursor.fetchone()
+			print row 
+			
+			sql_cmd = "SELECT * FROM ticket_change WHERE ticket='%s';" %spam_id 
+			tkt_cursor.execute(sql_cmd) 
+			row = tkt_cursor.fetchone()
+			print row 
+			
+			sql_cmd = "SELECT * FROM ticket_custom WHERE ticket='%s';" %spam_id
+			tkt_cursor.execute(sql_cmd) 
+			row = tkt_cursor.fetchone()
+			print row 
+			
+		sql_cmd = "DELETE FROM attachment WHERE type='ticket' and id='%s';" %spam_id
+		tkt_cursor.execute(sql_cmd) 
+
+		sql_cmd = "DELETE FROM ticket_change WHERE ticket='%s';" %spam_id
+		tkt_cursor.execute(sql_cmd) 
+			
+		sql_cmd = "DELETE FROM ticket_custom WHERE ticket='%s';" %spam_id
+		tkt_cursor.execute(sql_cmd) 
+			
+		# Ticket commit 
+		# 
+		db.commit() 
+
+		dir = os.path.join(attachment_dir, str(spam_id)) 
+		if os.path.exists(dir):
+			if debug:
+				print 'delete %s : %s' %(spam_id, dir)
+			try: 
+				shutil.rmtree(dir) 
+			except OSError, detail: 
+				print 'Contact system-administrator: %s' %detail
+				continue
+
+	cursor.execute("DELETE FROM ticket WHERE  component = 'Spam';") 
+	db.commit()
+
+if __name__ == '__main__':
+	# Default config file
+	#
+	configfile = '@email2trac_conf@'
+
+
+	try:
+		 opts, args = getopt.getopt(sys.argv[1:], 'hf:p:', ['help', 'file=', 'project='])
+	except getopt.error,detail:
+		print __doc__
+		print detail
+		sys.exit(1)
+
+	project_name = None
+	for opt,value in opts:
+		if opt in [ '-h', '--help']:
+			print __doc__ 
+			sys.exit(0) 
+		elif opt in ['-f', '--file']:
+			configfile = value
+		elif opt in ['-p', '--project']:
+			project_name = value
+	
+	settings = ReadConfig(configfile, project_name)
+	if not settings.has_key('project'):
+		print __doc__
+		print 'No project defined in config file, eg:\n\t project: /data/trac/bas'
+		sys.exit(1)
+
+	if settings.has_key('trac_version'):
+		version = float(settings['trac_version'])
+	else:
+		version = trac_default_version
+
+	from trac.env import Environment
+	from trac.ticket import Ticket
+	from trac import util
+
+	if version == 0.10:
+		new_delete_spam(settings['project'], int(settings['debug']))
+		#new_delete_spam(settings['project'], 1)
+		#old_delete_spam(settings['project'], 0)
+	elif version == 0.9:
+		old_delete_spam(settings['project'], int(settings['debug']))
+
+	print 'Spam is deleted succesfully..' 
+# EOB
Index: tags/0.70/email2trac.conf
===================================================================
--- tags/0.70/email2trac.conf	(revision 255)
+++ tags/0.70/email2trac.conf	(revision 255)
@@ -0,0 +1,25 @@
+[DEFAULT]
+project: /data/trac/hpcv/project/test
+debug: 0
+umask: 022
+spam_level: 5
+reply_all : 0
+mailto_link: 0
+umask: 022
+email_header: 0
+trac_version: 0.11
+enable_syslog : 1
+alternate_notify_template :
+alternate_notify_template_update :
+drop_spam : 0
+verbatim_format: 1
+strip_signature: 0
+email_quote: >
+strip_quotes: 0
+ignore_trac_user_settings: 0
+black_list: MAILER-DAEMON@
+
+
+[bas]
+project: /data/trac/bas
+spam_level: 1
Index: tags/0.70/email2trac.py.in
===================================================================
--- tags/0.70/email2trac.py.in	(revision 255)
+++ tags/0.70/email2trac.py.in	(revision 255)
@@ -0,0 +1,1487 @@
+#!@PYTHON@
+# Copyright (C) 2002
+#
+# This file is part of the email2trac utils
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+#
+# For vi/emacs or other use tabstop=4 (vi: set ts=4)
+#
+"""
+email2trac.py -- Email tickets to Trac.
+
+A simple MTA filter to create Trac tickets from inbound emails.
+
+Copyright 2005, Daniel Lundin <daniel@edgewall.com>
+Copyright 2005, Edgewall Software
+
+Changed By: Bas van der Vlies <basv@sara.nl>
+Date      : 13 September 2005
+Descr.    : Added config file and command line options, spam level
+            detection, reply address and mailto option. Unicode support
+
+Changed By: Walter de Jong <walter@sara.nl>
+Descr.    : multipart-message code and trac attachments
+
+
+The scripts reads emails from stdin and inserts directly into a Trac database.
+MIME headers are mapped as follows:
+
+	* From:      => Reporter
+	             => CC (Optional via reply_all option)
+	* Subject:   => Summary
+	* Body       => Description
+	* Component  => Can be set to SPAM via spam_level option
+
+How to use
+----------
+ * Create an config file:
+	[DEFAULT]                      # REQUIRED
+	project      : /data/trac/test # REQUIRED
+	debug        : 1               # OPTIONAL, if set print some DEBUG info
+	spam_level   : 4               # OPTIONAL, if set check for SPAM mail 
+	reply_all    : 1               # OPTIONAL, if set then fill in ticket CC field
+	umask        : 022             # OPTIONAL, if set then use this umask for creation of the attachments
+	mailto_link  : 1               # OPTIONAL, if set then [mailto:<>] in description 
+	mailto_cc    : basv@sara.nl    # OPTIONAL, use this address as CC in mailto line
+	ticket_update: 1               # OPTIONAL, if set then check if this is an update for a ticket
+	trac_version : 0.9             # OPTIONAL, default is 0.10
+
+	[jouvin]                       # OPTIONAL project declaration, if set both fields necessary
+	project      : /data/trac/jouvin # use -p|--project jouvin.  
+        
+ * default config file is : /etc/email2trac.conf
+
+ * Commandline opions:
+                -h,--help
+                -f,--file  <configuration file>
+		-n,--dry-run
+                -p, --project <project name>
+		-t, --ticket_prefix <name>
+
+SVN Info:
+        $Id$
+"""
+import os
+import sys
+import string
+import getopt
+import stat
+import time
+import email
+import email.Iterators
+import email.Header
+import re
+import urllib
+import unicodedata
+from stat import *
+import mimetypes
+import traceback
+
+
+# Will fail where unavailable, e.g. Windows
+#
+try:
+    import syslog 
+    SYSLOG_AVAILABLE = True
+except ImportError:
+    SYSLOG_AVAILABLE = False
+
+from datetime import tzinfo, timedelta, datetime
+from trac import config as trac_config
+
+# Some global variables
+#
+trac_default_version = '0.10'
+m = None 
+
+# A UTC class needed for trac version 0.11, added by
+# tbaschak at ktc dot mb dot ca
+#
+class UTC(tzinfo):
+	"""UTC"""
+	ZERO = timedelta(0)
+	HOUR = timedelta(hours=1) 
+	
+	def utcoffset(self, dt):
+		return self.ZERO 
+		
+	def tzname(self, dt):
+		return "UTC" 
+		
+	def dst(self, dt):
+		return self.ZERO
+
+
+class TicketEmailParser(object):
+	env = None
+	comment = '> '
+    
+	def __init__(self, env, parameters, version):
+		self.env = env
+
+		# Database connection
+		#
+		self.db = None
+
+		# Save parameters
+		#
+		self.parameters = parameters
+
+		# Some useful mail constants
+		#
+		self.author = None
+		self.email_addr = None
+		self.email_from = None
+		self.id = None
+
+		self.VERSION = version
+		self.DRY_RUN = parameters['dry_run']
+
+		self.get_config = self.env.config.get
+
+		if parameters.has_key('umask'):
+			os.umask(int(parameters['umask'], 8))
+
+		if parameters.has_key('quote_attachment_filenames'):
+			self.QUOTE_ATTACHMENT_FILENAMES = int(parameters['quote_attachment_filenames'])
+		else:
+			self.QUOTE_ATTACHMENT_FILENAMES = 1
+
+		if parameters.has_key('debug'):
+			self.DEBUG = int(parameters['debug'])
+		else:
+			self.DEBUG = 0
+
+		if parameters.has_key('mailto_link'):
+			self.MAILTO = int(parameters['mailto_link'])
+			if parameters.has_key('mailto_cc'):
+				self.MAILTO_CC = parameters['mailto_cc']
+			else:
+				self.MAILTO_CC = ''
+		else:
+			self.MAILTO = 0
+
+		if parameters.has_key('spam_level'):
+			self.SPAM_LEVEL = int(parameters['spam_level'])
+		else:
+			self.SPAM_LEVEL = 0
+
+		if parameters.has_key('spam_header'):
+			self.SPAM_HEADER = parameters['spam_header']
+		else:
+			self.SPAM_HEADER = 'X-Spam-Score'
+
+		if parameters.has_key('email_quote'):
+			self.EMAIL_QUOTE = str(parameters['email_quote'])
+		else:	
+			self.EMAIL_QUOTE = '> '
+
+		if parameters.has_key('email_header'):
+			self.EMAIL_HEADER = int(parameters['email_header'])
+		else:
+			self.EMAIL_HEADER = 0
+
+		if parameters.has_key('alternate_notify_template'):
+			self.notify_template = str(parameters['alternate_notify_template'])
+		else:
+			self.notify_template = None
+
+		if parameters.has_key('alternate_notify_template_update'):
+			self.notify_template_update = str(parameters['alternate_notify_template_update'])
+		else:
+			self.notify_template_update = None
+
+		if parameters.has_key('reply_all'):
+			self.REPLY_ALL = int(parameters['reply_all'])
+		else:
+			self.REPLY_ALL = 0
+
+		if parameters.has_key('ticket_update'):
+			self.TICKET_UPDATE = int(parameters['ticket_update'])
+		else:
+			self.TICKET_UPDATE = 0
+
+		if parameters.has_key('drop_spam'):
+			self.DROP_SPAM = int(parameters['drop_spam'])
+		else:
+			self.DROP_SPAM = 0
+
+		if parameters.has_key('verbatim_format'):
+			self.VERBATIM_FORMAT = int(parameters['verbatim_format'])
+		else:
+			self.VERBATIM_FORMAT = 1
+
+		if parameters.has_key('reflow'):
+			self.REFLOW = int(parameter['reflow'])
+		else:
+			self.REFLOW = 1
+
+		if parameters.has_key('strip_signature'):
+			self.STRIP_SIGNATURE = int(parameters['strip_signature'])
+		else:
+			self.STRIP_SIGNATURE = 0
+
+		if parameters.has_key('strip_quotes'):
+			self.STRIP_QUOTES = int(parameters['strip_quotes'])
+		else:
+			self.STRIP_QUOTES = 0
+
+		if parameters.has_key('use_textwrap'):
+			self.USE_TEXTWRAP = int(parameters['use_textwrap'])
+		else:
+			self.USE_TEXTWRAP = 0
+
+		if parameters.has_key('binhex'):
+			self.BINHEX = parameters['binhex']
+		else:
+			self.BINHEX = 'warn'
+
+		if parameters.has_key('applesingle'):
+			self.APPLESINGLE = parameters['applesingle']
+		else:
+			self.APPLESINGLE = 'warn'
+
+		if parameters.has_key('appledouble'):
+			self.APPLEDOUBLE = parameters['appledouble']
+		else:
+			self.APPLEDOUBLE = 'warn'
+
+		if parameters.has_key('python_egg_cache'):
+			self.python_egg_cache = str(parameters['python_egg_cache'])
+			os.environ['PYTHON_EGG_CACHE'] = self.python_egg_cache
+
+		# Use OS independend functions
+		#
+		self.TMPDIR = os.path.normcase('/tmp')
+		if parameters.has_key('tmpdir'):
+			self.TMPDIR = os.path.normcase(str(parameters['tmpdir']))
+
+		if parameters.has_key('ignore_trac_user_settings'):
+			self.IGNORE_TRAC_USER_SETTINGS = int(parameters['ignore_trac_user_settings'])
+		else:
+			self.IGNORE_TRAC_USER_SETTINGS = 0
+
+	def spam(self, message):
+		"""
+		# X-Spam-Score: *** (3.255) BAYES_50,DNS_FROM_AHBL_RHSBL,HTML_
+		# Note if Spam_level then '*' are included
+		"""
+		spam = False
+		if message.has_key(self.SPAM_HEADER):
+			spam_l = string.split(message[self.SPAM_HEADER])
+
+			try:
+				number = spam_l[0].count('*')
+			except IndexError, detail:
+				number = 0
+				
+			if number >= self.SPAM_LEVEL:
+				spam = True
+				
+		# treat virus mails as spam
+		#
+		elif message.has_key('X-Virus-found'):			
+			spam = True
+
+		# How to handle SPAM messages
+		#
+		if self.DROP_SPAM and spam:
+			if self.DEBUG > 2 : 
+				print 'This message is a SPAM. Automatic ticket insertion refused (SPAM level > %d' % self.SPAM_LEVEL
+
+			return 'drop'	
+
+		elif spam:
+
+			return 'Spam'	
+
+		else:
+
+			return False
+
+	def email_header_acl(self, keyword, header_field, default):
+		"""
+		This function wil check if the email address is allowed or denied
+		to send mail to the ticket list
+	    """	
+		try:
+			mail_addresses = self.parameters[keyword]
+
+			# Check if we have an empty string
+			#
+			if not mail_addresses:
+				return default 
+
+		except KeyError, detail:
+			if self.DEBUG > 2 :
+				print 'TD: %s not defined, all messages are allowed.' %(keyword)
+
+			return default 
+
+		mail_addresses = string.split(mail_addresses, ',')
+
+		for entry in mail_addresses:
+			entry = entry.strip()
+			TO_RE = re.compile(entry, re.VERBOSE|re.IGNORECASE)
+			result =  TO_RE.search(header_field)
+			if result:
+				return True
+
+		return False
+
+	def email_to_unicode(self, message_str):
+		"""
+		Email has 7 bit ASCII code, convert it to unicode with the charset
+        that is encoded in 7-bit ASCII code and encode it as utf-8 so Trac 
+		understands it.
+		"""
+		results =  email.Header.decode_header(message_str)
+		str = None
+		for text,format in results:
+			if format:
+				try:
+					temp = unicode(text, format)
+				except UnicodeError, detail:
+					# This always works 
+					#
+					temp = unicode(text, 'iso-8859-15')
+				except LookupError, detail:
+					#text = 'ERROR: Could not find charset: %s, please install' %format
+					#temp = unicode(text, 'iso-8859-15')
+					temp = message_str
+				    	
+			else:
+				temp = string.strip(text)
+				temp = unicode(text, 'iso-8859-15')
+
+			if str:
+				str = '%s %s' %(str, temp)
+			else:
+				str = '%s' %temp
+
+		#str = str.encode('utf-8')
+		return str
+
+	def debug_body(self, message_body, tempfile=False):
+		if tempfile:
+			import tempfile
+			body_file = tempfile.mktemp('.email2trac')
+		else:
+			body_file = os.path.join(self.TMPDIR, 'body.txt')
+
+		print 'TD: writing body (%s)' % body_file
+		fx = open(body_file, 'wb')
+		if not message_body:
+			message_body = '(None)'
+		fx.write(message_body)
+		fx.close()
+		try:
+			os.chmod(body_file,S_IRWXU|S_IRWXG|S_IRWXO)
+		except OSError:
+			pass
+
+	def debug_attachments(self, message_parts):
+		n = 0
+		for part in message_parts:
+			# Skip inline text parts
+			if not isinstance(part, tuple):
+				continue
+				
+			(original, filename, part) = part
+
+			n = n + 1
+			print 'TD: part%d: Content-Type: %s' % (n, part.get_content_type())
+			print 'TD: part%d: filename: %s' % (n, part.get_filename())
+
+			part_file = os.path.join(self.TMPDIR, filename)
+			#part_file = '/var/tmp/part%d' % n
+			print 'TD: writing part%d (%s)' % (n,part_file)
+			fx = open(part_file, 'wb')
+			text = part.get_payload(decode=1)
+			if not text:
+				text = '(None)'
+			fx.write(text)
+			fx.close()
+			try:
+				os.chmod(part_file,S_IRWXU|S_IRWXG|S_IRWXO)
+			except OSError:
+				pass
+
+	def email_header_txt(self, m):
+		"""
+		Display To and CC addresses in description field
+		"""
+		str = ''
+		#if m['To'] and len(m['To']) > 0 and m['To'] != 'hic@sara.nl':
+		if m['To'] and len(m['To']) > 0:
+			str = "'''To:''' %s\r\n" %(m['To'])
+		if m['Cc'] and len(m['Cc']) > 0:
+			str = "%s'''Cc:''' %s\r\n" % (str, m['Cc'])
+
+		return  self.email_to_unicode(str)
+
+
+	def get_sender_info(self, message):
+		"""
+		Get the default author name and email address from the message
+		""" 
+
+		self.email_to = self.email_to_unicode(message['to']) 
+		self.to_name, self.to_email_addr = email.Utils.parseaddr (self.email_to) 
+
+		self.email_from = self.email_to_unicode(message['from'])
+		self.author, self.email_addr  = email.Utils.parseaddr(self.email_from)
+
+		# Trac can not handle author's name that contains spaces
+		#
+		self.author = self.email_addr
+
+		if self.IGNORE_TRAC_USER_SETTINGS:
+			return
+
+		# Is this a registered user, use email address as search key:
+		# result:
+		#   u : login name
+		#   n : Name that the user has set in the settings tab
+		#   e : email address that the user has set in the settings tab 
+		#
+		users = [ (u,n,e) for (u, n, e) in self.env.get_known_users(self.db)
+			if e and (e.lower() == self.email_addr.lower()) ]
+
+		if len(users) == 1:
+			self.email_from = users[0][0]
+			self.author = users[0][0]
+
+	def set_reply_fields(self, ticket, message):
+		"""
+		Set all the right fields for a new ticket
+		"""
+		ticket['reporter'] = self.email_from
+
+		# Put all CC-addresses in ticket CC field
+		#
+		if self.REPLY_ALL:
+			#tos = message.get_all('to', [])
+			ccs = message.get_all('cc', [])
+
+			addrs = email.Utils.getaddresses(ccs)
+			if not addrs:
+				return
+
+			# Remove reporter email address if notification is 
+			# on
+			#
+			if self.notification:
+				try:
+					addrs.remove((self.author, self.email_addr))
+				except ValueError, detail:
+					pass
+
+			for name,mail in addrs:
+				try:
+					mail_list = '%s, %s' %(mail_list, mail)
+				except UnboundLocalError, detail:
+					mail_list = mail
+
+			if mail_list:
+				ticket['cc'] = self.email_to_unicode(mail_list)
+
+	def save_email_for_debug(self, message, tempfile=False):
+		if tempfile:
+			import tempfile
+			msg_file = tempfile.mktemp('.email2trac')
+		else:
+			#msg_file = '/var/tmp/msg.txt' 
+			msg_file = os.path.join(self.TMPDIR, 'msg.txt')
+
+		print 'TD: saving email to %s' % msg_file
+		fx = open(msg_file, 'wb')
+		fx.write('%s' % message)
+		fx.close()
+		try:
+			os.chmod(msg_file,S_IRWXU|S_IRWXG|S_IRWXO)
+		except OSError:
+			pass
+
+	def str_to_dict(self, str):
+		"""
+		Transfrom a str of the form [<key>=<value>]+ to dict[<key>] = <value>
+		""" 
+		# Skip the last ':' character
+		#
+		fields = string.split(str[:-1], ',')
+
+		result = dict()
+		for field in fields:
+			try: 
+				index, value = string.split(field,'=')
+
+				# We can not change the description of a ticket via the subject
+				# line. The description is the body of the email
+				#
+				if index.lower() in ['description']:
+					continue
+
+				if value:
+					result[index.lower()] = value
+
+			except ValueError:
+				pass
+
+		return result
+
+	def update_ticket_fields(self, ticket, user_dict, use_default=None): 
+		"""
+		This will update the ticket fields. It will check if the 
+		given fields are known and if the right values are specified
+		It will only update the ticket field value:
+			- If the field is known
+			- If the value supplied is valid for the ticket field.
+			  If not then there are two options:
+			   1) Skip the value (use_default=None)
+			   2) Set default value for field (use_default=1)
+		"""
+
+		# Build a system dictionary from the ticket fields 
+		# with field as index and option as value
+		#
+		sys_dict = dict()
+		for field in ticket.fields:
+			try:
+				sys_dict[field['name']] = field['options']
+
+			except KeyError:
+				sys_dict[field['name']] = None
+				pass
+
+		# Check user supplied fields an compare them with the
+		# system one's
+		#
+		for field,value in user_dict.items():
+			if self.DEBUG >= 10: 
+				print  'user_field\t %s = %s' %(field,value)
+
+			if sys_dict.has_key(field):
+
+				# Check if value is an allowed system option, if TypeError then
+				# every value is allowed
+				#
+				try:
+					if value in sys_dict[field]:
+						ticket[field] = value
+					else:
+						# Must we set a default if value is not allowed
+						#
+						if use_default:
+							value = self.get_config('ticket', 'default_%s' %(field) )
+							ticket[field] = value
+
+				except TypeError:
+					ticket[field] = value
+
+				if self.DEBUG >= 10: 
+					print  'ticket_field\t %s = %s' %(field,  ticket[field])
+					
+	def ticket_update(self, m, spam):
+		"""
+		If the current email is a reply to an existing ticket, this function
+		will append the contents of this email to that ticket, instead of 
+		creating a new one.
+		"""
+		if self.DEBUG:
+			print "TD: ticket_update"
+
+		if not m['Subject']:
+			return False
+		else:
+			subject  = self.email_to_unicode(m['Subject'])
+
+		# [hic] #1529: Re: LRZ
+		# [hic] #1529?owner=bas,priority=medium: Re: LRZ
+		#
+		TICKET_RE = re.compile(r"""
+					(?P<ticketnr>[#][0-9]+:)
+					|(?P<ticketnr_fields>[#][\d]+\?.*?:)
+					""", re.VERBOSE)
+
+		result =  TICKET_RE.search(subject)
+		if not result:
+			return False
+
+		# Must we update ticket fields
+		#
+		update_fields = dict()
+		try:
+			nr, keywords = string.split(result.group('ticketnr_fields'), '?')
+			update_fields = self.str_to_dict(keywords)
+
+			# Strip '#' 
+			#
+			self.id = int(nr[1:])
+
+		except AttributeError:
+			# Strip '#' and ':'
+			#
+			nr = result.group('ticketnr') 
+			self.id = int(nr[1:-1])
+
+
+		# When is the change committed
+		# 
+		#
+		if self.VERSION == 0.11:
+			utc = UTC()
+			when = datetime.now(utc)
+		else:
+			when = int(time.time())
+
+		try:
+			tkt = Ticket(self.env, self.id, self.db)
+		except util.TracError, detail:
+			# Not a valid ticket
+			self.id = None
+			return False
+
+		# reopen the ticket if it is was closed
+		# We must use the ticket workflow framework
+		#
+		if tkt['status'] in ['closed']:
+			tkt['status'] = 'reopened'
+			tkt['resolution'] = ''
+
+		# Must we update some ticket fields properties
+		#
+		if update_fields:
+			self.update_ticket_fields(tkt, update_fields)
+
+		message_parts = self.get_message_parts(m)
+		message_parts = self.unique_attachment_names(message_parts)
+
+		if self.EMAIL_HEADER:
+			message_parts.insert(0, self.email_header_txt(m))
+
+		body_text = self.body_text(message_parts)
+
+		if body_text.strip() or update_fields:
+			if self.DRY_RUN:
+				print 'DRY_RUN: tkt.save_changes(self.author, comment) ', self.author
+			else:
+				tkt.save_changes(self.author, body_text, when)
+
+
+		if self.VERSION  == 0.9:
+			str = self.attachments(message_parts, True)
+		else:
+			str = self.attachments(message_parts)
+
+		if self.notification and not spam:
+			self.notify(tkt, False, when)
+
+		return True
+
+	def set_ticket_fields(self, ticket):
+		"""
+		set the ticket fields to value specified
+			- /etc/email2trac.conf with <prefix>_<field>
+			- trac default values, trac.ini
+		"""
+		user_dict = dict()
+
+		for field in ticket.fields:
+
+			name = field['name'] 
+
+			# skip some fields like resolution
+			#
+			if name in [ 'resolution' ]:
+				continue
+
+			# default trac value
+			#
+			if not field.get('custom'):
+				value = self.get_config('ticket', 'default_%s' %(name) )
+			else:
+				value = field.get('value')
+				options = field.get('options')
+				if value and options and value not in options:
+					value = options[int(value)]
+
+			if self.DEBUG > 10:
+				print 'trac.ini name %s = %s' %(name, value)
+
+			prefix = self.parameters['ticket_prefix']
+			try:
+				value = self.parameters['%s_%s' %(prefix, name)]
+				if self.DEBUG > 10:
+					print 'email2trac.conf %s = %s ' %(name, value)
+
+			except KeyError, detail:
+				pass
+		
+			if self.DEBUG:
+				print 'user_dict[%s] = %s' %(name, value)
+
+			user_dict[name] = value
+
+		self.update_ticket_fields(ticket, user_dict, use_default=1)
+
+		# Set status ticket 
+		#`
+		ticket['status'] = 'new'
+
+
+
+	def new_ticket(self, msg, spam):
+		"""
+		Create a new ticket
+		"""
+		if self.DEBUG:
+			print "TD: new_ticket"
+
+		tkt = Ticket(self.env)
+		self.set_ticket_fields(tkt)
+
+		# Old style setting for component, will be removed
+		#
+		if spam:
+			tkt['component'] = 'Spam'
+
+		elif self.parameters.has_key('component'):
+			tkt['component'] = self.parameters['component']
+
+		if not msg['Subject']:
+			tkt['summary'] = u'(No subject)'
+		else:
+			tkt['summary'] = self.email_to_unicode(msg['Subject'])
+
+		self.set_reply_fields(tkt, msg)
+
+		# produce e-mail like header
+		#
+		head = ''
+		if self.EMAIL_HEADER > 0:
+			head = self.email_header_txt(msg)
+			
+		message_parts = self.get_message_parts(msg)
+		message_parts = self.unique_attachment_names(message_parts)
+		
+		if self.EMAIL_HEADER > 0:
+			message_parts.insert(0, self.email_header_txt(msg))
+			
+		body_text = self.body_text(message_parts)
+
+		tkt['description'] = body_text
+
+		#when = int(time.time())
+		#
+		utc = UTC()
+		when = datetime.now(utc)
+
+		if not self.DRY_RUN:
+			self.id = tkt.insert()
+		
+		changed = False
+		comment = ''
+
+		# Rewrite the description if we have mailto enabled
+		#
+		if self.MAILTO:
+			changed = True
+			comment = u'\nadded mailto line\n'
+			mailto = self.html_mailto_link( m['Subject'], body_text)
+
+			tkt['description'] = u'%s\r\n%s%s\r\n' \
+				%(head, mailto, body_text)
+
+		str =  self.attachments(message_parts)
+		if str:
+			changed = True
+			comment = '%s\n%s\n' %(comment, str)
+
+		if changed:
+			if self.DRY_RUN:
+				print 'DRY_RUN: tkt.save_changes(self.author, comment) ', self.author
+			else:
+				tkt.save_changes(self.author, comment)
+				#print tkt.get_changelog(self.db, when)
+
+		if self.notification and not spam:
+			self.notify(tkt, True)
+
+	def parse(self, fp):
+		global m
+
+		m = email.message_from_file(fp)
+		
+		if not m:
+			if self.DEBUG:
+				print "TD: This is not a valid email message format"
+			return
+			
+		# Work around lack of header folding in Python; see http://bugs.python.org/issue4696
+		m.replace_header('Subject', m['Subject'].replace('\r', '').replace('\n', ''))
+
+		if self.DEBUG > 1:	  # save the entire e-mail message text
+			message_parts = self.get_message_parts(m)
+			message_parts = self.unique_attachment_names(message_parts)
+			self.save_email_for_debug(m, True)
+			body_text = self.body_text(message_parts)
+			self.debug_body(body_text, True)
+			self.debug_attachments(message_parts)
+
+		self.db = self.env.get_db_cnx()
+ 		self.get_sender_info(m)
+
+		if not self.email_header_acl('white_list', self.email_addr, True):
+			if self.DEBUG > 1 :
+ 				print 'Message rejected : %s not in white list' %(self.email_addr)
+			return False
+
+		if self.email_header_acl('black_list', self.email_addr, False):
+			if self.DEBUG > 1 :
+ 				print 'Message rejected : %s in black list' %(self.email_addr)
+			return False
+
+		if not self.email_header_acl('recipient_list', self.to_email_addr, True):
+			if self.DEBUG > 1 :
+ 				print 'Message rejected : %s not in recipient list' %(self.to_email_addr)
+			return False
+
+		# If drop the message
+		#
+		if self.spam(m) == 'drop':
+			return False
+
+		elif self.spam(m) == 'spam':
+			spam_msg = True
+
+		else:
+			spam_msg = False
+
+		if self.get_config('notification', 'smtp_enabled') in ['true']:
+			self.notification = 1
+		else:
+			self.notification = 0
+
+		# Must we update existing tickets
+		#
+		if self.TICKET_UPDATE > 0:
+			if self.ticket_update(m, spam_msg):
+				return True
+
+		self.new_ticket(m, spam_msg)
+
+	def strip_signature(self, text):
+		"""
+		Strip signature from message, inspired by Mailman software
+		"""
+		body = []
+		for line in text.splitlines():
+			if line == '-- ':
+				break 
+			body.append(line)
+
+		return ('\n'.join(body))
+
+	def reflow(self, text, delsp = 0):
+		"""
+		Reflow the message based on the format="flowed" specification (RFC 3676)
+		"""
+		flowedlines = []
+		quotelevel = 0
+		prevflowed = 0
+
+		for line in text.splitlines():
+			from re import match
+			
+			# Figure out the quote level and the content of the current line
+			m = match('(>*)( ?)(.*)', line)
+			linequotelevel = len(m.group(1))
+			line = m.group(3)
+
+			# Determine whether this line is flowed
+			if line and line != '-- ' and line[-1] == ' ':
+				flowed = 1
+			else:
+				flowed = 0
+
+			if flowed and delsp and line and line[-1] == ' ':
+				line = line[:-1]
+
+			# If the previous line is flowed, append this line to it
+			if prevflowed and line != '-- ' and linequotelevel == quotelevel:
+				flowedlines[-1] += line
+			# Otherwise, start a new line
+			else:
+				flowedlines.append('>' * linequotelevel + line)
+
+			prevflowed = flowed
+			
+
+		return '\n'.join(flowedlines)
+
+	def strip_quotes(self, text): 
+		"""
+		Strip quotes from message by Nicolas Mendoza
+		"""
+		body = [] 
+		for line in text.splitlines():
+			if line.startswith(self.EMAIL_QUOTE): 
+				continue
+			body.append(line)
+
+		return ('\n'.join(body))
+
+	def wrap_text(self, text, replace_whitespace = False):
+		"""
+		Will break a lines longer then given length into several small 
+		lines of size given length
+		"""
+		import textwrap
+
+		LINESEPARATOR = '\n'
+		reformat = ''
+
+		for s in text.split(LINESEPARATOR):
+			tmp = textwrap.fill(s,self.USE_TEXTWRAP)
+			if tmp:
+				reformat = '%s\n%s' %(reformat,tmp)
+			else:
+				reformat = '%s\n' %reformat
+
+		return reformat
+
+		# Python2.4 and higher
+		#
+		#return LINESEPARATOR.join(textwrap.fill(s,width) for s in str.split(LINESEPARATOR))
+		#
+
+
+	def get_message_parts(self, msg):
+		"""
+		parses the email message and returns a list of body parts and attachments
+		body parts are returned as strings, attachments are returned as tuples of (filename, Message object)
+		"""
+		message_parts = []
+		
+		# This is used to figure out when we are inside an AppleDouble container
+		# AppleDouble containers consists of two parts: Mac-specific file data, and platform-independent data
+		# We strip away Mac-specific stuff
+		appledouble_parts = []
+
+		for part in msg.walk():
+			if self.DEBUG:
+				print 'TD: Message part: Content-Type: %s' % part.get_content_type()
+				
+			# Check whether we just finished processing an AppleDouble container
+			if part not in appledouble_parts:
+				appledouble_parts = []
+
+			# Special handling for BinHex attachments. Options are drop (leave out with no warning), warn (and leave out), and keep
+			if part.get_content_type() == 'application/mac-binhex40':
+				if self.BINHEX == 'warn':
+					message_parts.append("'''A BinHex attachment named '%s' was ignored (use MIME encoding instead).'''" % part.get_filename())
+					continue
+				elif self.BINHEX == 'drop':
+					continue
+
+			# Special handling for AppleSingle attachments. Options are drop (leave out with no warning), warn (and leave out), and keep
+			if part.get_content_type() == 'application/applefile' and not part in appledouble_parts:
+				if self.APPLESINGLE == 'warn':
+					message_parts.append("'''An AppleSingle attachment named '%s' was ignored (use MIME encoding instead).'''" % part.get_filename())
+					continue
+				elif self.APPLESINGLE == 'drop':
+					continue
+
+			# Special handling for the Mac-specific part of AppleDouble attachments. Options are strip (leave out with no warning), warn (and leave out), and keep
+			if part.get_content_type() == 'application/applefile':
+				if self.APPLEDOUBLE == 'warn':
+					message_parts.append("'''The resource fork of an attachment named '%s' was removed.'''" % part.get_filename())
+					continue
+				elif self.APPLEDOUBLE == 'strip':
+					continue
+
+			# If we entering an AppleDouble container, set up appledouble_parts so that we know what to do with its subparts
+			if part.get_content_type() == 'multipart/appledouble':
+				appledouble_parts = part.get_payload()
+				continue
+
+			# Any other multipart/* is just a container for multipart messages
+			if part.get_content_maintype() == 'multipart':
+				continue
+
+			# Check if this is an inline part. It's inline if there is co Cont-Disp header, or if there is one and it says "inline"
+			inline = self.inline_part(part)
+
+			# Inline text parts are where the body is
+			if part.get_content_type() == 'text/plain' and inline:
+				if self.DEBUG:
+					print 'TD:               Inline body part'
+
+				# Try to decode, if fails then do not decode
+				#
+				body_text = part.get_payload(decode=1)
+				if not body_text:			
+					body_text = part.get_payload(decode=0)
+
+				format = email.Utils.collapse_rfc2231_value(part.get_param('Format', 'fixed')).lower()
+				delsp = email.Utils.collapse_rfc2231_value(part.get_param('DelSp', 'no')).lower()
+
+				if self.REFLOW and not self.VERBATIM_FORMAT and format == 'flowed':
+					body_text = self.reflow(body_text, delsp == 'yes')
+	
+				if self.STRIP_SIGNATURE:
+					body_text = self.strip_signature(body_text)
+
+				if self.STRIP_QUOTES: 
+					body_text = self.strip_quotes(body_text)
+
+				if self.USE_TEXTWRAP:
+					body_text = self.wrap_text(body_text)
+
+				# Get contents charset (iso-8859-15 if not defined in mail headers)
+				#
+				charset = part.get_content_charset()
+				if not charset:
+					charset = 'iso-8859-15'
+
+				try:
+					ubody_text = unicode(body_text, charset)
+
+				except UnicodeError, detail:
+					ubody_text = unicode(body_text, 'iso-8859-15')
+
+				except LookupError, detail:
+					ubody_text = 'ERROR: Could not find charset: %s, please install' %(charset)
+
+				if self.VERBATIM_FORMAT:
+					message_parts.append('{{{\r\n%s\r\n}}}' %ubody_text)
+				else:
+					message_parts.append('%s' %ubody_text)
+			else:
+				if self.DEBUG:
+					print 'TD:               Filename: %s' % part.get_filename()
+
+				message_parts.append((part.get_filename(), part))
+
+		return message_parts
+		
+	def unique_attachment_names(self, message_parts):
+		renamed_parts = []
+		attachment_names = set()
+		for part in message_parts:
+			
+			# If not an attachment, leave it alone
+			if not isinstance(part, tuple):
+				renamed_parts.append(part)
+				continue
+				
+			(filename, part) = part
+			# Decode the filename
+			if filename:
+				filename = self.email_to_unicode(filename)			
+			# If no name, use a default one
+			else:
+				filename = 'untitled-part'
+
+				# Guess the extension from the content type, use non strict mode
+				# some additional non-standard but commonly used MIME types 
+				# are also recognized
+				#
+				ext = mimetypes.guess_extension(part.get_content_type(), False)
+				if not ext:
+					ext = '.bin'
+
+				filename = '%s%s' % (filename, ext)
+
+			# Discard relative paths in attachment names
+			filename = filename.replace('\\', '/').replace(':', '/') 
+			filename = os.path.basename(filename)
+
+			# We try to normalize the filename to utf-8 NFC if we can.
+			# Files uploaded from OS X might be in NFD.
+			# Check python version and then try it
+			#
+			if sys.version_info[0] > 2 or (sys.version_info[0] == 2 and sys.version_info[1] >= 3):
+				try:
+					filename = unicodedata.normalize('NFC', unicode(filename, 'utf-8')).encode('utf-8')  
+				except TypeError:
+					pass
+					
+			if self.QUOTE_ATTACHMENT_FILENAMES:
+				filename = urllib.quote(filename)
+
+			# Make the filename unique for this ticket
+			num = 0
+			unique_filename = filename
+			filename, ext = os.path.splitext(filename)
+
+			while unique_filename in attachment_names or self.attachment_exists(unique_filename):
+				num += 1
+				unique_filename = "%s-%s%s" % (filename, num, ext)
+				
+			if self.DEBUG:
+				print 'TD: Attachment with filename %s will be saved as %s' % (filename, unique_filename)
+
+			attachment_names.add(unique_filename)
+
+			renamed_parts.append((filename, unique_filename, part))
+		
+		return renamed_parts
+			
+	def inline_part(self, part):
+		return part.get_param('inline', None, 'Content-Disposition') == '' or not part.has_key('Content-Disposition')
+		
+			
+	def attachment_exists(self, filename):
+
+		if self.DEBUG:
+			print "TD: attachment_exists: Ticket number : %s, Filename : %s" %(self.id, filename)
+
+		# We have no valid ticket id
+		#
+		if not self.id:
+			return False
+
+		try:
+			att = attachment.Attachment(self.env, 'ticket', self.id, filename)
+			return True
+		except attachment.ResourceNotFound:
+			return False
+			
+	def body_text(self, message_parts):
+		body_text = []
+		
+		for part in message_parts:
+			# Plain text part, append it
+			if not isinstance(part, tuple):
+				body_text.extend(part.strip().splitlines())
+				body_text.append("")
+				continue
+				
+			(original, filename, part) = part
+			inline = self.inline_part(part)
+			
+			if part.get_content_maintype() == 'image' and inline:
+				body_text.append('[[Image(%s)]]' % filename)
+				body_text.append("")
+			else:
+				body_text.append('[attachment:"%s"]' % filename)
+				body_text.append("")
+				
+		body_text = '\r\n'.join(body_text)
+		return body_text
+
+	def notify(self, tkt, new=True, modtime=0):
+		"""
+		A wrapper for the TRAC notify function. So we can use templates
+		"""
+		if self.DRY_RUN:
+				print 'DRY_RUN: self.notify(tkt, True) ', self.author
+				return
+		try:
+			# create false {abs_}href properties, to trick Notify()
+			#
+			if not self.VERSION == 0.11:
+				self.env.abs_href = Href(self.get_config('project', 'url'))
+				self.env.href = Href(self.get_config('project', 'url'))
+
+			tn = TicketNotifyEmail(self.env)
+
+			if self.notify_template:
+
+				if self.VERSION == 0.11:
+
+					from trac.web.chrome import Chrome
+
+					if self.notify_template_update and not new:
+						tn.template_name = self.notify_template_update
+					else:
+						tn.template_name = self.notify_template
+
+					tn.template = Chrome(tn.env).load_template(tn.template_name, method='text')
+						
+				else:
+
+					tn.template_name = self.notify_template;
+
+			tn.notify(tkt, new, modtime) 
+
+		except Exception, e:
+			print 'TD: Failure sending notification on creation of ticket #%s: %s' %(self.id, e)
+
+	def html_mailto_link(self, subject, body):
+		"""
+		This function returns a HTML mailto tag with the ticket id and author email address
+		"""
+		if not self.author:
+			author = self.email_addr
+		else:	
+			author = self.author
+
+		# use urllib to escape the chars
+		#
+		str = 'mailto:%s?Subject=%s&Cc=%s' %( 
+		       urllib.quote(self.email_addr), 
+			   urllib.quote('Re: #%s: %s' %(self.id, subject)),
+			   urllib.quote(self.MAILTO_CC)
+			   )
+
+		str = '\r\n{{{\r\n#!html\r\n<a\r\n href="%s">Reply to: %s\r\n</a>\r\n}}}\r\n' %(str, author)
+		return str
+
+	def attachments(self, message_parts, update=False):
+		'''
+		save any attachments as files in the ticket's directory
+		'''
+		if self.DRY_RUN:
+			print "DRY_RUN: no attachments saved"
+			return ''
+
+		count = 0
+
+		# Get Maxium attachment size
+		#
+		max_size = int(self.get_config('attachment', 'max_size'))
+		status   = ''
+		
+		for part in message_parts:
+			# Skip body parts
+			if not isinstance(part, tuple):
+				continue
+				
+			(original, filename, part) = part
+			#
+			# Must be tuneables HvB
+			#
+			path, fd =  util.create_unique_file(os.path.join(self.TMPDIR, filename))
+			text = part.get_payload(decode=1)
+			if not text:
+				text = '(None)'
+			fd.write(text)
+			fd.close()
+
+			# get the file_size
+			#
+			stats = os.lstat(path) 
+			file_size = stats[stat.ST_SIZE]
+
+			# Check if the attachment size is allowed
+			#
+			if (max_size != -1) and (file_size > max_size):
+				status = '%s\nFile %s is larger then allowed attachment size (%d > %d)\n\n' \
+					%(status, original, file_size, max_size)
+
+				os.unlink(path)
+				continue
+			else:
+				count = count + 1
+					
+			# Insert the attachment
+			# 
+			fd = open(path, 'rb')
+			att = attachment.Attachment(self.env, 'ticket', self.id)
+
+			# This will break the ticket_update system, the body_text is vaporized
+			# ;-(
+			#
+			if not update:
+				att.author = self.author
+				att.description = self.email_to_unicode('Added by email2trac')
+
+			att.insert(filename, fd, file_size)
+			#except  util.TracError, detail:
+			#	print detail
+
+			# Remove the created temporary filename
+			#
+			fd.close()
+			os.unlink(path)
+
+		# Return how many attachments
+		#
+		status = 'This message has %d attachment(s)\n%s' %(count, status)
+		return status
+
+
+def mkdir_p(dir, mode):
+	'''do a mkdir -p'''
+
+	arr = string.split(dir, '/')
+	path = ''
+	for part in arr:
+		path = '%s/%s' % (path, part)
+		try:
+			stats = os.stat(path)
+		except OSError:
+			os.mkdir(path, mode)
+
+def ReadConfig(file, name):
+	"""
+	Parse the config file
+	"""
+	if not os.path.isfile(file):
+		print 'File %s does not exist' %file
+		sys.exit(1)
+
+	config = trac_config.Configuration(file)
+
+  	# Use given project name else use defaults
+  	#
+	if name:
+		sections = config.sections()
+		if not name in sections:
+			print "Not a valid project name: %s" %name
+			print "Valid names: %s" %sections
+			sys.exit(1)
+
+		project =  dict()
+		for option, value in  config.options(name):
+			project[option] = value 
+
+	else:
+		# use some trac internales to get the defaults
+		#
+		project = config.parser.defaults()
+
+	return project
+
+
+if __name__ == '__main__':
+	# Default config file
+	#
+	configfile = '@email2trac_conf@'
+	project = ''
+	component = ''
+	ticket_prefix = 'default'
+	dry_run = None
+
+	ENABLE_SYSLOG = 0
+
+
+	SHORT_OPT = 'chf:np:t:'
+	LONG_OPT  =  ['component=', 'dry-run', 'help', 'file=', 'project=', 'ticket_prefix=']
+
+	try:
+		opts, args = getopt.getopt(sys.argv[1:], SHORT_OPT, LONG_OPT)
+	except getopt.error,detail:
+		print __doc__
+		print detail
+		sys.exit(1)
+	
+	project_name = None
+	for opt,value in opts:
+		if opt in [ '-h', '--help']:
+			print __doc__
+			sys.exit(0)
+		elif opt in ['-c', '--component']:
+			component = value
+		elif opt in ['-f', '--file']:
+			configfile = value
+		elif opt in ['-n', '--dry-run']:
+			dry_run = True
+		elif opt in ['-p', '--project']:
+			project_name = value
+		elif opt in ['-t', '--ticket_prefix']:
+			ticket_prefix = value
+	
+	settings = ReadConfig(configfile, project_name)
+	if not settings.has_key('project'):
+		print __doc__
+		print 'No Trac project is defined in the email2trac config file.'
+		sys.exit(1)
+	
+	if component:
+		settings['component'] = component
+
+	# The default prefix for ticket values in email2trac.conf
+	#
+	settings['ticket_prefix'] = ticket_prefix
+	settings['dry_run'] = dry_run
+	
+	if settings.has_key('trac_version'):
+		version = settings['trac_version']
+	else:
+		version = trac_default_version
+
+
+	#debug HvB
+	#print settings
+
+	try:
+		if version == '0.9':
+			from trac import attachment 
+			from trac.env import Environment
+			from trac.ticket import Ticket
+			from trac.web.href import Href
+			from trac import util
+			from trac.Notify import TicketNotifyEmail
+		elif version == '0.10':
+			from trac import attachment 
+			from trac.env import Environment
+			from trac.ticket import Ticket
+			from trac.web.href import Href
+			from trac import util
+			#
+			# return  util.text.to_unicode(str)
+			#
+			# see http://projects.edgewall.com/trac/changeset/2799
+			from trac.ticket.notification import TicketNotifyEmail
+			from trac import config as trac_config
+		elif version == '0.11':
+			from trac import attachment 
+			from trac.env import Environment
+			from trac.ticket import Ticket
+			from trac.web.href import Href
+			from trac import config as trac_config
+			from trac import util
+			#
+			# return  util.text.to_unicode(str)
+			#
+			# see http://projects.edgewall.com/trac/changeset/2799
+			from trac.ticket.notification import TicketNotifyEmail
+		else:
+			print 'TRAC version %s is not supported' %version
+			sys.exit(1)
+			
+		if settings.has_key('enable_syslog'):
+			if SYSLOG_AVAILABLE:
+				ENABLE_SYSLOG =  float(settings['enable_syslog']) 
+
+		env = Environment(settings['project'], create=0)
+		tktparser = TicketEmailParser(env, settings, float(version))
+		tktparser.parse(sys.stdin)
+
+	# Catch all errors ans log to SYSLOG if we have enabled this
+	# else stdout
+	#
+	except Exception, error:
+		if ENABLE_SYSLOG:
+			syslog.openlog('email2trac', syslog.LOG_NOWAIT)
+
+			etype, evalue, etb = sys.exc_info()
+			for e in traceback.format_exception(etype, evalue, etb):
+				syslog.syslog(e)
+
+			syslog.closelog()
+		else:
+			traceback.print_exc()
+
+		if m:
+			tktparser.save_email_for_debug(m, True)
+
+		sys.exit(1)
+# EOB
Index: tags/0.70/email2trac.spec
===================================================================
--- tags/0.70/email2trac.spec	(revision 255)
+++ tags/0.70/email2trac.spec	(revision 255)
@@ -0,0 +1,46 @@
+Summary: Utilities for converting emails to trac tickets
+Name: email2trac
+Version: 0.60.0
+Release: 1
+License: GPL
+Group: Applications/Internet
+URL: https://subtrac.sara.nl/oss/email2trac
+
+Packager: Jon Topper <jon@topper.me.uk>
+
+Source: ftp://ftp.sara.nl/pub/outgoing/email2trac.tar.gz
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
+
+Requires: trac
+
+%description
+This is a release of the SARA package email2trac that contains utilities that we use to convert emails to trac tickets. The initial setup was made by Daniel Lundin from Edgewall Software. SARA has extend the initial setup, with the following extensions:
+
+    * HTML messages
+    * Attachments
+    * Use commandline options
+    * Use config file to change the behaviour of the email2trac.py program
+    * Some unicode support for special characters in the headers of an email message 
+
+%prep
+rm -rf $RPM_BUILD_ROOT
+%setup
+%configure
+
+%build
+mkdir -p $RPM_BUILD_ROOT
+make
+
+%install
+make DESTDIR="$RPM_BUILD_ROOT" install
+
+%files
+/usr/bin/delete_spam
+/usr/bin/email2trac
+/usr/bin/run_email2trac
+%config /etc/email2trac.conf
+
+%changelog
+* Thu Aug 03 2006 Jon Topper <jon@topper.me.uk> - 0.7.6-1
+- Initial RPM build
Index: tags/0.70/install-sh
===================================================================
--- tags/0.70/install-sh	(revision 255)
+++ tags/0.70/install-sh	(revision 255)
@@ -0,0 +1,238 @@
+#! /bin/sh
+#
+# install - install a program, script, or datafile
+# This comes from X11R5.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+#
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+tranformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-c) instcmd="$cpprog"
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd="$stripprog"
+	    shift
+	    continue;;
+
+	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
+	    shift
+	    continue;;
+
+	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+	    shift
+	    continue;;
+
+	*)  if [ x"$src" = x ]
+	    then
+		src=$1
+	    else
+		# this colon is to work around a 386BSD /bin/sh bug
+		:
+		dst=$1
+	    fi
+	    shift
+	    continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+	echo "install:	no input file specified"
+	exit 1
+else
+	true
+fi
+
+if [ x"$dir_arg" != x ]; then
+	dst=$src
+	src=""
+	
+	if [ -d $dst ]; then
+		instcmd=:
+	else
+		instcmd=mkdir
+	fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad 
+# if $src (and thus $dsttmp) contains '*'.
+
+	if [ -f $src -o -d $src ]
+	then
+		true
+	else
+		echo "install:  $src does not exist"
+		exit 1
+	fi
+	
+	if [ x"$dst" = x ]
+	then
+		echo "install:	no destination specified"
+		exit 1
+	else
+		true
+	fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+	if [ -d $dst ]
+	then
+		dst="$dst"/`basename $src`
+	else
+		true
+	fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='	
+'
+IFS="${IFS-${defaultIFS}}"
+
+oIFS="${IFS}"
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS="${oIFS}"
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+	pathcomp="${pathcomp}${1}"
+	shift
+
+	if [ ! -d "${pathcomp}" ] ;
+        then
+		$mkdirprog "${pathcomp}"
+	else
+		true
+	fi
+
+	pathcomp="${pathcomp}/"
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+	$doit $instcmd $dst &&
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+	if [ x"$transformarg" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		dstfile=`basename $dst $transformbasename | 
+			sed $transformarg`$transformbasename
+	fi
+
+# don't allow the sed command to completely eliminate the filename
+
+	if [ x"$dstfile" = x ] 
+	then
+		dstfile=`basename $dst`
+	else
+		true
+	fi
+
+# Make a temp file name in the proper directory.
+
+	dsttmp=$dstdir/#inst.$$#
+
+# Move or copy the file name to the temp name
+
+	$doit $instcmd $src $dsttmp &&
+
+	trap "rm -f ${dsttmp}" 0 &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+
+# Now rename the file to the real destination.
+
+	$doit $rmcmd -f $dstdir/$dstfile &&
+	$doit $mvcmd $dsttmp $dstdir/$dstfile 
+
+fi &&
+
+
+exit 0
Index: tags/0.70/msg.txt
===================================================================
--- tags/0.70/msg.txt	(revision 255)
+++ tags/0.70/msg.txt	(revision 255)
@@ -0,0 +1,51 @@
+From basv@sara.nl  Wed Mar  8 15:29:17 2006
+Return-Path: <basv@sara.nl>
+X-Original-To: test@subtrac.sara.nl
+Delivered-To: test@subtrac.sara.nl
+Received: from surfboard.ka.sara.nl (surfboard.ka.sara.nl [145.100.6.3])
+	by localhost.localdomain (Postfix) with ESMTP id 506702800682
+	for <test@subtrac.sara.nl>; Wed,  8 Mar 2006 15:29:17 +0100 (CET)
+Received: from [145.100.6.134] ([145.100.6.134] RDNS failed) by
+	surfboard.ka.sara.nl with Microsoft SMTPSVC(6.0.3790.1830); 
+	Wed, 8 Mar 2006 15:29:17 +0100
+Message-ID: <440EEA39.6070200@sara.nl>
+Date: Wed, 08 Mar 2006 15:29:13 +0100
+From: Bas van der Vlies <basv@sara.nl>
+User-Agent: Thunderbird 1.5 (Windows/20051201)
+MIME-Version: 1.0
+To: test@subtrac.sara.nl
+Subject: Test123
+Content-Type: multipart/mixed; boundary="------------070800080005060203060809"
+X-OriginalArrivalTime: 08 Mar 2006 14:29:17.0140 (UTC)
+	FILETIME=[AE40B940:01C642BC]
+
+This is a multi-part message in MIME format.
+--------------070800080005060203060809
+Content-Type: text/plain; charset=ISO-8859-1; format=flowed
+Content-Transfer-Encoding: 7bit
+
+Test1234
+Test1234
+
+-- 
+--
+********************************************************************
+*                                                                  *
+*  Bas van der Vlies                     e-mail: basv@sara.nl      *
+*  SARA - Academic Computing Services    phone:  +31 20 592 8012   *
+*  Kruislaan 415                         fax:    +31 20 6683167    *
+*  1098 SJ Amsterdam                                               *
+*                                                                  *
+********************************************************************
+
+--------------070800080005060203060809
+Content-Type: text/plain;
+ name="basje.txt"
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline;
+ filename="basje.txt"
+
+test123
+test1234
+
+--------------070800080005060203060809--
Index: tags/0.70/run_email2trac.c
===================================================================
--- tags/0.70/run_email2trac.c	(revision 255)
+++ tags/0.70/run_email2trac.c	(revision 255)
@@ -0,0 +1,131 @@
+/*
+	run_email2trac.c
+	Authors: Bas van der Vlies, Walter de Jong and Michel Jouvin
+	SVN Info:
+		$Id$
+
+	Only nobody can become the user www-data. Postfix uses this
+	user to start an program
+
+# Copyright (C) 2002
+#
+# This file is part of the email2trac utils
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
+#
+*/
+#include <stdlib.h>
+#include <unistd.h>
+#include <pwd.h>
+#include <sys/stat.h>
+#include <string.h>
+#include <stdio.h>
+#include <limits.h>
+
+#include "run_email2trac.h"
+
+#ifndef DEBUG
+#define DEBUG 0
+#endif
+
+void check_username(char *name)
+{
+  if ( strlen(name) > 30 ) {
+    	  if ( DEBUG ) printf("MTA_USERNAME is to large; %s\n", name);
+	  exit(-1);
+  }
+}
+
+int main(int argc, char** argv) {
+
+  int i,j;
+  int caller = getuid();
+  int status;
+
+  char   **trac_script_args;
+  struct passwd *TRAC; 
+  struct passwd *MTA;
+  struct stat script_attrs;
+  const char *trac_script = TRAC_SCRIPT_PATH "/" TRAC_SCRIPT_NAME;
+ 
+  /*
+  printf("trac_script = %s\n", trac_script);
+  */
+
+  /* First copy arguments passed to the wrapper as scripts arguments
+     after filtering out some of the possible script options */
+
+  trac_script_args = (char**) malloc((argc+1)*sizeof(char*));
+  if (trac_script_args == NULL) {
+    if ( DEBUG ) printf("malloc failed\n");
+    return 1;
+  }
+  trac_script_args[0] = TRAC_SCRIPT_NAME;
+  for (i=j=1; i<argc; i++) {
+    if ( (strcmp(argv[i],"--file") == 0) || 
+	 (strcmp(argv[i],"-f") == 0) ) {
+      i++;
+      continue;
+    }
+    
+    trac_script_args[j] = argv[i];
+    j++;
+  }
+  trac_script_args[j] = NULL;
+
+  
+  /* Check caller */
+
+
+  check_username(MTA_USER);
+  MTA = getpwnam(MTA_USER);
+
+  if ( MTA == NULL ) {
+    if ( DEBUG ) printf("Invalid MTA user (%s)\n", MTA_USER);
+    return -3;     /* 253 : MTA user not found */
+  }
+
+  if ( caller !=  MTA->pw_uid ) {
+    if ( DEBUG ) printf("Invalid caller UID (%d)\n",caller);
+    return -2;     /* 254 : Invalid caller */
+  }
+  
+  
+  /* set UID/GID to Trac (or apache) user */
+  check_username(TRAC_USER);
+  if ( TRAC = getpwnam(TRAC_USER) ) {
+    if (setgid(TRAC->pw_gid) || setuid(TRAC->pw_uid)) {
+      if ( DEBUG ) printf("setgid or setuid failed\n");
+      return -5;
+    }
+  } else {
+    if ( DEBUG ) printf("Invalid Trac user (%s)\n",TRAC_USER);
+    return -3;     /* 253 : Trac user not found */
+  }
+	 
+  /* Check that script exists */
+  if ( stat(trac_script,&script_attrs) ) {
+    if ( DEBUG ) printf("Script not found (%s)\n",trac_script);
+    return -4;    /* 252 : script not found */
+  }
+ 
+  /* Execute script */
+  status = execv(trac_script, trac_script_args);
+  if ( DEBUG ) printf("Script %s execution failure (error=%d). Check permission and interpreter path.\n",trac_script,status);
+  return -1;     /* 255 : should never reach this point */
+
+}
+
+/* EOB */
Index: tags/0.70/run_email2trac.h
===================================================================
--- tags/0.70/run_email2trac.h	(revision 255)
+++ tags/0.70/run_email2trac.h	(revision 255)
@@ -0,0 +1,29 @@
+/*
+
+AUTHOR: Michel Jouvin
+SVN Info:
+	$Id$
+
+Local site configuration
+Value defined here are just default values than can be overriden at compile time
+See Makefile.
+*/
+
+/* User the MTA is running under */
+#ifndef MTA_USER
+#define MTA_USER "nobody"
+#endif
+
+/* A user with write access to Trac DB */
+#ifndef TRAC_USER
+#define TRAC_USER "www-data"
+#endif
+
+/* email2trac script name and path */
+#ifndef TRAC_SCRIPT_NAME
+#define TRAC_SCRIPT_NAME "email2trac"
+#endif
+#ifndef TRAC_SCRIPT_PATH
+#define TRAC_SCRIPT_PATH "/usr/bin"
+#endif
+
