diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # cpkg
 
+## 0.2.3.3
+
+  * Add `find` subcommand
+
 ## 0.2.3.2
     
   * Add `.lz` support
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -12,6 +12,9 @@
 cpkgVersion :: V.Version
 cpkgVersion = P.version
 
+-- dhallStandardVersion
+-- dhallVersion
+
 data DumpTarget = Linker { _pkgGet :: String }
                 | Compiler { _pkgGet :: String }
                 | PkgConfig { _pkgGets :: [String] }
@@ -26,6 +29,7 @@
              | Dump { _dumpTarget :: DumpTarget, _host :: Maybe Platform }
              | DumpCabal { _pkgGetsCabal :: [String], _host :: Maybe Platform }
              | List { _packageSet :: Maybe String }
+             | Find { _findPkg :: String }
              | Nuke
              | NukeCache
              | GarbageCollect { _verbosity :: Verbosity }
@@ -72,6 +76,7 @@
     <> command "dump" (info dump (progDesc "Display flags to link against a particular library"))
     <> command "dump-cabal" (info dumpCabal (progDesc "Display flags to use with cabal new-build"))
     <> command "list" (info list (progDesc "List all available packages"))
+    <> command "find" (info find (progDesc "Find a package and list information"))
     <> command "nuke" (info (pure Nuke) (progDesc "Remove all globally installed libraries"))
     <> command "nuke-cache" (info (pure NukeCache) (progDesc "Remove cached soure tarballs"))
     <> command "garbage-collect" (info garbageCollect' (progDesc "Garbage collect redundant packages"))
@@ -80,6 +85,13 @@
 list :: Parser Command
 list = List <$> packageSet
 
+find :: Parser Command
+find = Find
+    <$> argument str
+        (metavar "PACKAGE"
+        <> help "Name of package"
+        )
+
 ftypeCompletions :: String -> Mod ArgumentFields a
 ftypeCompletions ext = completer . bashCompleter $ "file -X '!*." ++ ext ++ "' -o plusdirs"
 
@@ -189,6 +201,7 @@
         removeDirectoryRecursive pkgDir
 run NukeCache = cleanCache
 run (List pkSet) = displayPackageSet pkSet
+run (Find pk) = displayPackage pk
 run (GarbageCollect v) = runPkgM v garbageCollect
 
 main :: IO ()
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.3.2
+version:            0.2.3.3
 license:            BSD3
 license-file:       LICENSE
 copyright:          Copyright: (c) 2018-2019 Vanessa McHale
diff --git a/pkgs/pkg-set.dhall b/pkgs/pkg-set.dhall
--- a/pkgs/pkg-set.dhall
+++ b/pkgs/pkg-set.dhall
@@ -1,4 +1,4 @@
-{- Dhall prelue imports -}
+ - Dhall prelue imports -}
 let concatMapSep = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMapSep
 in
 
@@ -1041,12 +1041,19 @@
     in
 
     prelude.simplePackage { name = "imagemagick", version = v } ⫽
-      { pkgUrl = "https://imagemagick.org/download/ImageMagick-${versionString}-21.tar.xz"
-      , pkgSubdir = "ImageMagick-${versionString}-21"
+      { pkgUrl = "https://imagemagick.org/download/ImageMagick-${versionString}-64.tar.xz"
+      , pkgSubdir = "ImageMagick-${versionString}-64"
+      , pkgDeps = [ prelude.unbounded "zlib"
+                  , prelude.unbounded "libtool"
+                  , prelude.unbounded "bzip2"
+                  , prelude.unbounded "glib"
+                  ]
       , installCommand =
           λ(cfg : types.BuildVars) →
             prelude.defaultInstall cfg
-              # [ prelude.symlink "include/ImageMagick-${major}/MagickWand" "include/wand" ]
+              # [ prelude.symlink "include/ImageMagick-${major}/MagickWand" "include/wand"
+                , prelude.symlinkBinary "bin/convert"
+                ]
       }
 in
 
