diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Vanessa McHale (c) 2018-2019
+Copyright Vanessa McHale (c) 2018-2020
 
 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 
diff --git a/cpkg.cabal b/cpkg.cabal
--- a/cpkg.cabal
+++ b/cpkg.cabal
@@ -1,9 +1,9 @@
 cabal-version:      1.18
 name:               cpkg
-version:            0.2.4.5
+version:            0.2.4.6
 license:            BSD3
 license-file:       LICENSE
-copyright:          Copyright: (c) 2018-2019 Vanessa McHale
+copyright:          Copyright: (c) 2018-2020 Vanessa McHale
 maintainer:         vamchale@gmail.com
 author:             Vanessa McHale
 synopsis:           Build tool for C
diff --git a/dhall/cpkg-prelude.dhall b/dhall/cpkg-prelude.dhall
--- a/dhall/cpkg-prelude.dhall
+++ b/dhall/cpkg-prelude.dhall
@@ -210,6 +210,27 @@
           }
           os
 
+let isMac =
+        λ(os : types.OS)
+      → merge
+          { FreeBSD = False
+          , OpenBSD = False
+          , NetBSD = False
+          , Solaris = False
+          , Dragonfly = False
+          , Linux = False
+          , Darwin = True
+          , Windows = False
+          , Redox = False
+          , Haiku = False
+          , IOS = False
+          , AIX = False
+          , Hurd = False
+          , Android = False
+          , NoOs = False
+          }
+          os
+
 let mkLDFlagsGeneral =
         λ(libDirs : List Text)
       → λ(linkLibs : List Text)
@@ -395,11 +416,25 @@
 
         let modifyArgs = maybeAppend Text maybeHost
 
