Hi, This will shut up the annoying warnings on hs-* packages during pkg_add -u.
It's ugly, but IMHO it doesn't cause any harm for normal users of ghc-pkg, because no sane person would ever run something like ghc-pkg unregister bytestring -v0 --force manually (where both -v0 and --force are given). Heck, nobody is supposed to use the register/unregister subcommands of ghc-pkg at all, except when fiddling with an already broken hs-* package repository. So, if anyone runs this manually, he should know what he's doing. And the "warning" message is wrong anyway, because with --force, it should read "unregistering blah *will* break the following packages:" Comments, or any suggestions for better solutions? Ciao, Kili Index: Makefile =================================================================== RCS file: /cvs/ports/lang/ghc/Makefile,v retrieving revision 1.84 diff -u -p -r1.84 Makefile --- Makefile 11 Oct 2012 11:05:02 -0000 1.84 +++ Makefile 4 Nov 2012 20:18:28 -0000 @@ -11,7 +11,7 @@ COMMENT-doc = documentation for GHC DISTNAME = ghc-${MODGHC_VER} PKGNAME-main = ghc-${MODGHC_VER} -REVISION-main = 1 +REVISION-main = 2 PKGNAME-doc = ghc-doc-${MODGHC_VER} CATEGORIES = lang devel HOMEPAGE = http://www.haskell.org/ghc/ Index: patches/patch-utils_ghc-pkg_Main_hs =================================================================== RCS file: patches/patch-utils_ghc-pkg_Main_hs diff -N patches/patch-utils_ghc-pkg_Main_hs --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-utils_ghc-pkg_Main_hs 4 Nov 2012 20:18:28 -0000 @@ -0,0 +1,17 @@ +$OpenBSD$ + +Horrible hack to get rid of the annoying warnings when running +pkg_add -u. This means that you do NOT get any such warning when +running ghc-pkg unregister ... -v0 --force. + +--- utils/ghc-pkg/Main.hs.orig Wed Jun 6 19:10:25 2012 ++++ utils/ghc-pkg/Main.hs Sun Nov 4 20:45:43 2012 +@@ -915,7 +915,7 @@ modifyPackage fn pkgid verbosity my_flags force = do + new_broken = map sourcePackageId (brokenPackages (allPackagesInStack new_stack)) + newly_broken = filter (`notElem` map sourcePackageId old_broken) new_broken + -- +- when (not (null newly_broken)) $ ++ when (not (null newly_broken || (force == ForceAll && verbosity <= Silent))) $ + dieOrForceAll force ("unregistering " ++ display pkgid ++ + " would break the following packages: " + ++ unwords (map display newly_broken))