@@ -1375,7 +1382,9 @@
               else [] : List Text
           in
           prelude.configureWithFlags ([ "--disable-makeinstall-chown", "--disable-bash-completion"] # crossFlags) cfg
-      , pkgDeps = [ prelude.unbounded "ncurses" ]
+      , pkgDeps = [ prelude.unbounded "ncurses"
+                  , prelude.unbounded "pcre2"
+                  ]
       }
 in
 
@@ -2238,7 +2247,7 @@
 let gsl =
   λ(v : List Natural) →
     prelude.simplePackage { name = "gsl", version = v } ⫽
-      { pkgUrl = "http://gnu.mirror.constant.com/gsl/gsl-${prelude.showVersion v}.tar.gz" }
+      { pkgUrl = "http://mirror.keystealth.org/gnu/gsl/gsl-${prelude.showVersion v}.tar.gz" }
 in
 
 let postgresql =
@@ -3138,7 +3147,7 @@
 let slowBuild =
   λ(cfg : types.BuildVars) →
     [ prelude.call { program = "cmake"
-                    , arguments = [ "--build", ".", "--config", "Release", "--", "-j", "3" ]
+                    , arguments = [ "--build", ".", "--config", "Release", "--", "-j", "2" ]
                     , environment = prelude.defaultEnv
                     , procDir = Some "build"
                     }
@@ -3149,7 +3158,7 @@
   λ(v : List Natural) →
     let versionString = prelude.showVersion v in
     prelude.simplePackage { name = "clang", version = v } ⫽ prelude.cmakePackage ⫽
-      { pkgUrl = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${versionString}/cfe-${versionString}.src.tar.xz"
+      { pkgUrl = "http://releases.llvm.org/${versionString}/cfe-${versionString}.src.tar.xz"
       , pkgSubdir = "cfe-${versionString}.src"
       , pkgStream = False
       , buildCommand = slowBuild
@@ -3168,7 +3177,7 @@
   λ(v : List Natural) →
     let versionString = prelude.showVersion v in
     prelude.simplePackage { name = "llvm", version = v } ⫽ prelude.cmakePackage ⫽
-      { pkgUrl = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${versionString}/llvm-${versionString}.src.tar.xz"
+      { pkgUrl = "http://releases.llvm.org/${versionString}/llvm-${versionString}.src.tar.xz"
       , pkgSubdir = "llvm-${versionString}.src"
       , pkgStream = False
       , buildCommand = slowBuild
@@ -3366,9 +3375,30 @@
       { pkgUrl = "https://ffmpeg.org/releases/ffmpeg-${prelude.showVersion v}.tar.bz2"
       , pkgBuildDeps = [ prelude.unbounded "nasm" ]
       -- TODO: cross-compile
-      , configureCommand = prelude.configureWithFlags [ "--enable-shared" ]
-      , installCommand = prelude.installWithBinaries [ "bin/ffmpeg" ]
-      , pkgDeps = [ prelude.unbounded "bzip2" ]
+      , configureCommand = prelude.configureWithFlags [ "--enable-shared"
+                                                      , "--enable-libmp3lame"
+                                                      , "--enable-gpl"
+                                                      , "--enable-version3"
+                                                      , "--enable-nonfree"
+                                                      , "--disable-debug"
+                                                      , "--enable-libass"
+                                                      , "--enable-libfreetype"
+                                                      , "--enable-libvorbis"
+                                                      , "--enable-avresample"
+                                                      , "--enable-gnutls"
+                                                      , "--enable-libvpx"
+                                                      , "--enable-libfdk-aac"
+                                                      ]
+      , installCommand = prelude.installWithWrappers [ "ffmpeg" ]
+      , pkgDeps = [ prelude.unbounded "bzip2"
+                  , prelude.unbounded "libmp3lame"
+                  , prelude.unbounded "libass"
+                  , prelude.unbounded "freetype"
+                  , prelude.unbounded "libvorbis"
+                  , prelude.unbounded "gnutls"
+                  , prelude.unbounded "libvpx"
+                  , prelude.unbounded "fdk-aac"
+                  ]
       , pkgStream = False
       }
 in
@@ -3802,6 +3832,8 @@
 -- http://www.linuxfromscratch.org/blfs/view/svn/general/unzip.html
 -- https://github.com/jsoftware/jsource/archive/j807-release.tar.gz
 -- https://codeload.github.com/boyerjohn/rapidstring/zip/master
+-- https://github.com/facebook/zstd/releases/download/v1.4.3/zstd-1.4.3.tar.gz
+-- http://caca.zoy.org/attachment/wiki/toilet/toilet-0.3.tar.gz
 
 let cmark =
   λ(v : List Natural) →
@@ -3834,6 +3866,61 @@
         }
 in
 
+let libmp3lame =
+  λ(v : List Natural) →
+    let versionString = prelude.showVersion v in
+    prelude.simplePackage { name = "libmp3lame", version = v } ⫽
+        { pkgUrl = "https://downloads.sourceforge.net/lame/lame-${versionString}.tar.gz"
+        , pkgSubdir = "lame-${versionString}"
+        }
+in
+
+let libass =
+  λ(v : List Natural) →
+    let versionString = prelude.showVersion v in
+    prelude.simplePackage { name = "libass", version = v } ⫽
+        { pkgUrl = "https://github.com/libass/libass/releases/download/${versionString}/libass-${versionString}.tar.xz"
+        , pkgBuildDeps = [ prelude.unbounded "nasm" ]
+        , pkgDeps = [ prelude.lowerBound { name = "freetype", lower = [9,10,3] }
+                    , prelude.lowerBound { name = "fribidi", lower = [0,19,0] }
+                    , prelude.lowerBound { name = "harfbuzz", lower = [0,9,5] }
+                    , prelude.lowerBound { name = "fontconfig", lower = [2,10,92] }
+                    ]
+        }
+in
+
+let libogg =
+  λ(v : List Natural) →
+    prelude.simplePackage { name = "libogg", version = v } ⫽
+        { pkgUrl = "https://downloads.xiph.org/releases/ogg/libogg-${prelude.showVersion v}.tar.xz" }
+in
+
+let libvorbis =
+  λ(v : List Natural) →
+    prelude.simplePackage { name = "libvorbis", version = v } ⫽
+        { pkgUrl = "https://downloads.xiph.org/releases/vorbis/libvorbis-${prelude.showVersion v}.tar.xz"
+        , pkgDeps = [ prelude.unbounded "libogg" ]
+        }
+in
+
+let libvpx =
+  λ(v : List Natural) →
+    let versionString = prelude.showVersion v in
+    prelude.simplePackage { name = "libvpx", version = v } ⫽
+        { pkgUrl = "https://github.com/webmproject/libvpx/archive/v${versionString}/libvpx-${versionString}.tar.gz"
+        , pkgBuildDeps = [ prelude.unbounded "nasm"
+                         , prelude.unbounded "perl"
+                         ]
+        , pkgStream = False
+        }
+in
+
+let fdk-aac =
+  λ(v : List Natural) →
+    prelude.simplePackage { name = "fdk-aac", version = v } ⫽
+        { pkgUrl = "https://downloads.sourceforge.net/opencore-amr/fdk-aac-${prelude.showVersion v}.tar.gz" }
+in
+
 [ alsa-lib [1,1,9]
 , at-spi-atk { version = [2,33], patch = 2 }
 , at-spi-core { version = [2,33], patch = 2 }
@@ -3851,7 +3938,7 @@
 , cairo [1,16,0]
 , chickenScheme [5,0,0]
 , cimg [2,7,0]
-, clang [8,0,1]
+, clang [9,0,0]
 , cmake { version = [3,15], patch = 2 }
 , cmark [0,29,0]
 , compositeproto [0,4]
@@ -3867,8 +3954,9 @@
 , emacs [26,3]
 , exiv2 [0,27,1]
 , expat [2,2,7]
+, fdk-aac [2,0,0]
 , feh [3,2,1]
-, ffmpeg [4,2]
+, ffmpeg [4,2,1]
 , fftw [3,3,8]
 , findutils [4,6,0]
 , fixesproto [5,0]
@@ -3905,7 +3993,7 @@
 , gnutls { version = [3,6], patch = 9 }
 , graphviz [2,40,1]
 , grep [3,3]
-, gsl [2,5]
+, gsl [2,6]
 , gtk2 { version = [2,24], patch = 32 }
 , gtk3 { version = [3,24], patch = 10 }
 , gzip [1,9]
@@ -3928,6 +4016,7 @@
 , lcms2 [2,9]
 , leptonica [1,78,0]
 , libarchive [3,4,0]
+, libass [0,14,0]
 , libassuan [2,5,3]
 , libatomic_ops [7,6,10]
 , libav [12,3]
@@ -3949,8 +4038,10 @@
 , libjpeg [9]
 , libjpeg-turbo [2,0,3]
 , libksba [1,3,5]
+, libmp3lame [3,100]
 , libmypaint [1,3,0]
 , libnettle [3,5,1]
+, libogg [1,3,4]
 , libopenjpeg [2,3,1]
 , libotf [0,9,16]
 , libpciaccess [0,14]
@@ -3974,6 +4065,8 @@
 , libwebp [1,0,3]
 , libSM [1,2,3]
 , libthai [0,1,28]
+, libvorbis [1,3,6]
+, libvpx [1,8,1]
 , libX11 [1,6,8]
 , libXau [1,0,9]
 , libXaw [1,0,13]
@@ -3998,7 +4091,7 @@
 , libXt [1,2,0]
 , libXtst [1,2,3]
 , libXxf86vm [1,1,4]
-, llvm [8,0,1]
+, llvm [9,0,0]
 , lmdb [0,9,23]
 , lua [5,3,5]
 , lz4 [1,9,1]
@@ -4010,7 +4103,7 @@
 , make [4,2,1]
 , mako [1,0,7]
 , markupSafe [1,0]
-, memcached [1,5,12]
+, memcached [1,5,18]
 , mercury
 , mesa [19,0,5]
 , meson [0,51,1]
diff --git a/src/Package/C.hs b/src/Package/C.hs
--- a/src/Package/C.hs
+++ b/src/Package/C.hs
@@ -38,6 +38,7 @@
                  , getPkgs
                  -- * Packaging
                  , displayPackageSet
+                 , displayPackage
                  , allPackages
                  -- * Parsers
                  , parseTriple
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
@@ -5,11 +5,13 @@
                             , PackId
                             , pkgsM
                             , displayPackageSet
+                            , displayPackage
                             ) where
 
 import           CPkgPrelude
 import           Data.Containers.ListUtils
 import           Data.List                             (intersperse)
+import           Data.List                             (find)
 import qualified Data.Map                              as M
 import qualified Data.Text                             as T
 import           Data.Text.Prettyprint.Doc
@@ -28,7 +30,14 @@
 displayPackageSet :: Maybe String -> IO ()
 displayPackageSet = putDoc . pretty <=< defaultPackageSetDhall
 
-newtype PackageSetDhall = PackageSetDhall [ Dhall.CPkg ]
+displayPackage :: String -> IO ()
+displayPackage str = do
+    pk <- find (\ps -> T.unpack (Dhall.pkgName ps) == str) . listPackages <$> defaultPackageSetDhall Nothing
+    case pk of
+        Just p  -> putDoc (pretty p <> hardline)
+        Nothing -> unfoundPackage
+
+newtype PackageSetDhall = PackageSetDhall { listPackages :: [ Dhall.CPkg ] }
     deriving Interpret
 
 instance Pretty PackageSetDhall where
