diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # cpkg
 
+## 0.2.5.0
+
+  * Add `package set:` info to `dhall --version`
+
 ## 0.2.4.2
 
   * Support `aarch64`
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -53,7 +53,8 @@
     <> header "cpkg - a build tool for C")
 
 versionInfo :: Parser (a -> a)
-versionInfo = infoOption ("cpkg version: " ++ V.showVersion cpkgVersion ++ "\n" ++ "dhall version: " ++ dhallVersionString) (short 'V' <> long "version" <> help "Show version")
+versionInfo = infoOption vStr (short 'V' <> long "version" <> help "Show version")
+    where vStr = "cpkg version: " ++ V.showVersion cpkgVersion ++ "\ndhall version: " ++ dhallVersionString ++ "\npackage set: " ++ T.unpack defaultPackageSetHash
 
 dumpTarget :: Parser DumpTarget
 dumpTarget = hsubparser
diff --git a/cabal.project b/cabal.project
--- a/cabal.project
+++ b/cabal.project
@@ -3,3 +3,11 @@
            , zlib +pkg-config
 
 max-backjumps: 40000
+
+allow-newer:
+  serialise:ghc-prim
+  haskeline:base
+  cborg-json:base
+  cborg:ghc-prim
+  dhall:template-haskell
+  polyparse:base
diff --git a/cpkg.cabal b/cpkg.cabal
--- a/cpkg.cabal
+++ b/cpkg.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               cpkg
-version:            0.2.4.6
+version:            0.2.5.0
 license:            BSD3
 license-file:       LICENSE
 copyright:          Copyright: (c) 2018-2020 Vanessa McHale
@@ -97,7 +97,7 @@
         filemanip -any,
         network-uri -any,
         megaparsec -any,
-        libarchive >=2.0.0.0,
+        libarchive >=2.2.1.0,
         dir-traverse >=0.2.1.0,
         composition-prelude >=1.5.2.0,
         lzlib >=0.3.0.0,
diff --git a/pkgs/pkg-set.dhall b/pkgs/pkg-set.dhall
--- a/pkgs/pkg-set.dhall
+++ b/pkgs/pkg-set.dhall
@@ -5,12 +5,6 @@
 let concat =
       https://raw.githubusercontent.com/dhall-lang/dhall-lang/dbcf50c27b1592a6acfd38cb3ba976e3a36b74fe/Prelude/Text/concat sha256:731265b0288e8a905ecff95c97333ee2db614c39d69f1514cb8eed9259745fc0
 
-let concatMapText =
-      https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMap sha256:7a0b0b99643de69d6f94ba49441cd0fa0507cbdfa8ace0295f16097af37e226f
-
-let not =
-      https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Bool/not sha256:723df402df24377d8a853afed08d9d69a0a6d86e2e5b2bac8960b0d4756c7dc4
-
 let types =
       ../dhall/cpkg-types.dhall sha256:caef717db41539eb7ded38d8cd676ba998bd387171ba3fd2db7fea9e8ee8f361
 
@@ -1115,12 +1109,13 @@
 
 let libffi =
         λ(v : List Natural)
-      →   prelude.simplePackage { name = "libffi", version = v }
-        ⫽ { pkgUrl =
-              "https://sourceware.org/ftp/libffi/libffi-${prelude.showVersion
-                                                            v}.tar.gz"
-          }
+      → let versionString = prelude.showVersion v
 
+        in    prelude.simplePackage { name = "libffi", version = v }
+            ⫽ { pkgUrl =
+                  "https://github.com/libffi/libffi/releases/download/v${versionString}/libffi-${versionString}.tar.gz"
+              }
+
 let gdb =
         λ(v : List Natural)
       →   prelude.makeGnuExe { name = "gdb", version = v }
@@ -2690,6 +2685,8 @@
             , prelude.unbounded "bzip2"
             , prelude.unbounded "zlib"
             ]
+          , installCommand =
+              prelude.installWithBinaries [ "bin/bsdtar", "bin/bsdcpio" ]
           }
 
 let pygobject =
@@ -4056,14 +4053,18 @@
           , configureCommand = prelude.doNothing
           , installCommand =
                 λ(cfg : types.BuildVars)
