Improvements to ghc-updater thanks to kosmikus and with help from ferdy
authorDuncan Coutts <dcoutts@gentoo.org>
Mon, 13 Mar 2006 17:16:20 +0000 (17:16 +0000)
committerDuncan Coutts <dcoutts@gentoo.org>
Mon, 13 Mar 2006 17:16:20 +0000 (17:16 +0000)
Package-Manager: portage-2.1_pre5-r4

dev-lang/ghc/ChangeLog
dev-lang/ghc/Manifest
dev-lang/ghc/files/ghc-updater
dev-lang/ghc/ghc-6.4.1-r2.ebuild

index 69165b02ecf305db72b3c661d5603327f78d8e3c..fef8989695e8892aaaaca55674e18c34fcbab4db 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for dev-lang/ghc
 # Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.82 2006/03/13 13:34:17 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ChangeLog,v 1.83 2006/03/13 17:16:20 dcoutts Exp $
+
+  13 Mar 2006; Duncan Coutts <dcoutts@gentoo.org> files/ghc-updater,
+  ghc-6.4.1-r2.ebuild:
+  Improvements to ghc-updater thanks to kosmikus and with help from ferdy
 
   13 Mar 2006; Jeroen Roovers <jer@gentoo.org> ghc-6.4.1-r2.ebuild:
   Marked ~hppa (bug #125389).
index b5d7dbc437019cc00683219a56086cffb92d9220..35d4d16c6c499eadf0b19f5f49a85fa4c0220842 100644 (file)
@@ -1,6 +1,9 @@
-MD5 b0d8f2d2cc16c3e7edcd7693606ee4a7 ChangeLog 14428
-RMD160 4edfc629b4bb36a4675dabd23e8420865788afe3 ChangeLog 14428
-SHA256 71e6f01282873e7166d44e97551fe901430e25192f0ed32e2a556ad59e8c4617 ChangeLog 14428
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+MD5 dec90029ac3ef52da17b63d2828b13a3 ChangeLog 14599
+RMD160 b24392445020b6a0e2b4d99fdece8dfc353cafaa ChangeLog 14599
+SHA256 d59145b2ab957936b08e94cf7a1bc4b2c76c0af119d66d9be682fd6b7ad6884f ChangeLog 14599
 MD5 7e423c353b08a2c05693d13f21e067d0 files/depsort.py 1958
 RMD160 4192ad9ed14064a9da42ce1faedcf28996094da3 files/depsort.py 1958
 SHA256 7406f639d17b8acab6a1db7e398e74379b44950d4821bc36901abd3455d63b3d files/depsort.py 1958
@@ -25,18 +28,25 @@ SHA256 7519b2fa9a9faf4c3545ed471803f85bc102b2428eb9c53ea15ae457271d28b9 files/gh
 MD5 f55d9cead45de0979d9650dccde5e168 files/ghc-6.4.1-openal.patch 1270
 RMD160 fa7b57dc78cc36c9d74e55bc4873e6efc321f353 files/ghc-6.4.1-openal.patch 1270
 SHA256 fe6db1cf73571bca4af195321112985201e695cf67ed889cf626e5dc2b54b67e files/ghc-6.4.1-openal.patch 1270
-MD5 af174f2e566a288f0e2276883a866827 files/ghc-updater 9075
-RMD160 8fd05ff7a0bdc19b5d0041906de8c6f7e1b99a8f files/ghc-updater 9075
-SHA256 3da2c1642c63c98e2b2fa8634496ad5e0a62404aaf4775c9a2eee6463c036216 files/ghc-updater 9075
+MD5 e7ba0887c43fd8333a4d1bd92c184244 files/ghc-updater 9045
+RMD160 b044a26add18464b583702f3cac667521c5eb06f files/ghc-updater 9045
+SHA256 eafc2eb58a9c1ad0263fd498cad00f50b0d04860cd8e26aa201910f77d74efbe files/ghc-updater 9045
 MD5 49113531ecf3c15247194f067ffe00bd ghc-6.2.2.ebuild 5582
 RMD160 b028ea26d634687c73fd8d688f6088d253230f33 ghc-6.2.2.ebuild 5582
 SHA256 4473941a958beec2da286f5823b62def6737504cd0524a4dcd6aa777847ccd1d ghc-6.2.2.ebuild 5582
-MD5 6a18274465ad19002c0b8b9879f3f3c7 ghc-6.4.1-r2.ebuild 6467
-RMD160 f7f5a963fc7492cc02962dee04598bbadf8bb51e ghc-6.4.1-r2.ebuild 6467
-SHA256 ecb2234bda7ddb07b6bd1ed1fc1b3ca60e6de2a2c3529a709826766a029b45cf ghc-6.4.1-r2.ebuild 6467
+MD5 24b2e3fc858f218f2bc437e51a1e87af ghc-6.4.1-r2.ebuild 6535
+RMD160 7b8597e0623dd89e5472e864a0fdc5a82a31cb83 ghc-6.4.1-r2.ebuild 6535
+SHA256 e5c6fbdd2935eb5b6a24f0c6fb8dfddad0bfca205696719a2e4f418b439e0878 ghc-6.4.1-r2.ebuild 6535
 MD5 9620778937a1aff6ef88863c81222cfc ghc-6.4.ebuild 6109
 RMD160 a6588f6fdd9d5420e13ba1ef545ae35cf647a523 ghc-6.4.ebuild 6109
 SHA256 8bd0631d7a331b61f8686d8c1db0ed7d30a689a723ff53d9a029e3f8ea406a25 ghc-6.4.ebuild 6109
 MD5 c694674dcbef799cd4fdb6914683ebff metadata.xml 223
 RMD160 7783e6057effb8b8f0b79cffe8b557b32c633839 metadata.xml 223
 SHA256 1d00c8be162a6cb87b3de440b3e63e10b39c12d56e8fbfe592e75aed872b2508 metadata.xml 223
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.2.2 (GNU/Linux)
+
+iD8DBQFEFajZ/B0cxt+cq+wRAp88AJ9aPsxm0Fn/CiLXJLBcpn2KuOY2AACdGfkk
+HCVNWd2A0hZBVCaYewcvcco=
+=djd8
+-----END PGP SIGNATURE-----
index e013ee9319363720ead18261f75de03919a1f2b5..32e3343c88ca5de8035fb9e393c82444b18bae51 100755 (executable)
@@ -7,7 +7,6 @@
 # This script can be run as many times as you like. It will log the 
 # results in /var/log/ghc-updater.log
 #
-# OLD_GHC_VER     = old ghc version we are upgrading from
 # NEW_GHC_VER     = new ghc version we are upgrading to
 # PKGS_EXCEPTIONS = packages that should NOT be re-emerged for any reason
 # PKGS_MANUAL     = packages that should be re-emerged even if they don't
 # PKGS_MASKED     = list of packages that are installed, but masked.
 #
 
-OLD_GHC_VER=$(ls -d /usr/lib/ghc-* | sed 's:^.*ghc-::' \
-               | sort -g | tail -n 2 | head -n 1)
+shopt -s nullglob
+
 NEW_GHC_VER=$(ghc --version | sed 's:^.*version ::')
+NEW_GHC_LIBDIR=$(ghc --print-libdir)
 
 PKGS_EXCEPTIONS="dev-lang/ghc dev-lang/ghc-bin"
 PKGS_MANUAL=""
@@ -50,8 +50,6 @@ usage() {
        echo "usage: ghc-updater [options]"
        echo " -h, -?, --help   help"
        echo " -p, --pretend    pretend (don't do anything)"
-       echo " -o version       set old ghc version to upgrade from [default: ${OLD_GHC_VER}]"
-       echo " -n version       set new ghc version to upgrade to [default: ${NEW_GHC_VER}]"
 }
 
 # 
@@ -68,14 +66,6 @@ while [ -n "$1" ]; do
                -p | --pretend)
                        PRETEND=1
                        ;;
