diff options
author | Joshua Ismael Haase Hernandez <hahj87@gmail.com> | 2011-05-19 12:44:24 -0500 |
---|---|---|
committer | Joshua Ismael Haase Hernandez <hahj87@gmail.com> | 2011-05-19 12:44:24 -0500 |
commit | 071445e6a2bb31ddf638e6f2e5362953b47e72dc (patch) | |
tree | 9ec266d72aaa5971dee2d1abbe2de511d971de87 /libre/pacman/pacman.install | |
parent | c14218d562c03601d6d23666f77ed0c2f0025c1b (diff) | |
parent | b8ea4461e461f0e1782e28b5810eb811423afa79 (diff) |
Merge branch 'master' of vparabola:~/abslibre-pre-mips64el into pre
Conflicts:
core/heimdal/PKGBUILD
extra/apache-ant/PKGBUILD
extra/aria2/PKGBUILD
extra/bs/PKGBUILD
extra/dosbox/PKGBUILD
extra/ettercap-gtk/PKGBUILD
extra/gqmpeg/PKGBUILD
extra/gtk-theme-switch2/PKGBUILD
extra/icecast/PKGBUILD
extra/kmldonkey/PKGBUILD
extra/kmplayer/PKGBUILD
extra/libbtctl/PKGBUILD
extra/libx86/PKGBUILD
extra/mc/PKGBUILD
extra/monotone/PKGBUILD
extra/nbsmtp/PKGBUILD
extra/nickle/PKGBUILD
extra/nppangband/PKGBUILD
extra/numlockx/PKGBUILD
extra/python-gtkglext/PKGBUILD
extra/speedcrunch/PKGBUILD
extra/vbetool/PKGBUILD
libre/xchat-gnome-libre/PKGBUILD
libre/xchat-gnome-libre/gtk2-2.20.patch
libre/xchat-gnome-libre/xchat-gnome-0.26.1-deprecated-symbol.patch
libre/xchat-gnome-libre/xchat-gnome.install
Diffstat (limited to 'libre/pacman/pacman.install')
-rw-r--r-- | libre/pacman/pacman.install | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libre/pacman/pacman.install b/libre/pacman/pacman.install new file mode 100644 index 000000000..0e598bb4b --- /dev/null +++ b/libre/pacman/pacman.install @@ -0,0 +1,62 @@ +#!/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 + if [ "$(vercmp $2 3.5.0)" -lt 0 ]; then + _warnupgrade + fi +} + +_warnupgrade() { + echo ">>> The pacman database format has changed as of pacman 3.5.0." + echo ">>> You will need to run \`pacman-db-upgrade\` as root." + echo ">>>" +} + +_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 +} |