-              → [ prelude.call
-                    (   prelude.defaultCall
-                      ⫽ { program = "make"
-                        , arguments = [ "PREFIX=${cfg.installDir}", "install" ]
-                        , environment = Some (prelude.buildEnv cfg)
-                        }
-                    )
-                ]
+              →   [ prelude.call
+                      (   prelude.defaultCall
+                        ⫽ { program = "make"
+                          , arguments =
+                            [ "PREFIX=${cfg.installDir}", "install" ]
+                          , environment = Some (prelude.buildEnv cfg)
+                          }
+                      )
+                  , prelude.symlinkBinary "bin/lz4"
+                  ]
+                # prelude.symlinkManpages
+                    [ { file = "share/man/man1/lz4.1", section = 1 } ]
           }
 
 let fftw =
@@ -4421,7 +4422,11 @@
         ⫽ { pkgUrl =
               "http://download.savannah.gnu.org/releases/lzip/lzip-${prelude.showVersion
                                                                        v}.tar.lz"
-          , installCommand = prelude.installWithBinaries [ "bin/lzip" ]
+          , installCommand =
+                λ(cfg : types.BuildVars)
+              →   prelude.installWithBinaries [ "bin/lzip" ] cfg
+                # prelude.symlinkManpages
+                    [ { file = "share/man/man1/lzip.1", section = 1 } ]
           }
 
 let clzip =
@@ -4430,7 +4435,11 @@
         ⫽ { pkgUrl =
               "http://download.savannah.gnu.org/releases/lzip/clzip/clzip-${prelude.showVersion
                                                                               v}.tar.lz"
-          , installCommand = prelude.installWithBinaries [ "bin/clzip" ]
+          , installCommand =
+                λ(cfg : types.BuildVars)
+              →   prelude.installWithBinaries [ "bin/clzip" ] cfg
+                # prelude.symlinkManpages
+                    [ { file = "share/man/man1/clzip.1", section = 1 } ]
           }
 
 let lunzip =
@@ -4439,7 +4448,11 @@
         ⫽ { pkgUrl =
               "http://download.savannah.gnu.org/releases/lzip/lunzip/lunzip-${prelude.showVersion
                                                                                 v}.tar.lz"
-          , installCommand = prelude.installWithBinaries [ "bin/lunzip" ]
+          , installCommand =
+                λ(cfg : types.BuildVars)
+              →   prelude.installWithBinaries [ "bin/lunzip" ] cfg
+                # prelude.symlinkManpages
+                    [ { file = "share/man/man1/lunzip.1", section = 1 } ]
           }
 
 let lzlib =
@@ -4661,6 +4674,8 @@
                     λ(cfg : types.BuildVars)
                   →   prelude.cmakeInstall cfg
                     # [ prelude.symlinkBinary "bin/zstd" ]
+                    # prelude.symlinkManpages
+                        [ { file = "share/man/man1/zstd.1", section = 1 } ]
               }
 
 let luarocks =
@@ -4701,6 +4716,32 @@
                     ]
           }
 