-               -o)
-                       shift
-                       OLD_GHC_VER="$1"
-                       ;;
-               -n)
-                       shift
-                       NEW_GHC_VER="$1"
-                       ;;
                *)
                        usage
                        echo "unrecognised option: $1"
@@ -145,14 +135,22 @@ fi
 
 #
 #
-# Find all packages that have installed something in 
-# /usr/lib/ghc-${OLD_GHC_VER}
-# /usr/lib/ghc-bin-${OLD_GHC_VER}
+# Find all packages that have installed something in
+# directories of the form
+#   /usr/lib/ghc-<version>
+# or similar.
+#
+#   /usr/lib/ghc-bin-<version>
+# is included because an old ghc-bin ebuild was buggy and
+# installed to a wrong dir.
 #
-OLD_PACKAGES_DIR="/usr/lib/ghc-${OLD_GHC_VER} /usr/lib/ghc-bin-${OLD_GHC_VER} \
-       /opt/ghc/lib/ghc-${OLD_GHC_VER}"
+OLD_PACKAGES_DIR=""
+# Exclude new library dir and lib symlinks:
+for d in /{usr,opt/ghc}/lib{,64}/ghc{,-bin}-*; do
+    [[ "${d}" == ${NEW_GHC_LIBDIR} ]] || [[ -L ${d%/*} ]] || OLD_PACKAGES_DIR="${OLD_PACKAGES_DIR}${d} "
+done
 
-eloginfo "Starting GHC Updater from ${OLD_GHC_VER} to ${NEW_GHC_VER} :"
+eloginfo "Starting GHC Updater to $(which ghc), version ${NEW_GHC_VER} :"
 eloginfo "Searching for packages with files in the directories:"
 eloginfo "${OLD_PACKAGES_DIR}"
 
@@ -175,9 +173,9 @@ for content in `find ${PKG_DBDIR} -name CONTENTS`; do
     fi
 
     for d in ${OLD_PACKAGES_DIR}; do
-        if fgrep "${d}" ${content} > /dev/null; then
+        if fgrep "${d}/" ${content} > /dev/null; then
             PKGS_TO_REMERGE="${PKGS_TO_REMERGE} ${CATPKGVER}"
-            elogecho "Adding to list: ${CATPKGVER}"
+            elogecho "${CATPKGVER} has files in ${d}"
         fi
     done
 done    
@@ -194,7 +192,7 @@ PKGS_MISSING=""
 
 MASKED_STRING="been masked"
 BLOCKED_STRING="is blocking"
-MISSING_STRING="there are no masked or unmasked ebuilds to satisfy"
+MISSING_STRING='there are no ebuilds to satisfy'
 
 for pkg in ${PKGS_TO_REMERGE}; do
    emerge_output="$(emerge -p '>='$pkg 2>&1)"
@@ -226,7 +224,11 @@ if [[ -z ${DEPSORT} ]]; then
 fi
 PKGS_OK_SORTED="$(${PORTAGE_PYTHON} ${DEPSORT} ${PKGS_OK} | xargs)"
 
-eloginfo "Preparing to merge these packages in this order:"
+if [[ -n ${PRETEND} ]]; then
+       eloginfo "These are the packages that would be merged, in order:"
+else
+       eloginfo "Preparing to merge these packages in this order:"
+fi
 for pkg in $PKGS_OK_SORTED; do
        elogecho ">=$pkg"
 done
index 55f87988284f864566093177db79c0bb6e477fbf..a22808a06a6a7016d0a08d2772613579bf0c967d 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2006 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.4.1-r2.ebuild,v 1.5 2006/03/13 13:34:17 jer Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.4.1-r2.ebuild,v 1.6 2006/03/13 17:16:20 dcoutts Exp $
 
 # Brief explanation of the bootstrap logic:
 #
@@ -198,8 +198,9 @@ pkg_postinst () {
        einfo "want to unmerge it. It is no longer needed."
        einfo
        ewarn "IMPORTANT:"
-       ewarn "If you upgrade from another ghc version, please run"
-       ewarn "/usr/sbin/ghc-updater to re-merge all ghc-based"
-       ewarn "Haskell libraries."
+       ewarn "If you have upgraded from another version of ghc or"
+       ewarn "if you have switched from ghc-bin to ghc, please run:"
+       ewarn " /usr/sbin/ghc-updater"
+       ewarn "to re-merge all ghc-based Haskell libraries."
 }