+        let mac = isMac cfg.buildOS
+
+        let modifyProg =
+                    if mac
+
+              then  λ(x : List Text) → [ "${filename}" ] # x
+
+              else  λ(x : List Text) → x
+
+        let program = if mac then "sh" else "./${filename}"
+
         in  [ call
                 (   defaultCall
-                  ⫽ { program = "./${filename}"
+                  ⫽ { program = program
                     , arguments =
-                        modifyArgs [ "--prefix=${cfg.installDir}" ] # extraFlags
+                        modifyProg
+                          (   modifyArgs [ "--prefix=${cfg.installDir}" ]
+                            # extraFlags
+                          )
                     , environment = envVars linkLibs cfg
                     }
                 )
@@ -669,14 +704,14 @@
       → [ call
             { program = "cmake"
             , arguments =
-                [ "--build"
-                , "."
-                , "--config"
-                , "Release"
-                , "--"
-                , "-j"
-                , Natural/show cfg.cpus
-                ]
+              [ "--build"
+              , "."
+              , "--config"
+              , "Release"
+              , "--"
+              , "-j"
+              , Natural/show cfg.cpus
+              ]
             , environment = Some (cmakeEnv cfg)
             , procDir = Some "build"
             }
@@ -687,7 +722,7 @@
       → [ call
             { program = "cmake"
             , arguments =
-                [ "--build", ".", "--target", "install", "--config", "Release" ]
+              [ "--build", ".", "--target", "install", "--config", "Release" ]
             , environment = Some (cmakeEnv cfg)
             , procDir = Some "build"
             }
@@ -711,13 +746,12 @@
       →   [ call
               (   defaultCall
                 ⫽ { program = "./autogen.sh"
-                  , environment =
-                      Some
-                        (   [ mkAclocalPath cfg.shareDirs
-                            , mkPkgConfigVar (cfg.shareDirs # cfg.linkDirs)
-                            ]
-                          # defaultPath cfg
-                        )
+                  , environment = Some
+                      (   [ mkAclocalPath cfg.shareDirs
+                          , mkPkgConfigVar (cfg.shareDirs # cfg.linkDirs)
+                          ]
+                        # defaultPath cfg
+                      )
                   }
               )
           ]
@@ -839,18 +873,17 @@
         in  [ call
                 (   defaultCall
                   ⫽ { program = "ninja"
-                    , environment =
-                        Some
-                          (   [ mkPkgConfigVar cfg.linkDirs
-                              , mkPy3Path cfg.linkDirs
-                              , libPath cfg
-                              , mkLDRunPath cfg.linkDirs
-                              , mkLDFlagsGeneral cfg.linkDirs linkLibs
-                              , mkCFlags cfg
-                              ]
-                            # defaultPath cfg
-                            # ldPreload
-                          )
+                    , environment = Some
+                        (   [ mkPkgConfigVar cfg.linkDirs
+                            , mkPy3Path cfg.linkDirs
+                            , libPath cfg
+                            , mkLDRunPath cfg.linkDirs
+                            , mkLDFlagsGeneral cfg.linkDirs linkLibs
+                            , mkCFlags cfg
+                            ]
+                          # defaultPath cfg
+                          # ldPreload
+                        )
                     , procDir = Some "build"
                     }
                 )
@@ -863,17 +896,16 @@
       → [ call
             (   defaultCall
               ⫽ { program = "ninja"
-                , environment =
-                    Some
-                      (   [ mkPkgConfigVar cfg.linkDirs
-                          , mkPy3Path cfg.linkDirs
-                          , libPath cfg
-                          , mkLDRunPath cfg.linkDirs
-                          , mkLDFlags cfg.linkDirs
-                          , mkCFlags cfg
-                          ]
-                        # defaultPath cfg
-                      )
+                , environment = Some
+                    (   [ mkPkgConfigVar cfg.linkDirs
+                        , mkPy3Path cfg.linkDirs
+                        , libPath cfg
+                        , mkLDRunPath cfg.linkDirs
+                        , mkLDFlags cfg.linkDirs
+                        , mkCFlags cfg
+                        ]
+                      # defaultPath cfg
+                    )
                 , arguments = [ "install" ]
                 , procDir = Some "build"
                 }
@@ -928,17 +960,16 @@
                 (   defaultCall
                   ⫽ { program = "python${major}"
                     , arguments = [ "setup.py", "build" ]
-                    , environment =
-                        Some
-                          (   [ { var = "PYTHONPATH"
-                                , value =
-                                    "${cfg.installDir}/lib/python${versionString}/site-packages"
-                                }
-                              , mkPkgConfigVar cfg.linkDirs
-                              , libPath cfg
-                              ]
-                            # defaultPath cfg
-                          )
+                    , environment = Some
+                        (   [ { var = "PYTHONPATH"
+                              , value =
+                                  "${cfg.installDir}/lib/python${versionString}/site-packages"
+                              }
+                            , mkPkgConfigVar cfg.linkDirs
+                            , libPath cfg
+                            ]
+                          # defaultPath cfg
+                        )
                     }
                 )
             ]
@@ -962,22 +993,21 @@
                 (   defaultCall
                   ⫽ { program = "python${major}"
                     , arguments =
-                        [ "setup.py"
-                        , "install"
-                        , "--prefix=${cfg.installDir}"
-                        , "--optimize=1"
-                        ]
-                    , environment =
-                        Some
-                          (   [ { var = "PYTHONPATH"
-                                , value =
-                                    "${cfg.installDir}/lib/python${versionString}/site-packages"
-                                }
-                              , mkPkgConfigVar cfg.linkDirs
-                              , libPath cfg
-                              ]
-                            # defaultPath cfg
-                          )
+                      [ "setup.py"
+                      , "install"
+                      , "--prefix=${cfg.installDir}"
+                      , "--optimize=1"
+                      ]
+                    , environment = Some
+                        (   [ { var = "PYTHONPATH"
+                              , value =
+                                  "${cfg.installDir}/lib/python${versionString}/site-packages"
+                              }
+                            , mkPkgConfigVar cfg.linkDirs
+                            , libPath cfg
+                            ]
+                          # defaultPath cfg
+                        )
                     }
                 )
             ]
@@ -1189,10 +1219,10 @@
             (   defaultCall
               ⫽ { program = "make"
                 , arguments =
-                    [ "prefix=${cfg.installDir}"
-                    , "PREFIX=${cfg.installDir}"
-                    , "install"
-                    ]
+                  [ "prefix=${cfg.installDir}"
+                  , "PREFIX=${cfg.installDir}"
+                  , "install"
+                  ]
                 , environment = Some (buildEnv cfg)
                 }
             )
diff --git a/pkgs/pkg-set.dhall b/pkgs/pkg-set.dhall
--- a/pkgs/pkg-set.dhall
+++ b/pkgs/pkg-set.dhall
@@ -15,7 +15,7 @@
       ../dhall/cpkg-types.dhall sha256:caef717db41539eb7ded38d8cd676ba998bd387171ba3fd2db7fea9e8ee8f361
 
 let prelude =
-      ../dhall/cpkg-prelude.dhall sha256:4eae9adcc22ceda96091f3fa560aa095dbf8de05f7cf0387061042a9f31d10ee
+      ../dhall/cpkg-prelude.dhall sha256:908d9f80be0c4bc294b5bb4ae3e3b9245659800c20ea3510518d1b1b649ffaaf
 
 let gpgPackage =
         λ(x : { name : Text, version : List Natural })
@@ -1503,18 +1503,18 @@
                       (   prelude.defaultCall
                         ⫽ { program = "ninja"
                           , environment = Some
-                              [ prelude.mkPkgConfigVar cfg.linkDirs
-                              , { var = "PATH"
-                                , value =
-                                        prelude.mkPathVar cfg.binDirs
-                                    ++  ":${cfg.currentDir}/gdk-pixbuf-${fullVersion}/build/gdk-pixbuf:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
-                                }
-                              , prelude.mkPy3Path cfg.linkDirs
-                              , prelude.libPath cfg
-                              , prelude.mkLDRunPath cfg.linkDirs
-                              , prelude.mkLDFlags cfg.linkDirs
-                              , prelude.mkCFlags cfg
-                              ]
+                            [ prelude.mkPkgConfigVar cfg.linkDirs
+                            , { var = "PATH"
+                              , value =
+                                      prelude.mkPathVar cfg.binDirs
+                                  ++  ":${cfg.currentDir}/gdk-pixbuf-${fullVersion}/build/gdk-pixbuf:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+                              }
+                            , prelude.mkPy3Path cfg.linkDirs
+                            , prelude.libPath cfg
+                            , prelude.mkLDRunPath cfg.linkDirs
+                            , prelude.mkLDFlags cfg.linkDirs
+                            , prelude.mkCFlags cfg
+                            ]
                           , arguments = [ "install" ]
                           , procDir = Some "build"
                           }
@@ -3871,11 +3871,11 @@
                       { program = "autoreconf"
                       , arguments = [ "-i" ]
                       , environment = Some
-                          [ { var = "PATH"
-                            , value = prelude.mkPathVar cfg.binDirs
-                            }
-                          , prelude.mkAclocalPath cfg.shareDirs
-                          ]
+                        [ { var = "PATH"
+                          , value = prelude.mkPathVar cfg.binDirs
+                          }
+                        , prelude.mkAclocalPath cfg.shareDirs
+                        ]
                       , procDir = None Text
                       }
                   ]
@@ -4637,11 +4637,11 @@
                       { program = "autoreconf"
                       , arguments = [ "-i" ]
                       , environment = Some
-                          [ { var = "PATH"
-                            , value = prelude.mkPathVar cfg.binDirs
-                            }
-                          , prelude.mkAclocalPath cfg.shareDirs
-                          ]
+                        [ { var = "PATH"
+                          , value = prelude.mkPathVar cfg.binDirs
+                          }
+                        , prelude.mkAclocalPath cfg.shareDirs
+                        ]
                       , procDir = None Text
                       }
                   ]
@@ -4673,6 +4673,34 @@
           , installCommand = prelude.installWithWrappers [ "luarocks" ]
           }
 
+let star =
+        λ(v : List Natural)
+      →   prelude.simplePackage { name = "star", version = v }
+        ⫽ { pkgUrl =
+              "https://downloads.sourceforge.net/s-tar/star-${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/star"
+                  ]
+                # prelude.symlinkManpages
+                    [ { file = "opt/schily/share/man/man1/star.1", section = 1 }
+                    , { file = "opt/schily/share/man/man1/scpio.1"
+                      , section = 1
+                      }
+                    , { file = "opt/schily/share/man/man1/spax.1", section = 1 }
+                    ]
+          }
+
 in  [ alsa-lib [ 1, 1, 9 ]
     , apr [ 1, 7, 0 ]
     , apr-util [ 1, 6, 1 ]
@@ -4731,7 +4759,7 @@
     , gegl { version = [ 0, 4 ], patch = 16 }
     , gettext [ 0, 20, 1 ]
     , gexiv2 { version = [ 0, 12 ], patch = 0 }
-    , ghc [ 8, 8, 1 ]
+    , ghc [ 8, 8, 3 ]
     , gperf [ 3, 1 ]
     , gperftools [ 2, 7 ]
     , giflib [ 5, 1, 4 ]
@@ -4751,7 +4779,7 @@
     , grep [ 3, 3 ]
     , gsl [ 2, 6 ]
     , gtk2 { version = [ 2, 24 ], patch = 32 }
-    , gtk3 { version = [ 3, 24 ], patch = 10 }
+    , gtk3 { version = [ 3, 24 ], patch = 14 }
     , gzip [ 1, 10 ]
     , harfbuzz [ 2, 6, 4 ]
     , htop [ 2, 2, 0 ]
@@ -4767,7 +4795,7 @@
     , joe [ 4, 6 ]
     , json-c { version = [ 0, 13, 1 ], dateStr = "20180305" }
     , kbproto [ 1, 0, 7 ]
-    , krb5 [ 1, 17, 1 ]
+    , krb5 [ 1, 18 ]
     , lapack [ 3, 8, 0 ]
     , lcms2 [ 2, 9 ]
     , leptonica [ 1, 78, 0 ]
@@ -4874,14 +4902,14 @@
     , musl [ 1, 1, 20 ]
     , nano [ 4, 3 ]
     , nasm [ 2, 14 ]
-    , ncurses [ 6, 1 ]
+    , ncurses [ 6, 2 ]
     , nginx [ 1, 15, 7 ]
     , ninja [ 1, 9, 0 ]
     , node [ 12, 13, 0 ]
     , npth [ 1, 6 ]
     , nspr [ 4, 20 ]
     , openblas [ 0, 3, 2 ]
-    , opencv [ 4, 1, 0 ]
+    , opencv [ 4, 2, 0 ]
     , openssh [ 7, 9 ]
     , openssl [ 1, 1, 1 ]
     , p11kit [ 0, 23, 16, 1 ]
@@ -4913,14 +4941,15 @@
     , readline [ 8, 0 ]
     , recordproto [ 1, 14, 2 ]
     , renderproto [ 0, 11, 1 ]
-    , ruby { version = [ 2, 6 ], patch = 3 }
-    , rustc [ 1, 40, 0 ]
+    , ruby { version = [ 2, 7 ], patch = 0 }
+    , rustc [ 1, 41, 1 ]
     , scour [ 0, 37 ]
     , scrnsaverproto [ 1, 2, 2 ]
     , sdl2 [ 2, 0, 10 ]
     , sed [ 4, 7 ]
     , shared-mime-info [ 1, 10 ]
     , sqlite { version = [ 3, 30, 1 ] }
+    , star [ 1, 6 ]
     , subversion [ 1, 12, 2 ]
     , swig [ 3, 0, 12 ]
     , swi-prolog [ 8, 0, 3 ]
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
@@ -24,7 +24,7 @@
 
 defaultPackageSetDhall :: Maybe String -> IO PackageSetDhall
 defaultPackageSetDhall (Just pkSet) = input auto (T.pack pkSet)
-defaultPackageSetDhall Nothing      = input auto "https://raw.githubusercontent.com/vmchale/cpkg/7fded196b689de8c4b2278c8b55c35951cfef2df/pkgs/pkg-set.dhall sha256:8b29c6512aa4e5e31261fa60f5ed3e19ba7fe84a01c1e6ded7035d4c45610bcc"
+defaultPackageSetDhall Nothing      = input auto "https://raw.githubusercontent.com/vmchale/cpkg/ea4e5bb39364b6ef44b4c4fea69163263d59dde0/pkgs/pkg-set.dhall sha256:66f21b9803dc5ca046868eb10ea08c70102fc00da12471b46414f2335b928a7b"
 
 displayPackageSet :: Maybe String -> IO ()
 displayPackageSet = putDoc . pretty <=< defaultPackageSetDhall