+let smake =
+        λ(v : List Natural)
+      →   prelude.simplePackage { name = "smake", version = v }
+        ⫽ { pkgUrl =
+              "https://downloads.sourceforge.net/s-make/smake-${prelude.showVersion
+                                                                  v}.tar.bz2"
+          , configureCommand = prelude.doNothing
+          , installCommand =
+                λ(cfg : types.BuildVars)
+              →   [ prelude.call
+                      (   prelude.defaultCall
+                        ⫽ { program = "make"
+                          , arguments =
+                            [ "DESTDIR=${cfg.installDir}", "install" ]
+                          , environment = Some (prelude.buildEnv cfg)
+                          }
+                      )
+                  , prelude.symlinkBinary "opt/schily/bin/smake"
+                  ]
+                # prelude.symlinkManpages
+                    [ { file = "opt/schily/share/man/man1/smake.1"
+                      , section = 1
+                      }
+                    ]
+          }
+
 in  [ alsa-lib [ 1, 1, 9 ]
     , apr [ 1, 7, 0 ]
     , apr-util [ 1, 6, 1 ]
@@ -4709,7 +4750,7 @@
     , atk { version = [ 2, 33 ], patch = 3 }
     , ats [ 0, 4, 0 ]
     , autoconf [ 2, 69 ]
-    , automake [ 1, 16, 1 ]
+    , automake [ 1, 16, 2 ]
     , babl { version = [ 0, 1 ], patch = 68 }
     , bash [ 5, 0, 16 ]
     , bash-completion [ 2, 9 ]
@@ -4722,7 +4763,7 @@
     , cimg [ 2, 7, 0 ]
     , clang [ 9, 0, 0 ]
     , clzip [ 1, 11 ]
-    , cmake { version = [ 3, 16 ], patch = 4 }
+    , cmake { version = [ 3, 17 ], patch = 0 }
     , cmark [ 0, 29, 0 ]
     , compositeproto [ 0, 4 ]
     , coreutils [ 8, 31 ]
@@ -4750,10 +4791,10 @@
     , fltk [ 1, 3, 5 ]
     , freetype-prebuild [ 2, 10, 1 ]
     , freetype [ 2, 10, 1 ]
-    , fribidi [ 1, 0, 8 ]
+    , fribidi [ 1, 0, 9 ]
     , gawk [ 5, 0, 1 ]
     , gc [ 8, 0, 4 ]
-    , gcc [ 9, 2, 0 ]
+    , gcc [ 9, 3, 0 ]
     , gdb [ 8, 3, 1 ]
     , gdk-pixbuf { version = [ 2, 38 ], patch = 1 }
     , gegl { version = [ 0, 4 ], patch = 16 }
@@ -4763,8 +4804,8 @@
     , gperf [ 3, 1 ]
     , gperftools [ 2, 7 ]
     , giflib [ 5, 1, 4 ]
-    , git [ 2, 25, 0 ]
-    , glib { version = [ 2, 63 ], patch = 3 }
+    , git [ 2, 26, 0 ]
+    , glib { version = [ 2, 64 ], patch = 1 }
     , glib-networking { version = [ 2, 61 ], patch = 2 }
     , glproto [ 1, 4, 17 ]
     , glu [ 9, 0, 0 ]
@@ -4773,7 +4814,7 @@
     , gmp [ 6, 2, 0 ]
     , gobject-introspection { version = [ 1, 62 ], patch = 0 }
     , gnome-doc-utils { version = [ 0, 20 ], patch = 10 }
-    , gnupg [ 2, 2, 19 ]
+    , gnupg [ 2, 2, 20 ]
     , gnutls { version = [ 3, 6 ], patch = [ 11, 1 ] }
     , graphviz [ 2, 40, 1 ]
     , grep [ 3, 3 ]
@@ -4791,7 +4832,7 @@
     , inputproto [ 2, 3, 2 ]
     , intltool [ 0, 51, 0 ]
     , itstool [ 2, 0, 6 ]
-    , jemalloc [ 5, 2, 0 ]
+    , jemalloc [ 5, 2, 1 ]
     , joe [ 4, 6 ]
     , json-c { version = [ 0, 13, 1 ], dateStr = "20180305" }
     , kbproto [ 1, 0, 7 ]
@@ -4804,7 +4845,7 @@
     , libassuan [ 2, 5, 3 ]
     , libatomic_ops [ 7, 6, 10 ]
     , libav [ 12, 3 ]
-    , libboost [ 1, 69, 0 ]
+    , libboost [ 1, 72, 0 ]
     , libcds [ 2, 3, 2 ]
     , libcroco { version = [ 0, 6 ], patch = 12 }
     , libdatrie [ 0, 2, 12 ]
@@ -4930,7 +4971,7 @@
     , pygobject { version = [ 2, 28 ], patch = 7 }
     , pygtk { version = [ 2, 24 ], patch = 0 }
     , python [ 2, 7, 17 ]
-    , python [ 3, 8, 1 ]
+    , python [ 3, 8, 2 ]
     , qrencode [ 4, 0, 2 ]
     , qt { version = [ 5, 13 ], patch = 0 }
     , quazip [ 0, 8, 1 ]
@@ -4942,12 +4983,13 @@
     , recordproto [ 1, 14, 2 ]
     , renderproto [ 0, 11, 1 ]
     , ruby { version = [ 2, 7 ], patch = 0 }
-    , rustc [ 1, 41, 1 ]
+    , rustc [ 1, 42, 0 ]
     , scour [ 0, 37 ]
     , scrnsaverproto [ 1, 2, 2 ]
     , sdl2 [ 2, 0, 10 ]
     , sed [ 4, 7 ]
     , shared-mime-info [ 1, 10 ]
+    , smake [ 1, 2, 5 ]
     , sqlite { version = [ 3, 30, 1 ] }
     , star [ 1, 6 ]
     , subversion [ 1, 12, 2 ]
@@ -4975,7 +5017,7 @@
     , xmlParser [ 2, 44 ]
     , xproto [ 7, 0, 31 ]
     , xtrans [ 1, 4, 0 ]
-    , xz [ 5, 2, 4 ]
+    , xz [ 5, 2, 5 ]
     , zlib [ 1, 2, 11 ]
     , zstd [ 1, 4, 4 ]
     ]
