Compare commits
26 commits
Author | SHA1 | Date | |
---|---|---|---|
Thomas Hochstein | 290f1a1631 | ||
Thomas Hochstein | 68b0879787 | ||
150c91add6 | |||
68d2e7d047 | |||
a5ab9d2620 | |||
3c2b60126f | |||
b7e3bdd951 | |||
a94e81c653 | |||
adf1f9a735 | |||
f9a99fd83a | |||
6f88a29957 | |||
923dc1773e | |||
3ab56bde53 | |||
f5828d9fad | |||
3aca529725 | |||
c1cc3954b4 | |||
62d56462b4 | |||
7ae85f86e3 | |||
c50a97a62c | |||
7450382ef3 | |||
e91a2b7fa5 | |||
300f47d616 | |||
6f31c0dc7a | |||
c9497882fb | |||
bb61da3743 | |||
b0edfe72dd |
1
.gitattributes
vendored
1
.gitattributes
vendored
|
@ -1 +0,0 @@
|
|||
* text=auto
|
6
CHANGES
6
CHANGES
|
@ -1,14 +1,14 @@
|
|||
UseVoteGer Versionshistorie (aktuelle Version: 4.12, released 28.02.2014)
|
||||
UseVoteGer Versionshistorie (aktuelle Version: 4.13, released 27.01.2022)
|
||||
=========================================================================
|
||||
|
||||
TODO:
|
||||
- aussortieren von Bounces aus Stimmenliste
|
||||
|
||||
Version 4.13 (unreleased):
|
||||
Version 4.13 (27.01.2022):
|
||||
- BDSG-Klausel an die DSGVO angepasst
|
||||
- "mailcmd" muss mit "--" enden, damit Mailadressen, die mit "-"
|
||||
beginnen, richtig erkannt werden.
|
||||
- "diff -u" ist ein besserer Default für das Diff-Programm
|
||||
- "diff -u" ist ein besserer Default fuer das Diff-Programm
|
||||
- Standardwert fuer Mindest-JA-Stimmenzahl von 50 auf 15 verringert
|
||||
|
||||
Version 4.12 (28.02.2014):
|
||||
|
|
11
README
11
README
|
@ -1,4 +1,4 @@
|
|||
UseVoteGer 4.12 (c) 2001-2014 Marc Langer
|
||||
UseVoteGer 4.13 (c) 2001-2022 Marc Langer
|
||||
|
||||
UseVoteGer is a voting software for usenet votes.
|
||||
|
||||
|
@ -12,13 +12,14 @@ Many thanks to:
|
|||
- Wolfgang Behrens (UseVoteGer 3.1, based on Frederik's translation, 1998/99)
|
||||
- Cornell Binder for some good advice and code fragments
|
||||
(e.g. UVtemplate.pm, UVformats.pm)
|
||||
- Thomas Hochstein for some patches
|
||||
|
||||
This is a complete rewrite of UseVoteGer 3.1 in Perl (former versions were
|
||||
written in C). Not all functions of Usevote/UseVoteGer 3.x are implemented!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
UseVoteGer 4.12 - Usenet-Abstimmungssoftware
|
||||
UseVoteGer 4.13 - Usenet-Abstimmungssoftware
|
||||
===========================================
|
||||
|
||||
von Marc Langer <uv@marclanger.de>
|
||||
|
@ -187,8 +188,8 @@ UVrules.pm Routinen zur Regelverarbeitung (usevote.rul)
|
|||
UVsendmail.pm Routinen zum Erzeugen von Mails
|
||||
UVtemplate.pm Routinen zur Verarbeitung von Vorlagen (Templates)
|
||||
bdsgtext.cfg Spezieller Text fuer den Wahlschein (Hinweis auf
|
||||
DSGVO), muss ausserhalb Deutschlands ggfls.
|
||||
angepasst oder kann ignoriert werden (bdsg=0 in usevote.cfg)
|
||||
DSGVO), muss ausserhalb der EU ggfls. angepasst werden
|
||||
oder kann dort ignoriert werden (bdsg=0 in usevote.cfg)
|
||||
mailpatterns.cfg Wildcards fuer verdaechtige Mailadressen
|
||||
messages.cfg Programm-Meldungen (Ressourcen-Datei)
|
||||
scheinkennungen Speicherung der Scheinkennungen bei personalisierten
|
||||
|
@ -1027,7 +1028,7 @@ domailfile Name des Shellscripts zum Versenden der Bestaetigungsmails
|
|||
(falls smtp=0, normalerweise tmp/domail)
|
||||
mailcmd Aufruf des Mail Transfer Agents (MTA) zum Verschicken der
|
||||
Bestaetigungsmails (falls smtp=0), z.B.
|
||||
"sendmail -oi -oem -femail@adresse -- "
|
||||
"sendmail -oi -oem -femail@adresse --"
|
||||
sleepcmd Weiteres Kommando, welches nach jeder Mail aufgerufen werden
|
||||
soll (falls smtp=0). Sinnvoll ist ein "sleep x", wobei x bei
|
||||
langsamen Systemen hoeher gewaehlt werden sollte.
|
||||
|
|
|
@ -18,7 +18,7 @@ require Exporter;
|
|||
$VERSION = "0.18";
|
||||
|
||||
# Usevote version
|
||||
$usevote_version = "UseVoteGer 4.12";
|
||||
$usevote_version = "UseVoteGer 4.13";
|
||||
|
||||
sub read_config {
|
||||
|
||||
|
@ -94,7 +94,7 @@ sub read_config {
|
|||
ann_stimme => 'A\s*N\s*N\s*U\s*L\s*L\s*I\s*E\s*R\s*U\s*N\s*G',
|
||||
bdsg_confirm => 'JA',
|
||||
condition1 => '$yes>=2*$no', # twice as many yes as no
|
||||
condition2 => '$yes>=15', # min 15 yes votes
|
||||
condition2 => '$yes>=15', # min 60 yes votes
|
||||
prop_formula => '$yes/$no',
|
||||
tpl_ack_mail => 'ack-mail',
|
||||
tpl_bouncelist => 'bouncelist',
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
#!/bin/bash
|
||||
cd ~/usevote
|
||||
mkdir $1
|
||||
cd $1
|
||||
sed s/LOCALPART/$1/g ../usevote.tpl.cfg > usevote.cfg
|
||||
mkdir tmp
|
||||
mkdir done
|
||||
|
||||
echo "Voting $1 created!"
|
0
tmp/ergebnis-1191790177
Normal file
0
tmp/ergebnis-1191790177
Normal file
0
tmp/stimmen-1191790177
Normal file
0
tmp/stimmen-1191790177
Normal file
|
@ -96,6 +96,7 @@ votefile = votes
|
|||
|
||||
# Typ der Mailbox (mbox, maildir)
|
||||
mailboxtype = mbox
|
||||
|
||||
# POP3-Einstellungen fuer Abruf der eingehenden Wahlscheine:
|
||||
# Server, Port, Benutzername, Passwort
|
||||
pop3server = 127.0.0.1
|
||||
|
|
|
@ -1,177 +0,0 @@
|
|||
########################################################################
|
||||
# Alles ab hier braucht i.d.R. nur einmal festgelegt werden.
|
||||
# Es ist moeglich, diese Einstellungen in eine globale Konfigurations-
|
||||
# datei auszulagern. Das Einbinden erfolgt mit der Zeile
|
||||
#
|
||||
# include /pfad/zur/globalen_datei
|
||||
#
|
||||
# Falls Einstellungen aus der globalen Konfigurationsdatei hier
|
||||
# fuer einzelne Abstimmungen ueberschrieben werden sollen, muessen
|
||||
# diese *hinter* dem Include-Befehl stehen!
|
||||
# (der letzte Wert ueberschreibt vorhergehende Definitionen)
|
||||
########################################################################
|
||||
|
||||
# SMTP benutzen? (falls nicht, wird der weiter unten einstellbare
|
||||
# MTA direkt aufgerufen; unter Windows kann nur SMTP benutzt werden!)
|
||||
smtp = 0
|
||||
|
||||
# SMTP-Server (falls smtp = 1)
|
||||
smtpserver = localhost
|
||||
smtpport = 25
|
||||
|
||||
# SMTP-Authentifizierung benutzen? (RFC 2554)
|
||||
# Das entsprechende Perlmodul (Net::SMTP) kann derzeit nur AUTH PLAIN,
|
||||
# funktioniert also moeglicherweise nicht mit jedem Server
|
||||
#smtpauth = 0
|
||||
#smtpuser =
|
||||
#smtppass =
|
||||
|
||||
# Falls als HELO etwas anderes als der Hostname verwendet werden soll:
|
||||
#smtphelo = greenmeadow.szaf.org
|
||||
|
||||
# Falls ein anderer Fully Qualified Domain Name als der Hostname fuer
|
||||
# die Message-ID verwendet werden soll:
|
||||
fqdn = mid.thh.votetaker.de
|
||||
|
||||
# Verzeichnis fuer fertig verarbeitete Mails und Ergebnisse
|
||||
archivedir = done
|
||||
|
||||
# Temporaeres Verzeichnis
|
||||
tmpdir = tmp
|
||||
|
||||
# Pfad zu den Templates (kommaseparierte Liste mit Verzeichnissen)
|
||||
templatedir = /home/gvv/usevote/templates
|
||||
|
||||
# Konvertierungsfunktionen f黵 die Templates
|
||||
# (kommaseparierte Liste mit Funktions-Modulen)
|
||||
formats = /home/gvv/usevote/UVformats.pm
|
||||
|
||||
# Dateiname der Steuerungsdatei fuer den Mailversandt
|
||||
controlfile = tmp/ack.control
|
||||
|
||||
# Dateiname des Shellscripts zum Versenden der Bestaetigungsmails (falls smtp=0)
|
||||
domailfile = tmp/domail
|
||||
|
||||
# MTA-Aufruf zum Verschicken der Bestaetigungsmails
|
||||
# nuetzlich ist die Sendmail-Option -f zum Setzen des Absenders
|
||||
#mailcmd = sendmail -oi -oem -femail@adresse
|
||||
mailcmd = /usr/sbin/sendmail -oi -oem -fvote-bounces@thh.votetaker.de --
|
||||
|
||||
# Weiteres Kommando, welches nach jeder Mail aufgerufen werden soll (falls smtp=0).
|
||||
# Sinnvoll ist ein "sleep x", wobei x bei langsamen Systemen hoeher
|
||||
# gewaehlt werden sollte, um die Belastung gering zu halten.
|
||||
sleepcmd = sleep 1
|
||||
|
||||
# Shellbefehl zum Loeschen des Bildschirms
|
||||
# Unix: i.d.R. "clear"
|
||||
# Windows: "cls"
|
||||
# Falls das Betriebssystem bzw. die Shell keinen solchen Befehl zur Verfuegung
|
||||
# stellt, sollte ein Kommando verwendet werden, welches eine Trennlinie
|
||||
# oder aehnliches auf dem Bildschirm ausgibt, z.B. mit "echo"
|
||||
clearcmd = clear
|
||||
|
||||
# Shellbefehl zum seitenweisen Darstellen von Mails auf dem Bildschirm
|
||||
# Empfohlene Einstellung: "less", da more Probleme mit der Umleitung von
|
||||
# STDERR in eine Datei Probleme hat. Unter Windows ist "less" nicht
|
||||
# vorinstallirt, kann man sich aber herunterladen und einfach in das
|
||||
# Windows-Verzeichnis kopieren (URL siehe README-Datei)
|
||||
pager = less
|
||||
|
||||
# Shellbefehl fuer Dateivergleich
|
||||
diff = diff -u
|
||||
|
||||
# Datei mit diversen Meldungen und Textfragmenten (Resourcendatei)
|
||||
messagefile = /home/gvv/usevote/messages.cfg
|
||||
|
||||
# Datei mit Wahlregeln
|
||||
rulefile = /home/gvv/usevote/usevote.rul
|
||||
|
||||
# Datei mit verdaechtigen Mailadressen
|
||||
badaddrfile = /home/gvv/usevote/mailpatterns.cfg
|
||||
|
||||
# Datei fuer Fehlermeldungen beim Programmlauf
|
||||
errorfile = errors.log
|
||||
|
||||
# Lockdatei (Verhinderung von mehrfachen Programmstarts)
|
||||
lockfile = usevote.lock
|
||||
|
||||
# Einleitungszeile fuer naechste Mail (RegExp)
|
||||
mailstart = "^From "
|
||||
|
||||
# Trennlinien vor und nach dem Wahlschein
|
||||
begin_divider = Alles vor dieser Zeile bitte loeschen
|
||||
end_divider = Alles nach dieser Zeile bitte loeschen
|
||||
|
||||
# Ueberschrift fuer den Wahlschein
|
||||
# Achtung, muss im Wahlschein genauso stehen!
|
||||
ballotintro = WAHLSCHEIN fuer
|
||||
|
||||
# Text fuer die Namens-Angabe im Wahlschein. Achtung, muss im
|
||||
# Wahlschein genauso stehen!
|
||||
nametext = Dein Realname, falls nicht im FROM-Header:
|
||||
|
||||
# Text fuer Namens-Angabe in Bestaetigungsmails
|
||||
nametext2 = Waehlername:
|
||||
|
||||
# Text fuer die Adress-Angabe im Wahlschein
|
||||
addresstext = Waehleradresse:
|
||||
|
||||
# Text f黵 die Angabe der Wahlscheinkennung (siehe Option "personal")
|
||||
ballotidtext = Wahlscheinkennung:
|
||||
|
||||
# Text fuer Datenschutzklausel (siehe Option "bdsg"), erscheint als Abstimmungspunkt
|
||||
bdsgtext = Datenschutzklausel - Zustimmung: Ich bin mit der Verarbeitung meiner Daten wie oben beschrieben einverstanden
|
||||
|
||||
# Datei mit Erklaerungstext fuer BDSG-Klausel
|
||||
bdsgfile = /home/gvv/usevote/bdsgtext.cfg
|
||||
|
||||
# Rechter Rand fuer einige Bildschirmausgaben (Terminalbreite)
|
||||
rightmargin = 72
|
||||
|
||||
# Regular Expression fuer Erkennung eines gueltigen Realnamens
|
||||
name_re = [-a-zA-Z漩<5A>噔殍觏祛篁酊<E7AF81>闹芰谅扇释涛右在氽遌{2,} +.*[a-zA-Z漩<5A>噔殍觏祛篁酊<E7AF81>闹芰谅扇释涛右在氽遌{2,}
|
||||
|
||||
# RegExp fuer JA-Stimmen (case-insensitive)
|
||||
# Standardmaessig wird J, JA, FUER und DAFUER erkannt
|
||||
ja_stimme = (J\s*A|J|(D\s*A\s*)?F\s*U\s*E\s*R)
|
||||
|
||||
# RegExp fuer NEIN-Stimmen (case-insensitive)
|
||||
# Standardmaessig wird N, NEIN, GEGEN und DAGEGEN erkannt
|
||||
nein_stimme = (N\s*E\s*I\s*N|N|(D\s*A\s*)?G\s*E\s*G\s*E\s*N)
|
||||
|
||||
# RegExp fuer ENTHALTUNG (case-insensitive)
|
||||
enth_stimme = (E|E\s*N\s*T\s*H\s*A\s*L\s*T\s*U\s*N\s*G)
|
||||
|
||||
# RegExp fuer ANNULLIERUNG (case-insensitive)
|
||||
# Achtung, sollte auch in den Templates im Bestaetigungstext angepasst werden
|
||||
ann_stimme = A\s*N\s*N\s*U\s*L\s*L\s*I\s*E\s*R\s*U\s*N\s*G
|
||||
|
||||
# RegExp fuer Bestaetigung der Datenschutzklause (case-insensitive)
|
||||
# Standardmaessig wird nur JA erkannt
|
||||
bdsg_confirm = JA
|
||||
|
||||
# Template files (these files are in the template directory defined above)
|
||||
tpl_mailheader = "mailheader" # generally used mail header
|
||||
tpl_bouncelist = "bouncelist" # used by uvbounce.pl
|
||||
tpl_result_multi = "result-multi" # used by uvcount.pl -r -m
|
||||
tpl_result_single = "result-single" # used by uvcount.pl -r -o
|
||||
tpl_result_prop = "result-proportional" # used by uvcount.pl -r (proportional = 1)
|
||||
tpl_votes_multi = "votes-multi" # used by uvcount.pl -v (multiple groups)
|
||||
tpl_votes_single = "votes-single" # used by uvcount.pl -v (single group only)
|
||||
tpl_voterlist = "voterlist" # used by uvcount.pl -l (2nd CfV)
|
||||
tpl_ballot = "ballot" # used by uvballot.pl (personal = 0)
|
||||
tpl_ballot_request = "ballot-request" # used by uvballot.pl (personal = 1)
|
||||
tpl_ballot_personal = "ballot-personal" # used by uvcfv.pl (personal = 1)
|
||||
tpl_addr_reg = "address-not-registered" # used by uvvote.pl (personal = 1)
|
||||
tpl_no_ballotid = "no-ballotid" # used by uvvote.pl (personal = 1)
|
||||
tpl_wrong_ballotid = "wrong-ballotid" # used by uvvote.pl (personal = 1)
|
||||
tpl_bdsg_error = "bdsg-error" # used by uvvote.pl (bdsg = 1)
|
||||
tpl_ack_mail = "ack-mail" # used by uvvote.pl (voteack = 1)
|
||||
tpl_cancelled = "cancelled" # used by uvvote.pl
|
||||
tpl_invalid_account = "invalid-account" # used by uvvote.pl
|
||||
tpl_invalid_name = "invalid-name" # used by uvvote.pl
|
||||
tpl_multiple_votes = "multiple-votes" # used by uvvote.pl
|
||||
tpl_no_ballot = "no-ballot" # used by uvvote.pl
|
||||
tpl_no_votes = "no-votes" # used by uvvote.pl
|
||||
tpl_wrong_voting = "wrong-voting" # used by uvvote.pl
|
||||
tpl_rule_violated = "rule-violated" # used by uvvote.pl (c.f. usevote.rul)
|
|
@ -1,85 +0,0 @@
|
|||
include /home/gvv/usevote/usevote.global.cfg
|
||||
|
||||
########################################################################
|
||||
# Diese Einstellungen muessen fuer jede Abstimmung angepasst werden
|
||||
########################################################################
|
||||
|
||||
# Name der Abstimmung
|
||||
votename = INSERT_HERE
|
||||
|
||||
# Abstimmungsgegenstaende (beliebig viele groupX moeglich,
|
||||
# von 1 an durchzunummerieren)
|
||||
group1 = INSERT_HERE
|
||||
|
||||
# Mailbox, in der die zu verarbeitenden Mails liegen (falls smtp=0)
|
||||
votefile = votes
|
||||
|
||||
# Bei den folgenden Fragen bedeutet jeweils:
|
||||
# 0: nein
|
||||
# 1: ja
|
||||
|
||||
# Persoenliche Wahlscheine generieren und Scheinkennung erzwingen?
|
||||
personal = 0
|
||||
|
||||
# Verhaeltniswahl durchfuehren? (z.B. fuer Moderationsnachwahlen)
|
||||
proportional = 0
|
||||
|
||||
# Formel fuer die Berechnung des Verhaeltnisses. Kann z.B.
|
||||
# $yes/$no oder $yes-$no sein, letzteres wird bei Moderationsnachwahlen
|
||||
# verwendet. Als Variablen sind $yes und $no zulaessig, es kann
|
||||
# beliebiger Perlcode angegeben werden, dessen Rueckgabewert im
|
||||
# Result erscheinen soll. Ausserdem wird bei der Auswertung die
|
||||
# Bedingung aus "condition1" weiter unten in dieser Datei ausgewertet.
|
||||
prop_formula = $yes/$no
|
||||
|
||||
# Vote-Account (diese Adresse muss unbedingt korrekt sein, wird
|
||||
# in das Reply-To uebernommen)
|
||||
voteaccount = LOCALPART@thh.votetaker.de
|
||||
|
||||
# Absender fuer den From-Header der Bestaetigungsmails
|
||||
mailfrom = Thomas Hochstein <thh@votetaker.de>
|
||||
|
||||
# Absender fuer den Envelope (Return-Path) der Bestaetigungsmails
|
||||
# (bitte einfach nur die Adresse eintragen, ohne Klammern und Zusaetze)
|
||||
envelopefrom = bounce-LOCALPART@thh.votetaker.de
|
||||
|
||||
# Nur bei persoenlichen Wahlscheinen: Datei mit Anforderungsmails
|
||||
# requestfile = anforderung
|
||||
|
||||
# Datenschutzklausel generieren und auf deren Existenz pruefen?
|
||||
# Konfiguration siehe unten (bdsgtext)
|
||||
bdsg = 1
|
||||
|
||||
# Reply-To beachten?
|
||||
# Nicht empfohlen, da jemand fuer andere Personen abstimmen und
|
||||
# die Bestaetigungen zu sich umlenken koennte.
|
||||
replyto = 0
|
||||
|
||||
# Stimmen einzeln bestaetigen? Empfohlen!
|
||||
voteack = 1
|
||||
|
||||
# Bcc-Adresse fuer alle Mails (Backup fuer alle Faelle)
|
||||
#
|
||||
mailcc = gvv@localhost
|
||||
|
||||
# Alles in einem Schritt durchfuehren (gesonderter Aufruf von
|
||||
# "uvvote.pl clean" entfaellt)? Fuehrt zu geringeren
|
||||
# Eingreifmoeglichkeiten! (Mails werden automatisch verschickt)
|
||||
onestep = 0
|
||||
|
||||
# Fuer das Ergebnis (xx Ja-Stimmen, xx Nein-Stimmen, xx Enthaltungen)
|
||||
# auch bei Eingruppenabstimmung des Mehrgruppenformat waehlen?
|
||||
multigroup = 1
|
||||
|
||||
# Bedingungen fuer einen Erfolg der Abstimmung (genau zwei erforderlich).
|
||||
# Es muss sich jeweils um gueltigen Perl-Code handeln, Rueckgabewert
|
||||
# wird boolesch ausgewertet (true/false). Als Variablen sind $yes
|
||||
# und $no zugelassen. Falls oben "proportional = 1" gesetzt wurde,
|
||||
# wird nur Bedingung 1 ausgewertet und kann z.B. auf "$yes>$no" gesetzt
|
||||
# werden.
|
||||
# condition1 = $yes>=2*$no
|
||||
# condition2 = $yes>=50
|
||||
condition1 = $yes>=2*$no
|
||||
condition2 = $yes>=15
|
||||
|
||||
mailcmd = /usr/sbin/sendmail -oi -oem -fbounce-LOCALPART@thh.votetaker.de --
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.12 Wahlscheingenerierung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.13 Wahlscheingenerierung
|
||||
# (c) 2001-2022 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.12 Bounce-Verarbeitung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.13 Bounce-Verarbeitung
|
||||
# (c) 2001-2022 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
4
uvcfv.pl
4
uvcfv.pl
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.12 Personalisierte Wahlscheine
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.13 Personalisierte Wahlscheine
|
||||
# (c) 2001-2022 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.12 Stimmauswertung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.13 Stimmauswertung
|
||||
# (c) 2001-2022 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/perl -w
|
||||
|
||||
###############################################################################
|
||||
# UseVoteGer 4.12 Wahldurchfuehrung
|
||||
# (c) 2001-2014 Marc Langer <uv@marclanger.de>
|
||||
# UseVoteGer 4.13 Wahldurchfuehrung
|
||||
# (c) 2001-2022 Marc Langer <uv@marclanger.de>
|
||||
#
|
||||
# This script package is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Public License as published by the
|
||||
|
|
Loading…
Reference in a new issue