--- /dev/null
+Taken from gtk2hs upstream as:
+Thu Dec 10 20:12:37 EET 2009 Duncan Coutts <duncan@haskell.org>
+ * Remove leading space in FFI import names
+ ghc-6.12 complains about this.
+
+Thu Dec 10 20:11:44 EET 2009 Duncan Coutts <duncan@haskell.org>
+ * Disable c2hs support for C long double
+ The CLDouble type is missing in ghc-6.12, though it may return.
+ The Gtk+ headers do not use long double, so it's ok.
+
+Thu Dec 10 20:10:07 EET 2009 Duncan Coutts <duncan@haskell.org>
+ * Make c2hs read text files in latin1 encoding
+ The c2hs lexer cannot cope with code points over 255.
+ Fixes the ghc-6.12 build problem where it consumes all memory.
+diff --git a/tools/c2hs/base/state/CIO.hs b/tools/c2hs/base/state/CIO.hs
+index e4497cc..ce37f22 100644
+--- a/tools/c2hs/base/state/CIO.hs
++++ b/tools/c2hs/base/state/CIO.hs
+@@ -1,3 +1,5 @@
++{-# LANGUAGE CPP #-}
++{-# OPTIONS_GHC -cpp #-}
+ -- Compiler Toolkit: Compiler I/O
+ --
+ -- Author : Manuel M T Chakravarty
+@@ -73,6 +75,9 @@ where
+ import IO
+ import Directory
+ import System
++#if __GLASGOW_HASKELL__ >= 612
++import System.IO (hSetEncoding, latin1)
++#endif
+
+ import FileOps (fileFindIn, mktemp)
+ import StateBase (PreCST, liftIO)
+@@ -82,7 +87,12 @@ import StateBase (PreCST, liftIO)
+ -- -------------
+
+ openFileCIO :: FilePath -> IOMode -> PreCST e s Handle
+-openFileCIO p m = liftIO (openFile p m)
++openFileCIO p m = liftIO $ do
++ hnd <- openFile p m
++#if __GLASGOW_HASKELL__ >= 612
++ hSetEncoding hnd latin1
++#endif
++ return hnd
+
+ hCloseCIO :: Handle -> PreCST e s ()
+ hCloseCIO h = liftIO (hClose h)
+@@ -103,10 +113,15 @@ hPutStrLnCIO :: Handle -> String -> PreCST e s ()
+ hPutStrLnCIO h s = liftIO (hPutStrLn h s)
+
+ writeFileCIO :: FilePath -> String -> PreCST e s ()
+-writeFileCIO fname contents = liftIO (writeFile fname contents)
++writeFileCIO fname contents = do
++ hnd <- openFileCIO fname WriteMode
++ hPutStrCIO hnd contents
++ hCloseCIO hnd
+
+ readFileCIO :: FilePath -> PreCST e s String
+-readFileCIO fname = liftIO (readFile fname)
++readFileCIO fname = do
++ hnd <- openFileCIO fname ReadMode
++ liftIO (hGetContents hnd)
+
+ printCIO :: Show a => a -> PreCST e s ()
+ printCIO a = liftIO (print a)
+diff --git a/tools/c2hs/gen/CInfo.hs b/tools/c2hs/gen/CInfo.hs
+index 36c8c50..e11401c 100644
+--- a/tools/c2hs/gen/CInfo.hs
++++ b/tools/c2hs/gen/CInfo.hs
+@@ -120,7 +120,7 @@ size CULongPT = Storable.sizeOf (undefined :: CULong)
+ size CULLongPT = Storable.sizeOf (undefined :: CLLong)
+ size CFloatPT = Storable.sizeOf (undefined :: CFloat)
+ size CDoublePT = Storable.sizeOf (undefined :: CDouble)
+-size CLDoublePT = Storable.sizeOf (undefined :: CLDouble)
++--size CLDoublePT = Storable.sizeOf (undefined :: CLDouble)
+ size (CSFieldPT bs) = -bs
+ size (CUFieldPT bs) = -bs
+
+@@ -145,7 +145,7 @@ alignment CULongPT = Storable.alignment (undefined :: CULong)
+ alignment CULLongPT = Storable.alignment (undefined :: CULLong)
+ alignment CFloatPT = Storable.alignment (undefined :: CFloat)
+ alignment CDoublePT = Storable.alignment (undefined :: CDouble)
+-alignment CLDoublePT = Storable.alignment (undefined :: CLDouble)
++--alignment CLDoublePT = Storable.alignment (undefined :: CLDouble)
+ alignment (CSFieldPT bs) = fieldAlignment bs
+ alignment (CUFieldPT bs) = fieldAlignment bs
+
+diff --git a/tools/c2hs/gen/GenBind.hs b/tools/c2hs/gen/GenBind.hs
+index fb37e43..11c63b7 100644
+--- a/tools/c2hs/gen/GenBind.hs
++++ b/tools/c2hs/gen/GenBind.hs
+@@ -725,10 +725,12 @@ callImport hook isPure isUns ideLexeme hsLexeme cdecl pos =
+ --
+ foreignImport :: String -> String -> String -> Bool -> ExtType -> String
+ foreignImport header ident hsIdent isUnsafe ty =
+- "foreign import ccall " ++ safety ++ " \"" ++ header ++ " " ++ ident ++
++ "foreign import ccall " ++ safety ++ " \"" ++ entity ++
+ "\"\n " ++ hsIdent ++ " :: " ++ showExtType ty ++ "\n"
+ where
+ safety = if isUnsafe then "unsafe" else "safe"
++ entity | null header = ident
++ | otherwise = header ++ " " ++ ident
+
+ -- produce a Haskell function definition for a fun hook
+ --
--- /dev/null
+Taken (and slightly modified) from gtk2hs upstream as:
+Thu Dec 10 19:29:42 EET 2009 Duncan Coutts <duncan@haskell.org>
+ * Handle installed package ids for ghc-6.12
+Fri Feb 12 10:23:26 EET 2010 Axel.Simon@in.tum.de
+ * Avoid using rec because of -XDoRec notation
+diff --git a/acinclude.m4 b/acinclude.m4
+index a109713..d2d576d 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -98,8 +98,14 @@ if test "$USERPKGCONF" = "yes"; then
+ fi
+ if echo "${C}" | ${GREP} $1 > /dev/null 2> /dev/null
+ then
+- $2=$(for pkg in ${C} ; do echo "${pkg}" | sed -e 's/^[[A-Za-z0-9-]]*-\([[0-9.]]*\)$/\1/' ; done | sort -r -n | head -n1)
+- AC_MSG_RESULT([yes, version $$2])
++ VER=$(for pkg in ${C} ; do echo "${pkg}" | sed -e 's/^[[A-Za-z0-9-]]*-\([[0-9.]]*\)$/\1/' ; done | sort -r -n | head -n1)
++ $2=${VER}
++ if test "${GHC_VERSION_612}" = "yes"; then
++ $3=$(${GHCPKG} field $1-${VER} id | cut -d' ' -f2)
++ else
++ $3=$1-${VER}
++ fi
++ AC_MSG_RESULT([yes, version ${VER}])
+ else
+ AC_MSG_ERROR([
+ Missing GHC package "$1". Install "$1" and re-run ./configure
+diff --git a/cairo/cairo.package.conf.in b/cairo/cairo.package.conf.in
+index 8195597..5651b8d 100644
+--- a/cairo/cairo.package.conf.in
++++ b/cairo/cairo.package.conf.in
+@@ -1,5 +1,6 @@
+ name: cairo
+ version: @PACKAGE_VERSION@
++id: cairo-@PACKAGE_VERSION@
+ license: BSD3
+ license-file: cairo/COPYRIGHT
+ copyright: (c) Paolo Martini 2005, (c) Abraham Egnor 2003, 2004, (c) Aetion Technologies LLC 2004
+@@ -15,5 +16,5 @@ hs-libraries: HScairo
+ extra-libraries: @CAIRO_LIBS_CQ@
+ include-dirs: @CAIRO_CFLAGS_CQ@
+ includes: @CAIRO_HEADERS@
+-depends: base-@PKG_BASE_VERSION@ mtl-@PKG_MTL_VERSION@ glib-@PACKAGE_VERSION@ @CAIRO_SPLITBASE_DEPENDS@
++depends: @PKG_BASE_ID@ @PKG_MTL_ID@ glib-@PACKAGE_VERSION@ @CAIRO_SPLITBASE_DEPENDS@
+ ld-options: @CAIRO_LIBEXTRA_CQ@
+diff --git a/configure.ac b/configure.ac
+index 185044f..eaa5eb7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -121,6 +121,9 @@ GTKHS_PROG_CHECK_VERSION($GHC_VERSION, -ge, 6.10,
+ GHC_VERSION_610=yes, GHC_VERSION_610=no)
+ AM_CONDITIONAL(GHC_VERSION_610, test "$GHC_VERSION_610" = "yes")
+
++GTKHS_PROG_CHECK_VERSION($GHC_VERSION, -ge, 6.12,
++ GHC_VERSION_612=yes, GHC_VERSION_612=no)
++
+ dnl Calculate a version number with 3 digits (i.e. 502 for 5.2)
+ GHC_VERSION_NUMBER=`echo $GHC_VERSION | $SED "s/[[0-9]*\.\([0-9]]*\).*/0\1/"`
+ GHC_VERSION_NUMBER=`echo $GHC_VERSION_NUMBER | $SED "s/[[0-9]*\([0-9][0-9]]\)/\1/"`
+@@ -234,39 +237,53 @@ AC_ARG_WITH(pkgconf,
+ [AS_HELP_STRING([--with-pkgconf=FILE], [GHC package file to install packages])],
+ [PKGCONF=$withval;],[PKGCONF=;])
+
++m4_pattern_allow([^PKG_])
+
+ dnl Check for various GHC packages:
+-GHC_PKG_CHECK(base,PKG_BASE_VERSION)
+-GTKHS_PROG_CHECK_VERSION($PKG_BASE_VERSION, -ge, 4.0,
+-AC_DEFINE(HAVE_NEW_CONTROL_EXCEPTION,[1],[Define if you have the new Control.Exception module (from GHC 6.10)]))
+-GHC_PKG_CHECK(haskell98,PKG_HASKELL98_VERSION)
+-GHC_PKG_CHECK(mtl,PKG_MTL_VERSION)
++GHC_PKG_CHECK(base, [PKG_BASE_VERSION], [PKG_BASE_ID])
++GHC_PKG_CHECK(haskell98, [PKG_HASKELL98_VERSION], [PKG_HASKELL98_ID])
++GHC_PKG_CHECK(mtl, [PKG_MTL_VERSION], [PKG_MTL_ID])
++if test "$HAVE_SPLIT_BASE" = "yes"; then
++ GHC_PKG_CHECK(bytestring, [PKG_BYTESTRING_VERSION], [PKG_BYTESTRING_ID])
++ GHC_PKG_CHECK(containers, [PKG_CONTAINERS_VERSION], [PKG_CONTAINERS_ID])
++ GHC_PKG_CHECK(array, [PKG_ARRAY_VERSION], [PKG_ARRAY_ID])
++ GHC_PKG_CHECK(old-time, [PKG_OLDTIME_VERSION], [PKG_OLDTIME_ID])
++ GHC_PKG_CHECK(pretty, [PKG_PRETTY_VERSION], [HSPKG_PRETTY_ID])
++
++ CAIRO_SPLITBASE_DEPENDS="${PKG_BYTESTRING_ID} ${PKG_ARRAY_ID}"
++ GTK_SPLITBASE_DEPENDS="${PKG_CONTAINERS_ID} ${PKG_ARRAY_ID}"
++ SOEGTK_SPLITBASE_DEPENDS="${PKG_OLDTIME_ID}"
++ GNOMEVFS_SPLITBASE_DEPENDS="${PKG_BYTESTRING_ID}"
++ GSTREAMER_SPLITBASE_DEPENDS="${PKG_BYTESTRING_ID}"
++fi
+ AC_SUBST(PKG_BASE_VERSION)
+ AC_SUBST(PKG_HASKELL98_VERSION)
+ AC_SUBST(PKG_MTL_VERSION)
+-if test "$HAVE_SPLIT_BASE" = "yes"; then
+- GHC_PKG_CHECK(bytestring,PKG_BYTESTRING_VERSION)
+- CAIRO_SPLITBASE_DEPENDS="bytestring-${PKG_BYTESTRING_VERSION}"
+- GHC_PKG_CHECK(containers, [PKG_CONTAINERS_VERSION])
+- GHC_PKG_CHECK(array, [PKG_ARRAY_VERSION])
+- GHC_PKG_CHECK(old-time, [PKG_OLDTIME_VERSION])
+- GHC_PKG_CHECK(pretty, [PKG_PRETTY_VERSION])
+- GTK_SPLITBASE_DEPENDS="containers-${PKG_CONTAINERS_VERSION} array-${PKG_ARRAY_VERSION}"
+- SOEGTK_SPLITBASE_DEPENDS="old-time-${PKG_OLDTIME_VERSION}"
+- GNOMEVFS_SPLITBASE_DEPENDS="bytestring-${PKG_BYTESTRING_VERSION}"
+- GSTREAMER_SPLITBASE_DEPENDS="bytestring-${PKG_BYTESTRING_VERSION}"
+-fi
+ AC_SUBST(PKG_BYTESTRING_VERSION)
+ AC_SUBST(PKG_CONTAINERS_VERSION)
+ AC_SUBST(PKG_ARRAY_VERSION)
+ AC_SUBST(PKG_OLDTIME_VERSION)
+ AC_SUBST(PKG_PRETTY_VERSION)
++
++AC_SUBST(PKG_BASE_ID)
++AC_SUBST(PKG_HASKELL98_ID)
++AC_SUBST(PKG_MTL_ID)
++AC_SUBST(PKG_BYTESTRING_ID)
++AC_SUBST(PKG_CONTAINERS_ID)
++AC_SUBST(PKG_ARRAY_ID)
++AC_SUBST(PKG_OLDTIME_ID)
++AC_SUBST(PKG_PRETTY_ID)
++
+ AC_SUBST(CAIRO_SPLITBASE_DEPENDS)
+ AC_SUBST(GTK_SPLITBASE_DEPENDS)
+ AC_SUBST(SOEGTK_SPLITBASE_DEPENDS)
+ AC_SUBST(GNOMEVFS_SPLITBASE_DEPENDS)
+ AC_SUBST(GSTREAMER_SPLITBASE_DEPENDS)
+
++GTKHS_PROG_CHECK_VERSION($PKG_BASE_VERSION, -ge, 4.0,
++AC_DEFINE(HAVE_NEW_CONTROL_EXCEPTION,[1],
++ [Define if you have the new Control.Exception module (from GHC 6.10)]))
++
+ dnl Check for the GTK&Co libraries. Use the special PKG_CHECK_MODULES
+ dnl macro from the pkg-config program.
+ PKG_CHECK_MODULES(GLIB,[glib-2.0 >= 2.0.0 gobject-2.0 >= 2.0.0], [], AC_MSG_ERROR([
+diff --git a/gconf/gconf.package.conf.in b/gconf/gconf.package.conf.in
+index b87b18f..7a3fd25 100644
+--- a/gconf/gconf.package.conf.in
++++ b/gconf/gconf.package.conf.in
+@@ -1,5 +1,6 @@
+ name: gconf
+ version: @PACKAGE_VERSION@
++id: gconf-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSgconf
+ extra-libraries: @GCONF_LIBS_CQ@
+ include-dirs: @GCONF_CFLAGS_CQ@
+ includes: gconf/gconf-client.h
+-depends: base-@PKG_BASE_VERSION@ glib-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ glib-@PACKAGE_VERSION@
+ ld-options: @GCONF_LIBEXTRA_CQ@
+diff --git a/gio/gio.package.conf.in b/gio/gio.package.conf.in
+index d026012..4bc25f0 100644
+--- a/gio/gio.package.conf.in
++++ b/gio/gio.package.conf.in
+@@ -1,5 +1,6 @@
+ name: gio
+ version: @PACKAGE_VERSION@
++id: gio-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSgio
+ extra-libraries: @GIO_LIBS_CQ@
+ include-dirs: @GIO_CFLAGS_CQ@, "${pkglibdir}/include"
+ includes: gio/gio.h
+-depends: base-@PKG_BASE_VERSION@ glib-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ glib-@PACKAGE_VERSION@
+ ld-options: @GIO_LIBEXTRA_CQ@
+diff --git a/glade/glade.package.conf.in b/glade/glade.package.conf.in
+index c975736..73020f8 100644
+--- a/glade/glade.package.conf.in
++++ b/glade/glade.package.conf.in
+@@ -1,5 +1,6 @@
+ name: glade
+ version: @PACKAGE_VERSION@
++id: glade-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSglade
+ extra-libraries: @LIBGLADE_LIBS_CQ@
+ include-dirs: @LIBGLADE_CFLAGS_CQ@
+ includes: glade/glade.h
+-depends: base-@PKG_BASE_VERSION@ gtk-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ gtk-@PACKAGE_VERSION@
+ ld-options: @LIBGLADE_LIBEXTRA_CQ@
+diff --git a/glib/glib.package.conf.in b/glib/glib.package.conf.in
+index 29393aa..72845f1 100644
+--- a/glib/glib.package.conf.in
++++ b/glib/glib.package.conf.in
+@@ -1,5 +1,6 @@
+ name: glib
+ version: @PACKAGE_VERSION@
++id: glib-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSglib
+ extra-libraries: @GLIB_LIBS_CQ@
+ include-dirs: @GLIB_CFLAGS_CQ@, "${pkglibdir}/include"
+ includes: glib.h, glib-object.h
+-depends: base-@PKG_BASE_VERSION@
++depends: @PKG_BASE_ID@
+ ld-options: @GLIB_LIBEXTRA_CQ@
+diff --git a/gnomevfs/gnomevfs.package.conf.in b/gnomevfs/gnomevfs.package.conf.in
+index 6ab0ce8..809f275 100644
+--- a/gnomevfs/gnomevfs.package.conf.in
++++ b/gnomevfs/gnomevfs.package.conf.in
+@@ -1,5 +1,6 @@
+ name: gnomevfs
+ version: @PACKAGE_VERSION@
++id: gnomevfs-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LGPLv3
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSgnomevfs
+ extra-libraries: @GNOMEVFS_LIBS_CQ@
+ include-dirs: @GNOMEVFS_CFLAGS_CQ@
+ includes: libgnomevfs/gnome-vfs.h libgnomevfs/gnome-vfs-mime.h
+-depends: glib-@PACKAGE_VERSION@ mtl-@PKG_MTL_VERSION@ @GNOMEVFS_SPLITBASE_DEPENDS@
++depends: glib-@PACKAGE_VERSION@ @PKG_MTL_ID@ @GNOMEVFS_SPLITBASE_DEPENDS@
+ ld-options: @GNOMEVFS_LIBEXTRA_CQ@
+diff --git a/gstreamer/gstreamer.package.conf.in b/gstreamer/gstreamer.package.conf.in
+index 62d2d0c..9020bb1 100644
+--- a/gstreamer/gstreamer.package.conf.in
++++ b/gstreamer/gstreamer.package.conf.in
+@@ -1,5 +1,6 @@
+ name: gstreamer
+ version: @PACKAGE_VERSION@
++id: gstreamer-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSgstreamer
+ extra-libraries: @GSTREAMER_LIBS_CQ@
+ include-dirs: @GSTREAMER_CFLAGS_CQ@
+ includes: gst/gst.h
+-depends: glib-@PACKAGE_VERSION@ mtl-@PKG_MTL_VERSION@ @GSTREAMER_SPLITBASE_DEPENDS@
++depends: glib-@PACKAGE_VERSION@ @PKG_MTL_ID@ @GSTREAMER_SPLITBASE_DEPENDS@
+ ld-options: @GSTREAMER_LIBEXTRA_CQ@
+diff --git a/gtk/Graphics/UI/Gtk/Display/StatusIcon.chs.pp b/gtk/Graphics/UI/Gtk/Display/StatusIcon.chs.pp
+index d5f8f00..05eb5e4 100644
+--- a/gtk/Graphics/UI/Gtk/Display/StatusIcon.chs.pp
++++ b/gtk/Graphics/UI/Gtk/Display/StatusIcon.chs.pp
+@@ -448,9 +448,9 @@ statusIconGetGeometry self =
+ (toStatusIcon self) nullPtr (castPtr recPtr) orPtr) >>= \b ->
+ if b
+ then do
+- rec <- peek recPtr
++ rec_ <- peek recPtr
+ or <- peek orPtr
+- return $ Just (rec,toEnum $ fromIntegral or)
++ return $ Just (rec_,toEnum $ fromIntegral or)
+ else return Nothing
+
+
+diff --git a/gtk/gtk.package.conf.in b/gtk/gtk.package.conf.in
+index ace6cdc..ed6c9ac 100644
+--- a/gtk/gtk.package.conf.in
++++ b/gtk/gtk.package.conf.in
+@@ -1,5 +1,6 @@
+ name: gtk
+ version: @PACKAGE_VERSION@
++id: gtk-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSgtk
+ extra-libraries: @GTK_LIBS_CQ@
+ include-dirs: @GTK_CFLAGS_CQ@
+ includes: gtk/gtk.h
+-depends: base-@PKG_BASE_VERSION@ mtl-@PKG_MTL_VERSION@ glib-@PACKAGE_VERSION@ @GTK_CAIRO_DEPEND@ @GTK_SPLITBASE_DEPENDS@
++depends: @PKG_BASE_ID@ @PKG_MTL_ID@ glib-@PACKAGE_VERSION@ @GTK_CAIRO_DEPEND@ @GTK_SPLITBASE_DEPENDS@
+ ld-options: @GTK_LIBEXTRA_CQ@
+diff --git a/gtkglext/gtkglext.package.conf.in b/gtkglext/gtkglext.package.conf.in
+index bb0d5e3..447036d 100644
+--- a/gtkglext/gtkglext.package.conf.in
++++ b/gtkglext/gtkglext.package.conf.in
+@@ -1,5 +1,6 @@
+ name: gtkglext
+ version: @PACKAGE_VERSION@
++id: gtkglext-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSgtkglext
+ extra-libraries: @GTKGLEXT_LIBS_CQ@
+ include-dirs: @GTKGLEXT_CFLAGS_CQ@
+ includes: gtk/gtkgl.h
+-depends: base-@PKG_BASE_VERSION@ gtk-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ gtk-@PACKAGE_VERSION@
+ ld-options: @GTKGLEXT_LIBEXTRA_CQ@
+diff --git a/gtksourceview2/gtksourceview2.package.conf.in b/gtksourceview2/gtksourceview2.package.conf.in
+index 34f0bfd..ba9f69d 100644
+--- a/gtksourceview2/gtksourceview2.package.conf.in
++++ b/gtksourceview2/gtksourceview2.package.conf.in
+@@ -1,5 +1,6 @@
+ name: gtksourceview2
+ version: @PACKAGE_VERSION@
++id: gtksourceview2-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -22,5 +23,5 @@ includes: gtksourceview/gtksourcebuffer.h,
+ gtksourceview/gtksourcestyleschememanager.h,
+ gtksourceview/gtksourceview.h,
+ gtksourceview/gtksourceview-typebuiltins.h
+-depends: base-@PKG_BASE_VERSION@ gtk-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ gtk-@PACKAGE_VERSION@
+ ld-options: @GTKSOURCEVIEW2_LIBEXTRA_CQ@
+diff --git a/mozembed/mozembed.package.conf.in b/mozembed/mozembed.package.conf.in
+index 0bea05f..ef1872e 100644
+--- a/mozembed/mozembed.package.conf.in
++++ b/mozembed/mozembed.package.conf.in
+@@ -1,5 +1,6 @@
+ name: mozembed
+ version: @PACKAGE_VERSION@
++id: mozembed-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -13,5 +14,5 @@ hs-libraries: HSmozembed
+ extra-libraries: @MOZEMBED_LIBS_CQ@
+ include-dirs: @MOZEMBED_CFLAGS_CQ@
+ includes: gtkmozembed.h
+-depends: base-@PKG_BASE_VERSION@ gtk-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ gtk-@PACKAGE_VERSION@
+ ld-options: @MOZEMBED_LIBEXTRA_CQ@
+diff --git a/soegtk/soegtk.package.conf.in b/soegtk/soegtk.package.conf.in
+index 61f1232..5208a6f 100644
+--- a/soegtk/soegtk.package.conf.in
++++ b/soegtk/soegtk.package.conf.in
+@@ -1,5 +1,6 @@
+ name: soegtk
+ version: @PACKAGE_VERSION@
++id: soegtk-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -10,4 +11,4 @@ exposed-modules: Graphics.SOE.Gtk
+ import-dirs: "${pkglibdir}/imports/soegtk"
+ library-dirs: @GTK_LIBDIR_CQ@
+ hs-libraries: HSsoegtk
+-depends: base-@PKG_BASE_VERSION@ mtl-@PKG_MTL_VERSION@ gtk-@PACKAGE_VERSION@ @GTK_CAIRO_DEPEND@ @SOEGTK_SPLITBASE_DEPENDS@
++depends: @PKG_BASE_ID@ @PKG_MTL_ID@ gtk-@PACKAGE_VERSION@ @GTK_CAIRO_DEPEND@ @SOEGTK_SPLITBASE_DEPENDS@
+diff --git a/sourceview/sourceview.package.conf.in b/sourceview/sourceview.package.conf.in
+index d3af320..5ef518f 100644
+--- a/sourceview/sourceview.package.conf.in
++++ b/sourceview/sourceview.package.conf.in
+@@ -1,5 +1,6 @@
+ name: sourceview
+ version: @PACKAGE_VERSION@
++id: sourceview-@PACKAGE_VERSION@
+ license: LGPL
+ license-file: COPYING.LIB
+ maintainer: gtk2hs-users@lists.sourceforge.net
+@@ -16,5 +17,5 @@ includes: gtksourceview/gtksourcelanguagesmanager.h,
+ gtksourceview/gtksourcetag.h,
+ gtksourceview/gtksourceiter.h,
+ gtksourceview/gtksourceview.h
+-depends: base-@PKG_BASE_VERSION@ gtk-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ gtk-@PACKAGE_VERSION@
+ ld-options: @SOURCEVIEW_LIBEXTRA_CQ@
+diff --git a/svgcairo/svgcairo.package.conf.in b/svgcairo/svgcairo.package.conf.in
+index 3867d53..9b32287 100644
+--- a/svgcairo/svgcairo.package.conf.in
++++ b/svgcairo/svgcairo.package.conf.in
+@@ -1,5 +1,6 @@
+ name: svgcairo
+ version: @PACKAGE_VERSION@
++id: svgcairo-@PACKAGE_VERSION@
+ license: BSD3
+ license-file: cairo/COPYRIGHT
+ copyright: (c) Duncan Coutts 2005, (c) Paolo Martini 2005
+@@ -15,5 +16,5 @@ hs-libraries: HSsvgcairo
+ extra-libraries: @SVGCAIRO_LIBS_CQ@
+ include-dirs: @SVGCAIRO_CFLAGS_CQ@
+ includes: librsvg/rsvg-cairo.h, librsvg/rsvg.h
+-depends: base-@PKG_BASE_VERSION@ mtl-@PKG_MTL_VERSION@ glib-@PACKAGE_VERSION@ cairo-@PACKAGE_VERSION@
++depends: @PKG_BASE_ID@ @PKG_MTL_ID@ glib-@PACKAGE_VERSION@ cairo-@PACKAGE_VERSION@
+ ld-options: @SVGCAIRO_LIBEXTRA_CQ@