cpkg 0.2.3.1 → 0.2.3.2
raw patch · 8 files changed
+363/−142 lines, 8 filesdep +lzlibdep ~dhalldep ~hspec-megaparsec
Dependencies added: lzlib
Dependency ranges changed: dhall, hspec-megaparsec
Files
- CHANGELOG.md +4/−0
- README.md +6/−6
- cpkg.cabal +51/−45
- dhall/cpkg-prelude.dhall +40/−18
- pkgs/pkg-set.dhall +257/−72
- src/Package/C/Build.hs +1/−1
- src/Package/C/Fetch.hs +1/−0
- src/Package/C/Unpack.hs +3/−0
CHANGELOG.md view
@@ -1,5 +1,9 @@ # cpkg +## 0.2.3.2+ + * Add `.lz` support+ ## 0.2.3.1 * Now works with Dhall 1.25.0 on a sufficiently new GHC
README.md view
@@ -253,14 +253,14 @@ ------------------------------------------------------------------------------- Language Files Lines Code Comments Blanks -------------------------------------------------------------------------------- Bash 3 50 40 5 5+ Bash 5 62 52 5 5 Cabal 1 157 143 0 14 Cabal Project 1 4 3 0 1- Dhall 3 5191 4681 8 502- Haskell 32 1949 1602 37 310- Markdown 3 516 426 0 90- YAML 4 148 133 0 15+ Dhall 3 5299 4773 10 516+ Haskell 32 1977 1623 37 317+ Markdown 5 542 452 0 90+ YAML 2 51 47 0 4 -------------------------------------------------------------------------------- Total 47 8015 7028 50 937+ Total 49 8092 7093 52 947 ------------------------------------------------------------------------------- ```
cpkg.cabal view
@@ -1,40 +1,41 @@-cabal-version: 1.18-name: cpkg-version: 0.2.3.1-license: BSD3-license-file: LICENSE-copyright: Copyright: (c) 2018-2019 Vanessa McHale-maintainer: vamchale@gmail.com-author: Vanessa McHale-synopsis: Build tool for C+cabal-version: 1.18+name: cpkg+version: 0.2.3.2+license: BSD3+license-file: LICENSE+copyright: Copyright: (c) 2018-2019 Vanessa McHale+maintainer: vamchale@gmail.com+author: Vanessa McHale+synopsis: Build tool for C description: A build tool and package manager configured using [Dhall](https://github.com/dhall-lang/dhall-haskell).-category: Packaging, Package Management, Dhall, C-build-type: Simple++category: Packaging, Package Management, Dhall, C+build-type: Simple extra-source-files: cabal.project dhall/cpkg-prelude.dhall dhall/cpkg-types.dhall pkgs/pkg-set.dhall pkgs/patches/*.patch-extra-doc-files: README.md- CHANGELOG.md +extra-doc-files:+ README.md+ CHANGELOG.md+ source-repository head- type: git+ type: git location: https://github.com/vmchale/cpkg flag development- description:- Enable `-Werror`- default: False- manual: True+ description: Enable `-Werror`+ default: False+ manual: True library- exposed-modules:- Package.C- build-tools: cpphs -any- hs-source-dirs: src+ exposed-modules: Package.C+ build-tools: cpphs -any+ hs-source-dirs: src other-modules: Package.C.Dhall Package.C.Dhall.Type@@ -65,10 +66,13 @@ System.Directory.Executable Data.Text.Prettyprint.Doc.Custom CPkgPrelude+ default-language: Haskell2010- other-extensions: DeriveGeneric DeriveAnyClass OverloadedStrings- DerivingStrategies GeneralizedNewtypeDeriving RankNTypes- ghc-options: -Wall+ other-extensions:+ DeriveGeneric DeriveAnyClass OverloadedStrings DerivingStrategies+ GeneralizedNewtypeDeriving RankNTypes++ ghc-options: -Wall build-depends: base >=4.3 && <5, containers >=0.6.0.0,@@ -96,32 +100,32 @@ megaparsec -any, libarchive >=1.0.4.0, dir-traverse >=0.2.1.0,- composition-prelude >=1.5.2.0+ composition-prelude >=1.5.2.0,+ lzlib >=0.2.0.0 if impl(ghc <8.4)- build-depends:- dhall >=1.23.0 && <1.25.0+ build-depends: dhall >=1.23.0 && <1.25.0+ else- build-depends:- dhall >=1.23.0+ build-depends: dhall >=1.23.0 if (flag(development) && impl(ghc <=8.2)) ghc-options: -Werror if impl(ghc >=8.0)- ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates- -Wredundant-constraints -Widentities+ ghc-options:+ -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Wredundant-constraints -Widentities if impl(ghc >=8.4) ghc-options: -Wmissing-export-lists executable cpkg- main-is: Main.hs- hs-source-dirs: app- other-modules:- Paths_cpkg+ main-is: Main.hs+ hs-source-dirs: app+ other-modules: Paths_cpkg default-language: Haskell2010- ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall+ ghc-options: -threaded -rtsopts "-with-rtsopts=-N -qg" -Wall build-depends: base -any, cpkg -any,@@ -133,18 +137,19 @@ ghc-options: -Werror if impl(ghc >=8.0)- ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates- -Wredundant-constraints -Widentities+ ghc-options:+ -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Wredundant-constraints -Widentities if impl(ghc >=8.4) ghc-options: -Wmissing-export-lists test-suite cpkg-test- type: exitcode-stdio-1.0- main-is: Spec.hs- hs-source-dirs: test+ type: exitcode-stdio-1.0+ main-is: Spec.hs+ hs-source-dirs: test default-language: Haskell2010- ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall+ ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall build-depends: base -any, cpkg -any,@@ -156,8 +161,9 @@ ghc-options: -Werror if impl(ghc >=8.0)- ghc-options: -Wincomplete-uni-patterns -Wincomplete-record-updates- -Wredundant-constraints -Widentities+ ghc-options:+ -Wincomplete-uni-patterns -Wincomplete-record-updates+ -Wredundant-constraints -Widentities if impl(ghc >=8.4) ghc-options: -Wmissing-export-lists
dhall/cpkg-prelude.dhall view
@@ -1,20 +1,20 @@ {- Dhall prelude imports -}-let concatMapSep = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Text/concatMapSep+let concatMapSep = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMapSep in -let concatMapText = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Text/concatMap+let concatMapText = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMap in -let concatMap = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/List/concatMap+let concatMap = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/List/concatMap in -let map = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/List/map+let map = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/List/map in -let mapOptional = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Optional/map+let mapOptional = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Optional/map in -let not = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Bool/not+let not = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Bool/not in {- Imported types -}@@ -473,17 +473,31 @@ configureMkExesExtraFlags { bins = bins, extraFlags = ([] : List Text) } in -let buildWith =+let generalBuild =+ λ(cpus : types.BuildVars → Natural) → λ(envs : List types.EnvVar) → λ(cfg : types.BuildVars) → [ call (defaultCall ⫽ { program = makeExe cfg.buildOS- , arguments = [ "-j${Natural/show cfg.cpus}" ]+ , arguments = [ "-j${Natural/show (cpus cfg)}" ] , environment = Some envs }) ] in +let defaultCpus =+ λ(cfg : types.BuildVars) →+ cfg.cpus+in++let singleThreaded =+ λ(_ : types.BuildVars) →+ 1+in++let buildWith =+ generalBuild defaultCpus+ let defaultBuild = λ(cfg : types.BuildVars) → buildWith (buildEnv cfg) cfg@@ -776,7 +790,7 @@ let mesonEnv = λ(cfg : types.BuildVars) →- Some [ mkPkgConfigVar cfg.linkDirs+ Some [ mkPkgConfigVar (cfg.linkDirs # cfg.shareDirs) , { var = "PATH", value = mkPathVar cfg.binDirs ++ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" } , mkPy3Path cfg.linkDirs , libPath cfg@@ -818,16 +832,21 @@ let ninjaBuildWith = λ(linkLibs : List Text) → λ(cfg : types.BuildVars) →+ let ldPreload =+ if cfg.isCross+ then [] : List types.EnvVar+ else [ mkLDPreload cfg.preloadLibs ]+ in+ [ call (defaultCall ⫽ { program = "ninja"- , environment = Some [ mkPkgConfigVar cfg.linkDirs- , { var = "PATH", value = mkPathVar cfg.binDirs ++ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" }- , mkPy3Path cfg.linkDirs- , libPath cfg- , mkLDRunPath cfg.linkDirs- , mkLDFlagsGeneral cfg.linkDirs linkLibs- , mkCFlags cfg- , mkLDPreload cfg.preloadLibs- ]+ , environment = Some ([ mkPkgConfigVar cfg.linkDirs+ , { var = "PATH", value = mkPathVar cfg.binDirs ++ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" }+ , mkPy3Path cfg.linkDirs+ , libPath cfg+ , mkLDRunPath cfg.linkDirs+ , mkLDFlagsGeneral cfg.linkDirs linkLibs+ , mkCFlags cfg+ ] # ldPreload) , procDir = Some "build" }) ] in @@ -1241,4 +1260,7 @@ , configureWithPatch = configureWithPatch , installPrefix = installPrefix , unixPath = unixPath+, generalBuild = generalBuild+, defaultCpus = defaultCpus+, singleThreaded = singleThreaded }
pkgs/pkg-set.dhall view
@@ -1,11 +1,11 @@ {- Dhall prelue imports -}-let concatMapSep = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Text/concatMapSep+let concatMapSep = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMapSep in -let concatMapText = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Text/concatMap+let concatMapText = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Text/concatMap in -let not = https://raw.githubusercontent.com/dhall-lang/dhall-lang/master/Prelude/Bool/not+let not = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Bool/not in {- cpkg prelude imports -}@@ -77,7 +77,7 @@ let binutils = λ(v : List Natural) → prelude.makeGnuExe { name = "binutils", version = v } ⫽- { pkgUrl = "https://mirrors.ocf.berkeley.edu/gnu/binutils/binutils-${prelude.showVersion v}.tar.xz"+ { pkgUrl = "https://ftp.gnu.org/pub/gnu/binutils/binutils-${prelude.showVersion v}.tar.xz" , configureCommand = prelude.configureMkExes [ "mkinstalldirs" ] , installCommand = prelude.installWithBinaries [ "bin/ar", "bin/as", "bin/ld", "bin/strip", "bin/strings", "bin/readelf", "bin/objdump", "bin/nm", "bin/ranlib" ]@@ -88,6 +88,9 @@ λ(v : List Natural) → prelude.makeGnuExe { name = "bison", version = v } ⫽ { configureCommand = prelude.configureMkExes [ "build-aux/move-if-change" ]+ , buildCommand =+ λ(cfg : types.BuildVars) →+ prelude.generalBuild prelude.singleThreaded (prelude.buildEnv cfg) cfg , installCommand = prelude.installWithBinaries [ "bin/bison", "bin/yacc" ] , pkgBuildDeps = [ prelude.unbounded "m4" ] }@@ -152,18 +155,19 @@ in let fltk =- λ(cfg : { version : List Natural, patch : Natural }) →-- let versionString = prelude.showVersion cfg.version- in- let patchString = Natural/show cfg.patch+ λ(v : List Natural) →+ let versionString = prelude.showVersion v in-- prelude.defaultPackage ⫽- { pkgName = "fltk"- , pkgVersion = prelude.fullVersion cfg- , pkgUrl = "http://fltk.org/pub/fltk/${versionString}/fltk-${versionString}-${patchString}-source.tar.bz2"- , pkgSubdir = "fltk-${versionString}-${patchString}"+ prelude.simplePackage { name = "fltk", version = v } ⫽+ { pkgUrl = "http://fltk.org/pub/fltk/${versionString}/fltk-${versionString}-source.tar.bz2"+ , pkgSubdir = "fltk-${versionString}"+ , pkgDeps = [ prelude.unbounded "libX11"+ , prelude.unbounded "alsa-lib"+ , prelude.unbounded "zlib"+ , prelude.unbounded "libpng"+ , prelude.unbounded "libXft"+ , prelude.unbounded "freetype"+ ] } in @@ -264,7 +268,7 @@ let gmp = λ(v : List Natural) → prelude.simplePackage { name = "gmp", version = v } ⫽- { pkgUrl = "https://gmplib.org/download/gmp/gmp-${prelude.showVersion v}.tar.xz"+ { pkgUrl = "https://gmplib.org/download/gmp/gmp-${prelude.showVersion v}.tar.lz" , configureCommand = prelude.configureMkExes [ "mpn/m4-ccas" ] , pkgBuildDeps = [ prelude.unbounded "m4" ] -- TODO: run 'make check'?@@ -324,7 +328,7 @@ prelude.cmakePackage ⫽ { pkgName = "libjpeg-turbo" , pkgVersion = v- , pkgUrl = "https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-${prelude.showVersion v}.tar.gz"+ , pkgUrl = "https://ayera.dl.sourceforge.net/project/libjpeg-turbo/${prelude.showVersion v}/libjpeg-turbo-${prelude.showVersion v}.tar.gz" , pkgSubdir = "libjpeg-turbo-${prelude.showVersion v}" , pkgBuildDeps = [ prelude.unbounded "cmake" , prelude.unbounded "nasm"@@ -369,6 +373,10 @@ in prelude.configureWithFlags ([ "--with-shared", "--enable-widec" ] # crossArgs) cfg+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ prelude.symlink "lib/libncursesw.so" "lib/libncurses.so" ] -- enable-widec is necessary because util-linux uses libncursesw } in@@ -382,7 +390,9 @@ let pcre = λ(v : List Natural) → prelude.simplePackage { name = "pcre", version = v } ⫽- { pkgUrl = "https://ftp.pcre.org/pub/pcre/pcre-${prelude.showVersion v}.tar.bz2" }+ { pkgUrl = "https://ftp.pcre.org/pub/pcre/pcre-${prelude.showVersion v}.tar.bz2"+ , configureCommand = prelude.configureWithFlags [ "--enable-utf8", "--enable-unicode-properties" ]+ } in let perl5 =@@ -418,14 +428,18 @@ let libpng = λ(v : List Natural) → prelude.simplePackage { name = "libpng", version = v } ⫽- { pkgUrl = "https://download.sourceforge.net/libpng/libpng-${prelude.showVersion v}.tar.xz"+ { pkgUrl = "https://newcontinuum.dl.sourceforge.net/project/libpng/libpng16/${prelude.showVersion v}/libpng-${prelude.showVersion v}.tar.xz"+ -- "https://download.sourceforge.net/libpng/libpng-${prelude.showVersion v}.tar.xz" , pkgDeps = [ prelude.unbounded "zlib" ] } in let sed = λ(v : List Natural) →- prelude.makeGnuExe { name = "sed", version = v } -- TODO: require pcre?+ prelude.makeGnuExe { name = "sed", version = v } ⫽ -- TODO: require pcre?+ { installCommand =+ prelude.installWithManpages [ { file = "share/man/man1/sed.1", section = 1 } ]+ } in let tar =@@ -464,7 +478,7 @@ λ(cfg : types.BuildVars) → let mkLibDynload = λ(libs : List Text) →- concatMapSep ":" Text (λ(dir : Text) → "${dir}/python2.7/lib-dynload") libs+ concatMapSep ":" Text (λ(dir : Text) → "${dir}:${dir}/python2.7/lib-dynload") libs in let mkPython = λ(libs : List Text) →@@ -513,6 +527,7 @@ [ prelude.mkExe "configure" , prelude.call (prelude.defaultCall ⫽ { program = "./configure" , arguments = [ "--prefix=${cfg.installDir}" ]+ -- , environment = Some (host # [ { var = "PATH", value = prelude.mkPathVar cfg.binDirs } ]) , environment = Some (host # [ { var = "PATH", value = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" } ]) }) ]@@ -520,6 +535,9 @@ prelude.simplePackage { name = "zlib", version = v } ⫽ { pkgUrl = "http://www.zlib.net/zlib-${prelude.showVersion v}.tar.xz"+ -- , pkgBuildDeps = [ prelude.unbounded "coreutils"+ -- , prelude.unbounded "sed"+ -- ] , configureCommand = zlibConfigure , installCommand = prelude.installWithManpages [ { file = "share/man/man3/zlib.3", section = 3 } ]@@ -1196,15 +1214,9 @@ λ(v : List Natural) → prelude.simplePackage { name = "shared-mime-info", version = v } ⫽ { pkgUrl = "http://freedesktop.org/~hadess/shared-mime-info-${prelude.showVersion v}.tar.xz"- , buildCommand =- λ(cfg : types.BuildVars) →- [ prelude.call (prelude.defaultCall ⫽ { program = prelude.makeExe cfg.buildOS- , environment = Some (prelude.defaultPath cfg # [ prelude.libPath cfg- , prelude.mkLDRunPath cfg.linkDirs- , prelude.mkPerlLib { libDirs = cfg.linkDirs, perlVersion = [5,30,0], cfg = cfg }- ])- })- ]+ , buildCommand =+ λ(cfg : types.BuildVars) →+ prelude.generalBuild prelude.singleThreaded (prelude.buildEnv cfg) cfg , installCommand = λ(cfg : types.BuildVars) → prelude.defaultInstall cfg@@ -1917,12 +1929,13 @@ }) , prelude.copyFile "libbz2.so.${versionString}" "lib/libbz2.so.${versionString}" , prelude.symlink "lib/libbz2.so.${versionString}" "lib/libbz2.so.1.0"+ , prelude.symlink "lib/libbz2.so.${versionString}" "lib/libbz2.so" ] in let bzipShared = λ(cfg : types.BuildVars) → [ prelude.call (prelude.defaultCall ⫽ { program = prelude.makeExe cfg.buildOS- , arguments = [ "-f", "Makefile-libbz2_so" ]+ , arguments = cc cfg # [ "-f", "Makefile-libbz2_so" ] }) ] in@@ -2269,7 +2282,7 @@ { pkgUrl = "https://www.libarchive.org/downloads/libarchive-${prelude.showVersion v}.tar.gz" -- , pkgDeps = [ prelude.unbounded "libxml2" ] , pkgDeps = [ prelude.unbounded "xz"- -- , prelude.unbounded "bzip2"+ , prelude.unbounded "bzip2" , prelude.unbounded "zlib" ] }@@ -2402,8 +2415,8 @@ prelude.simplePackage { name = "m17n-lib", version = v } ⫽ { pkgUrl = "http://download.savannah.gnu.org/releases/m17n/m17n-lib-${prelude.showVersion v}.tar.gz" , buildCommand =- λ(cfg : types.BuildVars) →- [ prelude.call (prelude.defaultCall ⫽ { program = prelude.makeExe cfg.buildOS }) ]+ λ(cfg : types.BuildVars) →+ prelude.generalBuild prelude.singleThreaded (prelude.buildEnv cfg) cfg , pkgDeps = [ prelude.unbounded "libXt" ] , pkgBuildDeps = [ prelude.unbounded "binutils" ] }@@ -2517,6 +2530,7 @@ prelude.simplePackage { name = "libopenjpeg", version = v } ⫽ prelude.cmakePackage ⫽ { pkgUrl = "https://github.com/uclouvain/openjpeg/archive/v${versionString}.tar.gz" , pkgSubdir = "openjpeg-${versionString}"+ , pkgDeps = [ prelude.unbounded "zlib" ] , installCommand = λ(cfg : types.BuildVars) → prelude.cmakeInstall cfg@@ -3131,6 +3145,25 @@ ] in +let clang =+ λ(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"+ , pkgSubdir = "cfe-${versionString}.src"+ , pkgStream = False+ , buildCommand = slowBuild+ , pkgDeps = [ prelude.unbounded "llvm" ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.cmakeInstall cfg+ # [ prelude.symlinkBinary "bin/clang"+ , prelude.symlinkBinary "bin/clang-format"+ ]+ }+in++ let llvm = λ(v : List Natural) → let versionString = prelude.showVersion v in@@ -3177,7 +3210,7 @@ λ(v : List Natural) → let versionString = prelude.showVersion v in prelude.simplePackage { name = "gcc", version = v } ⫽- { pkgUrl = "http://mirror.linux-ia64.org/gnu/gcc/releases/gcc-${versionString}/gcc-${versionString}.tar.xz"+ { pkgUrl = "https://ftp.gnu.org/pub/gnu/gcc/gcc-${versionString}/gcc-${versionString}.tar.xz" , configureCommand = λ(cfg : types.BuildVars) → [ prelude.call { program = "contrib/download_prerequisites"@@ -3187,9 +3220,11 @@ } ] # prelude.configureWithFlags [ "--disable-multilib" ] cfg- , installCommand = prelude.installWithBinaries [ "bin/gcc", "bin/g++", "bin/gcc-ar", "bin/gcc-nm", "bin/gfortran", "bin/gcc-ranlib" ]+ , installCommand =+ prelude.installWithBinaries [ "bin/gcc", "bin/g++", "bin/gcc-ar", "bin/gcc-nm", "bin/gfortran", "bin/gcc-ranlib" ] , pkgBuildDeps = [ prelude.unbounded "curl" , prelude.unbounded "sed"+ , prelude.unbounded "libtool" ] , pkgStream = False }@@ -3219,10 +3254,15 @@ , pkgDeps = [ prelude.unbounded "fontconfig" , prelude.unbounded "libopenjpeg" , prelude.unbounded "libjpeg-turbo"+ , prelude.unbounded "libjpeg" , prelude.unbounded "freetype" , prelude.unbounded "zlib" , prelude.unbounded "libpng"+ , prelude.unbounded "libiconv"+ , prelude.unbounded "harfbuzz"+ , prelude.unbounded "glib" ]+ -- , configureCommand = prelude.cmakeConfigureWithFlags [ "-DENABLE_LIBOPENJPEG='none'" ] , installCommand = λ(cfg : types.BuildVars) → prelude.cmakeInstall cfg@@ -3327,6 +3367,7 @@ , pkgBuildDeps = [ prelude.unbounded "nasm" ] -- TODO: cross-compile , configureCommand = prelude.configureWithFlags [ "--enable-shared" ]+ , installCommand = prelude.installWithBinaries [ "bin/ffmpeg" ] , pkgDeps = [ prelude.unbounded "bzip2" ] , pkgStream = False }@@ -3559,12 +3600,25 @@ , pkgStream = False , pkgDeps = [ prelude.unbounded "readline" , prelude.unbounded "libXt"+ , prelude.unbounded "pcre" ] , pkgBuildDeps = [ prelude.unbounded "gcc" ] , installCommand = prelude.installWithBinaries [ "bin/R", "bin/Rscript" ] } in +let libspng =+ λ(v : List Natural) →+ prelude.ninjaPackage { name = "libspng", version = v } ⫽+ { pkgUrl = "https://github.com/randy408/libspng/archive/v${prelude.showVersion v}.tar.gz"+ , pkgBuildDeps = [ prelude.unbounded "pkg-config"+ , prelude.unbounded "meson"+ , prelude.lowerBound { name = "ninja", lower = [1,5,0] }+ ]+ , pkgDeps = [ prelude.unbounded "zlib" ]+ }+in+ let glib-networking = λ(x : { version : List Natural, patch : Natural }) → let versionString = prelude.showVersion x.version@@ -3586,7 +3640,7 @@ let libwebp = λ(v : List Natural) → prelude.simplePackage { name = "libwebp", version = v } ⫽- { pkgUrl = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.0.3.tar.gz" }+ { pkgUrl = "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${prelude.showVersion v}.tar.gz" } in let rustc =@@ -3654,76 +3708,200 @@ } in --- https://downloads.haskell.org/~ghc/8.6.5/ghc-8.6.5-x86_64-deb9-linux.tar.xz--- http://www.linuxfromscratch.org/lfs/view/development/chapter06/findutils.html+let libiconv =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libiconv", version = v } ⫽+ { pkgUrl = "https://ftp.gnu.org/pub/gnu/libiconv/libiconv-${prelude.showVersion v}.tar.gz" }+in++let libav =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libav", version = v } ⫽+ { pkgUrl = "https://libav.org/releases/libav-${prelude.showVersion v}.tar.xz"+ , configureCommand = prelude.configureMkExes [ "version.sh", "doc/texi2pod.pl" ]+ , pkgBuildDeps = [ prelude.unbounded "nasm"+ , prelude.unbounded "perl"+ ]+ , installCommand = prelude.installWithBinaries [ "bin/avconv", "bin/avprobe" ]+ }+in++-- TODO: use bzip2 approach here; build shared + static libs+let alsa-lib =+ λ(v : List Natural) →+ prelude.simplePackage { name = "alsa-lib", version = v } ⫽+ { pkgUrl = "https://www.alsa-project.org/files/pub/lib/alsa-lib-${prelude.showVersion v}.tar.bz2"+ , pkgStream = False+ }+in++let bash-completion =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v in+ prelude.simplePackage { name = "bash-completion", version = v } ⫽+ { pkgUrl = "https://github.com/scop/bash-completion/releases/download/${versionString}/bash-completion-${versionString}.tar.xz" }+in++let hugs =+ let hugsEnv =+ λ(_ : List Text) →+ λ(cfg : types.BuildVars) →+ Some [ { var = "CFLAGS", value = "-std=gnu89" }+ , { var = "PATH", value = prelude.mkPathVar cfg.binDirs }+ ]+ in+ prelude.simplePackage { name = "hugs", version = [2006,9] } ⫽+ { pkgUrl = "https://www.haskell.org/hugs/downloads/2006-09/hugs98-plus-Sep2006.tar.gz"+ , pkgSubdir = "hugs98-plus-Sep2006"+ , configureCommand = prelude.generalConfigure hugsEnv "configure" ([] : List Text) ([] : List Text)+ , pkgStream = False+ , pkgBuildDeps = [ prelude.unbounded "coreutils"+ , prelude.unbounded "sed"+ , prelude.unbounded "gcc"+ , prelude.unbounded "binutils"+ , prelude.unbounded "grep"+ , prelude.unbounded "findutils"+ ]+ }+in++let bash =+ λ(v : List Natural) →+ prelude.simplePackage { name = "bash", version = v } ⫽+ { pkgUrl = "https://ftp.gnu.org/gnu/bash/bash-${prelude.showVersion v}.tar.gz" }+in++let findutils =+ λ(v : List Natural) →+ prelude.simplePackage { name = "findutils", version = v } ⫽+ { pkgUrl = "https://ftp.gnu.org/pub/gnu/findutils/findutils-${prelude.showVersion v}.tar.gz"+ , pkgStream = False+ }+in++let ghc =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v in+ prelude.simplePackage { name = "ghc", version = v } ⫽+ { pkgUrl = "https://downloads.haskell.org/~ghc/${versionString}/ghc-${versionString}-x86_64-deb9-linux.tar.xz"+ , buildCommand = prelude.doNothing+ , pkgStream = False+ }+in++-- TODO: runghc Setup.hs configure+-- let composition-prelude =+ -- λ(v : List Natural) →+ -- prelude.mkHackagePackage { name = "composition-prelude", version = v }+-- in+ -- TODO: musl-ghc? -- https://hub.darcs.net/raichoo/hikari -- https://versaweb.dl.sourceforge.net/project/schilytools/schily-2019-03-29.tar.bz2 -- https://busybox.net/downloads/busybox-1.31.0.tar.bz2 -- 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 -[ autoconf [2,69]-, automake [1,16,1]+let cmark =+ λ(v : List Natural) →+ prelude.simplePackage { name = "cmark", version = v } ⫽ prelude.cmakePackage ⫽+ { pkgUrl = "https://github.com/commonmark/cmark/archive/${prelude.showVersion v}.tar.gz" }+in++-- TODO: set CC for lzip and lzlib+let lzip =+ λ(v : List Natural) →+ prelude.simplePackage { name = "lzip", version = v } ⫽+ { pkgUrl = "http://download.savannah.gnu.org/releases/lzip/lzip-${prelude.showVersion v}.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/lzip" ]+ }+in++let lzlib =+ λ(v : List Natural) →+ prelude.simplePackage { name = "lzlib", version = v } ⫽+ { pkgUrl = "http://download.savannah.gnu.org/releases/lzip/lzlib/lzlib-${prelude.showVersion v}.tar.gz"+ , configureCommand = prelude.configureWithFlags [ "--enable-shared" ]+ }+in++let lziprecover =+ λ(v : List Natural) →+ prelude.simplePackage { name = "lziprecover", version = v } ⫽+ { pkgUrl = "http://download.savannah.gnu.org/releases/lzip/lziprecover/lziprecover-1.21.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/lziprecover" ]+ }+in++[ alsa-lib [1,1,9] , at-spi-atk { version = [2,33], patch = 2 } , at-spi-core { version = [2,33], patch = 2 } , atk { version = [2,33], patch = 3 } , ats [0,3,13]+, autoconf [2,69]+, automake [1,16,1] , babl { version = [0,1], patch = 68 }+, bash [5,0]+, bash-completion [2,9] , binutils [2,32]-, bison [3,3,1]+, bison [3,4,1] , blas [3,8,0] , bzip2 [1,0,6] , cairo [1,16,0] , chickenScheme [5,0,0]-, cimg [2,6,6]-, cmake { version = [3,15], patch = 1 }+, cimg [2,7,0]+, clang [8,0,1]+, cmake { version = [3,15], patch = 2 }+, cmark [0,29,0] , compositeproto [0,4] , coreutils [8,31] , ctags [5,8]-, curl [7,65,0]+, curl [7,66,0] , damageproto [1,2,1] , dbus [1,13,12] , diffutils [3,7] , dri2proto [2,8] , eigen [3,3,7] , elfutils [0,176]-, emacs [26,2]+, emacs [26,3] , exiv2 [0,27,1]-, expat [2,2,6]-, feh [3,1,1]-, ffmpeg [4,1,3]+, expat [2,2,7]+, feh [3,2,1]+, ffmpeg [4,2] , fftw [3,3,8]+, findutils [4,6,0] , fixesproto [5,0] , fontconfig [2,13,1] , fossil [2,7] , flex [2,6,3] -- 2.6.4?-, fltk { version = [1,3,4], patch = 2 }-, freetype-prebuild [2,9,1] -- TODO: force both to have same version?-, freetype [2,9,1]+, fltk [1,3,5]+, freetype-prebuild [2,10,1] -- TODO: force both to have same version?+, freetype [2,10,1] , fribidi [1,0,5] , gawk [5,0,1] , gc [8,0,4]-, gcc [9,1,0]+, gcc [9,2,0] , gdb [8,2] , gdk-pixbuf { version = [2,38], patch = 1 } , gegl { version = [0,4], patch = 16 } , gettext [0,20,1] , gexiv2 { version = [0,12], patch = 0 }+, ghc [8,6,5] , gperf [3,1] , gperftools [2,7] , giflib [5,1,4]-, git [2,19,2]+, git [2,23,0] , glib { version = [2,61], patch = 1 } , glib-networking { version = [2,61], patch = 2 } , glproto [1,4,17] , glu [9,0,0] , json-glib { version = [1,4], patch = 4 }-, glibc [2,29]+, glibc [2,30] , gmp [6,1,2] , gobject-introspection { version = [1,60], patch = 2 } , gnome-doc-utils { version = [0,20], patch = 10 }-, gnupg [2,2,16]+, gnupg [2,2,17] , gnutls { version = [3,6], patch = 9 } , graphviz [2,40,1] , grep [3,3]@@ -3733,6 +3911,7 @@ , gzip [1,9] , harfbuzz [2,5,3] , htop [2,2,0]+, hugs , icu [64,2] , icu-le-hb [1,0,3] , imageMagick [7,0,8]@@ -3748,9 +3927,10 @@ , lapack [3,8,0] , lcms2 [2,9] , leptonica [1,78,0]-, libarchive [3,3,3]-, libassuan [2,5,2]+, libarchive [3,4,0]+, libassuan [2,5,3] , libatomic_ops [7,6,10]+, libav [12,3] , libboost [1,69,0] , libcds [2,3,2] , libcroco { version = [0,6], patch = 12 }@@ -3761,19 +3941,20 @@ , libevent [2,1,10] , libexif [0,6,21] , libffi [3,2,1]-, libgcrypt [1,8,4]+, libgcrypt [1,8,5] , libglade { version = [2,6], patch = 4 }-, libgpgError [1,33]+, libgpgError [1,36] , libICE [1,0,9]+, libiconv [1,16] , libjpeg [9]-, libjpeg-turbo [2,0,2]+, libjpeg-turbo [2,0,3] , libksba [1,3,5] , libmypaint [1,3,0] , libnettle [3,5,1] , libopenjpeg [2,3,1] , libotf [0,9,16] , libpciaccess [0,14]-, libpng [1,6,35]+, libpng [1,6,37] , libpsl [0,21,0] , libpthread-stubs [0,4] , libraw [0,19,2]@@ -3784,6 +3965,7 @@ , libsepol [2,8] , libsodium [1,0,17] , libsoup { version = [2,67], patch = 3 }+, libspng [0,5,0] , libssh2 [1,8,0] , libtasn1 [4,14] , libtiff [4,0,10]@@ -3820,6 +4002,9 @@ , lmdb [0,9,23] , lua [5,3,5] , lz4 [1,9,1]+, lzip [1,21]+, lziprecover [1,21]+, lzlib [1,11] , m17n [1,8,0] , m4 [1,4,18] , make [4,2,1]@@ -3828,10 +4013,10 @@ , memcached [1,5,12] , mercury , mesa [19,0,5]-, meson [0,50,1]+, meson [0,51,1] , mpc [1,1,0] , mpfr [4,0,2]-, mpg123 [1,25,10]+, mpg123 [1,25,12] , mosh [1,3,2] , motif [2,3,8] , musl [1,1,20]@@ -3840,7 +4025,7 @@ , ncurses [6,1] , nginx [1,15,7] , ninja [1,9,0]-, node [10,15,1]+, node [10,16,2] , npth [1,6] , nspr [4,20] , openblas [0,3,2]@@ -3851,14 +4036,14 @@ , pango { version = [1,43], patch = 0 } , pari [2,11,1] , patch [2,7]-, pcre [8,42]-, pcre2 [10,32]+, pcre [8,43]+, pcre2 [10,33] , pdfgrep [2,1,2] , perl5 [5,30,0] , phash [0,9,6] , pixman [0,38,4] , pkg-config [0,29,2]-, poppler [0,79,0]+, poppler [0,80,0] , postgresql [11,1] , protobuf [3,8,0] , pycairo [1,18,1]@@ -3873,19 +4058,19 @@ , ragel [6,10] , randrproto [1,5,0] , re2c [1,1,1]-, readline [7,0]+, readline [8,0] , recordproto [1,14,2] , renderproto [0,11,1] , ruby { version = [2,6], patch = 3 }-, rustc [1,36,0]+, rustc [1,37,0] , scour [0,37] , scrnsaverproto [1,2,2] , sdl2 [2,0,10] , sed [4,7] , shared-mime-info [1,10]-, sqlite { year = 2018, version = [3,26,0] }+, sqlite { year = 2019, version = [3,29,0] } , swig [3,0,12]-, tar [1,30]+, tar [1,32] , tcc [0,9,27] , texinfo [6,6] , tesseract [4,0,0]
src/Package/C/Build.hs view
@@ -138,7 +138,7 @@ getPreloads :: [ FilePath ] -> IO [ FilePath ] getPreloads =- fmap fold . traverse (\fp -> namesMatching (fp </> "*.so"))+ fmap concat . traverse (\fp -> namesMatching (fp </> "*.so")) -- only really suitable for hashing at this point, since we use @""@ as the -- install directory. we use this to get a hash which we then use to get the
src/Package/C/Fetch.hs view
@@ -22,6 +22,7 @@ urlToCompression s | ".tar.gz" `isSuffixOf` s || ".tgz" `isSuffixOf` s = pure $ Tar Gz | ".tar.xz" `isSuffixOf` s = pure $ Tar Xz | ".tar.bz2" `isSuffixOf` s = pure $ Tar Bz2+ | ".tar.lz" `isSuffixOf` s = pure $ Tar Lz | ".tar" `isSuffixOf` s = pure $ Tar None | ".zip" `isSuffixOf` s = pure Zip | otherwise = unrecognized s
src/Package/C/Unpack.hs view
@@ -9,12 +9,14 @@ import qualified Codec.Compression.BZip as Bzip import qualified Codec.Compression.GZip as Gzip import qualified Codec.Compression.Lzma as Lzma+import qualified Codec.Lzip as Lzip import qualified Data.ByteString.Lazy as BSL import System.Directory data TarCompress = Gz | Xz | Bz2+ | Lz | None data Compression = Tar TarCompress@@ -26,6 +28,7 @@ getCompressor None = id getCompressor Xz = Lzma.decompress getCompressor Bz2 = Bzip.decompress+getCompressor Lz = Lzip.decompress . BSL.toStrict archiveResponse :: TarCompress -> FilePath -> BSL.ByteString -> IO () archiveResponse compressScheme dirName =