2010-02-25 Peter Simons Makefile.am: fixed install target and documentation build README, NEWS: updated for the upcoming 4.1 release 2010-02-24 Peter Simons doc/Makefile.am: enable doc building and installation configure.ac: fixed package name NEWS: prepared administrative files for upcoming 4.1 release Untabified source code and stripped all trailing white space. Dropped obsolete files. Prefer EXIT_SUCCESS and EXIT_FAILURE defines. doc/petidomo.tex: fixed trivial typos Drop all occurrences of magic CVS keywords. Invoke set_program_name() in main() functions to make gnulib happy. acl-parser.y, handleacl.c, librfc822/test.c, rfcparse.c: free() can handle NULL pointers libconfigfile/config.c, libmpools/mpools.c: dropped superfluous cast to (void*) when calling free(2) etc/shtool: drop obsolete file doc: re-enable build of the man page Updated license to GPLv3 or later. Converted build to gnulib. 2010-02-18 Peter Simons docs/petidomo.tex: updated latex preamble docs/petidomo.tex: documented download url Updated my e-mail address. INSTALL: updated to latest version from Automake 2009-07-19 Peter Simons Updated flex/bison parser to take advantage of current versions of these tools. librfc822/address.y: fixed a trivial typo AUTHORS: added Thomas Lotterer Moved to git. librfc822/test.c: fix build with gcc 4.4.0. Use version string determined by Autoconf. Migrated build system to Automake. 2005-10-06 Ralf S. Engelschall upgrade build environment fix syntax 2004-03-19 Thomas Lotterer flush pending changes before tagging split cookies on (un)subscription, too - found and fixed by tho documentation update and rewrite by Torsten Homeyer shut up autoheader Upgrade and unify build environment devtool an devtool.func; change devtool.conf to require current versions of shtool, libtool and autoconf 2004-03-10 Thomas Lotterer flush pending changes before tagging 2004-03-09 Thomas Lotterer @LIBS@ should be at the _end_ of the LIBS definition, not at the beginning. Because usually the stuff in the sublibs want to use the stuff in @LIBS@ theirself. (hint from rse) flush pending changes before tagging flush pending changes before tagging 2004-02-02 Thomas Lotterer correct dir for shtool add devtool environment and bump version merge in thl slpit cookie update from OpenPKG merge in OpenPKG X-Spam-Flag addition both peti and rse did overlapping work based on (untagged) 4.0b1; peti committed to the CVS first (no version created ever); this is an attempt to manually merge rse's acl pre/post changes in (claim themselfs to lead to 4.0b2 2002-01-13 Ralf S. Engelschall avoid rejection by MTA because of forwarding loop 2001-08-23 Peter Simons Replaced tabs by blanks to make the formatting more robust. Added a more apropriate README text, which can also be re-used for the web site. 2001-08-20 Peter Simons Added docs to the list of subdirectories that need to be handled in the *clean targets. 2001-02-18 Peter Simons Added text-only version of the installation instructions. Used the \file{} macro rather than setting the font directly. Removed all references to petidomo.com and cys.de. Updated ChangeLog. Updated ChangeLog based on the CVS history. - Removed AC_REVISION: The information can not be found trivially in the configure file anyway. - Rather than patching the "-g -O2" away, set CFLAGS in any case -- even if it is emty --, so that autoconf will not even generate it. - Updated the ACL chapter. - Removed all references to ~petidomo. - Documented the missing options. - Updated the chapter about aliases. - Updated the chapter about command line syntax. 2001-02-17 Peter Simons Added check whether the required listname parameter is there _before_ we try and read the mail from standard input. Added descriptions of the configuration file and moved some contents from the old manual version back in. Petidomo will now let the "keywords:" and "summary:" headers pass when posting to a list. These headers are uncommon but have been around for ages. Added a half finished chapter about the configuration of Petidomo. 2001-02-12 Peter Simons Changed loglevel of sereval syslog() calls from NOTICE to INFO, because they do not really require the administrator's attention but are informational. Replaced GNU make-specific stuff by the general make syntax to make the file more portable. Removed diagrams required by the old version of the manual; the new version will not use these. Started a complete rewrite of the user manual. So far, the installation process is covered. Other things will follow. Fixed the incorrect default path to the help file. Added petidomo.ps to the list of ignored files. The sample config file should contain the -i parameter at the MTAOptions, not the -v parameter, which does not make any sense here at all and probably was a typo to begin with. 2001-01-24 Ralf S. Engelschall Keep track of what still has to be done 2001-01-21 Ralf S. Engelschall Make life of RPM builders easier by providing support for the Automake standard variable DESTDIR. Provide a "petidomo --mode=dump " and use this in petidomo-kickout instead of directly fiddling with Petidomo's files. 2001-01-20 Peter Simons Updated dependencies. 2001-01-20 Ralf S. Engelschall Sorry, I still inist that Petidomo visually resembles Majordomo as close as possible: now Petidomo no longer just sends a carbon-copy of the final "successful" mail after subscribe/unsubscribe operations to the list owner. Instead the list owner gets an own dedicated mail. The most important thing is that those mails have "SUBSCRIBE" and "UNSUBSCRIBE" tags in their Subject so one can easily monitor those operations as the list owner. 2001-01-20 Peter Simons - Petidomo is now more responsive when dealing with approve mails. For sure, Ralf is going to change the mail texts as soon as he sees this. :-) - Converting incoming codes to all upper-case in case the code got mixed up by some crazy mailer. 2001-01-20 Ralf S. Engelschall Show a RSE/OSSP-style headline. 2001-01-20 Peter Simons - Changed prototype of approve_main() to return "void". - Added code that will parse the incoming mail after we've processed it in order to retrieve the originator's address for a reply. Since we never tested the return codes of *_main() anyway, don't pretend we do: Made listsern_main(), hermes_main() and approve_main() officially return "void". 2001-01-20 Ralf S. Engelschall Provide both "make dist" and "make snap". Provide commands for increasing or updating version information in version.c: # update the date, but keep version number $ make update-version # interactively specify new version number $ make new-version # batch specify new version version number $ make new-version VERSION=0.8.15 Religious cosmetics: Use upper-case for MD5 cookies because it typographically looks better because the lower-case MD5 cookies looked too jagged ;) More information in message Add three GNU standard files we later want anyway... 2001-01-20 Peter Simons Following my quest against underscores in file names, I renamed the default acknowledgment queue directory from "ack_queue" to "ack-queue". Updated the sample config files to the modified tag names. 2001-01-20 Ralf S. Engelschall First bunch of cosmetic adjustments to text messages. Additionally --masterconf=FILE is also passed through to files created in acknowledge directory. 2001-01-20 Peter Simons Accidently added this dependent file; corrected the mistake. :-( Renamed acl_scan.c and acl_scan.h to acl-scan.c and acl-scan.h respectively. Underscores in file names suck, because you need an extra key-press to type them compared to the hyphen. For this reason (and for consistency) I corrected this horrible, horrible mistake of the past and renamed those files. 2001-01-20 Ralf S. Engelschall Add first cut for a petidomo(1) manual page. 2001-01-20 Peter Simons Renamed the followings tags in petidomo.conf MTA_Options --> MTAOptions List_Directory --> ListDirectory Ack_Queue_Directory --> AckQueueDirectory for consistency reasons. While I was at it, I also renamed the source file from config.c to config-files.c, because the module config.c is generally associated with GNU autoconf and this has nothing to do with it. 2001-01-20 Ralf S. Engelschall Be careful, listname can be NULL in global operation mode and not all printf implementations are as smart as BSD's variant. Instead of printing "(null)" others just dump core. Ignore LaTeX generated files 2001-01-19 Peter Simons Cosmetic change. Updated dependencies. Enhanced portability. This commit also contains an older change made by Ralf, which I have to re-commit after screwing up with the "cvs admin" command. Sorry!!! Minor change to enhance portability. The module contains the static variable MasterConfig, which all other Petidomo routines can access via getMasterConfig(). The routine getListConfig(), which is defined in config.c, too, used the "correct" mechanism to access MasterConfig, even though it could access it directly. Since I chose the same name ("MasterConfig" :->) for the local copy of the pointer, gcc warns that this variable shadows the static one. To get rid of this warning, and since it doesn't make one bit a difference, getListConfig() accessse the static variable directly now. Changed ACL semantics: The ACL is processed only if the posting didn't have a valid password. If it did, the mail is going through in any case and the ACL is not tested. In case no index file is installed, "make install" will create an example file at the correct location so that the admininstrator hopefully figures out that there is some work to be done. - Added a warning message to be logged when no global ACL file exists. - Reordered tests in check_local_acl_file: When no listname has been given, we don't need to initialize the lexer at all. Petidomo used the mail's envelope to deliver the request for confirmation. I have changed this to either reply-to or from (if reply-to is unset), because sendmail will destroy the original envelope under obscure circumstances. Removed unnecessary cast. Due to a mix-up in the variable names, Petidomo expanded all list config file paths incorrectly when the list has a flat hierarchy. That is fixed now. 2001-01-19 Ralf S. Engelschall Provide "make dist" command for rolling distribution tarball. 2001-01-19 Peter Simons Added version information to the start-up log message. 2001-01-19 Ralf S. Engelschall First step in GNu shtool version support: Add version.c and use it for "petidomo --version". Support for handling version.c in Makefile.in is coming later. Get rid of all complaints from GCC 2.97 (except for two things which I do not want to change on my own) 2001-01-19 Peter Simons Incorporated the cookie into the end-of-mail-marker used in the ack-script, so that the whole mechanism doesn't break when somebody has the words '[end-of-mail-marker]' in the mail body itself. Fixed the spelling of the newly added syslog messages. Moved the initial startup log message up so that it is logged before the main config file is parsed. Also added the path of the main config file to the message so that people can see where Petidomo locks for it in case parsing fails. Greatly enhanced the log messages Petidomo writes. Made the existing messages more helpful, added lots of new ones, generally made things real perfect. Remember: Life is BEAUTIFUL. 2001-01-19 Ralf S. Engelschall Do not show subdir walking commands 2001-01-19 Peter Simons Added a message that is logged every time Petidomo starts up. This message will "dump" the configuration of Petidomo so that the user has a clue which Petidomo instance is doing what. When a un-/subscribe command needs confirmation, the request for confirmation is sent to the address that is supposed to added to or removed from the list. If, and only if, this address is different than the one from which the request came, a short mail is sent to the requestor to inform him what is going on. Mailing list config files may now have the suffix ".config" or ".conf". Similarly, if the list config file is in a separate directory, it may be called /config or /conf. Mailing list config files may now have the suffix ".config" or ".conf". Similarly, if the list config file is in a separate directory, it may be called /config or /conf. Added code that will set the real user id of the process equal to the effective user id. - Word-wrapped long lines to fit into 80 characters per line. - Updated dependencies. - Removed BINDIR from FLAGS_TO_PASS as it isn't needed anymore. Petidomo needs to know the path to the executable in order to write the ack-spool file, which starts Petidomo again to process the acknowledged command or posting. I used BINDIR for that, but realized that this sucks when somebody manually moves the binary. Hence, I am using the contents of argv[0] now, normalized to an absolute path. This value is stored in the global variable who_am_i, which the queue_*() routines now use. 2001-01-19 Ralf S. Engelschall Get rid of the following GCC complains: generate_cookie.c: In function `generate_cookie': generate_cookie.c:58: warning: implicit declaration of function `strlen' generate_cookie.c: In function `MD5Update': generate_cookie.c:245: warning: declaration of `index' shadows global declaration generate_cookie.c:260: warning: implicit declaration of function `memcpy' generate_cookie.c: In function `MD5Final': generate_cookie.c:286: warning: declaration of `index' shadows global declaration generate_cookie.c:303: warning: implicit declaration of function `memset' As GCC complained: There is an ISO 9899:1990 (``ISO C'') function clock(3), so we have a symbol conflict here. Get rid of this by renaming our symbol. Do not use C++ comments in ANSI C 2001-01-18 Ralf S. Engelschall As we agreed today, Petidomo is now open because licensed under GPL and always will be licensed under GPL, so use "Petidomo" as the program name everywhere and consistently. Install petidomo-xxxx tools Show were we are operating Start filling ChangeLog... *** empty log message *** *** empty log message *** 2001-01-18 Peter Simons Add old RSE admin scripts 2001-01-18 Ralf S. Engelschall ListACLFile -> ACLFile New layout New layout Switch to GNU shtool Remove obsolete install-sh Add GNU shtool fix install-testlist target 2001-01-16 Peter Simons When a request for confirmation is required, the originator of the command will receive a short mail, telling him that this is so, so that he knows what's going on. Delayed the processing of the acknowledgment-requirement so that you don't have to ack commands that will fail anyways. Implemented the acked-once feature. Added new action keyword to the Access Control Language: approve. This keyword will -- unlike to "pass" -- not only pass the mail, but will also make sure that the mail passes all other authorization controls. This means, the mail will be treated as if the Petidomo master password had been given in the header. Added include of sys/types.h. Required on some systems to be able to include regex.h. Moved the call to checkACL() before anything else is tested regarding authorization. Combined with the new "approve" action in the ACL file, this allows to pass all other authentication mechanisms with the ACL. 2001-01-15 Peter Simons Added code that will request confirmation when posting to a list that is set to "acknowledged". Implemented the approve mode, where incoming mails are searched for confirmation cookies and the apropriate queue entries will be executed. The call to queue_command() had the command wrong. Added code that will send the "request for confirmation" mail out when apropriate. Cosmetic change: Reformatted the source. - ListType is no longer a required parameter; it now defaults to "open". Had to make is_approved a global variable, because it is actually tested in subroutines of listserv_main() and hermes_main(), like subscribe(), which's parameter list I don't want to change. queue_command() and queue_posting() will now return the cookie used as filename, so that the calling code can mail back the request for confirmation. List's "AllowPublicSubscripiton" does not exist anymore. Now we have "SubscriptionType" with valid values "public", "admin" or "acknowledged". - Added Ack_Queue_Dir keyword. - Changed default of List_Directory from LOCALSTATEDIR to LOCALSTATEDIR/lists. Removed the whole concept of "alien subscription". It was stupid to begin with and now that we'll have acknowledged subscriptions, it is useless, too. Implemented spooling mechanism for requests and postings that need an acknowledgement to be processed. The code is there, it just isn't called yet. Added --approved command line parameter, which is treated as a boolean. Whether it is set or not will be passed through to listserv_main() and to hermes_main(). The parameter will be used by the spooling mechanism. 2001-01-11 Peter Simons Added config entry "AcknowledgementFile" to the mailing list's config file. Added generate_cookie() routine taken from mapSoN. The requestor will now receive a mail telling him something went wrong when he tries to unsubscribe an address without specifying a list name. 2001-01-10 Peter Simons Set the right margin for word-wrapping to 70 characters instead of 75. The requestor will now receive a mail telling him something went wrong when he tries to subscribe an address without specifying a list name. When running in listserv mode, there is no 'listname' which can be used to get the mailing list's configuration. Thus, the routine shouldn't try to got one. Fixed it. Removed debugging output. 2001-01-08 Peter Simons Changed the ACL code to use the configured locations of the list's ACL file rather than the hard-coded one. Completed the install-testlist target. Rewrote Petidomo so that virtually any file's path can be configured at run-time now. Added example entries for the new keywords "List_Directory", "Help_File", "ACL_File", and "Index_File". Added example entries for the new keywords "IntroductionFile", "DescriptionFile", "ACLFile", "HeaderFile", "SignatureFile", and "AddressFile". Removed the path of the file in the comment header, since it doesn't fit anymore anyway. Added dependencies. Petidomo will now expect its master config file at SYSCONFDIR/petidomo.conf. This location can be changed at run-time with the command line parameter --masterconf. Added preliminary install and install-testlist target. Removed the ETCDIR stuff again. We use sysconfdir instead. 2001-01-06 Peter Simons Replaced the old basedir-mechanism in Petidomo, which used to be the home directory of the petidomo user. Now, Petidomo expects its master config file in ETCDIR, which is '/etc' per default. All other paths will be set there at run-time. - Added a "Petidomo:" prefix to all subject lines, to distinguish them from regular mail. Rejection mails furthermore have the prefix "BOUNCE :", mails that need approval have the prefix "APROVE :". - When a mail is rejected due to ACL, the mail body will tell you whether the global acl file or the list's local acl file hit. - If a file "lists//header" exists, it contents will be added to the headers of the article posted to the list. Be careful not to have blank lines in there, as this will screw the whole message up. - When generating the index of available mailing lists, the list type will now be typeset in brackets, e.g.: "(public mailing list)". - The index will no longer contain tabs in the mail body. The local List_Config variable was potentially used uninitialized. Fixed that. 2000-12-16 Peter Simons Added dependency to stop parallel make from messing up with the yacc/lex targets. Fixed parsing bug. Added definition of YYSTYPE. Use petidomo.h file to determine $srcdir, rather than main.c. Reversed all changes concerning C++ in Petidomo ... it isn't worth the major rewrite. Ignore yacc and lex files - Added GNU GPL copyright headers. - Cleaned build process up. Initial revision Added preliminary install target. Removed reference to firepower altogether; MTA is a required keyword. 2000-12-15 Peter Simons Removed note about Firepore MTA. Hardcoded the base directory /usr/local/petidomo for the moment. Wrapped the header's contents in "extern C" linkage when compiling in a C++ module. The petidomo binary will now be linked with $(CXX). Updated dependencies. Removed the signature code and all code that depended on it. In the new Petidomo, the signature mechanism for server mails will work differently. Removed the global configuration options "DetachImmediately" and "ShowStatistics". Consequently removed all code that deals with these options, too. The clean target will now erase the argv.info file. Ignore the argv.info file. Removed the mail rescue mechanism and all relating code. I guess _nobody_ ever used that mechanism anyway, not even me. :-) - Removed all debugging code. Now that Petidomo will be "rewritten" in C++, I need a new paradigm for debugging anyway and the old solution of mine was to messy for my taste anyway. - Petidomo no longer cares under what name it has been started. The different modes of operation will now be distinguished by a mandatory command line parameter. Added support for C++ source modules within Petidomo. 2000-12-14 Peter Simons Modified the main Makefile so that it will pass the values determined by Autoconf down to the libraries. FreeBSD's make again: That stupid thing really doesn't grasp $< targets. FreeBSD's make sucks big time: It doesn't honor the -C flag. Hence we have to change into the target directory before calling make. BSD make doesn't understand $< like GNU make does, thus it is better to explicitely name the targets for the sake of portability. Rewrote the makefile to not require GNU make. Removed unused suffix .a from the .SUFFIXES target. - Libraries do not need Autoconf anymore, thus I removed the AC_CONFIG_SUBDIRS call. - Added -O3 to CFLAGS for the sake of good optimization. Updated dependencies. - Removed smake build and autoconf from the libraries. - Removed unused files. Added a real makefile. The file is never used here. 2000-12-13 Peter Simons Added correct GPL copyright headers. Removed unused C++ code. Cosmetic changes to the Makefile ... nothing important. After changing librfc822 to get along without libmpools, the library can (and has been) removed from Petidomo. This header file defines the debug modules Petidomo supports. The source for the configure script generated by Autoconf. All internal prototypes and definitions. Autoconf needs this script in order to run sub-configure scripts. Imported latest version. Imported latest version of the library. Imported libargv version 2.4.0. - Added correct GNU GPL copyright statements to the files. - Removed unnecessary include statements. Rewrote the build process from the scratch. The old versioning mechanism needs to be replaced any time soon. The contents of these headers is now included in petidomo.h. Renamed unregsig module to signature. Now that Petidomo is released under GPL, there is no such thing as an "unregistered" version anymore. Removed dependent files from CVS repository. The program isn't tested, it isn't documented ... so away with it. - Removed all use of html.sty. - Removed all references to the CGI manager. - Removed autoconf support. - Removed the index. - Reformatted the document to look good and to compile without warnings. Don't erase the EPS files at 'clean'. Adding EPS files to repository, because those are really hard to generate correctly. Renamed GNUmakefile to Makefile; there's nothing in this makefile that's specific to GNU make. Added '-f' flag to the 'rm' call in the clean target. Cleaned the Makefile up a lot. Removed explicit targets whereever an implicit target will do. Initial revision