diff --git a/src/Package/C.hs b/src/Package/C.hs
--- a/src/Package/C.hs
+++ b/src/Package/C.hs
@@ -44,6 +44,8 @@
                  , parseTriple
                  , parseTripleIO
                  , parseHostIO
+                 -- * Version
+                 , defaultPackageSetHash
                  ) where
 
 import           Package.C.Build
diff --git a/src/Package/C/PackageSet.hs b/src/Package/C/PackageSet.hs
--- a/src/Package/C/PackageSet.hs
+++ b/src/Package/C/PackageSet.hs
@@ -6,6 +6,7 @@
                             , pkgsM
                             , displayPackageSet
                             , displayPackage
+                            , defaultPackageSetHash
                             ) where
 
 import           CPkgPrelude
@@ -22,9 +23,13 @@
 import           Package.C.Type
 import           Package.C.Type.Tree
 
+defaultPackageSetHash :: T.Text
+defaultPackageSetHash = "sha256:b529988940e56cc3e91641c57588b336b107f7cf84a0086abfb272edadc7bb38"
+
 defaultPackageSetDhall :: Maybe String -> IO PackageSetDhall
 defaultPackageSetDhall (Just pkSet) = input auto (T.pack pkSet)
-defaultPackageSetDhall Nothing      = input auto "https://raw.githubusercontent.com/vmchale/cpkg/ea4e5bb39364b6ef44b4c4fea69163263d59dde0/pkgs/pkg-set.dhall sha256:66f21b9803dc5ca046868eb10ea08c70102fc00da12471b46414f2335b928a7b"
+defaultPackageSetDhall Nothing      = input auto ("https://raw.githubusercontent.com/vmchale/cpkg/39a0e2428482dc9c934760d49f1aa3df8563a717/pkgs/pkg-set.dhall " <> defaultPackageSetHash)
+
 
 displayPackageSet :: Maybe String -> IO ()
 displayPackageSet = putDoc . pretty <=< defaultPackageSetDhall
diff --git a/src/Package/C/Unpack.hs b/src/Package/C/Unpack.hs
--- a/src/Package/C/Unpack.hs
+++ b/src/Package/C/Unpack.hs
@@ -10,6 +10,7 @@
 import qualified Codec.Compression.Lzma      as Lzma
 import qualified Codec.Compression.Zstd.Lazy as Zstd
 import qualified Codec.Lzip                  as Lzip
+import           Control.Exception           (throw)
 import qualified Data.ByteString.Lazy        as BSL
 import           System.Directory
 
@@ -34,9 +35,7 @@
 
 archiveResponse :: TarCompress -> FilePath -> BSL.ByteString -> IO ()
 archiveResponse compressScheme dirName =
-    fmap (either showError id) . Archive.runArchiveM . Archive.unpackToDirLazy dirName . getCompressor compressScheme
-
-    where showError = error . show
+    fmap (either throw id) . Archive.runArchiveM . Archive.unpackToDirLazy dirName . getCompressor compressScheme
 
 zipResponse :: FilePath -> BSL.ByteString -> IO ()
 zipResponse dirName response = withCurrentDirectory dirName $ do
