diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,15 @@
+## [v1.5](https://github.com/diagrams/diagrams-gi-cairo/tree/v1.4.2) (2025-06-02)
+
+- Allow `base-4.21` and test with GHC 9.12
+- Remove no longer supported `DiagramLoopOpts`
+
 ## [v1.4.2](https://github.com/diagrams/diagrams-gi-cairo/tree/v1.4.2) (2022-12-06)
 
 - Initial release of `diagrams-gi-cairo`.
 - Builds with GHC 8.10, 9.0, 9.2, and 9.4
+
+- Hackage revisions
+    - r1 (19 Sep 2024): Allow `base-4.20` and test up to GHC 9.10
 
 # Changelog for predecessor package, diagrams-cairo
 
diff --git a/diagrams-gi-cairo.cabal b/diagrams-gi-cairo.cabal
--- a/diagrams-gi-cairo.cabal
+++ b/diagrams-gi-cairo.cabal
@@ -1,5 +1,5 @@
 Name:                diagrams-gi-cairo
-Version:             1.4.2
+Version:             1.5
 Synopsis:            Cairo backend for diagrams drawing EDSL
 Description:         A full-featured backend for rendering
                      diagrams using the cairo rendering engine.
@@ -43,7 +43,7 @@
 Build-type:          Simple
 Cabal-version:       >=1.10
 Extra-source-files:  CHANGELOG.md, README.markdown
-Tested-with:         GHC ==8.10.7 || ==9.0.2 || ==9.2.4 || ==9.4.2
+Tested-with:         GHC ==8.10.7 || ==9.0.2 || ==9.2.8 || ==9.4.8 || ==9.6.5 || ==9.8.2 || ==9.10.1 || ==9.12.1
 Source-repository head
   type:     git
   location: http://github.com/diagrams/diagrams-cairo.git
@@ -56,7 +56,7 @@
                        Diagrams.Backend.Cairo.Ptr
                        Diagrams.Backend.Cairo.Text
   Hs-source-dirs:      src
-  Build-depends:       base >= 4.14 && < 4.18,
+  Build-depends:       base >= 4.14 && < 4.22,
                        text,
                        mtl,
                        filepath,
diff --git a/src/Diagrams/Backend/Cairo/CmdLine.hs b/src/Diagrams/Backend/Cairo/CmdLine.hs
--- a/src/Diagrams/Backend/Cairo/CmdLine.hs
+++ b/src/Diagrams/Backend/Cairo/CmdLine.hs
@@ -185,9 +185,9 @@
 defaultMain = mainWith
 
 instance Mainable (QDiagram Cairo V2 Double Any) where
-    type MainOpts (QDiagram Cairo V2 Double Any) = (DiagramOpts, DiagramLoopOpts)
+    type MainOpts (QDiagram Cairo V2 Double Any) = DiagramOpts
 
-    mainRender (opts, l) d = chooseRender opts d >> defaultLoopRender l
+    mainRender opts d = chooseRender opts d
 
 chooseRender :: DiagramOpts -> QDiagram Cairo V2 Double Any -> IO ()
 chooseRender opts d =
@@ -262,9 +262,9 @@
 animMain = mainWith
 
 instance Mainable (Animation Cairo V2 Double) where
-    type MainOpts (Animation Cairo V2 Double) = ((DiagramOpts, DiagramAnimOpts), DiagramLoopOpts)
+    type MainOpts (Animation Cairo V2 Double) = (DiagramOpts, DiagramAnimOpts)
 
-    mainRender (opts, l) d =  defaultAnimMainRender chooseRender output opts d >> defaultLoopRender l
+    mainRender opts d =  defaultAnimMainRender chooseRender output opts d
 
 -- | Extra options for animated GIFs.
 data GifOpts = GifOpts { _dither     :: Bool
