Compare commits

..

26 commits

Author SHA1 Message Date
Thomas Hochstein 290f1a1631 Usevote 4.0.13
Signed-off-by: Thomas Hochstein <thh@thh.name>
2022-01-27 18:07:13 +01:00
Thomas Hochstein 68b0879787 Merge branch 'upstream-tmp' into upstream
* upstream-tmp:
  Update documentation.
  Change quorum (50 -> 15 votes)
  Global config: change diff command to "diff -u".
  Global config: add " --" to mail command.
  Adapt bdsgtext.cfg to DSGVO.
  Add executive bits to scripts.
2022-01-27 18:04:30 +01:00
Thomas Hochstein 150c91add6 Update documentation.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2021-12-19 15:23:25 +01:00
Thomas Hochstein 68d2e7d047 Change quorum (50 -> 15 votes)
Change in config and templates:
- result-single
- result-multi

Signed-off-by: Thomas Hochstein <thh@inter.net>
2021-12-19 15:23:16 +01:00
Thomas Hochstein a5ab9d2620 Global config: change diff command to "diff -u".
Signed-off-by: Thomas Hochstein <thh@inter.net>
2021-12-19 15:17:55 +01:00
Thomas Hochstein 3c2b60126f Global config: add " --" to mail command.
Otherwise mail addresses beginning with a
dash ("-mymail-@provider.example") will
lead to Exim erroring out.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2021-12-19 15:17:12 +01:00
Thomas Hochstein b7e3bdd951 Adapt bdsgtext.cfg to DSGVO.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2021-12-19 15:15:52 +01:00
Thomas Hochstein a94e81c653 Add executive bits to scripts.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2021-12-19 15:08:49 +01:00
Thomas Hochstein adf1f9a735 Merge branch 'upstream-tmp' into upstream
* upstream-tmp:
  Update CHANGES for release.
  Fix typo in README.
  Change quorum default value to 50 "JA" votes.
  Correctly find $votename.
  Enforce strict response for data protection clause.
  Add votename to Menu.
2014-03-19 21:51:29 +01:00
Thomas Hochstein f9a99fd83a Update CHANGES for release.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-03-19 21:48:48 +01:00
Thomas Hochstein 6f88a29957 Fix typo in README.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-03-19 21:48:25 +01:00
Thomas Hochstein 923dc1773e Change quorum default value to 50 "JA" votes.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-03-19 21:48:02 +01:00
Thomas Hochstein 3ab56bde53 Correctly find $votename.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-03-19 21:46:32 +01:00
Thomas Hochstein f5828d9fad Enforce strict response for data protection clause.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-03-19 21:45:08 +01:00
Thomas Hochstein 3aca529725 Add votename to Menu.
Display the current voting's description.
Also purge some dead code.

Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-03-19 21:43:48 +01:00
Thomas Hochstein c1cc3954b4 Merge branch 'upstream-tmp' into upstream
* upstream-tmp:
  Update documentation to 4.12.
  Add correct timestamp to mbox when processing.
  Don't remove empty mailbox files/maildirs.
  Fix UVreadmail.pm
  Add option to compare ballot to sample ballot.
  Documentation: Add votename to UVmenu.
  Add "bdsg_confirm" to UVconf.pm
2014-02-16 14:09:31 +01:00
Thomas Hochstein 62d56462b4 Update documentation to 4.12.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-02-16 13:47:22 +01:00
Thomas Hochstein 7ae85f86e3 Add correct timestamp to mbox when processing.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-02-16 13:47:15 +01:00
Thomas Hochstein c50a97a62c Don't remove empty mailbox files/maildirs.
Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-02-16 13:47:09 +01:00
Thomas Hochstein 7450382ef3 Fix UVreadmail.pm
Use filename from function call.

Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-02-16 13:47:06 +01:00
Thomas Hochstein e91a2b7fa5 Add option to compare ballot to sample ballot.
It may be desriable to compare a ballot to
a sample ballot when checking votes.

* Add options "diff" and "sampleballotfile" to
  usevote.cfg an UVconfig.pm
* Add menu option to UVmenu.pm

Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-02-16 13:46:57 +01:00
Thomas Hochstein 300f47d616 Documentation: Add votename to UVmenu.
Those new options to check the votename had not
been added to the README file.

Also fix a typo.

Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-02-16 13:45:22 +01:00
Thomas Hochstein 6f31c0dc7a Add "bdsg_confirm" to UVconf.pm
Set default for "bdsg_confirm".

Picked from upstream.

Signed-off-by: Thomas Hochstein <thh@inter.net>
2014-02-16 13:24:42 +01:00
Thomas Hochstein c9497882fb Release of upstream version 4.11.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2012-09-26 21:26:54 +02:00
Thomas Hochstein bb61da3743 Release of upstream version 4.10.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2012-09-19 22:12:44 +02:00
Thomas Hochstein b0edfe72dd Pre-release of upstream version 4.10.
Signed-off-by: Thomas Hochstein <thh@inter.net>
2010-11-21 23:06:22 +01:00
15 changed files with 22 additions and 292 deletions

1
.gitattributes vendored
View file

@ -1 +0,0 @@
* text=auto

View file

@ -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
View file

@ -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.

View file

@ -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',

View file

@ -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
View file

0
tmp/stimmen-1191790177 Normal file
View file

View 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

View file

@ -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)

View file

@ -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 --

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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