cpkg 0.2.3.9 → 0.2.4.0
raw patch · 11 files changed
+38/−96 lines, 11 filesdep −tar
Dependencies removed: tar
Files
- CHANGELOG.md +4/−0
- cpkg.cabal +1/−2
- dhall/cpkg-prelude.dhall +2/−5
- pkgs/pkg-set.dhall +20/−69
- src/Package/C/Build.hs +1/−1
- src/Package/C/Db/Register.hs +1/−1
- src/Package/C/Dhall/Type.hs +1/−2
- src/Package/C/Fetch.hs +2/−3
- src/Package/C/PackageSet.hs +1/−1
- src/Package/C/Type.hs +2/−3
- src/Package/C/Unpack.hs +3/−9
CHANGELOG.md view
@@ -1,5 +1,9 @@ # cpkg +## 0.2.4.0++ * Use [`libarchive`](http://hackage.haskell.org/package/libarchive) exclusively+ ## 0.2.3.8 * Support `.zst` via [zstd](http://hackage.haskell.org/package/zstd) library
cpkg.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: cpkg-version: 0.2.3.9+version: 0.2.4.0 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018-2019 Vanessa McHale@@ -82,7 +82,6 @@ zlib -any, bzlib -any, lzma -any,- tar -any, zip-archive -any, prettyprinter -any, http-client -any,
dhall/cpkg-prelude.dhall view
@@ -395,8 +395,7 @@ let modifyArgs = maybeAppend Text maybeHost - in [ mkExe filename- , call+ in [ call ( defaultCall ⫽ { program = "./${filename}" , arguments =@@ -516,7 +515,6 @@ , installCommand = defaultInstall , pkgBuildDeps = [] : List types.Dep , pkgDeps = [] : List types.Dep- , pkgStream = True } let simplePackage =@@ -710,8 +708,7 @@ let autogenConfigure = λ(cfg : types.BuildVars)- → [ mkExe "autogen.sh"- , call+ → [ call ( defaultCall ⫽ { program = "./autogen.sh" , environment =
pkgs/pkg-set.dhall view
@@ -15,7 +15,7 @@ ../dhall/cpkg-types.dhall sha256:caef717db41539eb7ded38d8cd676ba998bd387171ba3fd2db7fea9e8ee8f361 let prelude =- ../dhall/cpkg-prelude.dhall sha256:a8dc1bfd659bb1d87a35bf6da3ed28b6ef8e268b216c42e40a0e4f2607e6a38e+ ../dhall/cpkg-prelude.dhall sha256:4eae9adcc22ceda96091f3fa560aa095dbf8de05f7cf0387061042a9f31d10ee let gpgPackage = λ(x : { name : Text, version : List Natural })@@ -243,20 +243,14 @@ let modifyArgs = prelude.maybeAppend Text maybeHost - in prelude.mkExes- [ "configure"- , "scripts/mkinstalldirs"- , "scripts/rellns-sh"- ]- # [ prelude.createDir "build"- , prelude.call- { program = "../configure"- , arguments =- modifyArgs [ "--prefix=${cfg.installDir}" ]- , environment = prelude.configSome ([] : List Text) cfg- , procDir = buildDir- }- ]+ in [ prelude.createDir "build"+ , prelude.call+ { program = "../configure"+ , arguments = modifyArgs [ "--prefix=${cfg.installDir}" ]+ , environment = prelude.configSome ([] : List Text) cfg+ , procDir = buildDir+ }+ ] let glibcBuild = λ(cfg : types.BuildVars)@@ -303,7 +297,6 @@ "https://gmplib.org/download/gmp/gmp-${prelude.showVersion v}.tar.lz" , pkgBuildDeps = [ prelude.unbounded "m4" ]- , pkgStream = False } let harfbuzz =@@ -448,8 +441,7 @@ let perl5 = let perlConfigure = λ(cfg : types.BuildVars)- → [ prelude.mkExe "Configure"- , prelude.call+ → [ prelude.call ( prelude.defaultCall ⫽ { program = "sh" , arguments =@@ -548,7 +540,6 @@ [ { file = "share/man/man1/sed.1", section = 1 } ] , configureCommand = prelude.configureWithFlags [ "--disable-dependency-tracking" ]- , pkgStream = False } let tar = λ(v : List Natural) → prelude.makeGnuExe { name = "tar", version = v }@@ -643,8 +634,7 @@ λ(cfg : types.BuildVars) → let host = prelude.mkCCVar cfg - in [ prelude.mkExe "configure"- , prelude.call+ in [ prelude.call ( prelude.defaultCall ⫽ { program = "sh" , arguments =@@ -679,7 +669,6 @@ [ "bin/gettext", "bin/msgfmt", "bin/autopoint" ] , configureCommand = prelude.configureWithFlags [ "--disable-dependency-tracking" ]- , pkgStream = False } let gzip =@@ -714,9 +703,7 @@ { name = "p11-kit", lower = [ 0, 23, 1 ] } ] , configureCommand =- λ(cfg : types.BuildVars)- → prelude.mkExes [ "src/gen-mech-list.sh" ]- # prelude.configureLinkExtraLibs [ "nettle", "hogweed" ] cfg+ prelude.configureLinkExtraLibs [ "nettle", "hogweed" ] } let lapack =@@ -805,7 +792,6 @@ → prelude.installWithBinaries [ "bin/patch" ] cfg # prelude.symlinkManpages [ { file = "share/man/man1/patch.1", section = 1 } ]- , pkgStream = False } let m4 =@@ -821,7 +807,6 @@ prelude.installWithManpages [ { file = "share/man/man1/m4.1", section = 1 } ] , pkgBuildDeps = [ prelude.unbounded "patch" ]- , pkgStream = False } let nginx =@@ -1144,7 +1129,7 @@ let gdb = λ(v : List Natural) → prelude.makeGnuExe { name = "gdb", version = v }- ⫽ { pkgStream = False, pkgBuildDeps = [ prelude.unbounded "texinfo" ] }+ ⫽ { pkgBuildDeps = [ prelude.unbounded "texinfo" ] } let libtool = λ(v : List Natural)@@ -1154,7 +1139,6 @@ v}.tar.xz" , pkgBuildDeps = [ prelude.lowerBound { name = "m4", lower = [ 1, 4, 16 ] } ]- , pkgStream = False } let pkg-config =@@ -1295,8 +1279,7 @@ let gtkConfig = λ(cfg : types.BuildVars)- → [ prelude.mkExe "configure"- , prelude.call+ → [ prelude.call ( prelude.defaultCall ⫽ { program = "./configure" , arguments = [ "--prefix=${cfg.installDir}" ]@@ -1495,7 +1478,6 @@ λ(cfg : types.BuildVars) → [ prelude.patch ./patches/intltool.patch sha256:e33e9b3e43d80a17475e36c05ed4e649fa5d610991044749e6321dff555cc8e5 as Text- , prelude.mkExe "configure" , prelude.call ( prelude.defaultCall ⫽ { program = "./configure"@@ -1600,9 +1582,7 @@ let ninja = let ninjaConfigure = λ(cfg : types.BuildVars)- → [ prelude.mkExe "configure.py"- , prelude.mkExe "src/inline.sh"- , prelude.call+ → [ prelude.call ( prelude.defaultCall ⫽ { program = "./configure.py" , arguments = [ "--bootstrap" ]@@ -2566,8 +2546,7 @@ let gtkConfig = λ(cfg : types.BuildVars)- → [ prelude.mkExe "configure"- , prelude.call+ → [ prelude.call ( prelude.defaultCall ⫽ { program = "./configure" , arguments = [ "--prefix=${cfg.installDir}" ]@@ -2700,7 +2679,6 @@ "https://sqlite.org/${Natural/show x.year}/sqlite-autoconf-${versionString}000.tar.gz" , pkgSubdir = "sqlite-autoconf-${versionString}000"- , pkgStream = False } let ragel =@@ -2746,9 +2724,7 @@ in mkGnomeSimple "pygtk" x ⫽ { pkgUrl = "http://ftp.gnome.org/pub/gnome/sources/pygtk/${versionString}/pygtk-${fullVersion}.tar.bz2"- , configureCommand =- λ(cfg : types.BuildVars)- → prelude.mkExes [ "py-compile" ] # prelude.preloadCfg cfg+ , configureCommand = prelude.preloadCfg , pkgDeps = [ prelude.lowerBound { name = "glib", lower = [ 2, 8, 0 ] } , prelude.lowerBound@@ -2909,7 +2885,6 @@ , prelude.unbounded "json-glib" ] , configureCommand = prelude.preloadCfg- , pkgStream = False } let libexif =@@ -3382,7 +3357,6 @@ v}.tar.gz" , installCommand = prelude.installWithBinaries [ "bin/fossil" ] , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "openssl" ]- , pkgStream = False } let libcroco =@@ -3580,7 +3554,6 @@ v}.tar.xz" , configureCommand = prelude.configureWithFlags [ "--disable-dependency-tracking" ]- , pkgStream = False } let node =@@ -3597,7 +3570,6 @@ # [ prelude.mkExe "${cfg.installDir}/lib/node_modules/npm/bin/npm-cli.js" ]- , pkgStream = False } let glu =@@ -3687,7 +3659,6 @@ "https://dl.bintray.com/boostorg/release/${prelude.showVersion v}/source/boost_${versionString}.tar.bz2" , pkgSubdir = "boost_${versionString}"- , pkgStream = False , configureCommand = boostConfigure , buildCommand = prelude.doNothing , installCommand = boostInstall@@ -3713,7 +3684,6 @@ ⫽ { pkgUrl = "http://releases.llvm.org/${versionString}/cfe-${versionString}.src.tar.xz" , pkgSubdir = "cfe-${versionString}.src"- , pkgStream = False , buildCommand = slowBuild , pkgDeps = [ prelude.unbounded "llvm" ] , installCommand =@@ -3733,7 +3703,6 @@ ⫽ { pkgUrl = "http://releases.llvm.org/${versionString}/llvm-${versionString}.src.tar.xz" , pkgSubdir = "llvm-${versionString}.src"- , pkgStream = False , buildCommand = slowBuild } @@ -3749,7 +3718,6 @@ "Configure" ([] : List Text) ([] : List Text)- , pkgStream = False } let pdfgrep =@@ -3806,7 +3774,6 @@ , prelude.unbounded "sed" , prelude.unbounded "libtool" ]- , pkgStream = False } let ruby =@@ -3821,7 +3788,6 @@ "https://cache.ruby-lang.org/pub/ruby/${versionString}/ruby-${fullVersion}.tar.gz" , installCommand = prelude.installWithBinaries [ "bin/ruby", "bin/gem" ]- , pkgStream = False , pkgDeps = [ prelude.unbounded "readline", prelude.unbounded "openssl" ] }@@ -3935,7 +3901,6 @@ } ] # prelude.defaultConfigure cfg- , pkgStream = False } let cimg =@@ -3986,7 +3951,6 @@ , prelude.unbounded "libvpx" , prelude.unbounded "fdk-aac" ]- , pkgStream = False } let libsndfile =@@ -4069,7 +4033,7 @@ in prelude.simplePackage { name = "mercury", version = [ 14, 1, 1 ] } ⫽ mercuryCommon- ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ], pkgStream = False }+ ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ] } let qt = λ(x : { version : List Natural, patch : Natural })@@ -4102,7 +4066,6 @@ , prelude.unbounded "giflib" , prelude.unbounded "glib" ]- , pkgStream = False } let lz4 =@@ -4246,7 +4209,6 @@ ⫽ { pkgUrl = "https://cran.r-project.org/src/base/R-3/R-${versionString}.tar.gz" , pkgSubdir = "R-${versionString}"- , pkgStream = False , pkgDeps = [ prelude.unbounded "readline" , prelude.unbounded "libXt"@@ -4319,7 +4281,6 @@ } ) ]- , pkgStream = False } let librsvg =@@ -4373,7 +4334,6 @@ , buildCommand = atsBuild , installCommand = prelude.installWithBinaries [ "bin/patsopt" ]- , pkgStream = False } let libiconv =@@ -4403,7 +4363,6 @@ ⫽ { pkgUrl = "https://www.alsa-project.org/files/pub/lib/alsa-lib-${prelude.showVersion v}.tar.bz2"- , pkgStream = False } let bash-completion =@@ -4434,7 +4393,6 @@ "configure" ([] : List Text) ([] : List Text)- , pkgStream = False , pkgBuildDeps = [ prelude.unbounded "coreutils" , prelude.unbounded "sed"@@ -4459,7 +4417,6 @@ ⫽ { pkgUrl = "https://ftp.gnu.org/pub/gnu/findutils/findutils-${prelude.showVersion v}.tar.xz"- , pkgStream = False } let ghc =@@ -4470,7 +4427,6 @@ ⫽ { pkgUrl = "https://downloads.haskell.org/~ghc/${versionString}/ghc-${versionString}-x86_64-deb9-linux.tar.xz" , buildCommand = prelude.doNothing- , pkgStream = False } let cmark =@@ -4574,7 +4530,6 @@ "https://github.com/webmproject/libvpx/archive/v${versionString}/libvpx-${versionString}.tar.gz" , pkgBuildDeps = [ prelude.unbounded "nasm", prelude.unbounded "perl" ]- , pkgStream = False } let fdk-aac =@@ -4599,7 +4554,6 @@ , prelude.unbounded "coreutils" ] , pkgSubdir = "swipl-${versionString}"- , pkgStream = False } let exiftool =@@ -4663,7 +4617,6 @@ ⫽ { pkgUrl = "https://www-eu.apache.org/dist/apr/apr-${prelude.showVersion v}.tar.bz2"- , pkgStream = False } let apr-util =@@ -4678,7 +4631,6 @@ → prelude.configureWithFlags [ "--with-apr=${concat cfg.linkDirs}/../" ] cfg- , pkgStream = False } let libsass =@@ -4712,7 +4664,6 @@ } ] # prelude.defaultConfigure cfg- , pkgStream = False } in [ alsa-lib [ 1, 1, 9 ]@@ -4941,7 +4892,7 @@ , pycairo [ 1, 18, 1 ] , pygobject { version = [ 2, 28 ], patch = 7 } , pygtk { version = [ 2, 24 ], patch = 0 }- , python [ 2, 7, 16 ]+ , python [ 2, 7, 17 ] , python [ 3, 8, 1 ] , qrencode [ 4, 0, 2 ] , qt { version = [ 5, 13 ], patch = 0 }@@ -4975,7 +4926,7 @@ , util-macros [ 1, 19, 2 ] , vala { version = [ 0, 45 ], patch = 3 } , valgrind [ 3, 15, 0 ]- , vim [ 8, 1 ]+ , vim [ 8, 2 ] , wayland [ 1, 17, 0 ] , wget [ 1, 20, 3 ] , which [ 2, 21 ]
src/Package/C/Build.hs view
@@ -111,7 +111,7 @@ fetchCPkg :: CPkg -> FilePath -- ^ Directory for intermediate build files -> PkgM ()-fetchCPkg cpkg = fetchUrl (pkgUrl cpkg) (pkgName cpkg) (pkgStream cpkg)+fetchCPkg cpkg = fetchUrl (pkgUrl cpkg) (pkgName cpkg) buildCPkg :: CPkg -> Maybe TargetTriple
src/Package/C/Db/Register.hs view
@@ -213,7 +213,7 @@ -> Bool -- ^ Was this package manually installed? -> BuildVars -> BuildCfg-pkgToBuildCfg (CPkg n v _ _ _ bds ds cCmd bCmd iCmd) host glob usr bVar =+pkgToBuildCfg (CPkg n v _ _ bds ds cCmd bCmd iCmd) host glob usr bVar = BuildCfg n v (go <$> bds) (go <$> ds) host glob (cCmd bVar) (bCmd bVar) (iCmd bVar) usr -- TODO: fix pinned build deps &c. where placeholderVersion = Version [0,1,0,0] go (Dep n' _) = (n', placeholderVersion)
src/Package/C/Dhall/Type.hs view
@@ -55,7 +55,6 @@ , pkgVersion :: [ Natural ] , pkgUrl :: T.Text , pkgSubdir :: T.Text- , pkgStream :: Bool -- ^ Use @tar@ package to stream , pkgBuildDeps :: [ Dep ] -- TODO: depend on target? , pkgDeps :: [ Dep ] , configureCommand :: BuildVars -> [ Command ]@@ -76,4 +75,4 @@ prettyBldDeps = preDeps "build dependencies:" instance Pretty CPkg where- pretty (CPkg nam v url _ _ bds ds _ _ _) = pretty nam <##> indent 4 ("url:" <+> pretty url <##> "version:" <+> pretty (Version v) <> prettyDeps ds <> prettyBldDeps bds)+ pretty (CPkg nam v url _ bds ds _ _ _) = pretty nam <##> indent 4 ("url:" <+> pretty url <##> "version:" <+> pretty (Version v) <> prettyDeps ds <> prettyBldDeps bds)
src/Package/C/Fetch.hs view
@@ -36,10 +36,9 @@ fetchUrl :: String -- ^ URL -> String -- ^ Package name- -> Bool -- ^ Stream using @tar@ package? -> FilePath -- ^ Directory to unpack to -> PkgM ()-fetchUrl url name libArch dirName = do+fetchUrl url name dirName = do let tarballName = fromJust (asFilename url) tarballDir <- (</> tarballName) <$> cacheDir@@ -72,4 +71,4 @@ putNormal ("Unpacking " ++ name) - liftIO $ unpackResponse compression libArch dirName response+ liftIO $ unpackResponse compression dirName response
src/Package/C/PackageSet.hs view
@@ -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/22671be2cdb048ab407ff24ca24923c2f03ab60a/pkgs/pkg-set.dhall sha256:36616ae1a3e6affbebf83d056297ffd6cc4fefc4fdc3895052b6b551e9d3113f"+defaultPackageSetDhall Nothing = input auto "https://raw.githubusercontent.com/vmchale/cpkg/6635d6c4dd9da9bbe09f1dd0f94b485ba9015c74/pkgs/pkg-set.dhall sha256:cba9042d6520714c9c57cdfe4baf8d4618c15ff5938ce9a4e223bcb9d4f14725" displayPackageSet :: Maybe String -> IO () displayPackageSet = putDoc . pretty <=< defaultPackageSetDhall
src/Package/C/Type.hs view
@@ -49,7 +49,6 @@ , pkgVersion :: Version , pkgUrl :: String , pkgSubdir :: String- , pkgStream :: Bool -- ^ Use @tar@ package to stream , pkgBuildDeps :: [ Dep ] , pkgDeps :: [ Dep ] , configureCommand :: BuildVars -> [ Command ]@@ -75,8 +74,8 @@ buildVarsToDhallBuildVars (BuildVars dir' cd tgt' cross incls prelds shr lds bins os' arch' sta nproc) = Dhall.BuildVars (T.pack dir') (T.pack cd) tgt' cross (T.pack <$> incls) (T.pack <$> prelds) (T.pack <$> shr) (T.pack <$> lds) (T.pack <$> bins) os' arch' sta (fromIntegral nproc) cPkgDhallToCPkg :: Dhall.CPkg -> CPkg-cPkgDhallToCPkg (Dhall.CPkg n v url subdir stream bldDeps deps cfgCmd buildCmd installCmd) =- CPkg (T.unpack n) (Version v) (T.unpack url) (T.unpack subdir) stream bldDeps deps configure build install+cPkgDhallToCPkg (Dhall.CPkg n v url subdir bldDeps deps cfgCmd buildCmd installCmd) =+ CPkg (T.unpack n) (Version v) (T.unpack url) (T.unpack subdir) bldDeps deps configure build install where configure cfg = commandDhallToCommand <$> cfgCmd (buildVarsToDhallBuildVars cfg) build cfg = commandDhallToCommand <$> buildCmd (buildVarsToDhallBuildVars cfg)
src/Package/C/Unpack.hs view
@@ -4,7 +4,6 @@ ) where import qualified Codec.Archive as Archive-import qualified Codec.Archive.Tar as Tar import Codec.Archive.Zip (ZipOption (..), extractFilesFromArchive, toArchive) import qualified Codec.Compression.BZip as Bzip import qualified Codec.Compression.GZip as Gzip@@ -39,16 +38,11 @@ where showError = error . show -tarResponse :: TarCompress -> FilePath -> BSL.ByteString -> IO ()-tarResponse compressScheme dirName =- Tar.unpack dirName . Tar.read . getCompressor compressScheme- zipResponse :: FilePath -> BSL.ByteString -> IO () zipResponse dirName response = withCurrentDirectory dirName $ do let options = OptDestination dirName extractFilesFromArchive [options] (toArchive response) -unpackResponse :: Compression -> Bool -> FilePath -> BSL.ByteString -> IO ()-unpackResponse (Tar tarCmp) True fp response = tarResponse tarCmp fp response-unpackResponse (Tar tarCmp) False fp response = archiveResponse tarCmp fp response-unpackResponse Zip _ fp response = zipResponse fp response+unpackResponse :: Compression -> FilePath -> BSL.ByteString -> IO ()+unpackResponse (Tar tarCmp) fp response = archiveResponse tarCmp fp response+unpackResponse Zip fp response = zipResponse fp response