packages feed

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 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 =