diff --git a/README.markdown b/README.markdown
deleted file mode 100644
--- a/README.markdown
+++ /dev/null
@@ -1,3 +0,0 @@
-A Haskell library for generating RSS 2.0 feeds.
-
-Note that this library was previously maintained by Bjorn Bringert in a [darcs repository](http://code.haskell.org/rss). It is currently maintained by Bas van Dijk in a [git repository](https://github.com/basvandijk/rss).
diff --git a/Text/RSS.hs b/Text/RSS.hs
--- a/Text/RSS.hs
+++ b/Text/RSS.hs
@@ -1,9 +1,5 @@
 {-# LANGUAGE CPP #-}
 
-#if __GLASGOW_HASKELL__ >= 704
-{-# LANGUAGE Safe #-}
-#endif
-
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Text.RSS
@@ -54,23 +50,26 @@
                  rssToXML, showXML
                 ) where
 
-import Data.Ix (Ix)
+import           Data.Ix                    (Ix)
 
-import Network.URI (URI)
+import           Network.URI                (URI)
 
 #if MIN_VERSION_time(1,5,0)
-import Data.Time.Format(defaultTimeLocale, rfc822DateFormat)
+import           Data.Time.Format           (defaultTimeLocale,
+                                             rfc822DateFormat)
 #else
-import System.Locale (defaultTimeLocale, rfc822DateFormat)
+import           System.Locale              (defaultTimeLocale,
+                                             rfc822DateFormat)
 #endif
 
-import Data.Time.Clock  (UTCTime)
-import Data.Time.Format (formatTime)
+import           Data.Time.Clock            (UTCTime)
+import           Data.Time.Format           (formatTime)
 
-import Text.XML.HaXml.Combinators (CFilter, mkElem, mkElemAttr, literal, cdata)
-import Text.XML.HaXml.Escape      (xmlEscape, stdXmlEscaper)
-import Text.XML.HaXml.Types       (Element,Content(..))
-import Text.XML.HaXml.Verbatim    (verbatim)
+import           Text.XML.HaXml.Combinators (CFilter, cdata, literal, mkElem,
+                                             mkElemAttr)
+import           Text.XML.HaXml.Escape      (stdXmlEscaper, xmlEscape)
+import           Text.XML.HaXml.Types       (Content (..), Element)
+import           Text.XML.HaXml.Verbatim    (verbatim)
 
 
 data RSS = RSS Title Link Description [ChannelElem] [Item]
@@ -212,7 +211,7 @@
 
 protocolName :: CloudProtocol -> String
 protocolName CloudProtocolXmlRpc = "xml-rpc"
-protocolName CloudProtocolSOAP = "soap"
+protocolName CloudProtocolSOAP   = "soap"
 
 mkItem :: Item -> CFilter ()
 mkItem itemElems = mkElem "item" (map mkItemElem itemElems)
diff --git a/rss.cabal b/rss.cabal
--- a/rss.cabal
+++ b/rss.cabal
@@ -1,50 +1,57 @@
-Name: rss
-Version: 3000.2.0.6
-Cabal-version: >=1.6
-Build-type: Simple
-Copyright: Jeremy Shaw 2004, Bjorn Bringert 2004-2006
-Maintainer: Bas van Dijk <v.dijk.bas@gmail.com>
-Author: Jeremy Shaw, Bjorn Bringert
-License: PublicDomain
-Homepage:    https://github.com/basvandijk/rss
-Bug-reports: https://github.com/basvandijk/rss/issues
-Synopsis: A library for generating RSS 2.0 feeds.
-Description:
- This library allows you to generate RSS 2.0 feeds.
+cabal-version: 1.12
+name: rss
+version: 3000.2.0.7
 
-extra-source-files: README.markdown
+build-type:  Simple
+copyright:   Jeremy Shaw 2004, Bjorn Bringert 2004-2006
+maintainer:  hvr@gnu.org
+author:      Jeremy Shaw, Bjorn Bringert
+license:     PublicDomain
+homepage:    https://github.com/hvr/rss
+bug-reports: https://github.com/hvr/rss/issues
+synopsis:    A library for generating RSS 2.0 feeds.
+category:    RSS
+description: This library allows you to generate [RSS 2.0](http://www.rssboard.org/rss-specification) feeds.
+tested-with: GHC==8.6.1, GHC==8.4.3, GHC==8.2.2, GHC==8.0.2, GHC==7.10.3, GHC==7.8.4, GHC==7.6.3, GHC==7.4.2, GHC==7.2.2, GHC==7.0.4
 
 source-repository head
-  Type:     git
-  Location: git://github.com/basvandijk/rss.git
+  type:     git
+  location: https://github.com/hvr/rss.git
 
 flag old-locale
-  description: If false then depend on time >= 1.5.
+  description: If false then depend on @time >= 1.5@.
                .
-               If true then depend on time < 1.5 together with old-locale.
+               If true then depend on @time < 1.5@ together with @old-locale@.
   default: False
 
 flag network-uri
-   description: Get Network.URI from the network-uri package
+   description: Get "Network.URI" from the @network-uri@ package
    default: True
 
-Library
-  build-depends: base       >= 3      && < 5
-               , HaXml      >= 1.24
-               , old-locale >= 1.0    && < 1.1
+library
+  exposed-modules: Text.RSS
 
+  default-language: Haskell2010
+  other-extensions: CPP
+  if impl(ghc >= 7.2)
+    default-extensions: Trustworthy
+
+  build-depends: base       >= 4.3    && < 4.13
+               , HaXml      >= 1.24   && < 1.26
+
   if flag(old-locale)
     build-depends: time       >= 1.1.2 && < 1.5
                  , old-locale >= 1.0   && < 1.1
   else
-    build-depends: time >= 1.5 && < 1.7
+    build-depends: time       >= 1.5   && < 1.9
 
   if flag(network-uri)
     build-depends: network-uri >= 2.6 && < 2.7
-                 , network     >= 2.6 && < 2.7
+                 , network     >= 2.6 && < 2.9
   else
     build-depends: network-uri >= 2.5 && < 2.6
                  , network     >= 2.0 && < 2.6
 
-  Exposed-Modules: Text.RSS
   ghc-options: -Wall
+  if impl(ghc >= 7.10)
+    ghc-options: -fno-warn-trustworthy-safe
