Some pacman fixes
authorAndreas Steffen <andreas.steffen@strongswan.org>
Sun, 23 Jun 2013 14:23:19 +0000 (16:23 +0200)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Sun, 23 Jun 2013 14:23:19 +0000 (16:23 +0200)
src/libimcv/plugins/imv_os/pacman.c
src/libimcv/plugins/imv_os/pacman.sh

index f8922bf..6e4bc11 100644 (file)
@@ -281,20 +281,14 @@ static void process_packages(char *filename, char *product, bool security)
        database_t *db;
        int pid;
        FILE *file;
-       struct stat st;
        stats_t stats;
        bool success;
 
        /* initialize statistics */
        memset(&stats, 0x00, sizeof(stats_t));
 
-       /* getting creation date of package file */
-       if (stat(filename, &st))
-       {
-               fprintf(stderr, "unable to obtain creation date on '%s'", filename);
-               exit(EXIT_FAILURE);
-       }
-       stats.release = st.st_mtime;
+       /* Set release date to current time */
+       stats.release = time(NULL);
 
        /* opening package file */
        printf("loading\"%s\"\n", filename);
index af66c94..0b7a0c0 100755 (executable)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+DIR="/etc/pts"
 DATE=`date +%Y%m%d-%H%M`
 UBUNTU="http://security.ubuntu.com/ubuntu/dists"
 UBUNTU_VERSIONS="raring quantal precise lucid"
@@ -10,7 +11,7 @@ DEBIAN_VERSIONS="jessie wheezy squeeze"
 DEBIAN_DIRS="main contrib non-free"
 DEBIAN_ARCH="binary-amd64 binary-i386"
 PACMAN=/usr/libexec/ipsec/pacman
-DIR=/etc/pts
+PACMAN_LOG="$DIR/$DATE-pacman.log"
 
 cd $DIR/dists
 
@@ -22,9 +23,12 @@ do
     for d in $UBUNTU_DIRS
     do
          wget $UBUNTU/$v-security/$d/$a/Packages.bz2 -O $v-security/$a/Packages-$d.bz2
+      mv $v-security/$a/Packages-$d $v-security/$a/Packages-$d.old
+      bunzip2 $v-security/$a/Packages-$d.bz2
          wget $UBUNTU/$v-updates/$d/$a/Packages.bz2  -O $v-updates/$a/Packages-$d.bz2
+      mv $v-updates/$a/Packages-$d $v-updates/$a/Packages-$d.old
+      bunzip2 $v-updates/$a/Packages-$d.bz2
        done
-    bunzip2 -f $v-security/$a/*.bz2 $v-updates/$a/*.bz2
   done
 done
 
@@ -36,123 +40,124 @@ do
     for d in $DEBIAN_DIRS
     do
          wget $DEBIAN/$v/updates/$d/$a/Packages.bz2  -O $v-updates/$a/Packages-$d.bz2
+      mv $v-updates/$a/Packages-$d $v-updates/$a/Packages-$d.old
+      bunzip2 $v-updates/$a/Packages-$d.bz2
        done
-    bunzip2 -f $v-updates/$a/*.bz2
   done
 done
 
 for f in raring-security/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 13.04 x86_64" --file $f --security
+  $PACMAN --product "Ubuntu 13.04 x86_64" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in raring-updates/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 13.04 x86_64" --file $f
+  $PACMAN --product "Ubuntu 13.04 x86_64" --file $f >> $PACMAN_LOG
 done
 echo
 for f in raring-security/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 13.04 i686" --file $f --security
+  $PACMAN --product "Ubuntu 13.04 i686" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in raring-updates/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 13.04 i686" --file $f
+  $PACMAN --product "Ubuntu 13.04 i686" --file $f >> $PACMAN_LOG
 done
 echo
 
 for f in quantal-security/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 12.10 x86_64" --file $f --security
+  $PACMAN --product "Ubuntu 12.10 x86_64" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in quantal-updates/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 12.10 x86_64" --file $f
+  $PACMAN --product "Ubuntu 12.10 x86_64" --file $f >> $PACMAN_LOG
 done
 echo
 for f in quantal-security/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 12.10 i686" --file $f --security
+  $PACMAN --product "Ubuntu 12.10 i686" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in quantal-updates/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 12.10 i686" --file $f
+  $PACMAN --product "Ubuntu 12.10 i686" --file $f >> $PACMAN_LOG
 done
 echo
 
 for f in precise-security/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 12.04 x86_64" --file $f --security
+  $PACMAN --product "Ubuntu 12.04 x86_64" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in precise-updates/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 12.04 x86_64" --file $f
+  $PACMAN --product "Ubuntu 12.04 x86_64" --file $f >> $PACMAN_LOG
 done
 echo
 for f in precise-security/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 12.04 i686" --file $f --security
+  $PACMAN --product "Ubuntu 12.04 i686" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in precise-updates/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 12.04 i686" --file $f
+  $PACMAN --product "Ubuntu 12.04 i686" --file $f >> $PACMAN_LOG
 done
 echo
 
 for f in lucid-security/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 10.04 x86_64" --file $f --security
+  $PACMAN --product "Ubuntu 10.04 x86_64" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in lucid-updates/binary-amd64/*
 do
-  $PACMAN --product "Ubuntu 10.04 x86_64" --file $f
+  $PACMAN --product "Ubuntu 10.04 x86_64" --file $f >> $PACMAN_LOG
 done
 echo
 for f in lucid-security/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 10.04 i686" --file $f --security
+  $PACMAN --product "Ubuntu 10.04 i686" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in lucid-updates/binary-i386/*
 do
-  $PACMAN --product "Ubuntu 10.04 i686" --file $f
+  $PACMAN --product "Ubuntu 10.04 i686" --file $f >> $PACMAN_LOG
 done
 echo
 
 for f in jessie-updates/binary-amd64/*
 do
-  $PACMAN --product "Debian 8.0 x86_64" --file $f --security
+  $PACMAN --product "Debian 8.0 x86_64" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in jessie-updates/binary-i386/*
 do
-  $PACMAN --product "Debian 8.0 i686" --file $f --security
+  $PACMAN --product "Debian 8.0 i686" --file $f --security >> $PACMAN_LOG
 done
 
 for f in wheezy-updates/binary-amd64/*
 do
-  $PACMAN --product "Debian 7.0 x86_64" --file $f --security
+  $PACMAN --product "Debian 7.0 x86_64" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in wheezy-updates/binary-i386/*
 do
-  $PACMAN --product "Debian 7.0 i686" --file $f --security
+  $PACMAN --product "Debian 7.0 i686" --file $f --security >> $PACMAN_LOG
 done
 
 for f in squeeze-updates/binary-amd64/*
 do
-  $PACMAN --product "Debian 6.0 x86_64" --file $f --security
+  $PACMAN --product "Debian 6.0 x86_64" --file $f --security >> $PACMAN_LOG
 done
 echo
 for f in squeeze-updates/binary-i386/*
 do
-  $PACMAN --product "Debian 6.0 i686" --file $f --security
+  $PACMAN --product "Debian 6.0 i686" --file $f --security >> $PACMAN_LOG
 done
 
 cp $DIR/config.db $DIR/config.db-$DATE