diff --git a/ChangeLog.md b/ChangeLog.md
deleted file mode 100644
--- a/ChangeLog.md
+++ /dev/null
@@ -1,38 +0,0 @@
-### 4.0.9
-
-+ Mark the `value` argument of
-  [Gdk.contentProviderGetValue](https://hackage.haskell.org/package/gi-gdk-4.0.8/docs/GI-Gdk-Objects-ContentProvider.html#v:contentProviderGetValue)
-  as `(in)`, instead of `(out caller-allocates)`, since the pointer
-  itself does not change, only the memory pointed to. See [issue 447](https://github.com/haskell-gi/haskell-gi/issues/447) for more justification.
-
-### 4.0.8
-
-+ Depend on haskell-gi >= 0.26.9 (see [issue 439](https://github.com/haskell-gi/haskell-gi/issues/439))
-
-### 4.0.7
-
-+ Bump base lower bound
-
-### 4.0.6
-
-+ Bump base lower bound
-
-### 4.0.5
-
-+ Relax constraint on text
-
-### 4.0.4
-
-+ Update to haskell-gi(-base)-0.26
-
-### 4.0.3
-
-+ Update to haskell-gi(-base)-0.25
-
-### 4.0.2
-
-+ Upgrade to haskell-gi-base-0.24
-
-### 4.0.1
-
-+ Initial release
diff --git a/Gdk.overrides b/Gdk.overrides
deleted file mode 100644
--- a/Gdk.overrides
+++ /dev/null
@@ -1,8 +0,0 @@
-# In most APIs these are used as guint, but they are declared as gint.
-# See https://github.com/haskell-gi/haskell-gi/issues/58
-set-attr Gdk/~KEY_.*@constant/@type name guint
-
-# The introspection annotation marks the parameter as
-# (out caller-allocates), but it is just a pointer to a GValue.
-set-attr Gdk/ContentProvider/get_value/@parameters/value direction in
-set-attr Gdk/ContentProvider/get_value/@parameters/value caller-allocates 0
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,13 +1,13 @@
-The gi-gdk library and included works are provided under the terms of the
+The gi-gdk4 library and included works are provided under the terms of the
 GNU Library General Public License (LGPL) version 2.1 with the following
 exception:
 
-Static linking of applications or any other source to the gi-gdk library
+Static linking of applications or any other source to the gi-gdk4 library
 does not constitute a modified or derivative work and does not require
 the author(s) to provide source code for said work, to link against the
-shared gi-gdk libraries, or to link their applications against a
-user-supplied version of gi-gdk. If you link applications to a modified
-version of gi-gdk, then the changes to gi-gdk must be provided under the
+shared gi-gdk4 libraries, or to link their applications against a
+user-supplied version of gi-gdk4. If you link applications to a modified
+version of gi-gdk4, then the changes to gi-gdk4 must be provided under the
 terms of the LGPL.
 
 ----------------------------------------------------------------------------
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,6 +1,2 @@
-# Documentation
-Autogenerated documentation for this package can be found at
-
-[https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk.html](https://hackage.haskell.org/package/gi-gdk-4.0.9/docs/GI-Gdk.html)
-
-For general documentation on using [haskell-gi](https://github.com/haskell-gi/haskell-gi) based bindings, see [the project page](https://github.com/haskell-gi/haskell-gi) or [the Wiki](https://github.com/haskell-gi/haskell-gi/wiki).
+# Information
+This is a compatibility package. For newer projects we recommend that you use [gi-gdk4](/package/gi-gdk4) instead.
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,22 +1,5 @@
-{-# LANGUAGE OverloadedStrings #-}
-
-import Data.GI.CodeGen.CabalHooks (setupBinding, TaggedOverride(..))
-
-import qualified GI.GLib.Config as GLib
-import qualified GI.GObject.Config as GObject
-import qualified GI.GdkPixbuf.Config as GdkPixbuf
-import qualified GI.Gio.Config as Gio
-import qualified GI.Pango.Config as Pango
-import qualified GI.Cairo.Config as Cairo
-
+import Data.GI.CodeGen.CabalHooks (setupCompatWrapper)
+import qualified GI.Gdk.Config as Cfg
 
 main :: IO ()
-main = setupBinding name version pkgName pkgVersion verbose overridesFile inheritedOverrides outputDir
-  where name = "Gdk"
-        version = "4.0"
-        pkgName = "gi-gdk"
-        pkgVersion = "4.0.9"
-        overridesFile = Just "Gdk.overrides"
-        verbose = False
-        outputDir = Nothing
-        inheritedOverrides = [TaggedOverride "inherited:GLib" GLib.overrides, TaggedOverride "inherited:GObject" GObject.overrides, TaggedOverride "inherited:GdkPixbuf" GdkPixbuf.overrides, TaggedOverride "inherited:Gio" Gio.overrides, TaggedOverride "inherited:Pango" Pango.overrides, TaggedOverride "inherited:Cairo" Cairo.overrides]
+main = setupCompatWrapper "gi-gdk4" Cfg.modules
diff --git a/gi-gdk.cabal b/gi-gdk.cabal
--- a/gi-gdk.cabal
+++ b/gi-gdk.cabal
@@ -1,202 +1,29 @@
-name:                 gi-gdk
-version:              4.0.9
-synopsis:             Gdk bindings
-description:          Bindings for Gdk, autogenerated by haskell-gi.
-homepage:             https://github.com/haskell-gi/haskell-gi
-license:              LGPL-2.1
-license-file:         LICENSE
-author:               Iñaki García Etxebarria
-maintainer:           Iñaki García Etxebarria
-category:             Bindings
-build-type:           Custom
-cabal-version:        2.0
+name:           gi-gdk
+version:        4.0.10
+synopsis:       Gdk bindings (compatibility layer)
+description:    This package re-exports (for backward compatibility)
+                the haskell-gi generated bindings in the gi-gdk4 package.
+homepage:       https://github.com/haskell-gi/haskell-gi
+license:        LGPL-2.1
+license-file:   LICENSE
+author:         Iñaki García Etxebarria
+maintainer:     Iñaki García Etxebarria
+category:       Bindings
+build-type:     Custom
+cabal-version:  2.0
 
-extra-source-files: README.md ChangeLog.md stack.yaml Gdk.overrides
+extra-source-files: README.md
 
 custom-setup
-      setup-depends: base >= 4.11 && < 5,
-                     Cabal >= 1.24 && < 4,
-                     haskell-gi >= 0.26.10 && < 0.27,
-                     gi-cairo == 1.0.*,
-                     gi-pango == 1.0.*,
-                     gi-gio == 2.0.*,
-                     gi-gdkpixbuf == 2.0.*,
-                     gi-gobject == 2.0.*,
-                     gi-glib == 2.0.*
+ setup-depends:
+   base >= 4.11 && <5,
+   haskell-gi ^>= 0.26.14,
+   gi-gdk4 ^>= 4.0.10
 
 library
-      default-language: Haskell2010
-      default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts, UndecidableSuperClasses, TypeOperators
-      other-extensions: PatternSynonyms, ViewPatterns, TypeApplications
-      ghc-options: -fno-warn-unused-imports -fno-warn-warnings-deprecations
-
-      pkgconfig-depends: gtk4
-      build-depends: base >= 4.9 && <5,
-                     haskell-gi-base >= 0.26 && < 0.27,
-                     haskell-gi >= 0.26.10 && < 0.27,
-                     haskell-gi-overloading < 1.1,
-                     gi-cairo == 1.0.*,
-                     gi-pango == 1.0.*,
-                     gi-gio == 2.0.*,
-                     gi-gdkpixbuf == 2.0.*,
-                     gi-gobject == 2.0.*,
-                     gi-glib == 2.0.*,
-                     bytestring >= 0.10 && < 1,
-                     containers >= 0.5 && < 1,
-                     text >= 1.0 && < 3,
-                     transformers >= 0.4 && < 1
-
-      -- Disable overloading when compiling under GHC 8.2.x
-      -- see https://ghc.haskell.org/trac/ghc/ticket/14382
-      if impl(ghc == 8.2.*)
-              build-depends: haskell-gi-overloading == 0.0
-
-      -- Note that the following list of exposed modules and autogen
-      -- modules is for documentation purposes only, so that some
-      -- documentation appears in hackage. The actual list of modules
-      -- to be built will be built at configure time, based on the
-      -- available introspection data.
+    ghc-options: -Wall
 
-      exposed-modules: GI.Gdk.Config,
-                       GI.Gdk,
-                       GI.Gdk.Callbacks,
-                       GI.Gdk.Constants,
-                       GI.Gdk.Enums,
-                       GI.Gdk.Flags,
-                       GI.Gdk.Functions,
-                       GI.Gdk.Interfaces,
-                       GI.Gdk.Interfaces.DevicePad,
-                       GI.Gdk.Interfaces.DragSurface,
-                       GI.Gdk.Interfaces.Paintable,
-                       GI.Gdk.Interfaces.Popup,
-                       GI.Gdk.Interfaces.Toplevel,
-                       GI.Gdk.Objects,
-                       GI.Gdk.Objects.AppLaunchContext,
-                       GI.Gdk.Objects.ButtonEvent,
-                       GI.Gdk.Objects.CairoContext,
-                       GI.Gdk.Objects.Clipboard,
-                       GI.Gdk.Objects.ContentDeserializer,
-                       GI.Gdk.Objects.ContentProvider,
-                       GI.Gdk.Objects.ContentSerializer,
-                       GI.Gdk.Objects.CrossingEvent,
-                       GI.Gdk.Objects.Cursor,
-                       GI.Gdk.Objects.DNDEvent,
-                       GI.Gdk.Objects.DeleteEvent,
-                       GI.Gdk.Objects.Device,
-                       GI.Gdk.Objects.DeviceTool,
-                       GI.Gdk.Objects.Display,
-                       GI.Gdk.Objects.DisplayManager,
-                       GI.Gdk.Objects.DmabufTexture,
-                       GI.Gdk.Objects.DmabufTextureBuilder,
-                       GI.Gdk.Objects.Drag,
-                       GI.Gdk.Objects.DrawContext,
-                       GI.Gdk.Objects.Drop,
-                       GI.Gdk.Objects.Event,
-                       GI.Gdk.Objects.FocusEvent,
-                       GI.Gdk.Objects.FrameClock,
-                       GI.Gdk.Objects.GLContext,
-                       GI.Gdk.Objects.GLTexture,
-                       GI.Gdk.Objects.GLTextureBuilder,
-                       GI.Gdk.Objects.GrabBrokenEvent,
-                       GI.Gdk.Objects.KeyEvent,
-                       GI.Gdk.Objects.MemoryTexture,
-                       GI.Gdk.Objects.Monitor,
-                       GI.Gdk.Objects.MotionEvent,
-                       GI.Gdk.Objects.PadEvent,
-                       GI.Gdk.Objects.ProximityEvent,
-                       GI.Gdk.Objects.ScrollEvent,
-                       GI.Gdk.Objects.Seat,
-                       GI.Gdk.Objects.Snapshot,
-                       GI.Gdk.Objects.Surface,
-                       GI.Gdk.Objects.Texture,
-                       GI.Gdk.Objects.TouchEvent,
-                       GI.Gdk.Objects.TouchpadEvent,
-                       GI.Gdk.Objects.VulkanContext,
-                       GI.Gdk.Structs,
-                       GI.Gdk.Structs.ContentFormats,
-                       GI.Gdk.Structs.ContentFormatsBuilder,
-                       GI.Gdk.Structs.DmabufFormats,
-                       GI.Gdk.Structs.DragSurfaceSize,
-                       GI.Gdk.Structs.EventSequence,
-                       GI.Gdk.Structs.FileList,
-                       GI.Gdk.Structs.FrameTimings,
-                       GI.Gdk.Structs.KeymapKey,
-                       GI.Gdk.Structs.PopupLayout,
-                       GI.Gdk.Structs.RGBA,
-                       GI.Gdk.Structs.Rectangle,
-                       GI.Gdk.Structs.TextureDownloader,
-                       GI.Gdk.Structs.TimeCoord,
-                       GI.Gdk.Structs.ToplevelLayout,
-                       GI.Gdk.Structs.ToplevelSize
+    build-depends: base >= 4.11 && <5,
+                   gi-gdk4 ^>= 4.0.10
 
-      autogen-modules: GI.Gdk.Config,
-                       GI.Gdk,
-                       GI.Gdk.Callbacks,
-                       GI.Gdk.Constants,
-                       GI.Gdk.Enums,
-                       GI.Gdk.Flags,
-                       GI.Gdk.Functions,
-                       GI.Gdk.Interfaces,
-                       GI.Gdk.Interfaces.DevicePad,
-                       GI.Gdk.Interfaces.DragSurface,
-                       GI.Gdk.Interfaces.Paintable,
-                       GI.Gdk.Interfaces.Popup,
-                       GI.Gdk.Interfaces.Toplevel,
-                       GI.Gdk.Objects,
-                       GI.Gdk.Objects.AppLaunchContext,
-                       GI.Gdk.Objects.ButtonEvent,
-                       GI.Gdk.Objects.CairoContext,
-                       GI.Gdk.Objects.Clipboard,
-                       GI.Gdk.Objects.ContentDeserializer,
-                       GI.Gdk.Objects.ContentProvider,
-                       GI.Gdk.Objects.ContentSerializer,
-                       GI.Gdk.Objects.CrossingEvent,
-                       GI.Gdk.Objects.Cursor,
-                       GI.Gdk.Objects.DNDEvent,
-                       GI.Gdk.Objects.DeleteEvent,
-                       GI.Gdk.Objects.Device,
-                       GI.Gdk.Objects.DeviceTool,
-                       GI.Gdk.Objects.Display,
-                       GI.Gdk.Objects.DisplayManager,
-                       GI.Gdk.Objects.DmabufTexture,
-                       GI.Gdk.Objects.DmabufTextureBuilder,
-                       GI.Gdk.Objects.Drag,
-                       GI.Gdk.Objects.DrawContext,
-                       GI.Gdk.Objects.Drop,
-                       GI.Gdk.Objects.Event,
-                       GI.Gdk.Objects.FocusEvent,
-                       GI.Gdk.Objects.FrameClock,
-                       GI.Gdk.Objects.GLContext,
-                       GI.Gdk.Objects.GLTexture,
-                       GI.Gdk.Objects.GLTextureBuilder,
-                       GI.Gdk.Objects.GrabBrokenEvent,
-                       GI.Gdk.Objects.KeyEvent,
-                       GI.Gdk.Objects.MemoryTexture,
-                       GI.Gdk.Objects.Monitor,
-                       GI.Gdk.Objects.MotionEvent,
-                       GI.Gdk.Objects.PadEvent,
-                       GI.Gdk.Objects.ProximityEvent,
-                       GI.Gdk.Objects.ScrollEvent,
-                       GI.Gdk.Objects.Seat,
-                       GI.Gdk.Objects.Snapshot,
-                       GI.Gdk.Objects.Surface,
-                       GI.Gdk.Objects.Texture,
-                       GI.Gdk.Objects.TouchEvent,
-                       GI.Gdk.Objects.TouchpadEvent,
-                       GI.Gdk.Objects.VulkanContext,
-                       GI.Gdk.Structs,
-                       GI.Gdk.Structs.ContentFormats,
-                       GI.Gdk.Structs.ContentFormatsBuilder,
-                       GI.Gdk.Structs.DmabufFormats,
-                       GI.Gdk.Structs.DragSurfaceSize,
-                       GI.Gdk.Structs.EventSequence,
-                       GI.Gdk.Structs.FileList,
-                       GI.Gdk.Structs.FrameTimings,
-                       GI.Gdk.Structs.KeymapKey,
-                       GI.Gdk.Structs.PopupLayout,
-                       GI.Gdk.Structs.RGBA,
-                       GI.Gdk.Structs.Rectangle,
-                       GI.Gdk.Structs.TextureDownloader,
-                       GI.Gdk.Structs.TimeCoord,
-                       GI.Gdk.Structs.ToplevelLayout,
-                       GI.Gdk.Structs.ToplevelSize
+    default-language: Haskell2010
diff --git a/stack.yaml b/stack.yaml
deleted file mode 100644
--- a/stack.yaml
+++ /dev/null
@@ -1,3 +0,0 @@
-packages:
-- '.'
-resolver: lts-13.7
