diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,13 @@
 
 # Revision history for `resolv`
 
+## 0.2.0.3
+
+_2025-08-31, Andreas Abel_
+
+* Drop support for GHC 7
+* Tested with GHC 8.0 - 9.14 alpha1
+
 ## 0.2.0.2
 
 _2023-06-12, Alexey Radkov and Andreas Abel_
diff --git a/resolv.cabal b/resolv.cabal
--- a/resolv.cabal
+++ b/resolv.cabal
@@ -1,7 +1,7 @@
 cabal-version:       2.2
 
 name:                resolv
-version:             0.2.0.2
+version:             0.2.0.3
 
 synopsis:            Domain Name Service (DNS) lookup via the libresolv standard library routines
 description: {
@@ -35,7 +35,7 @@
 license:             GPL-2.0-or-later
 license-files:       LICENSE LICENSE.GPLv2 LICENSE.GPLv3
 author:              Herbert Valerio Riedel
-maintainer:          Alexey Radkov
+maintainer:          Alexey Radkov, Andreas Abel
 category:            Network
 build-type:          Configure
 bug-reports:         https://github.com/haskell-hvr/resolv/issues
@@ -55,8 +55,12 @@
                      cbits/hs_resolv_config.h
 
 tested-with:
-  GHC == 9.6.2
-  GHC == 9.4.5
+  GHC == 9.14.1
+  GHC == 9.12.2
+  GHC == 9.10.2
+  GHC == 9.8.4
+  GHC == 9.6.7
+  GHC == 9.4.8
   GHC == 9.2.8
   GHC == 9.0.2
   GHC == 8.10.7
@@ -65,10 +69,6 @@
   GHC == 8.4.4
   GHC == 8.2.2
   GHC == 8.0.2
-  -- Not supported by ghcup:
-  -- GHC == 7.10.3
-  -- GHC == 7.8.4
-  -- GHC == 7.6.3
 
 source-repository head
   type:              git
@@ -89,23 +89,25 @@
                      Trustworthy
 
   hs-source-dirs:    src
+  include-dirs:      cbits
+
   exposed-modules:   Network.DNS
   other-modules:     Network.DNS.Message
                      Network.DNS.FFI
                      Compat
 
-  build-depends:     base               >= 4.6      && < 5
-                       -- bytestring-0.10.0.0 was shipped with GHC 7.6 (base-4.6)
-                   , base16-bytestring  >= 0.1      && < 1.1
-                   , binary            ^>= 0.7.3    || ^>= 0.8
-                       -- we need binary-0.7.3 for isolate
-                   , bytestring         >= 0.10.0.0 && < 0.12
-                       -- instance IsString ByteString exists in its form since bytestring-0.10.0.0
-                       -- see https://github.com/haskell-hvr/resolv/pull/13#issuecomment-1213876161
-                   , containers        ^>= 0.4.2.1  || ^>= 0.5  || ^>= 0.6
+  -- Lower bounds take from GHC 8.0 shipped libraries and Stackage LTS 7.0
+  build-depends:     base               >= 4.9      && < 5
+                   , base16-bytestring  >= 0.1.1.6  && < 1.1
+                   , binary             >= 0.8.3    && < 0.9
+                   , bytestring         >= 0.10.8.0 && < 0.13
+                   , containers         >= 0.5.7.1  && < 0.9
 
-  ghc-options:       -Wall
-  include-dirs:      cbits
+  ghc-options:
+    -Wall
+    -Wcompat
+    -Wunused-packages
+    -Wincomplete-patterns
 
 test-suite resolv.
   default-language:    Haskell2010
@@ -119,7 +121,7 @@
                , bytestring
 
   -- additional dependencies not inherited
-  build-depends: tasty         >= 1.2.3 && < 1.5
+  build-depends: tasty         >= 1.2.3    && < 1.6
                , tasty-hunit  ^>= 0.10.0
-               , directory    ^>= 1.1.0 || ^>= 1.2.0 || ^>= 1.3.0
-               , filepath     ^>= 1.3.0 || ^>= 1.4.0
+               , directory     >= 1.2.6.2  && < 1.4
+               , filepath      >= 1.4.1.0  && < 1.6
diff --git a/src-test/Tests1.hs b/src-test/Tests1.hs
--- a/src-test/Tests1.hs
+++ b/src-test/Tests1.hs
@@ -1,5 +1,10 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 
+#if __GLASGOW_HASKELL__ >= 900
+{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
+#endif
+
 module Main where
 
 import           Control.Applicative as A
@@ -87,5 +92,3 @@
         onFail
         T.assertFailure ("expected: " ++ show ref ++ "\n but got: " ++ show cur)
   | otherwise = A.pure ()
-
-
diff --git a/src/Network/DNS.hs b/src/Network/DNS.hs
--- a/src/Network/DNS.hs
+++ b/src/Network/DNS.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE CApiFFI            #-}
-{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE OverloadedStrings  #-}
 {-# LANGUAGE RecordWildCards    #-}
 {-# LANGUAGE Trustworthy        #-}
@@ -84,7 +83,6 @@
 
 import           Control.Exception
 import           Data.Bits             (unsafeShiftR, (.&.))
-import           Data.Typeable         (Typeable)
 import           Foreign.C
 import           Foreign.Marshal.Alloc
 import           Numeric               (showInt)
@@ -120,7 +118,7 @@
       -- ^ No such domain (non-authoritative) or SERVERFAIL
       --
       -- @since 0.2.0.0
-  deriving (Show, Typeable)
+  deriving (Eq, Show)
 
 instance Exception DnsException
 
