diff --git a/ChangeLog.md b/ChangeLog.md
deleted file mode 100644
--- a/ChangeLog.md
+++ /dev/null
@@ -1,59 +0,0 @@
-### 2.4.29
-
-+ Depend on haskell-gi >= 0.26.9 (see [issue 439](https://github.com/haskell-gi/haskell-gi/issues/439))
-
-### 2.4.28
-
-+ Bump base lower bound
-
-### 2.4.27
-
-+ Bump base lower bound
-
-### 2.4.26
-
-+ Relax constraint on text
-
-### 2.4.25
-
-+ Update to haskell-gi(-base)-0.26
-
-### 2.4.24
-
-+ Update to haskell-gi(-base)-0.25
-
-### 2.4.23
-
-+ Upgrade to haskell-gi-base-0.24
-
-### 2.4.22
-
-+ Update for haskell-gi(-base)-0.23
-
-### 2.4.21
-
-+ Add support for inherited dependencies
-
-### 2.4.20
-
-+ Tighten bounds in haskell-gi(-base)
-
-### 2.4.19
-
-+ List autogenerated modules in .cabal file
-
-### 2.4.18
-
-+ Update to haskell-gi(-base) 0.22
-
-### 2.4.17
-
-+ Update stack version to 12.10
-
-### 2.4.16
-
-+ The return value of [`cookieGetExpires`](https://hackage.haskell.org/package/gi-soup/docs/GI-Soup-Structs-Cookie.html#v:cookieGetExpires) is nullable, but was not marked as such in the introspection data.
-
-### 2.4.15
-
-+ Remove enable-overloading flags, and use instead explicit CPP checks for 'haskell-gi-overloading-1.0', see [how to disable overloading](https://github.com/haskell-gi/haskell-gi/wiki/Overloading\#disabling-overloading).
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,13 +1,13 @@
-The gi-soup library and included works are provided under the terms of the
+The gi-soup2 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-soup library
+Static linking of applications or any other source to the gi-soup2 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-soup libraries, or to link their applications against a
-user-supplied version of gi-soup. If you link applications to a modified
-version of gi-soup, then the changes to gi-soup must be provided under the
+shared gi-soup2 libraries, or to link their applications against a
+user-supplied version of gi-soup2. If you link applications to a modified
+version of gi-soup2, then the changes to gi-soup2 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-soup-2.4.29/docs/GI-Soup.html](https://hackage.haskell.org/package/gi-soup-2.4.29/docs/GI-Soup.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-soup2](/package/gi-soup2) instead.
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,19 +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.Gio.Config as Gio
-
+import Data.GI.CodeGen.CabalHooks (setupCompatWrapper)
+import qualified GI.Soup.Config as Cfg
 
 main :: IO ()
-main = setupBinding name version pkgName pkgVersion verbose overridesFile inheritedOverrides outputDir
-  where name = "Soup"
-        version = "2.4"
-        pkgName = "gi-soup"
-        pkgVersion = "2.4.29"
-        overridesFile = Just "Soup.overrides"
-        verbose = False
-        outputDir = Nothing
-        inheritedOverrides = [TaggedOverride "inherited:GLib" GLib.overrides, TaggedOverride "inherited:GObject" GObject.overrides, TaggedOverride "inherited:Gio" Gio.overrides]
+main = setupCompatWrapper "gi-soup2" Cfg.modules
diff --git a/Soup.overrides b/Soup.overrides
deleted file mode 100644
--- a/Soup.overrides
+++ /dev/null
@@ -1,204 +0,0 @@
-namespace Soup
-
-# The "len" parameter is not marked as (out)
-ignore Address.get_sockaddr
-
-# The return value is nullable, but is not marked as such
-# https://github.com/haskell-gi/haskell-gi/issues/153
-set-attr Soup/Cookie/get_expires/@return-value nullable 1
-
-# Generated from libsoup 2.54.0.1 with xsltproc Nullable.xslt Soup-2.4.gir
-set-attr Soup/Address/new_any/@return-value nullable 1
-set-attr Soup/Address/new_from_sockaddr/@return-value nullable 1
-set-attr Soup/Address/new_from_sockaddr/@parameters/sa nullable 1
-set-attr Soup/Address/get_name/@return-value nullable 1
-set-attr Soup/Address/get_physical/@return-value nullable 1
-set-attr Soup/Address/get_sockaddr/@return-value nullable 1
-set-attr Soup/Address/resolve_async/@parameters/async_context nullable 1
-set-attr Soup/Address/resolve_async/@parameters/cancellable nullable 1
-set-attr Soup/Address/resolve_async/@parameters/user_data nullable 1
-set-attr Soup/Address/resolve_sync/@parameters/cancellable nullable 1
-set-attr Soup/AddressCallback/@parameters/user_data nullable 1
-set-attr Soup/Auth/new/@return-value nullable 1
-set-attr Soup/AuthDomain/accepts/@return-value nullable 1
-set-attr Soup/AuthDomain/basic_set_auth_callback/@parameters/user_data nullable 1
-set-attr Soup/AuthDomain/digest_set_auth_callback/@parameters/user_data nullable 1
-set-attr Soup/AuthDomain/set_filter/@parameters/filter_data nullable 1
-set-attr Soup/AuthDomain/set_generic_auth_callback/@parameters/auth_data nullable 1
-set-attr Soup/AuthDomainBasicAuthCallback/@parameters/user_data nullable 1
-set-attr Soup/AuthDomainDigestAuthCallback/@return-value nullable 1
-set-attr Soup/AuthDomainDigestAuthCallback/@parameters/user_data nullable 1
-set-attr Soup/AuthDomainFilter/@parameters/user_data nullable 1
-set-attr Soup/AuthDomainGenericAuthCallback/@parameters/user_data nullable 1
-set-attr Soup/Buffer/new_with_owner/@parameters/owner nullable 1
-set-attr Soup/Buffer/new_with_owner/@parameters/owner_dnotify nullable 1
-set-attr Soup/Buffer/get_owner/@return-value nullable 1
-set-attr Soup/ChunkAllocator/@return-value nullable 1
-set-attr Soup/ChunkAllocator/@parameters/user_data nullable 1
-set-attr Soup/ClientContext/get_address/@return-value nullable 1
-set-attr Soup/ClientContext/get_auth_domain/@return-value nullable 1
-set-attr Soup/ClientContext/get_auth_user/@return-value nullable 1
-set-attr Soup/ClientContext/get_gsocket/@return-value nullable 1
-set-attr Soup/ClientContext/get_host/@return-value nullable 1
-set-attr Soup/ClientContext/get_local_address/@return-value nullable 1
-set-attr Soup/ClientContext/get_remote_address/@return-value nullable 1
-set-attr Soup/Cookie/parse/@return-value nullable 1
-set-attr Soup/CookieJar/get_cookies/@return-value nullable 1
-set-attr Soup/Date/new_from_string/@return-value nullable 1
-set-attr Soup/Logger/set_printer/@parameters/printer_data nullable 1
-set-attr Soup/Logger/set_request_filter/@parameters/filter_data nullable 1
-set-attr Soup/Logger/set_response_filter/@parameters/filter_data nullable 1
-set-attr Soup/LoggerFilter/@parameters/user_data nullable 1
-set-attr Soup/LoggerPrinter/@parameters/user_data nullable 1
-set-attr Soup/Message/new/@return-value nullable 1
-set-attr Soup/Message/add_header_handler/@parameters/user_data nullable 1
-set-attr Soup/Message/add_status_code_handler/@parameters/user_data nullable 1
-set-attr Soup/Message/set_chunk_allocator/@parameters/user_data nullable 1
-set-attr Soup/Message/set_request/@parameters/content_type nullable 1
-set-attr Soup/Message/set_request/@parameters/req_body nullable 1
-set-attr Soup/Message/set_response/@parameters/content_type nullable 1
-set-attr Soup/Message/set_response/@parameters/resp_body nullable 1
-set-attr Soup/MessageBody/get_chunk/@return-value nullable 1
-set-attr Soup/MessageHeaders/foreach/@parameters/user_data nullable 1
-set-attr Soup/MessageHeaders/get/@return-value nullable 1
-set-attr Soup/MessageHeaders/get_content_type/@return-value nullable 1
-set-attr Soup/MessageHeaders/get_list/@return-value nullable 1
-set-attr Soup/MessageHeaders/get_one/@return-value nullable 1
-set-attr Soup/MessageHeaders/set_content_disposition/@parameters/params nullable 1
-set-attr Soup/MessageHeaders/set_content_type/@parameters/params nullable 1
-set-attr Soup/MessageHeadersForeachFunc/@parameters/user_data nullable 1
-set-attr Soup/Multipart/new_from_message/@return-value nullable 1
-set-attr Soup/MultipartInputStream/get_headers/@return-value nullable 1
-set-attr Soup/MultipartInputStream/next_part/@return-value nullable 1
-set-attr Soup/MultipartInputStream/next_part/@parameters/cancellable nullable 1
-set-attr Soup/MultipartInputStream/next_part_async/@parameters/cancellable nullable 1
-set-attr Soup/MultipartInputStream/next_part_async/@parameters/callback nullable 1
-set-attr Soup/MultipartInputStream/next_part_async/@parameters/data nullable 1
-set-attr Soup/MultipartInputStream/next_part_finish/@return-value nullable 1
-set-attr Soup/PasswordManager/get_passwords_async/@parameters/cancellable nullable 1
-set-attr Soup/PasswordManager/get_passwords_async/@parameters/user_data nullable 1
-set-attr Soup/PasswordManager/get_passwords_sync/@parameters/cancellable nullable 1
-set-attr Soup/PasswordManager/get_passwords_async/@parameters/cancellable nullable 1
-set-attr Soup/PasswordManager/get_passwords_async/@parameters/user_data nullable 1
-set-attr Soup/PasswordManager/get_passwords_sync/@parameters/cancellable nullable 1
-set-attr Soup/PasswordManagerCallback/@parameters/user_data nullable 1
-set-attr Soup/PasswordManagerInterface/get_passwords_async/get_passwords_async/@parameters/cancellable nullable 1
-set-attr Soup/PasswordManagerInterface/get_passwords_async/get_passwords_async/@parameters/user_data nullable 1
-set-attr Soup/PasswordManagerInterface/get_passwords_sync/get_passwords_sync/@parameters/cancellable nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_async/@parameters/async_context nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_async/@parameters/cancellable nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_async/@parameters/user_data nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_sync/@parameters/cancellable nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_async/@parameters/async_context nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_async/@parameters/cancellable nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_async/@parameters/user_data nullable 1
-set-attr Soup/ProxyURIResolver/get_proxy_uri_sync/@parameters/cancellable nullable 1
-set-attr Soup/ProxyURIResolverCallback/@parameters/user_data nullable 1
-set-attr Soup/ProxyURIResolverInterface/get_proxy_uri_async/get_proxy_uri_async/@parameters/async_context nullable 1
-set-attr Soup/ProxyURIResolverInterface/get_proxy_uri_async/get_proxy_uri_async/@parameters/cancellable nullable 1
-set-attr Soup/ProxyURIResolverInterface/get_proxy_uri_async/get_proxy_uri_async/@parameters/user_data nullable 1
-set-attr Soup/ProxyURIResolverInterface/get_proxy_uri_sync/get_proxy_uri_sync/@parameters/cancellable nullable 1
-set-attr Soup/Request/get_content_type/@return-value nullable 1
-set-attr Soup/Request/send/@parameters/cancellable nullable 1
-set-attr Soup/Request/send_async/@parameters/cancellable nullable 1
-set-attr Soup/Request/send_async/@parameters/callback nullable 1
-set-attr Soup/Request/send_async/@parameters/user_data nullable 1
-set-attr Soup/Request/get_content_type/@return-value nullable 1
-set-attr Soup/Request/send/@parameters/cancellable nullable 1
-set-attr Soup/Request/send_async/@parameters/cancellable nullable 1
-set-attr Soup/Request/send_async/@parameters/callback nullable 1
-set-attr Soup/Request/send_async/@parameters/user_data nullable 1
-set-attr Soup/RequestClass/send/send/@parameters/cancellable nullable 1
-set-attr Soup/RequestClass/send_async/send_async/@parameters/cancellable nullable 1
-set-attr Soup/RequestClass/send_async/send_async/@parameters/callback nullable 1
-set-attr Soup/RequestClass/send_async/send_async/@parameters/user_data nullable 1
-set-attr Soup/RequestClass/get_content_type/get_content_type/@return-value nullable 1
-set-attr Soup/Server/new/@return-value nullable 1
-set-attr Soup/Server/accept_iostream/@parameters/local_addr nullable 1
-set-attr Soup/Server/accept_iostream/@parameters/remote_addr nullable 1
-set-attr Soup/Server/add_early_handler/@parameters/path nullable 1
-set-attr Soup/Server/add_early_handler/@parameters/user_data nullable 1
-set-attr Soup/Server/add_handler/@parameters/path nullable 1
-set-attr Soup/Server/add_handler/@parameters/user_data nullable 1
-set-attr Soup/Server/add_websocket_handler/@parameters/path nullable 1
-set-attr Soup/Server/add_websocket_handler/@parameters/origin nullable 1
-set-attr Soup/Server/add_websocket_handler/@parameters/protocols nullable 1
-set-attr Soup/Server/add_websocket_handler/@parameters/user_data nullable 1
-set-attr Soup/Server/get_async_context/@return-value nullable 1
-set-attr Soup/ServerCallback/@parameters/query nullable 1
-set-attr Soup/ServerCallback/@parameters/user_data nullable 1
-set-attr Soup/ServerWebsocketCallback/@parameters/user_data nullable 1
-set-attr Soup/Session/queue_message/@parameters/callback nullable 1
-set-attr Soup/Session/queue_message/@parameters/user_data nullable 1
-set-attr Soup/Session/get_async_context/@return-value nullable 1
-set-attr Soup/Session/get_feature/@return-value nullable 1
-set-attr Soup/Session/get_feature_for_message/@return-value nullable 1
-set-attr Soup/Session/prefetch_dns/@parameters/cancellable nullable 1
-set-attr Soup/Session/prefetch_dns/@parameters/callback nullable 1
-set-attr Soup/Session/prefetch_dns/@parameters/user_data nullable 1
-set-attr Soup/Session/queue_message/@parameters/callback nullable 1
-set-attr Soup/Session/queue_message/@parameters/user_data nullable 1
-set-attr Soup/Session/send/@parameters/cancellable nullable 1
-set-attr Soup/Session/send_async/@parameters/cancellable nullable 1
-set-attr Soup/Session/send_async/@parameters/callback nullable 1
-set-attr Soup/Session/send_async/@parameters/user_data nullable 1
-set-attr Soup/Session/websocket_connect_async/@parameters/origin nullable 1
-set-attr Soup/Session/websocket_connect_async/@parameters/protocols nullable 1
-set-attr Soup/Session/websocket_connect_async/@parameters/cancellable nullable 1
-set-attr Soup/Session/websocket_connect_async/@parameters/callback nullable 1
-set-attr Soup/Session/websocket_connect_async/@parameters/user_data nullable 1
-set-attr Soup/SessionCallback/@parameters/user_data nullable 1
-set-attr Soup/SessionClass/queue_message/queue_message/@parameters/callback nullable 1
-set-attr Soup/SessionClass/queue_message/queue_message/@parameters/user_data nullable 1
-set-attr Soup/Socket/connect_async/@parameters/cancellable nullable 1
-set-attr Soup/Socket/connect_async/@parameters/user_data nullable 1
-set-attr Soup/Socket/connect_sync/@parameters/cancellable nullable 1
-set-attr Soup/Socket/read/@parameters/cancellable nullable 1
-set-attr Soup/Socket/read_until/@parameters/boundary nullable 1
-set-attr Soup/Socket/read_until/@parameters/cancellable nullable 1
-set-attr Soup/Socket/start_proxy_ssl/@parameters/cancellable nullable 1
-set-attr Soup/Socket/start_ssl/@parameters/cancellable nullable 1
-set-attr Soup/Socket/write/@parameters/cancellable nullable 1
-set-attr Soup/SocketCallback/@parameters/user_data nullable 1
-set-attr Soup/URI/new/@return-value nullable 1
-set-attr Soup/URI/new/@parameters/uri_string nullable 1
-set-attr Soup/URI/set_fragment/@parameters/fragment nullable 1
-set-attr Soup/URI/set_host/@parameters/host nullable 1
-set-attr Soup/URI/set_password/@parameters/password nullable 1
-set-attr Soup/URI/set_query/@parameters/query nullable 1
-set-attr Soup/URI/set_user/@parameters/user nullable 1
-set-attr Soup/URI/encode/@parameters/escape_extra nullable 1
-set-attr Soup/URI/normalize/@parameters/unescape_extra nullable 1
-set-attr Soup/WebsocketConnection/new/@parameters/origin nullable 1
-set-attr Soup/WebsocketConnection/new/@parameters/protocol nullable 1
-set-attr Soup/WebsocketConnection/close/@parameters/data nullable 1
-set-attr Soup/WebsocketConnection/get_origin/@return-value nullable 1
-set-attr Soup/WebsocketConnection/get_protocol/@return-value nullable 1
-set-attr Soup/XMLRPCParams/parse/@parameters/signature nullable 1
-set-attr Soup/add_completion/@parameters/async_context nullable 1
-set-attr Soup/add_completion/@parameters/data nullable 1
-set-attr Soup/add_idle/@parameters/async_context nullable 1
-set-attr Soup/add_idle/@parameters/data nullable 1
-set-attr Soup/add_io_watch/@parameters/async_context nullable 1
-set-attr Soup/add_io_watch/@parameters/data nullable 1
-set-attr Soup/add_timeout/@parameters/async_context nullable 1
-set-attr Soup/add_timeout/@parameters/data nullable 1
-set-attr Soup/cookie_parse/@return-value nullable 1
-set-attr Soup/form_decode_multipart/@return-value nullable 1
-set-attr Soup/form_decode_multipart/@parameters/file_control_name nullable 1
-set-attr Soup/str_case_equal/@parameters/v1 nullable 1
-set-attr Soup/str_case_equal/@parameters/v2 nullable 1
-set-attr Soup/str_case_hash/@parameters/key nullable 1
-set-attr Soup/uri_encode/@parameters/escape_extra nullable 1
-set-attr Soup/uri_normalize/@parameters/unescape_extra nullable 1
-set-attr Soup/value_array_from_args/@return-value nullable 1
-set-attr Soup/websocket_client_prepare_handshake/@parameters/origin nullable 1
-set-attr Soup/websocket_client_prepare_handshake/@parameters/protocols nullable 1
-set-attr Soup/websocket_server_check_handshake/@parameters/origin nullable 1
-set-attr Soup/websocket_server_check_handshake/@parameters/protocols nullable 1
-set-attr Soup/websocket_server_process_handshake/@parameters/expected_origin nullable 1
-set-attr Soup/websocket_server_process_handshake/@parameters/protocols nullable 1
-set-attr Soup/xmlrpc_build_method_call/@return-value nullable 1
-set-attr Soup/xmlrpc_build_method_response/@return-value nullable 1
-set-attr Soup/xmlrpc_parse_response/@parameters/signature nullable 1
-
diff --git a/gi-soup.cabal b/gi-soup.cabal
--- a/gi-soup.cabal
+++ b/gi-soup.cabal
@@ -1,184 +1,29 @@
-name:                 gi-soup
-version:              2.4.29
-synopsis:             Libsoup bindings
-description:          Bindings for Libsoup, 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-soup
+version:        2.4.30
+synopsis:       Libsoup 2.4.x bindings (compatibility layer)
+description:    This package re-exports (for backward compatibility)
+                the haskell-gi generated bindings in the gi-soup2 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 Soup.overrides
+extra-source-files: README.md
 
 custom-setup
-      setup-depends: base >= 4.11 && < 5,
-                     Cabal >= 1.24 && < 4,
-                     haskell-gi >= 0.26.9 && < 0.27,
-                     gi-gio == 2.0.*,
-                     gi-gobject == 2.0.*,
-                     gi-glib == 2.0.*
+ setup-depends:
+   base >= 4.11 && <5,
+   haskell-gi ^>= 0.26.14,
+   gi-soup2 ^>= 2.4.30
 
 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: libsoup-2.4
-      build-depends: base >= 4.7 && <5,
-                     haskell-gi-base >= 0.26 && < 0.27,
-                     haskell-gi >= 0.26.9 && < 0.27,
-                     haskell-gi-overloading < 1.1,
-                     gi-gio == 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.Soup.Config,
-                       GI.Soup,
-                       GI.Soup.Callbacks,
-                       GI.Soup.Constants,
-                       GI.Soup.Enums,
-                       GI.Soup.Flags,
-                       GI.Soup.Functions,
-                       GI.Soup.Interfaces,
-                       GI.Soup.Interfaces.PasswordManager,
-                       GI.Soup.Interfaces.ProxyResolver,
-                       GI.Soup.Interfaces.ProxyURIResolver,
-                       GI.Soup.Interfaces.SessionFeature,
-                       GI.Soup.Objects,
-                       GI.Soup.Objects.Address,
-                       GI.Soup.Objects.Auth,
-                       GI.Soup.Objects.AuthBasic,
-                       GI.Soup.Objects.AuthDigest,
-                       GI.Soup.Objects.AuthDomain,
-                       GI.Soup.Objects.AuthDomainBasic,
-                       GI.Soup.Objects.AuthDomainDigest,
-                       GI.Soup.Objects.AuthManager,
-                       GI.Soup.Objects.AuthNTLM,
-                       GI.Soup.Objects.AuthNegotiate,
-                       GI.Soup.Objects.Cache,
-                       GI.Soup.Objects.ContentDecoder,
-                       GI.Soup.Objects.ContentSniffer,
-                       GI.Soup.Objects.CookieJar,
-                       GI.Soup.Objects.CookieJarDB,
-                       GI.Soup.Objects.CookieJarText,
-                       GI.Soup.Objects.HSTSEnforcer,
-                       GI.Soup.Objects.HSTSEnforcerDB,
-                       GI.Soup.Objects.Logger,
-                       GI.Soup.Objects.Message,
-                       GI.Soup.Objects.MultipartInputStream,
-                       GI.Soup.Objects.ProxyResolverDefault,
-                       GI.Soup.Objects.Request,
-                       GI.Soup.Objects.RequestData,
-                       GI.Soup.Objects.RequestFile,
-                       GI.Soup.Objects.RequestHTTP,
-                       GI.Soup.Objects.Requester,
-                       GI.Soup.Objects.Server,
-                       GI.Soup.Objects.Session,
-                       GI.Soup.Objects.SessionAsync,
-                       GI.Soup.Objects.SessionSync,
-                       GI.Soup.Objects.Socket,
-                       GI.Soup.Objects.WebsocketConnection,
-                       GI.Soup.Objects.WebsocketExtension,
-                       GI.Soup.Objects.WebsocketExtensionDeflate,
-                       GI.Soup.Objects.WebsocketExtensionManager,
-                       GI.Soup.Structs,
-                       GI.Soup.Structs.Buffer,
-                       GI.Soup.Structs.ClientContext,
-                       GI.Soup.Structs.Connection,
-                       GI.Soup.Structs.Cookie,
-                       GI.Soup.Structs.Date,
-                       GI.Soup.Structs.HSTSPolicy,
-                       GI.Soup.Structs.MessageBody,
-                       GI.Soup.Structs.MessageHeaders,
-                       GI.Soup.Structs.MessageHeadersIter,
-                       GI.Soup.Structs.MessageQueue,
-                       GI.Soup.Structs.MessageQueueItem,
-                       GI.Soup.Structs.Multipart,
-                       GI.Soup.Structs.Range,
-                       GI.Soup.Structs.URI,
-                       GI.Soup.Structs.XMLRPCParams
+    build-depends: base >= 4.11 && <5,
+                   gi-soup2 ^>= 2.4.30
 
-      autogen-modules: GI.Soup.Config,
-                       GI.Soup,
-                       GI.Soup.Callbacks,
-                       GI.Soup.Constants,
-                       GI.Soup.Enums,
-                       GI.Soup.Flags,
-                       GI.Soup.Functions,
-                       GI.Soup.Interfaces,
-                       GI.Soup.Interfaces.PasswordManager,
-                       GI.Soup.Interfaces.ProxyResolver,
-                       GI.Soup.Interfaces.ProxyURIResolver,
-                       GI.Soup.Interfaces.SessionFeature,
-                       GI.Soup.Objects,
-                       GI.Soup.Objects.Address,
-                       GI.Soup.Objects.Auth,
-                       GI.Soup.Objects.AuthBasic,
-                       GI.Soup.Objects.AuthDigest,
-                       GI.Soup.Objects.AuthDomain,
-                       GI.Soup.Objects.AuthDomainBasic,
-                       GI.Soup.Objects.AuthDomainDigest,
-                       GI.Soup.Objects.AuthManager,
-                       GI.Soup.Objects.AuthNTLM,
-                       GI.Soup.Objects.AuthNegotiate,
-                       GI.Soup.Objects.Cache,
-                       GI.Soup.Objects.ContentDecoder,
-                       GI.Soup.Objects.ContentSniffer,
-                       GI.Soup.Objects.CookieJar,
-                       GI.Soup.Objects.CookieJarDB,
-                       GI.Soup.Objects.CookieJarText,
-                       GI.Soup.Objects.HSTSEnforcer,
-                       GI.Soup.Objects.HSTSEnforcerDB,
-                       GI.Soup.Objects.Logger,
-                       GI.Soup.Objects.Message,
-                       GI.Soup.Objects.MultipartInputStream,
-                       GI.Soup.Objects.ProxyResolverDefault,
-                       GI.Soup.Objects.Request,
-                       GI.Soup.Objects.RequestData,
-                       GI.Soup.Objects.RequestFile,
-                       GI.Soup.Objects.RequestHTTP,
-                       GI.Soup.Objects.Requester,
-                       GI.Soup.Objects.Server,
-                       GI.Soup.Objects.Session,
-                       GI.Soup.Objects.SessionAsync,
-                       GI.Soup.Objects.SessionSync,
-                       GI.Soup.Objects.Socket,
-                       GI.Soup.Objects.WebsocketConnection,
-                       GI.Soup.Objects.WebsocketExtension,
-                       GI.Soup.Objects.WebsocketExtensionDeflate,
-                       GI.Soup.Objects.WebsocketExtensionManager,
-                       GI.Soup.Structs,
-                       GI.Soup.Structs.Buffer,
-                       GI.Soup.Structs.ClientContext,
-                       GI.Soup.Structs.Connection,
-                       GI.Soup.Structs.Cookie,
-                       GI.Soup.Structs.Date,
-                       GI.Soup.Structs.HSTSPolicy,
-                       GI.Soup.Structs.MessageBody,
-                       GI.Soup.Structs.MessageHeaders,
-                       GI.Soup.Structs.MessageHeadersIter,
-                       GI.Soup.Structs.MessageQueue,
-                       GI.Soup.Structs.MessageQueueItem,
-                       GI.Soup.Structs.Multipart,
-                       GI.Soup.Structs.Range,
-                       GI.Soup.Structs.URI,
-                       GI.Soup.Structs.XMLRPCParams
+    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
