Integrate 01-packages, meant as package validator.
authorMichael Prokop <mika@grml.org>
Sat, 14 Nov 2009 11:42:19 +0000 (12:42 +0100)
committerMichael Prokop <mika@grml.org>
Sat, 14 Nov 2009 13:34:57 +0000 (14:34 +0100)
debian/changelog
etc/grml/fai/config/scripts/GRMLBASE/01-packages [new file with mode: 0755]
grml-live

index 97ba6ce..9e8f41b 100644 (file)
@@ -10,8 +10,10 @@ grml-live (0.9.33) UNRELEASED; urgency=low
     - move all grml-* packages that used to be part of all Grml
       flavours to GRMLBASE and drop them from the flavour specific
       configuration instead
+  * Integrate /etc/grml/fai/config/scripts/GRMLBASE/01-packages
+    which is meant to be used as package installation validator.
 
- -- Michael Prokop <mika@grml.org>  Sat, 14 Nov 2009 12:20:17 +0100
+ -- Michael Prokop <mika@grml.org>  Sat, 14 Nov 2009 12:38:04 +0100
 
 grml-live (0.9.32) unstable; urgency=low
 
diff --git a/etc/grml/fai/config/scripts/GRMLBASE/01-packages b/etc/grml/fai/config/scripts/GRMLBASE/01-packages
new file mode 100755 (executable)
index 0000000..9dc2aad
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+# Filename:      /etc/grml/fai/config/scripts/GRMLBASE/01-packages
+# Purpose:       check for packages that have been requested but could not be installed
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2 or any later version.
+################################################################################
+
+set -u
+set -e
+
+[ -r /etc/grml/grml-live.conf ]  && . /etc/grml/grml-live.conf
+[ -r /etc/grml/grml-live.local ] && . /etc/grml/grml-live.local
+
+
+if ! [ -r "$target/tmp/packages.list" ] ; then
+   echo "No $target/tmp/packages.list found, will not run package validation check."
+else
+   printf "Validating package list: "
+   if $ROOTCMD dpkg --list $(grep -v '^#' $target/tmp/packages.list) >/dev/null 2>$LOGDIR/package_errors.log ; then
+      printf "done - no errors found\n"
+   else
+      printf "failed (there have been errors, find them at $LOGDIR/package_errors.txt)\n"
+   fi
+fi
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=3
index 3d74d29..20df250 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -554,6 +554,13 @@ else
          grep 'FAILED with exit code' $CHECKLOG/shell.log >> $LOGFILE && ERROR=2
       fi
 
+      # package validator
+      if [ -r "$CHECKLOG/package_errors.log" ] && grep -q '[a-z]' "$CHECKLOG/package_errors.log" ; then
+         ewarn "The following packages were requested for installation but could not be processed:"
+         cat $CHECKLOG/package_errors.log
+         eend 0
+      fi
+
       if [ -n "$ERROR" ] ; then
          log    "Error: there was a critical error [${ERROR}] during execution of stage 'fai dirinstall' [$(date)]"
          eerror "Error: there was a critical error during execution of stage 'fai dirinstall'"