From 0f85d1ba6a21ba9426fcf3c867227e48573e4cdf Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Sat, 14 Nov 2009 12:42:19 +0100 Subject: [PATCH] Integrate 01-packages, meant as package validator. --- debian/changelog | 4 +++- etc/grml/fai/config/scripts/GRMLBASE/01-packages | 28 ++++++++++++++++++++++++ grml-live | 7 ++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100755 etc/grml/fai/config/scripts/GRMLBASE/01-packages diff --git a/debian/changelog b/debian/changelog index 97ba6ce..9e8f41b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 Sat, 14 Nov 2009 12:20:17 +0100 + -- Michael Prokop 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 index 0000000..9dc2aad --- /dev/null +++ b/etc/grml/fai/config/scripts/GRMLBASE/01-packages @@ -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 +# 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 diff --git a/grml-live b/grml-live index 3d74d29..20df250 100755 --- 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'" -- 2.1.4