diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,18 @@
+## [v1.4.2](https://github.com/diagrams/diagrams-cairo/tree/v1.4.2) (2022-01-26)
+
+- Test with GHC 9.0 (requires `--allow-newer`)
+- Allow `base-4.15`, `lens-5.1`, `bytestring-0.11`,
+  `transformers-0.6`, `hashable-1.4`
+- Add `Eq Options` instance required for `Hashable`
+
 ## [v1.4.1.1](https://github.com/diagrams/diagrams-cairo/tree/v1.4.1.1) (2019-01-11)
 
 - Drop GHC 7.10 and 8.0 support
 - Test with GHC 8.6 and 8.8
+
+- r1: allow `lens-4.19` and `linear-1.21`
+- r2: allow `base-4.14`, `diagrams-core-1.5`, `lens-5.0`,
+  `optparse-applicative-0.16`
 
 ## [v1.4.1](https://github.com/diagrams/diagrams-cairo/tree/v1.4.1) (2018-05-17)
 
diff --git a/diagrams-cairo.cabal b/diagrams-cairo.cabal
--- a/diagrams-cairo.cabal
+++ b/diagrams-cairo.cabal
@@ -1,5 +1,5 @@
 Name:                diagrams-cairo
-Version:             1.4.1.1
+Version:             1.4.2
 Synopsis:            Cairo backend for diagrams drawing EDSL
 Description:         A full-featured backend for rendering
                      diagrams using the cairo rendering engine.
@@ -30,7 +30,7 @@
                      .
                      * "Diagrams.Backend.Cairo.Ptr" - render diagrams
                        to buffers in memory.
-Homepage:            http://projects.haskell.org/diagrams
+Homepage:            https://diagrams.github.io
 License:             BSD3
 License-file:        LICENSE
 Author:              Brent Yorgey
@@ -40,7 +40,7 @@
 Build-type:          Simple
 Cabal-version:       >=1.10
 Extra-source-files:  CHANGELOG.md, README.markdown
-Tested-with:         GHC ==8.2.2 || ==8.4.3 || ==8.6.5 || ==8.8.1
+Tested-with:         GHC ==8.4.4 || ==8.6.5 || ==8.8.4 || ==8.10.4 || ==9.0.1
 Source-repository head
   type:     git
   location: http://github.com/diagrams/diagrams-cairo.git
@@ -53,26 +53,26 @@
                        Diagrams.Backend.Cairo.Ptr
                        Diagrams.Backend.Cairo.Text
   Hs-source-dirs:      src
-  Build-depends:       base >= 4.2 && < 4.14,
+  Build-depends:       base >= 4.2 && < 4.17,
                        mtl >= 2.0 && < 2.3,
                        filepath,
-                       diagrams-core >= 1.3 && < 1.5,
+                       diagrams-core >= 1.3 && < 1.6,
                        diagrams-lib >= 1.3 && < 1.5,
                        cairo >= 0.12.4 && < 0.14,
                        pango >= 0.12.5  && < 0.14,
                        colour,
                        split >= 0.1.2 && < 0.3,
                        containers >= 0.3 && < 0.7,
-                       lens >= 3.8 && < 4.19,
+                       lens >= 3.8 && < 5.2,
                        data-default-class >= 0.0.1 && < 0.2,
                        statestack >= 0.2 && < 0.4,
                        JuicyPixels >= 3.1.3.2 && < 3.4,
                        vector >= 0.10.0 && < 0.13,
                        array >= 0.4.0 && < 0.6,
-                       bytestring >= 0.9 && < 0.11,
-                       optparse-applicative >= 0.13 && < 0.16,
-                       transformers >= 0.3 && <0.6,
-                       hashable >= 1.1 && < 1.4
+                       bytestring >= 0.9 && < 0.12,
+                       optparse-applicative >= 0.13 && < 0.17,
+                       transformers >= 0.3 && <0.7,
+                       hashable >= 1.1 && < 1.5
 
   default-language:    Haskell2010
 
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
@@ -54,7 +54,7 @@
 --   information.
 --
 -- For a tutorial on command-line diagram creation see
--- <http://projects.haskell.org/diagrams/doc/cmdline.html>.
+-- <https://diagrams.github.io/doc/cmdline.html>.
 --
 -----------------------------------------------------------------------------
 
@@ -110,6 +110,14 @@
 
 import           Data.List.Split
 
+-- | Extra options for animated GIFs.
+data GifOpts = GifOpts { _dither     :: Bool
+                       , _noLooping  :: Bool
+                       , _loopRepeat :: Maybe Int}
+
+makeLenses ''GifOpts
+
+
 -- $mainwith
 -- The 'mainWith' method unifies all of the other forms of @main@ and is now
 -- the recommended way to build a command-line diagrams program.  It works as a
@@ -294,13 +302,6 @@
 -- @
 gifMain :: [(QDiagram Cairo V2 Double Any, GifDelay)] -> IO ()
 gifMain = mainWith
-
--- | Extra options for animated GIFs.
-data GifOpts = GifOpts { _dither     :: Bool
-                       , _noLooping  :: Bool
-                       , _loopRepeat :: Maybe Int}
-
-makeLenses ''GifOpts
 
 -- | Command line parser for 'GifOpts'.
 --   @--dither@ turn dithering on.
diff --git a/src/Diagrams/Backend/Cairo/Internal.hs b/src/Diagrams/Backend/Cairo/Internal.hs
--- a/src/Diagrams/Backend/Cairo/Internal.hs
+++ b/src/Diagrams/Backend/Cairo/Internal.hs
@@ -153,7 +153,7 @@
           , _cairoOutputType :: OutputType -- ^ the output format and associated options
           , _cairoBypassAdjust  :: Bool    -- ^ Should the 'adjustDia' step be bypassed during rendering?
           }
-    deriving (Show)
+    deriving (Show, Eq)
 
   renderRTree _ opts t = (renderIO, r)
     where
