diff options
author | James Meyer <james.meyer@operamail.com> | 2010-09-10 02:02:41 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2010-09-10 02:02:41 (GMT) |
commit | f2fbbf4a451664166f98f042e68edc146e9698fd (patch) | |
tree | c9aa8d9f084e1edb4cace55b340e8698c82b0c9e /abs/core-testing/pacman/old/pacman.install | |
parent | 29b4f1f1a35fbe81a50f8b96752c58eafc2f86a4 (diff) | |
parent | 6264aaba64f4165fd714220e10c4900401b85617 (diff) | |
download | linhes_pkgbuild-f2fbbf4a451664166f98f042e68edc146e9698fd.zip linhes_pkgbuild-f2fbbf4a451664166f98f042e68edc146e9698fd.tar.gz linhes_pkgbuild-f2fbbf4a451664166f98f042e68edc146e9698fd.tar.bz2 |
Merge branch 'HEAD' of ssh://jams@knoppmyth.net/mount/repository/LinHES-PKGBUILD
Diffstat (limited to 'abs/core-testing/pacman/old/pacman.install')
-rw-r--r-- | abs/core-testing/pacman/old/pacman.install | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/abs/core-testing/pacman/old/pacman.install b/abs/core-testing/pacman/old/pacman.install new file mode 100644 index 0000000..294222e --- /dev/null +++ b/abs/core-testing/pacman/old/pacman.install @@ -0,0 +1,53 @@ +#!/bin/sh +# arg 1: the new package version +# arg 2: the old package version +post_upgrade() { + # one time stuff for md5sum issue with older pacman versions + if [ "$(vercmp $2 3.0.2)" -lt 0 ]; then + _resetbackups + fi +} + +_resetbackups() { + echo ">>> Performing one-time reset of NoUpgrade md5sums. After this reset" + echo ">>> you are able to remove all NoUpgrade lines of already protected" + echo ">>> files from pacman.conf." + echo ">>>" + + # path variables + pacconf="/etc/pacman.conf" + dbpath="/var/lib/pacman/local" + + # get a list of NoUpgrade files from the user's pacman.conf + echo ">>> Retrieving pacman.conf NoUpgrade list..." + config=$(grep "^NoUpgrade" $pacconf | cut -d'=' -f2) + # add the standard list of files, even if they are already above + config="$config \ + etc/passwd etc/group etc/shadow etc/sudoers \ + etc/fstab etc/raidtab etc/ld.so.conf \ + etc/rc.conf etc/rc.local \ + etc/modprobe.conf etc/modules.conf \ + etc/lilo.conf boot/grub/menu.lst" + + # blank md5sum for use in sed expression + zeroes='00000000000000000000000000000000' + + for file in $config; do + echo ">>> -> finding owner of /$file..." + line=$(LC_ALL=C LANG=C pacman -Qo /$file 2>/dev/null) + # if file is owned by a package, go find its incorrectly stored sum + if [ ! -z "$line" ]; then + # get the name and version of the package owning file + name=$(echo $line | awk '{print $5}') + version=$(echo $line | awk '{print $6}') + # set the path to the backup array holding the md5sum + path="$dbpath/$name-$version/files" + # run a sed on the path to reset the line containing $file + # NOTE: literal tab characters in sed expression after $file + echo ">>> -> resetting sum of /$file..." + sed -i "s#$file [0-9a-fA-F]*#$file $zeroes#" $path + else + echo ">>> -> $file is unowned." + fi + done +} |