aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Sucan <jan@jansucan.com>2025-09-14 15:54:53 +0200
committerJan Sucan <jan@jansucan.com>2025-09-14 15:54:53 +0200
commitc3caf869c72050123b75b61ae0aca1a975f8e285 (patch)
tree18c0ddc83243c251ad3000d79460ec685fb5a748
parent36fc1e924d6920629d764d934e8939a48ac1ff0f (diff)
ch23: Add support for HTTPS for easier testing
-rw-r--r--ch23/support/README.md9
-rw-r--r--ch23/support/ch23_https.patch77
-rwxr-xr-xch23/support/main.sh165
3 files changed, 247 insertions, 4 deletions
diff --git a/ch23/support/README.md b/ch23/support/README.md
index 5e0dc1f..ece30bd 100644
--- a/ch23/support/README.md
+++ b/ch23/support/README.md
@@ -79,7 +79,14 @@ those in a normal shell session without the environment activated.
### Patching the code of chapter 23
-Go to the directory with code for the chapter and run `patch -p1 < /path/to/the/ch23.patch`.
+Go to the directory with code for the chapter and run
+```
+patch -p1 < /path/to/the/ch23.patch
+patch -p1 < /path/to/the/ch23_https.patch
+```
+The second patch is not necessary for getting the code to compile, but it
+enables HTTPS support for testing the podcast downloader with modern podcast
+feeds which are accessible via HTTPS. The original downloader support only HTTP.
### Compiling and running the application
diff --git a/ch23/support/ch23_https.patch b/ch23/support/ch23_https.patch
new file mode 100644
index 0000000..e93c83f
--- /dev/null
+++ b/ch23/support/ch23_https.patch
@@ -0,0 +1,77 @@
+diff -rupN ch23/PodDownload.hs new-ch23/PodDownload.hs
+--- ch23/PodDownload.hs 2025-09-14 15:33:15.647379522 +0200
++++ new-ch23/PodDownload.hs 2025-09-14 15:41:54.129935197 +0200
+@@ -3,32 +3,35 @@ module PodDownload where
+ import PodTypes
+ import PodDB
+ import PodParser
+-import Network.HTTP
++import Network.HTTP.Conduit
++import Network.HTTP.Types.Method
++import Network.HTTP.Types.Status
+ import System.IO
+ import Database.HDBC
+ import Data.Maybe
+ import Network.URI
+
++import qualified Data.Text.Lazy as LT
++import qualified Data.Text.Lazy.Encoding as LTE
++import qualified Data.Text as T
++import qualified Data.Text.Encoding as TE
++import qualified Data.ByteString.Lazy as LBS
++
+ {- | Download a URL. (Left errorMessage) if an error,
+ (Right doc) if success. -}
+-downloadURL :: String -> IO (Either String String)
++downloadURL :: String -> IO (Either String LBS.ByteString)
+ downloadURL url =
+- do resp <- simpleHTTP request
+- case resp of
+- Left x -> return $ Left ("Error connecting: " ++ show x)
+- Right r ->
+- case rspCode r of
+- (2,_,_) -> return $ Right (rspBody r)
+- (3,_,_) -> -- A HTTP redirect
+- case findHeader HdrLocation r of
+- Nothing -> return $ Left (show r)
+- Just url -> downloadURL url
+- _ -> return $ Left (show r)
+- where request = Request {rqURI = uri,
+- rqMethod = GET,
+- rqHeaders = [],
+- rqBody = ""}
+- uri = fromJust $ parseURI url
++ do initReq <- parseRequest url
++ let request = initReq { method = methodGet }
++ manager <- newManager tlsManagerSettings
++ resp <- httpLbs request manager
++ let status = responseStatus resp
++ -- httpLbs follows redirections (up to the limit specified in the
++ -- request, default is 10). No need to handle redirections explicitly
++ -- here.
++ if statusIsSuccessful status
++ then return $ Right $ responseBody resp
++ else return $ Left $ T.unpack $ TE.decodeUtf8 $ statusMessage status
+
+ {- | Update the podcast in the database. -}
+ updatePodcastFromFeed :: IConnection conn => conn -> Podcast -> IO ()
+@@ -36,7 +39,7 @@ updatePodcastFromFeed dbh pc =
+ do resp <- downloadURL (castURL pc)
+ case resp of
+ Left x -> putStrLn x
+- Right doc -> updateDB doc
++ Right doc -> updateDB $ LT.unpack $ LTE.decodeUtf8 $ doc
+
+ where updateDB doc =
+ do mapM_ (addEpisode dbh) episodes
+@@ -53,9 +56,7 @@ getEpisode dbh ep =
+ Left x -> do putStrLn x
+ return Nothing
+ Right doc ->
+- do file <- openBinaryFile filename WriteMode
+- hPutStr file doc
+- hClose file
++ do LBS.writeFile filename doc
+ updateEpisode dbh (ep {epDone = True})
+ commit dbh
+ return (Just filename)
diff --git a/ch23/support/main.sh b/ch23/support/main.sh
index f248c28..2851bc4 100755
--- a/ch23/support/main.sh
+++ b/ch23/support/main.sh
@@ -39,7 +39,6 @@ function download_sources()
# Haskell source packages
urls[packages/HDBC-2.4.0.2.tar.gz]='https://hackage.haskell.org/package/HDBC-2.4.0.2/HDBC-2.4.0.2.tar.gz'
urls[packages/HDBC-sqlite3-2.3.3.1.tar.gz]='https://hackage.haskell.org/package/HDBC-sqlite3-2.3.3.1/HDBC-sqlite3-2.3.3.1.tar.gz'
- urls[packages/HTTP-4000.4.1.tar.gz]='https://hackage.haskell.org/package/HTTP-4000.4.1/HTTP-4000.4.1.tar.gz'
urls[packages/HaXml-1.25.3.tar.gz]='https://hackage.haskell.org/package/HaXml-1.25.3/HaXml-1.25.3.tar.gz'
urls[packages/QuickCheck-2.8.2.tar.gz]='https://hackage.haskell.org/package/QuickCheck-2.8.2/QuickCheck-2.8.2.tar.gz'
urls[packages/alex-3.1.7.tar.gz]='https://hackage.haskell.org/package/alex-3.1.7/alex-3.1.7.tar.gz'
@@ -69,6 +68,60 @@ function download_sources()
urls[packages/utf8-string-1.0.2.tar.gz]='https://hackage.haskell.org/package/utf8-string-1.0.2/utf8-string-1.0.2.tar.gz'
urls[packages/vector-0.12.0.0.tar.gz]='https://hackage.haskell.org/package/vector-0.12.0.0/vector-0.12.0.0.tar.gz'
+ # For only HTTP. If you uncomment this, comment out the packages for HTTPS.
+ #urls[packages/HTTP-4000.4.1.tar.gz]='https://hackage.haskell.org/package/HTTP-4000.4.1/HTTP-4000.4.1.tar.gz'
+ # For HTTPS
+ urls[packages/aeson-1.2.4.0.tar.gz]='https://hackage.haskell.org/package/aeson-1.2.4.0/aeson-1.2.4.0.tar.gz'
+ urls[packages/asn1-encoding-0.9.6.tar.gz]='https://hackage.haskell.org/package/asn1-encoding-0.9.6/asn1-encoding-0.9.6.tar.gz'
+ urls[packages/asn1-parse-0.9.5.tar.gz]='https://hackage.haskell.org/package/asn1-parse-0.9.5/asn1-parse-0.9.5.tar.gz'
+ urls[packages/asn1-types-0.3.4.tar.gz]='https://hackage.haskell.org/package/asn1-types-0.3.4/asn1-types-0.3.4.tar.gz'
+ urls[packages/async-2.2.5.tar.gz]='https://hackage.haskell.org/package/async-2.2.5/async-2.2.5.tar.gz'
+ urls[packages/attoparsec-0.13.2.4.tar.gz]='https://hackage.haskell.org/package/attoparsec-0.13.2.4/attoparsec-0.13.2.4.tar.gz'
+ urls[packages/base-compat-0.9.3.tar.gz]='https://hackage.haskell.org/package/base-compat-0.9.3/base-compat-0.9.3.tar.gz'
+ urls[packages/basement-0.0.12.tar.gz]='https://hackage.haskell.org/package/basement-0.0.12/basement-0.0.12.tar.gz'
+ urls[packages/blaze-builder-0.4.2.2.tar.gz]='https://hackage.haskell.org/package/blaze-builder-0.4.2.2/blaze-builder-0.4.2.2.tar.gz'
+ urls[packages/case-insensitive-1.2.1.0.tar.gz]='https://hackage.haskell.org/package/case-insensitive-1.2.1.0/case-insensitive-1.2.1.0.tar.gz'
+ urls[packages/cereal-0.5.8.3.tar.gz]='https://hackage.haskell.org/package/cereal-0.5.8.3/cereal-0.5.8.3.tar.gz'
+ urls[packages/conduit-1.3.4.1.tar.gz]='https://hackage.haskell.org/package/conduit-1.3.4.1/conduit-1.3.4.1.tar.gz'
+ urls[packages/conduit-extra-1.3.5.tar.gz]='https://hackage.haskell.org/package/conduit-extra-1.3.5/conduit-extra-1.3.5.tar.gz'
+ urls[packages/connection-0.3.1.tar.gz]='https://hackage.haskell.org/package/connection-0.3.1/connection-0.3.1.tar.gz'
+ urls[packages/containers-0.6.5.1.tar.gz]='https://hackage.haskell.org/package/containers-0.6.5.1/containers-0.6.5.1.tar.gz'
+ urls[packages/cookie-0.4.5.tar.gz]='https://hackage.haskell.org/package/cookie-0.4.5/cookie-0.4.5.tar.gz'
+ urls[packages/cryptonite-0.28.tar.gz]='https://hackage.haskell.org/package/cryptonite-0.28/cryptonite-0.28.tar.gz'
+ urls[packages/data-default-class-0.1.2.0.tar.gz]='https://hackage.haskell.org/package/data-default-class-0.1.2.0/data-default-class-0.1.2.0.tar.gz'
+ urls[packages/dlist-1.0.tar.gz]='https://hackage.haskell.org/package/dlist-1.0/dlist-1.0.tar.gz'
+ urls[packages/exceptions-0.10.10.tar.gz]='https://hackage.haskell.org/package/exceptions-0.10.10/exceptions-0.10.10.tar.gz'
+ urls[packages/hourglass-0.2.11.tar.gz]='https://hackage.haskell.org/package/hourglass-0.2.11/hourglass-0.2.11.tar.gz'
+ urls[packages/http-client-0.5.14.tar.gz]='https://hackage.haskell.org/package/http-client-0.5.14/http-client-0.5.14.tar.gz'
+ urls[packages/http-client-tls-0.3.5.3.tar.gz]='https://hackage.haskell.org/package/http-client-tls-0.3.5.3/http-client-tls-0.3.5.3.tar.gz'
+ urls[packages/http-conduit-2.3.7.3.tar.gz]='https://hackage.haskell.org/package/http-conduit-2.3.7.3/http-conduit-2.3.7.3.tar.gz'
+ urls[packages/http-types-0.12.3.tar.gz]='https://hackage.haskell.org/package/http-types-0.12.3/http-types-0.12.3.tar.gz'
+ urls[packages/integer-logarithms-1.0.3.1.tar.gz]='https://hackage.haskell.org/package/integer-logarithms-1.0.3.1/integer-logarithms-1.0.3.1.tar.gz'
+ urls[packages/memory-0.17.0.tar.gz]='https://hackage.haskell.org/package/memory-0.17.0/memory-0.17.0.tar.gz'
+ urls[packages/mime-types-0.1.0.9.tar.gz]='https://hackage.haskell.org/package/mime-types-0.1.0.9/mime-types-0.1.0.9.tar.gz'
+ urls[packages/mono-traversable-1.0.12.0.tar.gz]='https://hackage.haskell.org/package/mono-traversable-1.0.12.0/mono-traversable-1.0.12.0.tar.gz'
+ urls[packages/pem-0.2.4.tar.gz]='https://hackage.haskell.org/package/pem-0.2.4/pem-0.2.4.tar.gz'
+ urls[packages/resourcet-1.2.4.3.tar.gz]='https://hackage.haskell.org/package/resourcet-1.2.4.3/resourcet-1.2.4.3.tar.gz'
+ urls[packages/scientific-0.3.6.2.tar.gz]='https://hackage.haskell.org/package/scientific-0.3.6.2/scientific-0.3.6.2.tar.gz'
+ urls[packages/socks-0.6.1.tar.gz]='https://hackage.haskell.org/package/socks-0.6.1/socks-0.6.1.tar.gz'
+ urls[packages/split-0.2.5.tar.gz]='https://hackage.haskell.org/package/split-0.2.5/split-0.2.5.tar.gz'
+ urls[packages/stm-2.5.3.1.tar.gz]='https://hackage.haskell.org/package/stm-2.5.3.1/stm-2.5.3.1.tar.gz'
+ urls[packages/streaming-commons-0.2.2.1.tar.gz]='https://hackage.haskell.org/package/streaming-commons-0.2.2.1/streaming-commons-0.2.2.1.tar.gz'
+ urls[packages/tagged-0.8.9.tar.gz]='https://hackage.haskell.org/package/tagged-0.8.9/tagged-0.8.9.tar.gz'
+ urls[packages/th-abstraction-0.2.11.0.tar.gz]='https://hackage.haskell.org/package/th-abstraction-0.2.11.0/th-abstraction-0.2.11.0.tar.gz'
+ urls[packages/time-locale-compat-0.1.1.5.tar.gz]='https://hackage.haskell.org/package/time-locale-compat-0.1.1.5/time-locale-compat-0.1.1.5.tar.gz'
+ urls[packages/tls-1.4.1.tar.gz]='https://hackage.haskell.org/package/tls-1.4.1/tls-1.4.1.tar.gz'
+ urls[packages/typed-process-0.2.6.0.tar.gz]='https://hackage.haskell.org/package/typed-process-0.2.6.0/typed-process-0.2.6.0.tar.gz'
+ urls[packages/unliftio-core-0.2.1.0.tar.gz]='https://hackage.haskell.org/package/unliftio-core-0.2.1.0/unliftio-core-0.2.1.0.tar.gz'
+ urls[packages/unordered-containers-0.2.16.0.tar.gz]='https://hackage.haskell.org/package/unordered-containers-0.2.16.0/unordered-containers-0.2.16.0.tar.gz'
+ urls[packages/uuid-types-1.0.3.tar.gz]='https://hackage.haskell.org/package/uuid-types-1.0.3/uuid-types-1.0.3.tar.gz'
+ urls[packages/vector-algorithms-0.8.0.4.tar.gz]='https://hackage.haskell.org/package/vector-algorithms-0.8.0.4/vector-algorithms-0.8.0.4.tar.gz'
+ urls[packages/x509-1.7.6.tar.gz]='https://hackage.haskell.org/package/x509-1.7.6/x509-1.7.6.tar.gz'
+ urls[packages/x509-store-1.6.9.tar.gz]='https://hackage.haskell.org/package/x509-store-1.6.9/x509-store-1.6.9.tar.gz'
+ urls[packages/x509-system-1.6.7.tar.gz]='https://hackage.haskell.org/package/x509-system-1.6.7/x509-system-1.6.7.tar.gz'
+ urls[packages/x509-validation-1.6.12.tar.gz]='https://hackage.haskell.org/package/x509-validation-1.6.12/x509-validation-1.6.12.tar.gz'
+ urls[packages/zlib-0.6.2.2.tar.gz]='https://hackage.haskell.org/package/zlib-0.6.2.2/zlib-0.6.2.2.tar.gz'
+
for src in "${!urls[@]}"; do
if [ ! -f $ROOT/$src ]; then
dir=$ROOT/$(dirname $src)
@@ -97,7 +150,6 @@ function verify_sources()
# Haskell source packages
sums[packages/HDBC-2.4.0.2.tar.gz]='670757fd674b6caf2f456034bdcb54812af2cdf2a32465d7f4b7f0baa377db5a'
sums[packages/HDBC-sqlite3-2.3.3.1.tar.gz]='a783d9ab707ebfc68e3e46bd1bbb5d3d5493f50a7ccf31223d9848cff986ebea'
- sums[packages/HTTP-4000.4.1.tar.gz]='df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453'
sums[packages/HaXml-1.25.3.tar.gz]='6448a7ee1c26159c6c10db93757ed9248f647b1c0c431e7aead6aadd6d2307c7'
sums[packages/QuickCheck-2.8.2.tar.gz]='98c64de1e2dbf801c54dcdcb8ddc33b3569e0da38b39d711ee6ac505769926aa'
sums[packages/alex-3.1.7.tar.gz]='89a1a13da6ccbeb006488d9574382e891cf7c0567752b330cc8616d748bf28d1'
@@ -127,6 +179,60 @@ function verify_sources()
sums[packages/utf8-string-1.0.2.tar.gz]='ee48deada7600370728c4156cb002441de770d0121ae33a68139a9ed9c19b09a'
sums[packages/vector-0.12.0.0.tar.gz]='27bf375d0efbff61acaeb75a2047afcbdac930191069a59da4a474b9bf80ec95'
+ # For only HTTP. If you uncomment this, comment out the packages for HTTPS.
+ #sums[packages/HTTP-4000.4.1.tar.gz]='df31d8efec775124dab856d7177ddcba31be9f9e0836ebdab03d94392f2dd453'
+ # For HTTPS
+ sums[packages/aeson-1.2.4.0.tar.gz]='3401dba4fddb92c8a971f6645b38e2f8a1b286ef7061cd392a1a567640bbfc9b'
+ sums[packages/asn1-encoding-0.9.6.tar.gz]='d9f8deabd3b908e5cf83c0d813c08dc0143b3ec1c0d97f660d2cfa02c1c8da0a'
+ sums[packages/asn1-parse-0.9.5.tar.gz]='8f1fe1344d30b39dc594d74df2c55209577722af1497204b4c2b6d6e8747f39e'
+ sums[packages/asn1-types-0.3.4.tar.gz]='78ee92a251379298ca820fa53edbf4b33c539b9fcd887c86f520c30e3b4e21a8'
+ sums[packages/async-2.2.5.tar.gz]='1818473ebab9212afad2ed76297aefde5fae8b5d4404daf36939aece6a8f16f7'
+ sums[packages/attoparsec-0.13.2.4.tar.gz]='ba66cd6de1749ec92568db1b9c905b43a849f0ad918d45d7b594407a02ebefb2'
+ sums[packages/base-compat-0.9.3.tar.gz]='7d602b0f0543fadbd598a090c738e9ce9b07a1896673dc27f1503ae3bea1a210'
+ sums[packages/basement-0.0.12.tar.gz]='53c4435b17b7df398c730406263957977fe0616b66529dafa8d1a0fd66b7fa8b'
+ sums[packages/blaze-builder-0.4.2.2.tar.gz]='2cdc998c021d3a5f2a66a95138b93386271c26a117e7676d78264a90e536af67'
+ sums[packages/case-insensitive-1.2.1.0.tar.gz]='296dc17e0c5f3dfb3d82ced83e4c9c44c338ecde749b278b6eae512f1d04e406'
+ sums[packages/cereal-0.5.8.3.tar.gz]='99905220661b26e5bd91130bd9772554938608a5b1d717240a6eb331121e0f6a'
+ sums[packages/conduit-1.3.4.1.tar.gz]='85743b8d5f2d5779ccb7459b5a919c5786707af23fe7a065d281ee8e6dc226f1'
+ sums[packages/conduit-extra-1.3.5.tar.gz]='8a648dee203c01e647fa386bfe7a5b293ce552f8b5cab9c0dd5cb71c7cd012d9'
+ sums[packages/connection-0.3.1.tar.gz]='5d759589c532c34d87bfc4f6fcb732bf55b55a93559d3b94229e8347a15375d9'
+ sums[packages/containers-0.6.5.1.tar.gz]='d11ebadf486027382b135b6789424cb37d0df9db7eb2914f8607b15fd5dc9efe'
+ sums[packages/cookie-0.4.5.tar.gz]='707f94d1b31018b91d6a1e9e19ef5413e20d02cab00ad93a5fd7d7b3b46a3583'
+ sums[packages/cryptonite-0.28.tar.gz]='74ad886ae3f7cd6cadecb596707e49df37b0170ceed313e382bd15b13132a5db'
+ sums[packages/data-default-class-0.1.2.0.tar.gz]='4f01b423f000c3e069aaf52a348564a6536797f31498bb85c3db4bd2d0973e56'
+ sums[packages/dlist-1.0.tar.gz]='173d637328bb173fcc365f30d29ff4a94292a1e0e5558aeb3dfc11de81510115'
+ sums[packages/exceptions-0.10.10.tar.gz]='08ff819efe7f6ff4df2eb4319f45071842f450328c84599fc450c0e285acadb1'
+ sums[packages/hourglass-0.2.11.tar.gz]='18a6bb303fc055275cca45aaffc17b6a04b2e9d7509aa5aa5bb9d9239f4e4f51'
+ sums[packages/http-client-0.5.14.tar.gz]='8e50409704021c51a8955b2d03bfec900ebc3e11fbaebf973f2e654d7bde3647'
+ sums[packages/http-client-tls-0.3.5.3.tar.gz]='471abf8f29a909f40b21eab26a410c0e120ae12ce337512a61dae9f52ebb4362'
+ sums[packages/http-conduit-2.3.7.3.tar.gz]='7aeddc51bcc8f356fb0c9c9ea901b9fbbe7eef024d59ab77261e41e043843a03'
+ sums[packages/http-types-0.12.3.tar.gz]='4e8a4a66477459fa436a331c75e46857ec8026283df984d54f90576cd3024016'
+ sums[packages/integer-logarithms-1.0.3.1.tar.gz]='9b0a9f9fab609b15cd015865721fb05f744a1bc77ae92fd133872de528bbea7f'
+ sums[packages/memory-0.17.0.tar.gz]='3327e7bde8bf2c4c8ee405c890a69412bcc192fceb2c10525f3cc563f78e837a'
+ sums[packages/mime-types-0.1.0.9.tar.gz]='0a32435169ef4ba59f4a4b8addfd0c04479410854d1b8d69a1e38fb389ba71d2'
+ sums[packages/mono-traversable-1.0.12.0.tar.gz]='3e7b875a3910c010633dde5fef82397c094cbb42a1bbc0e838af7ba57c35a8c0'
+ sums[packages/pem-0.2.4.tar.gz]='770c4c1b9cd24b3db7f511f8a48404a0d098999e28573c3743a8a296bb96f8d4'
+ sums[packages/resourcet-1.2.4.3.tar.gz]='054152fec5cdc044dd9310c37e548913bcec67ec4e84998a1419a8c067b43b7f'
+ sums[packages/scientific-0.3.6.2.tar.gz]='278d0afc87450254f8a76eab21b5583af63954efc9b74844a17a21a68013140f'
+ sums[packages/socks-0.6.1.tar.gz]='734447558bb061ce768f53a0df1f2401902c6bee396cc96ce627edd986ef6a73'
+ sums[packages/split-0.2.5.tar.gz]='52da404e8397c1ab238354c8d4fd9a7e9c5cac8849cc2ce2e45facc85e74a913'
+ sums[packages/stm-2.5.3.1.tar.gz]='ebb0465391edce6787e954bef0d0246ec007b2c9096b7c21ad69ab7d802630e7'
+ sums[packages/streaming-commons-0.2.2.1.tar.gz]='306940bf4878a0b714e6746a7f934d018100efc86332c176a648014bfe1e81dd'
+ sums[packages/tagged-0.8.9.tar.gz]='6daad88ebb414ba6a556d2898d2cbe7650e4276010e3a6eed939daf54b956784'
+ sums[packages/th-abstraction-0.2.11.0.tar.gz]='51884bcc31d825b93e6788f5731bd7234478dd4ada379816a88228ccc8e0800c'
+ sums[packages/time-locale-compat-0.1.1.5.tar.gz]='07ff1566de7d851423a843b2de385442319348c621d4f779b3d365ce91ac502c'
+ sums[packages/tls-1.4.1.tar.gz]='bbead1afc0b808bd5cff7bddaeae84ade37f18bbe72bd78d45a2fa4ac41908f8'
+ sums[packages/typed-process-0.2.6.0.tar.gz]='31a2a81f33463fedc33cc519ad5b9679787e648fe2ec7efcdebd7d54bdbbc2b1'
+ sums[packages/unliftio-core-0.2.1.0.tar.gz]='99384cba8d56d9d61b85e38a313a93ebcdb78be6566367f0930ef580597fe3e3'
+ sums[packages/unordered-containers-0.2.16.0.tar.gz]='bccf68bcf262a149e8cdb25bc4a87d59642faa772ec4db384e16ac8f4f3f49ef'
+ sums[packages/uuid-types-1.0.3.tar.gz]='9276517ab24a9b06f39d6e3c33c6c2b4ace1fc2126dbc1cd9806866a6551b3fd'
+ sums[packages/vector-algorithms-0.8.0.4.tar.gz]='76176a56778bf30a275b1089ee6db24ec6c67d92525145f8dfe215b80137af3b'
+ sums[packages/x509-1.7.6.tar.gz]='a5d59a3a576f78a0f47adf509e53c2ab803491f07eb0c40b5ffd0304fa939884'
+ sums[packages/x509-store-1.6.9.tar.gz]='c59213520cf31a0a18611a60b8a4d2d7aa6cb206c0545d857b98dcb90fc5c8da'
+ sums[packages/x509-system-1.6.7.tar.gz]='68fc1ffd9b33fc85886934a39f12064ef465b12043503fe1b489c098bb6a2b11'
+ sums[packages/x509-validation-1.6.12.tar.gz]='0d8e44e199332b22df3e7c19d21b1a79f237fde9a3abf23bef9e7c4991d0f1c8'
+ sums[packages/zlib-0.6.2.2.tar.gz]='04b5890dd69e992f8cd09570d81e9d5ecab19db8e82cbe47ba8e02c31c0631ba'
+
# Patches
sums[patches/gtk-0.14.5.patch]='d5e0e8041a8109a1039c7a36a1c0dde6ca805f685f504b4894527e36e0ab70c2'
# Patch forgtk2hs-buildtools gotten from https://github.com/gtk2hs/gtk2hs/pull/304
@@ -335,7 +441,6 @@ install_package network-2.6.3.1
install_package parsec-3.1.15.0
install_package th-compat-0.1.6
install_package network-uri-2.6.4.2
-install_package HTTP-4000.4.1
install_package hashable-1.2.4.0
install_package vector-0.12.0.0
install_package hashtables-1.2.1.1
@@ -343,6 +448,60 @@ install_package network-2.6.3.1
install_package alex-3.1.7
install_package happy-1.19.5
install_package gtk2hs-buildtools-0.13.5.0
+# For only HTTP. If you uncomment this, comment out the packages for HTTPS.
+#install_package HTTP-4000.4.1
+# For HTTPS
+install_package integer-logarithms-1.0.3.1
+install_package scientific-0.3.6.2
+install_package attoparsec-0.13.2.4
+install_package dlist-1.0
+install_package base-compat-0.9.3
+install_package tagged-0.8.9
+install_package th-abstraction-0.2.11.0
+install_package time-locale-compat-0.1.1.5
+install_package unordered-containers-0.2.16.0
+install_package uuid-types-1.0.3
+install_package aeson-1.2.4.0
+install_package unliftio-core-0.2.1.0
+install_package stm-2.5.3.1
+install_package exceptions-0.10.10
+install_package resourcet-1.2.4.3
+install_package containers-0.6.5.1
+install_package vector-algorithms-0.8.0.4
+install_package split-0.2.5
+install_package mono-traversable-1.0.12.0
+install_package conduit-1.3.4.1
+install_package async-2.2.5
+install_package zlib-0.6.2.2
+install_package streaming-commons-0.2.2.1
+install_package typed-process-0.2.6.0
+install_package conduit-extra-1.3.5
+install_package case-insensitive-1.2.1.0
+install_package http-types-0.12.3
+install_package basement-0.0.12
+install_package data-default-class-0.1.2.0
+install_package cereal-0.5.8.3
+install_package socks-0.6.1
+install_package hourglass-0.2.11
+install_package memory-0.17.0
+install_package asn1-types-0.3.4
+install_package asn1-encoding-0.9.6
+install_package cryptonite-0.28
+install_package pem-0.2.4
+install_package asn1-parse-0.9.5
+install_package x509-1.7.6
+install_package x509-validation-1.6.12
+install_package x509-store-1.6.9
+install_package tls-1.4.1
+install_package x509-system-1.6.7
+install_package connection-0.3.1
+install_package mime-types-0.1.0.9
+install_package cookie-0.4.5
+install_package blaze-builder-0.4.2.2
+install_package http-client-0.5.14
+install_package http-client-tls-0.3.5.3
+install_package http-conduit-2.3.7.3
+# End of packages for HTTPS
install_glib