--- clamav-getfiles-2.0.orig/update-eicar +++ clamav-getfiles-2.0/update-eicar @@ -10,13 +10,13 @@ set -e if [ `id -u` != 0 ] ; then - echo "update-eicar can only be run as root." + echo >&2 "ERR: update-eicar can only be run as root." exit -1 fi for x in $* ; do - if [ `echo $x | awk '{print substr($1,1,1)}'` = '-' ] ; then - case `echo $x | awk '{print substr($1,2,1)}'` in + if [ $(echo $x | awk '{print substr($1,1,1)}') = '-' ] ; then + case $(echo $x | awk '{print substr($1,2,1)}') in q) QUIET_MODE=1;; c) CHECK_ONLY=1;; esac @@ -25,7 +25,7 @@ fi done -if [ `echo $LOCALCOPY | tr [:upper:] [:lower:] `x = "nonex" ] ; then +if [ "$(echo $LOCALCOPY | tr [:upper:] [:lower:])" = "none" ] ; then exit 0 fi @@ -42,21 +42,21 @@ mkdir -p -m 0755 $SCRATCHDIR if [ -O $SCRATCHDIR ] ; then if [ `ls -ld $SCRATCHDIR | awk '{print substr($1,6,1) substr($1,9,1)}'` != '--' ] ; then - echo " + echo >&2 " update-eicar: Error: $SCRATCHDIR must have mode 755 permissions. The directory $SCRATCHDIR is writable by non-root users. Using this directory would be a security risk. Please remove this directory. -" 1>&2 +" exit -3; fi else - echo " + echo >&2 " update-eicar: Error: $SCRATCHDIR is not owned by root. The directory $SCRATCHDIR exists but is not owned by root with group root. Using this directory would be a security risk. Please remove it. -" 1>&2 +" exit -2; fi cd $SCRATCHDIR @@ -87,11 +87,16 @@ for ff in $DWNLDFILES; do if [ ! -e $ff.done ] || [ ! -e $ff ] ; then if [ -z "$LOCALCOPY" ] ; then - if [ -n "$QUIET_MODE" ] ; then - curl --quiet --remote-name $URLROOT/$ff - else - echo curl --remote-name $URLROOT/$ff - curl --remote-name $URLROOT/$ff + if command -v curl >/dev/null; then + if [ -n "$QUIET_MODE" ] ; then + curl --quiet --remote-name $URLROOT/$ff + else + echo curl --remote-name $URLROOT/$ff + curl --remote-name $URLROOT/$ff + fi + else + echo >&2 "ERR: curl not found, not updating eicar.com" + exit 1 fi else cp $LOCALCOPY/$ff . @@ -102,7 +107,7 @@ done #Add some level of predictability by folding everything to lower case for x in *; do - y=`echo $x | tr '[A-Z]' '[a-z]'` + y=$(echo $x | tr '[A-Z]' '[a-z]') if [ "$x" != "$y" ]; then mv "$x" "$y" fi --- clamav-getfiles-2.0.orig/make-clamav-data-package +++ clamav-getfiles-2.0/make-clamav-data-package @@ -92,19 +92,23 @@ print "sigtool output:\n@out\n"; my ($unpdate,$pdate,$dt,$date,$vers,$pkgvers); ($unpdate)=grep(/^Build time:\s/, @out); - $unpdate =~ s/^Build time:\s+(\d+)/$1/; - $pdate = Date::Parse::str2time($unpdate); - $dt = DateTime->from_epoch(epoch=>$pdate); - $date = $dt->ymd('').".".$dt->hms(''); - ($vers)=grep(/^Version:\s/, @out); - chomp $vers; - $vers =~ s/^Version:\s+(\d+)/$1/; - $pkgvers = "$date.$vers"; - if( defined $ENV{"VERSSUFFIX"} ) { - $pkgvers .= $ENV{"VERSSUFFIX"}; + if( $unpdate ) { + $unpdate =~ s/^Build time:\s+(\d+)/$1/; + $pdate = Date::Parse::str2time($unpdate); + $dt = DateTime->from_epoch(epoch=>$pdate); + $date = $dt->ymd('').".".$dt->hms(''); + ($vers)=grep(/^Version:\s/, @out); + chomp $vers; + $vers =~ s/^Version:\s+(\d+)/$1/; + $pkgvers = "$date.$vers"; + if( defined $ENV{"VERSSUFFIX"} ) { + $pkgvers .= $ENV{"VERSSUFFIX"}; + } + print "pkgvers $pkgvers:\n"; + $self->version("$pkgvers"); + } else { + die "ERR: cannot parse version number from database\n"; } - print "pkgvers $pkgvers:\n"; - $self->version("$pkgvers"); } sub generate_build_dir { @@ -129,6 +133,13 @@ } my (@out, $err); + if( defined $param{cachedir} ) { + my (@out, $err); + # copy files from given dir + IPC::Run3::run3(["cp","-r",File::Glob::bsd_glob("$param{cachedir}/*"),"$self->{build_dir}"],\undef,\undef,\$err) + or die "cannot copy $param{cachedir}/* to orig dir: $! ($err)\n"; + } + if( ! IPC::Run3::run3(["$FRESHCLAM","$freshclamconfigfile","--quiet","--user",getpwuid($main::EUID),"--datadir","$self->{build_dir}","--log","$self->{build_dir}/freshclam.log","--log-verbose","--on-update-execute","touch $self->{build_dir}/freshclam-new"],\undef,\@out,\$err) ) { print STDERR @out, $err; print STDERR "ERR: can't download data files, error running freshclam: $?\n"; @@ -140,6 +151,17 @@ $self->cleanup; exit 10; } + if( defined $param{cachedir} ) { + if( -d "$param{cachedir}" ) { + my (@out, $err); + + # copy files back to cache dir + IPC::Run3::run3(["cp","-r",File::Glob::bsd_glob("$self->{build_dir}/*.cvd"),"$param{cachedir}"],\undef,\undef,\$err) + or die "cannot copy databases back to $param{cachedir}: $! ($err)\n"; + } else { + print STDERR "WARN: $param{cachedir} does not exist. No caching will take place.\n"; + } + } unlink "$self->{build_dir}/freshclam.log", "$self->{build_dir}/freshclam-new"; } $self->detect_version(); @@ -171,15 +193,28 @@ package main; -use Cwd; +use Cwd qw(realpath); use Getopt::Long; -my ($dir); -my $r = GetOptions('dir=s' => \$dir); +# options: +# --dir= copy current databases from source directory +# --cachedir= copy databases from directory, call freshclam to +# update them, build package, copy databases back to +# cachedir +my ($dir,$cachedir); +my $r = GetOptions('dir=s' => \$dir, + 'cachedir=s' => \$cachedir); + +if( defined $dir ) { + $dir=realpath("$dir"); +} +if( defined $cachedir ) { + $cachedir=realpath("$cachedir"); +} my $pg = Debian::Package::Make::ClamavData->new(); -$pg->generate_build_dir(srcdir=>$dir); +$pg->generate_build_dir(srcdir=>$dir,cachedir=>$cachedir); $pg->check_databases; --- clamav-getfiles-2.0.orig/debian/control +++ clamav-getfiles-2.0/debian/control @@ -3,11 +3,12 @@ Priority: optional Maintainer: Marc Haber Build-Depends: debhelper (>= 5), po-debconf -Standards-Version: 3.7.3 +Standards-Version: 3.8.0 Package: clamav-getfiles Architecture: all Depends: ${misc:Depends}, debhelper (>= 5), clamav (>= 0.90), clamav-freshclam (>= 0.90), clamav-testfiles (>= 0.72), libdebian-package-make-perl (>> 0.3), libdatetime-perl, libtimedate-perl, libipc-run3-perl, fakeroot, build-essential +Recommends: curl Description: Update script for clamav make-clamav-data-package from this package builds a .deb file containing virus definitions for clamav. This makes it possible to run clamav on --- clamav-getfiles-2.0.orig/debian/changelog +++ clamav-getfiles-2.0/debian/changelog @@ -1,3 +1,41 @@ +clamav-getfiles (2.0-5) unstable; urgency=low + + * Update Swedish (sv) translation of -data debconf + messages. Thanks to Martin Bagge. Closes: #491940 + * Update German (de) translation of -getfiles debconf messages. + Thanks to Frederik Schwarzer. Closes: #502692 + * run config with -e in both -data and -getfiles + * fix "debconf-is-not-a-registry" overrides + * -data has Standards-Version: 3.8.0 as well (no changes necessary) + + -- Marc Haber Sat, 25 Oct 2008 18:35:38 +0200 + +clamav-getfiles (2.0-4) unstable; urgency=low + + * The "I will always look for clamav-data bugs when preparing a + clamav-getfiles upload" release + * Update Japanese (ja) translation of -data debconf + messages. Thanks to Kenshi Muto. Closes: #483510 + + -- Marc Haber Tue, 01 Jul 2008 10:29:17 +0200 + +clamav-getfiles (2.0-3) unstable; urgency=low + + * Robustness changes in update-eicar. Especially: bomb out + with a clear error message if curl not found. + * Recommends: curl. Thanks to Mika Prokop. Closes: #484755 + * Standards-Version: 3.8.0 (no changes necessary) + + -- Marc Haber Mon, 30 Jun 2008 14:32:41 +0200 + +clamav-getfiles (2.0-2) unstable; urgency=low + + * implement --cachedir option to locally cache databases. This can + save execution time in case upstream databases haven't changed since + the last call + + -- Marc Haber Thu, 22 May 2008 00:03:52 +0200 + clamav-getfiles (2.0-1) unstable; urgency=low * major re-work of the package --- clamav-getfiles-2.0.orig/debian/config +++ clamav-getfiles-2.0/debian/config @@ -1,10 +1,12 @@ #!/bin/bash +set -e + . /usr/share/debconf/confmodule case "$1" in configure|reconfigure) - db_input medium clamav-getfiles/download-eicar-com + db_input medium clamav-getfiles/download-eicar-com || true db_go ;; *) --- clamav-getfiles-2.0.orig/debian/po/de.po +++ clamav-getfiles-2.0/debian/po/de.po @@ -41,10 +41,10 @@ "which unfortunately has a non-free license and cannot thus be in Debian " "proper." msgstr "" -"Um die Integrität der heruntergeladenen Virusdefinitionen zu prüfen, nutzt " -"clamav-getfiles Testpattern aus clamav-testfiles. Es kann außerdem noch das " -"Eicar Anti-Virus Test File benutzen, das leider nicht unter einer freien " -"Lizenz steht und deswegen nicht in Debian integriert werden kann." +"Um die Integrität der heruntergeladenen Virusdefinitionen zu prüfen, benutzt " +"clamav-getfiles Testpattern aus clamav-testfiles. Es kann außerdem noch die " +"Eicar-Anti-Virus-Testdatei benutzen, die leider nicht unter einer freien " +"Lizenz steht und deswegen nicht in Debian integriert werden kann." #. Type: boolean #. Description @@ -55,9 +55,9 @@ "installation. Such a package has been prepared and uploaded, but it was " "rejected by the Debian ftp-masters in June 2003. See the RFP/ITP bug #198311." msgstr "" -"Es sollte ein Debian-Paket eicar-testfile geben, das bei der Installationdas " -"wirkliche Eicar Anti-Virus Test File aus dem Internet herunterlädt. Dieses " -"ein Paket existiert bereits, wurde aber von den Debian ftp-mastern im Juni " +"Es sollte ein Debian-Paket eicar-testfile geben, das bei der Installation die " +"eigentliche Eicar-Anti-Virus-Testdatei aus dem Internet herunterlädt. Dieses " +"Paket existiert bereits, wurde aber von den Debian-ftp-mastern im Juni " "2003 abgelehnt. Weitere Informationen liegen im RFP/ITP-Bug-Report #198311." #. Type: boolean @@ -68,9 +68,9 @@ "single location, packages needing that file need to replicate the work " "locally." msgstr "" -"Da Debian offiziell ablehnt, das Eicar Anti-Virus Test File an einer " +"Da Debian offiziell ablehnt, die Eicar-Anti-Virus-Testdatei an einer " "einzigen definierten Stelle in der Distribution zu haben, müssen Pakete, die " -"diese Datei benötigen sie selbst herunterladen." +"diese Datei benötigen, sie selbst herunterladen." #. Type: boolean #. Description @@ -80,6 +80,6 @@ "File from the Internet to improve the integrity test of the downloaded " "clamav databases." msgstr "" -"Soll die nichtfreie Eicar Anti-Virus Test-Datei aus dem Internet " -"heruntergeladen werden, um die Überprüfung der heruntergeladenen clamav-" -"Datenbasen zu verbessern?" +"Soll die nichtfreie Eicar-Anti-Virus-Testdatei aus dem Internet " +"heruntergeladen werden, um die Überprüfung der heruntergeladenen clamav-" +"Datenbanken zu verbessern?" --- clamav-getfiles-2.0.orig/debian/overrides/clamav-getfiles +++ clamav-getfiles-2.0/debian/overrides/clamav-getfiles @@ -1,2 +1,2 @@ -clamav-getfiles: debconf-is-not-a-registry ./usr/share/clamav-getfiles/clamav-data.template/debian/config -clamav-getfiles: debconf-is-not-a-registry ./usr/share/clamav-getfiles/clamav-data.template/debian/postinst +clamav-getfiles: debconf-is-not-a-registry usr/share/clamav-getfiles/clamav-data.template/debian/config +clamav-getfiles: debconf-is-not-a-registry usr/share/clamav-getfiles/clamav-data.template/debian/postinst --- clamav-getfiles-2.0.orig/clamav-data.template/debian/control.in +++ clamav-getfiles-2.0/clamav-data.template/debian/control.in @@ -3,7 +3,7 @@ Priority: extra Maintainer: Marc Haber Build-Depends: debhelper (>= #DEBHELPERVERSION#), po-debconf -Standards-Version: 3.7.3 +Standards-Version: 3.8.0 Package: clamav-data Architecture: all --- clamav-getfiles-2.0.orig/clamav-data.template/debian/config +++ clamav-getfiles-2.0/clamav-data.template/debian/config @@ -1,10 +1,12 @@ #!/bin/bash +set -e + . /usr/share/debconf/confmodule case "$1" in configure|reconfigure) - db_input medium clamav-data/warn-on-old-databases + db_input medium clamav-data/warn-on-old-databases || true db_go ;; *) --- clamav-getfiles-2.0.orig/clamav-data.template/debian/po/ja.po +++ clamav-getfiles-2.0/clamav-data.template/debian/po/ja.po @@ -13,22 +13,21 @@ # msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: clamav-data\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-01-20 07:08+0100\n" -"PO-Revision-Date: 2003-09-21 14:03+0900\n" +"PO-Revision-Date: 2008-05-29 14:21+0900\n" "Last-Translator: Kenshi Muto \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=EUC-JP\n" +"Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #. Type: boolean #. Description #: ../templates:1001 -#, fuzzy msgid "Generate daily warning e-mails on outdated data files?" -msgstr "Ťǡեηٹ e-mail ޤ?" +msgstr "古いデータファイルについての毎日の警告 e-mail を生成しますか?" #. Type: boolean #. Description @@ -39,9 +38,6 @@ "generate warnings out of cron.daily if the static databases are older than " "two months." msgstr "" -"Υѥå clamav 륹ѥΡŪʡץǡ١ޤ" -"ޤϥƥθäǧ򾷤ǽΤǡŪǡ١" -" 2 ʾŤˡѥå cron.daily ǷٹǤޤ" - -#~ msgid "Do you want this cron job to be executed?" -#~ msgstr " cron ֤¹Ԥޤ?" +"このパッケージは clamav 向けウイルスパターンの「静的な」データベースを含んで" +"います。これはセキュリティの誤った認識を招く可能性があるので、静的データベー" +"スが 2 ヶ月以上古い場合に、パッケージは cron.daily で警告を生成できます。" --- clamav-getfiles-2.0.orig/clamav-data.template/debian/po/sv.po +++ clamav-getfiles-2.0/clamav-data.template/debian/po/sv.po @@ -8,15 +8,15 @@ # or http://www.debian.org/intl/l10n/po-debconf/README-trans # Developers do not need to manually edit POT or PO files. # , fuzzy -# -# +# +# msgid "" msgstr "" "Project-Id-Version: clamav-data 20050930.171700.1106\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-01-20 07:08+0100\n" -"PO-Revision-Date: 2005-10-12 22:44+0200\n" -"Last-Translator: Daniel Nylander \n" +"PO-Revision-Date: 2008-07-22 14:03+0100\n" +"Last-Translator: Martin Bagge \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" @@ -25,24 +25,15 @@ #. Type: boolean #. Description #: ../templates:1001 -#, fuzzy msgid "Generate daily warning e-mails on outdated data files?" -msgstr "" -"Vill du generera e-postvarningar med information om frldrade datafiler?" +msgstr "Vill du dagligen lta snda e-postvarningar med information om frldrade datafiler?" #. Type: boolean #. Description #: ../templates:1001 -msgid "" -"This package contains a _static_ database of virus patterns for clamav. " -"Since this can be leading to a false sense of security, the package can " -"generate warnings out of cron.daily if the static databases are older than " -"two months." -msgstr "" -"Detta paket innehller en _statisk_ databas med virussignaturer fr clamav. " -"Eftersom detta kan leda till en falskt knsla av skerhet kan paketet " -"generera varningar frn ett dagligt cronjob om de statiska databaserna r " -"ldra n tv mnader." +msgid "This package contains a _static_ database of virus patterns for clamav. Since this can be leading to a false sense of security, the package can generate warnings out of cron.daily if the static databases are older than two months." +msgstr "Detta paket innehller en _statisk_ databas med virussignaturer fr clamav. Eftersom detta kan leda till en falskt knsla av skerhet kan paketet generera varningar frn ett dagligt cronjob om de statiska databaserna r ldra n tv mnader." #~ msgid "Do you want this cron job to be executed?" #~ msgstr "Vill du att detta cronjob ska startas?" +