From upstream: Update copyright.
[usenet/usevote.git] / README
CommitLineData
ac7e2c54
TH
1UseVoteGer 4.09 (c) 2001-2007 Marc Langer
2
3UseVoteGer is a voting software for usenet votes.
4
5This script package is free software; you can redistribute it and/or
6modify it under the terms of the GNU Public License as published by the
7Free Software Foundation.
8
9Many thanks to:
10- Ron Dippold (Usevote 3.0, 1993/94)
11- Frederik Ramm (German translation, 1994)
12- Wolfgang Behrens (UseVoteGer 3.1, based on Frederik's translation, 1998/99)
13- Cornell Binder for some good advice and code fragments
14 (e.g. UVtemplate.pm, UVformats.pm)
15
16This is a complete rewrite of UseVoteGer 3.1 in Perl (former versions were
17written in C). Not all functions of Usevote/UseVoteGer 3.x are implemented!
18
19-------------------------------------------------------------------------------
20
21UseVoteGer 4.09 - Usenet-Abstimmungssoftware
22===========================================
23
24von Marc Langer <uv@marclanger.de>
25
26aktuelle Versionen: http://www.usevote.de
27
28
29Inhaltsverzeichnis
30==================
31
321. Kurzbeschreibung
332. Usevote fuer Ungeduldige
343. Kompatibilitaet zu frueheren Versionen
354. Liste der Dateien
365. Anfangs-Konfiguration
376. Konfiguration fuer einzelne Abstimmungen
387. Wahlschein generieren
398. Stimmen verarbeiten
409. Unzustellbare Bestaetigungen
4110. 2. CfV / Result
4211. Datenschutz
4312. Personalisierte Wahlscheine
4413. Die einzelnen Programme
4514. Die Konfigurationsdateien
4615. Templates
47
48
491. Kurzbeschreibung
50===================
51
52Diese Software vereinfacht die Durchfuehrung von Usenet-Abstimmungen.
53Usevote in der Urversion wurde von Ron Dippold fuer die Reorganisation
54der Gruppe comp.sys.ibm.pc.games geschrieben und spaeter fuer die
55allgemeine Verwendung verbessert.
56
57Die deutsche Uebersetzung von Frederik Ramm diente jahrelang als
58Grundlage fuer CfV-Auswertungen im deutschsprachigen Raum.
59Wolfgang Behrens von den German Volunteer Votetakers (GVV) passte
60es spaeter an neue Begebenheiten (z.B. personalisierte Wahlscheine)
61an. Jedoch liefen die UseVoteGer 3.1beta-Versionen aufgrund eines
62unbekannten Fehlers nicht auf jedem System (Segmentation Fault).
63
64Um groessere Flexibilitaet und Plattformunabhaengigkeit zu bieten,
65habe ich mich entschlossen, UseVoteGer in Perl neu zu implementieren.
66Getestet wurde diese Version mit Perl 5.x unter Linux sowie
67ActiveState Perl unter Windows 98.
68
69
702. Usevote fuer Ungeduldige
71===========================
72
73I. Einmalig bei der Usevote-Erstinstallation
74 (1) usevote.cfg nach Bedarf anpassen (selbsterklaerend)
75 ACHTUNG: Unter Windows gibt es das Programm "less" nicht, da "more"
76 aber einigermassen broken ist, sollte man sich less fuer Windows
77 herunterladen: http://www.greenwoodsoftware.com/less/less381d.zip
78 Notfalls laesst sich auch in usevote.cfg die Einstellung "pager"
79 auf "more" setzen, aber viel Freude hat man damit nicht...
80 (2) Evtl. die Templates im gleichnamigen Unterverzeichnis fuer
81 eigenen Geschmack anpassen. Die Templates enthalten saemtliche
82 Texte fuer Bestaetigungs-/Fehlermails sowie die Ausgabeformate
83 und Texte fuer die CfVs und das Result.
84 (3) Perlmodule MIME::Parser, MIME::QuotedPrint, Digest::MD5,
85 Date::Parse und Email::Date installieren, falls noch nicht vorhanden.
86 Bei Benutzung von POP3 oder SMTP (siehe usevote.cfg) muss
87 Libnet installiert sein (Net::POP3 und Net::SMTP).
88 (Fuer Perl-Einsteiger: Unter Unix geht die Modul-Installation
89 sehr einfach mit "perl -MCPAN -e shell", ActivePerl fuer
90 Windows hat einen eigenen Paketmanager)
91
92 Achtung: Bei meinem ActivePerl 5.6.1 war eine alte Libnet-Version
93 enthalten, die noch keine SMTP-Authentication unterstuetzte.
94 Bei Benutzung dieses Features muss evtl. erst upgedated werden.
95
96II. Fuer jedes Voting
97 (1) usevote.cfg auf das durchzufuehrende Voting anpassen
98 (selbsterklaerend)
99 (2) bei Sonderregeln (Abhaengigkeiten der einzelnen Abstimmungspunkte)
100 in usevote.rul Regeln definieren (selbsterklaerend)
101 (3) CfV erstellen und Wahlschein mit uvballot.pl generieren
102 (4) Fertigen CfV einreichen und auf Veroeffentlichung warten ;-)
103 (5) Bis zum 2. CfV regelmaessig (an den ersten Tagen mehrmals taeglich,
104 spaeter einmal taeglich) dies tun:
105 - uvvote.pl durchlaufen lassen
106 - im Verzeichnis tmp/ die Datei ergebnis.* (Ergebnis der Auswertung)
107 und evtl. ack.* (Bestaetigungsmails an die Waehler) kontrollieren
108 - Falls es Probleme gab: Bitte den Abschnit "Stimmen verarbeiten"
109 weiter unten in dieser Datei genau durchlesen. Dort steht
110 beschrieben, wie Fehler korrigiert werden koennen
111 - "uvvote.pl clean" aufrufen, um die Bestaetigungen zu verschicken
112 und das Ergebnis zu speichern/archivieren
113 - Falls Wahlbestaetigungen als unzustellbar zurueckkommen, solltest
114 Du diese zusammen in einer Datei speichern oder in ein spezielles
115 POP3-Postfach leiten
116 (6) Zwischenbestaetigung fuer den 2. CfV mit "uvcount.pl -l" erzeugen und
117 veroeffentlichen. Falls Wahlbestaetigungen als unzustellbar
118 zurueckkamen, kannst Du mit "uvbounce.pl dateiname" automatisch eine
119 Liste der ungueltigen Adressen erzeugen ("dateiname" ist die Datei,
120 in die Du zuvor die Bounces gespeichert hattest). Siehe auch Abschnitt
121 "Unzustellbare Bestaetigungen" weiter unten in dieser Datei, dort
122 ist auch erklaert, wie die Bounces aus einem POP3-Postfach gelesen
123 werden koennen.
124 (7) Bis zum Result wieder wie (5)
125 (8) Zum vorgegebenen Zeitpunkt die Wahl abschliessen,
126 mit "uvcount.pl -r -v" Endergebnis erzeugen und veroeffentlichen
127 (zuvor wiederum Liste der ungueltigen Mailadressen erzeugen, siehe
128 Punkt 6)
129
130Weitere Details finden sich im Folgenden.
131Jeder Nutzer dieser Software sollte sich diesen Text wenigstens einmal
132komplett durchlesen.
133
134Abschnitt 6 beschreibt, wie mehrere Abstimmungen gleichzeitig durchgefuehrt
135werden koennen, ohne saemtliche Programmdateien zu kopieren.
136
137
1383. Kompatibilitaet zu frueheren Versionen
139=========================================
140
141- englische Usevote-Versionen: keine Kompatibilitaet
142
143- deutsche Usevote-Versionen (Usevote 3.0a, UseVoteGer 3.1):
144 * Wahlscheine haben neue Markierungen zum sicheren Erkennen
145 der Stimmen. Bisherige Wahlscheine sind mit dieser Version
146 nicht mehr einsetzbar!
147
148 * acktext.txt gibt es nicht mehr, statt dessen sind im Unterverzeichnis
149 "templates" Vorlagen zu finden, die diese Texte enthalten.
150
151 * usevote.cfg ist komplett inkompatibel
152
153 * usevote.rul: voll kompatibel, ohne Einschraenkungen
154
155 * Ergebnisdateien: Inhalt kompatibel, aber Namensgebung geaendert
156 (obwohl irrelevant, da Umstieg auf diese Version waehrend
157 einer laufenden Wahl nicht moeglich)
158
159 * scheinkennungen: Dateiformat gaendert (aus selbigen Gruenden
160 nicht weiter wichtig)
161
162 * uvshell: integriert in uvvote.pl, ueber usevote.cfg steuerbar
163
164 * uvvote.pl: Aufrufparameter geaendert / Zusammenfuehrung mit uvshell
165
166 * uvcfv.pl: Alte Funktionalitaet ist nicht mehr implementiert,
167 statt dessen dient das Tool jetzt zum Generieren der persoenlichen
168 Wahlscheine und Verschicken des CfV an die Waehler
169
170 * uvcount.pl: Beinhaltet auch uvack und uvdup. Drei Einzelprogramme
171 schienen mir ineffizient.
172
173 * uvbounce.pl: Ausgabeformat etwas anders
174
175
1764. Liste der Dateien
177====================
178
179* Ausgelieferte Dateien:
180
181CHANGES Versionsaenderungen
182COPYING GNU General Public License
183README Diese Datei
184UVconfig.pm Routinen zum Einlesen und Pruefen der Konfiguration
185UVformats.pm Routinen zum Formatieren von Texten in Templates
186UVmenu.pm Routinen zur Interaktion mit dem Wahlleiter
187UVmessage.pm Routinen zum Parsen von Texten und Ersetzen von Platzhaltern
188UVreadmail.pm Routinen zum Einlesen und MIME-Decodieren der Mails
189UVrules.pm Routinen zur Regelverarbeitung (usevote.rul)
190UVsendmail.pm Routinen zum Erzeugen von Mails
191UVtemplate.pm Routinen zur Verarbeitung von Vorlagen (Templates)
192bdsgtext.cfg Spezieller Text fuer den Wahlschein (Hinweis auf
193 Datenschutzgesetz), muss ausserhalb Deutschlands ggfls.
194 angepasst oder kann ignoriert werden (bdsg=0 in usevote.cfg)
195mailpatterns.cfg Wildcards fuer verdaechtige Mailadressen
196messages.cfg Programm-Meldungen (Ressourcen-Datei)
197scheinkennungen Speicherung der Scheinkennungen bei personalisierten
198 Wahlscheinen. Muss zu Beginn der Abstimmung leer sein.
199usevote.cfg Konfigurationsdatei
200usevote.rul Abstimmungsregeln
201uvballot.pl Wahlschein aus Abstimmungsdaten erstellen
202uvbounce.pl Listen von unzustellbaren Bestaetigungen erzeugen
203uvcfv.pl Erstellen und Verschicken von personalisierten Wahlscheinen
204uvcount.pl Stimmenzaehlung, Erstellen von Waehlerlisten und
205 Aussortieren von doppelten Stimmabgaben
206uvvote.pl Stimmen verarbeiten (fuer die taegliche Arbeit)
207
208templates/ Verzeichnis mit Templates (Vorlagen)
209 ack-mail Template fuer Bestaetigungsmails
210 address-not-registered Fehlermail: Noch keine Scheinkennung fuer Adresse
211 vergeben
212 ballot Template fuer einen Wahlschein
213 ballot-personal Template fuer personalisierten Wahlschein
214 ballot-request Template fuer eine Wahlscheinanforderung
215 bdsg-error Fehlermail: Datenschutzklausel nicht akzeptiert
216 bouncelist Template fuer Liste der ungueltigen Mailadressen
217 cancelled Template fuer Bestaetigung der Stimmannullierung
218 invalid-account Fehlermail: Fragwuerdige Mailadresse (Role Account)
219 invalid-name Fehlermail: Kein gueltiger Name in Mail/Wahlschein
220 gefunden
221 mailheader Template fuer den Header von Mails an die Waehler
222 multiple-votes Fehlermail: Widerspruechliche Stimmen im Wahlschein
223 no-ballot Fehlermail: Kein Wahlschein in Mail gefunden
224 no-ballotid Fehlermail: Keine Wahlscheinkennung gefunden
225 no-votes Fehlermail: Keine Stimmen abgegeben
226 result-multi Template fuer ein Wahlergebnis mit mehreren Gruppen
227 result-single Template fuer ein Wahlergebnis mit einer Gruppe
228 result-proportional Template fuer ein Wahlergebnis, bei dem das Verhaeltnis
229 oder die Differenz von Ja- und Nein-Stimmen entscheidet
230 (z.B. Moderationsnachwahlen, "proportional=1" gesetzt)
231 rule-violated Fehlermail: Wahlregeln aus usevote.rul verletzt
232 voterlist Template fuer eine Waehlerliste (2. CfV)
233 votes-multi Template fuer eine Stimmenliste mit mehreren Gruppen
234 votes-single Template fuer eine Stimmenliste bei einer Gruppe
235 wrong-ballotid Fehlermail: Falsche Wahlscheinkennung angegeben
236
237* Beim Programmlauf erstellte Dateien (Name ist konfigurierbar):
238
239ergebnis.alle Saemtliche Einzelergebnisse zusammengefasst (wird
240 bei jedem Lauf von uvvote.pl neu erstellt)
241errors.log Fehlermeldungen, die beim Programmlauf auftauchen,
242 werden hier abgelegt. Normalerweise bleibt die Datei
243 leer, ansonsten wird beim Programmende eine Warnung
244 mit Verweis auf die Datei ausgegeben.
245uidlcache Eindeutige IDs der abgerufenen Mails (bei Benutzung
246 von POP3). Darf waehrend einer laufenden Abstimmung
247 keinesfalls geloescht werden, um Mehrfachzaehlung von
248 Stimmen zu verhindern.
249uidlcache_req dto, fuer die Mailbox mit den Wahlscheinanforderungen
250 (bei Verwendung von personalisierten Wahlscheinen)
251uidlcache_bounce dto, fuer die Mailbox mit den Bounces (wird von
252 uvbounce.pl ausgewertet)
253usevote.lock Temporaere Lockdatei, um gleichzeitiges Ausfuehren
254 mehrerer Instanzen zu verhindern. Kann (falls vorhanden)
255 gefahrlos geloescht werden, wenn gerade keines der
256 Usevote-Scripts laeuft.
257
258* Folgende Unterverzeichnisse werden von Usevote im aktuellen
259 Verzeichnis (CWD) angelegt:
260
261fertig/ Verzeichnis fuer Archivierung verarbeiteter Dateien
262tmp/ Verzeichnis fuer temporaere Dateien
263
264* Von Usevote dort erstellte Dateien:
265
266ack.* Bestaetigungsmails (in tmp/)
267ack.control Steuerungsdatei fuer Bestaetigungsmails (in tmp/)
268domail Shellscript zum Verschicken der Mails (in tmp/)
269ergebnis.* Ergebnisdateien einzelner Durchlaeufe (zunaecht in tmp/,
270 spaeter nach fertig/ verschoben und archiviert)
271stimmen.* Archivierte Stimmendateien (dto.)
272
273
2745. Anfangs-Konfiguration
275========================
276
277Zuerst solltest Du "usevote.cfg" fuer Dein System anpassen (Details
278dort in den Kommentarzeilen und weiter hinten in dieser Dokumentation).
279Unter Windows werden die Regular Expressions fuer die Stimmenerkennung
280moeglicherweise lauter unlesbare Zeichen enthalten (anderer Zeichensatz),
281dort sollten saemtliche in Namen vorkommende Umlaute und Buchstaben mit
282Accents etc. aufgefuehrt werden. Weiter ist bei Nutzung von Windows zu
283beachten, dass das Kommando zum Loeschen des Bildschirms "cls" und nicht
284"clear" heisst. Dazu gibt es auch eine Einstellung in usevote.cfg. Den
285standardmaessig eingestellten Pager "less" gibt es unter Windows zunaechst
286nicht, more ist aber so buggy, dass man sich am besten "less" fuer
287Windows herunterladen sollte:
288http://www.greenwoodsoftware.com/less/less381d.zip
289
290Im Unterverzeichnis "templates" findest Du Vorlagen, die fuer die
291einzelnen Bestaetigungstexte, Mails, Wahlscheine und Waehlerlisten
292verwendet werden. Hier kannst Du unter Beachtung der Syntax (siehe
293gesonderte Dokumentation) alle Texte an Deinen Geschmack und Deine
294Beduerfnisse anpassen.
295
296
2976. Konfiguration fuer einzelne Abstimmungen
298===========================================
299
300Fuer jede Abstimmung muss eine eigene Konfigurationsdatei geschrieben
301werden. Aendere einfach usevote.cfg entsprechend der Regeln fuer die
302betreffende Abstimmung. Falls Du haeufiger Wahlleiter spielst, solltest
303Du Dir eine globale Konfigurationsdatei mit Standardeinstellungen
304(z.B. als ~/.usevote-defaults.cfg) anlegen und in der usevote.cfg nur
305noch die Einstellungen setzen, die sich fuer jede Abstimmunge aendern.
306Die globale Datei kann am Anfang der usevote.cfg mit folgender Zeile
307eingebunden werden:
308
309include ~/.usevote-defaults.cfg
310
311Zu beachten ist aber, dass jeweils die letzte Definition einer Option
312benutzt wird. Die usevote.cfg sollte daher wirklich nur noch
313abstimmungsspezifische Einstellungen enthalten, um nicht versehentlich
314