diff --git a/rattletrap.cabal b/rattletrap.cabal
--- a/rattletrap.cabal
+++ b/rattletrap.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name: rattletrap
-version: 11.2.11
+version: 11.2.12
 synopsis: Parse and generate Rocket League replays.
 description: Rattletrap parses and generates Rocket League replays.
 
@@ -21,7 +21,7 @@
   manual: True
 
 common library
-  build-depends: base ^>= 4.16.1
+  build-depends: base >= 4.15 && < 4.18
   default-extensions: NamedFieldPuns
   default-language: Haskell2010
   ghc-options:
@@ -33,12 +33,14 @@
     -Wno-missing-export-lists
     -Wno-missing-exported-signatures
     -Wno-missing-import-lists
-    -Wno-missing-kind-signatures
     -Wno-missing-safe-haskell-mode
     -Wno-prepositive-qualified-module
     -Wno-safe
     -Wno-unsafe
 
+  if impl(ghc >= 9.2)
+    ghc-options: -Wno-missing-kind-signatures
+
   if flag(pedantic)
     ghc-options: -Werror
 
@@ -56,12 +58,12 @@
     , aeson ^>= 2.0.3 || ^>= 2.1.0
     , aeson-pretty ^>= 0.8.9
     , array ^>= 0.5.4
-    , bytestring ^>= 0.11.3.1
-    , containers ^>= 0.6.5
+    , bytestring >= 0.10 && < 0.12
+    , containers >= 0.6 && < 0.7
     , filepath ^>= 1.4.2
     , http-client ^>= 0.7.11
     , http-client-tls ^>= 0.3.6
-    , text ^>= 1.2.5
+    , text ^>= 1.2.5 || ^>= 2.0
   exposed-modules:
     Paths_rattletrap
     Rattletrap
