--- 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?"
+