cpkg 0.2.5.4 → 0.2.5.6
raw patch · 5 files changed
+5261/−5338 lines, 5 filesdep ~dhall
Dependency ranges changed: dhall
Files
- cabal.project +0/−8
- cpkg.cabal +3/−3
- dhall/cpkg-prelude.dhall +276/−309
- pkgs/pkg-set.dhall +4980/−5016
- src/Package/C/PackageSet.hs +2/−2
cabal.project view
@@ -3,11 +3,3 @@ , zlib +pkg-config max-backjumps: 40000--allow-newer:- serialise:ghc-prim- haskeline:base- cborg-json:base- cborg:ghc-prim- dhall:template-haskell- polyparse:base
cpkg.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: cpkg-version: 0.2.5.4+version: 0.2.5.6 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018-2020 Vanessa McHale@@ -101,7 +101,7 @@ dir-traverse >=0.2.1.0, composition-prelude >=1.5.2.0, lzlib >=0.3.0.0,- dhall >=1.27.0,+ dhall >=1.29.0, zstd -any if (flag(development) && impl(ghc <=8.2))@@ -127,7 +127,7 @@ optparse-applicative -any, directory -any, text -any,- dhall >=1.26.1+ dhall >=1.29.0 if (flag(development) && impl(ghc <=8.2)) ghc-options: -Werror
dhall/cpkg-prelude.dhall view
@@ -12,7 +12,7 @@ https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/List/map sha256:dd845ffb4568d40327f2a817eb42d1c6138b929ca758d50bc33112ef3c885680 let mapOptional =- https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Optional/map sha256:e7f44219250b89b094fbf9996e04b5daafc0902d864113420072ae60706ac73d+ https://raw.githubusercontent.com/dhall-lang/dhall-lang/bf757ba1ee526714278568012c6bc98d7ea9757e/Prelude/Optional/map sha256:501534192d988218d43261c299cc1d1e0b13d25df388937add784778ab0054fa let not = https://raw.githubusercontent.com/dhall-lang/dhall-lang/9f259cd68870b912fbf2f2a08cd63dc3ccba9dc3/Prelude/Bool/not sha256:723df402df24377d8a853afed08d9d69a0a6d86e2e5b2bac8960b0d4756c7dc4@@ -22,14 +22,14 @@ let showVersion = concatMapSep "." Natural Natural/show let maybeAppend =- λ(a : Type)- → λ(x : Optional a)- → λ(xs : List a)- → Optional/fold a x (List a) (λ(x : a) → xs # [ x ]) xs+ λ(a : Type) →+ λ(x : Optional a) →+ λ(xs : List a) →+ merge { Some = λ(x : a) → xs # [ x ], None = xs } x let printArch =- λ(arch : types.Arch)- → merge+ λ(arch : types.Arch) →+ merge { X64 = "x86_64" , AArch = "aarch64" , Arm = "arm"@@ -57,12 +57,12 @@ arch let printManufacturer =- λ(x : types.Manufacturer)- → merge { Unknown = "unknown", Apple = "apple", IBM = "ibm", PC = "pc" } x+ λ(x : types.Manufacturer) →+ merge { Unknown = "unknown", Apple = "apple", IBM = "ibm", PC = "pc" } x let libSuffix =- λ(os : types.OS)- → merge+ λ(os : types.OS) →+ merge { FreeBSD = "so" , OpenBSD = "so" , NetBSD = "so"@@ -82,8 +82,8 @@ os let printOS =- λ(os : types.OS)- → merge+ λ(os : types.OS) →+ merge { FreeBSD = "freebsd" , OpenBSD = "openbsd" , NetBSD = "netbsd"@@ -103,8 +103,8 @@ os let printABI =- λ(os : types.ABI)- → merge+ λ(os : types.ABI) →+ merge { GNU = "gnu" , GNUabi64 = "gnuabi64" , GNUeabi = "gnueabi"@@ -115,14 +115,11 @@ os let printTargetTriple =- λ(t : types.TargetTriple)- → "${printArch t.arch}-${printOS t.os}"- ++ Optional/fold- types.ABI+ λ(t : types.TargetTriple) →+ "${printArch t.arch}-${printOS t.os}"+ ++ merge+ { Some = λ(abi : types.ABI) → "-${printABI abi}", None = "" } t.abi- Text- (λ(abi : types.ABI) → "-${printABI abi}")- "" let mkHost = mapOptional@@ -131,8 +128,8 @@ (λ(tgt : types.TargetTriple) → "--host=${printTargetTriple tgt}") let makeExe =- λ(os : types.OS)- → merge+ λ(os : types.OS) →+ merge { FreeBSD = "gmake" , OpenBSD = "gmake" , NetBSD = "gmake"@@ -174,9 +171,9 @@ let symlinkManpage = types.Command.SymlinkManpage let symlink =- λ(tgt : Text)- → λ(lnk : Text)- → types.Command.Symlink { tgt, linkName = lnk }+ λ(tgt : Text) →+ λ(lnk : Text) →+ types.Command.Symlink { tgt, linkName = lnk } let copyFile = λ(src : Text) → λ(dest : Text) → types.Command.CopyFile { src, dest }@@ -187,8 +184,8 @@ map { file : Text, section : Natural } types.Command symlinkManpage let isUnix =- λ(os : types.OS)- → merge+ λ(os : types.OS) →+ merge { FreeBSD = True , OpenBSD = True , NetBSD = True@@ -208,8 +205,8 @@ os let isMac =- λ(os : types.OS)- → merge+ λ(os : types.OS) →+ merge { FreeBSD = False , OpenBSD = False , NetBSD = False@@ -229,18 +226,18 @@ os let mkLDFlagsGeneral =- λ(libDirs : List Text)- → λ(linkLibs : List Text)- → λ(cfg : types.BuildVars)- → let flag0 = concatMapSep " " Text (λ(dir : Text) → "-L${dir}") libDirs+ λ(libDirs : List Text) →+ λ(linkLibs : List Text) →+ λ(cfg : types.BuildVars) →+ let flag0 = concatMapSep " " Text (λ(dir : Text) → "-L${dir}") libDirs let flag1 = concatMapText Text (λ(dir : Text) → " -l${dir}") linkLibs let flag2 = concatMapText Text- ( λ(dir : Text)- → if isMac cfg.buildOS then "" else " -Wl,-rpath-link,${dir}"+ ( λ(dir : Text) →+ if isMac cfg.buildOS then "" else " -Wl,-rpath-link,${dir}" ) libDirs @@ -250,51 +247,47 @@ λ(libDirs : List Text) → mkLDFlagsGeneral libDirs ([] : List Text) let mkLDPath =- λ(libDirs : List Text)- → let flag = concatMapSep ":" Text (λ(dir : Text) → dir) libDirs+ λ(libDirs : List Text) →+ let flag = concatMapSep ":" Text (λ(dir : Text) → dir) libDirs in { var = "LD_LIBRARY_PATH", value = flag } let mkLDRunPath =- λ(libDirs : List Text)- → let flag = concatMapSep ":" Text (λ(dir : Text) → dir) libDirs+ λ(libDirs : List Text) →+ let flag = concatMapSep ":" Text (λ(dir : Text) → dir) libDirs in { var = "LD_RUN_PATH", value = flag } let mkStaPath =- λ(libDirs : List Text)- → let flag = concatMapText Text (λ(dir : Text) → "${dir}:") libDirs+ λ(libDirs : List Text) →+ let flag = concatMapText Text (λ(dir : Text) → "${dir}:") libDirs in { var = "LIBRARY_PATH" , value = flag ++ "/usr/local/lib:/lib:/usr/lib" } let osCfg =- λ(cfg : types.BuildVars)- → Optional/fold- types.TargetTriple+ λ(cfg : types.BuildVars) →+ merge+ { Some = λ(tgt : types.TargetTriple) → tgt.os, None = cfg.buildOS } cfg.targetTriple- types.OS- (λ(tgt : types.TargetTriple) → tgt.os)- cfg.buildOS let archCfg =- λ(cfg : types.BuildVars)- → Optional/fold- types.TargetTriple+ λ(cfg : types.BuildVars) →+ merge+ { Some = λ(tgt : types.TargetTriple) → tgt.arch+ , None = cfg.buildArch+ } cfg.targetTriple- types.Arch- (λ(tgt : types.TargetTriple) → tgt.arch)- cfg.buildArch let mkPerlLib =- λ ( x- : { libDirs : List Text- , perlVersion : List Natural- , cfg : types.BuildVars- }- )- → let os = x.cfg.buildOS+ λ ( x+ : { libDirs : List Text+ , perlVersion : List Natural+ , cfg : types.BuildVars+ }+ ) →+ let os = x.cfg.buildOS let arch = x.cfg.buildArch @@ -302,8 +295,8 @@ concatMapSep ":" Text- ( λ(dir : Text)- → "${dir}/site_perl/${showVersion+ ( λ(dir : Text) →+ "${dir}/site_perl/${showVersion x.perlVersion}/${printArch arch}-${printOS os}/"@@ -311,24 +304,21 @@ x.libDirs let major =- Optional/fold- Natural+ merge+ { Some = Natural/show, None = "" } (List/head Natural x.perlVersion)- Text- Natural/show- "" in { var = "PERL${major}LIB", value = flag } let mkIncludePath =- λ(incls : List Text)- → let flag = concatMapSep ":" Text (λ(dir : Text) → dir) incls+ λ(incls : List Text) →+ let flag = concatMapSep ":" Text (λ(dir : Text) → dir) incls in { var = "C_INCLUDE_PATH", value = flag } let mkCFlags =- λ(cfg : types.BuildVars)- → let flag =+ λ(cfg : types.BuildVars) →+ let flag = concatMapSep " " Text (λ(dir : Text) → "-I${dir}") cfg.includeDirs let staFlag = if cfg.static then " -static" else ""@@ -336,52 +326,50 @@ in { var = "CPPFLAGS", value = flag ++ staFlag } let mkPkgConfigVar =- λ(libDirs : List Text)- → let flag =+ λ(libDirs : List Text) →+ let flag = concatMapSep ":" Text (λ(dir : Text) → "${dir}/pkgconfig") libDirs in { var = "PKG_CONFIG_PATH", value = flag } let mkXdgDataDirs =- λ(shareDirs : List Text)- → let flag = concatMapSep ":" Text (λ(dir : Text) → dir) shareDirs+ λ(shareDirs : List Text) →+ let flag = concatMapSep ":" Text (λ(dir : Text) → dir) shareDirs in { var = "XDG_DATA_DIRS", value = flag } let mkPathVar =- λ(binDirs : List Text)- → concatMapText Text (λ(dir : Text) → "${dir}:") binDirs+ λ(binDirs : List Text) →+ concatMapText Text (λ(dir : Text) → "${dir}:") binDirs let unixPath =- λ(binDirs : List Text)- → { var = "PATH"+ λ(binDirs : List Text) →+ { var = "PATH" , value = mkPathVar binDirs ++ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" } let defaultPath =- λ(cfg : types.BuildVars)- → if isUnix cfg.buildOS-+ λ(cfg : types.BuildVars) →+ if isUnix cfg.buildOS then [ unixPath cfg.binDirs ] : List types.EnvVar- else [] : List types.EnvVar let libPath =- λ(cfg : types.BuildVars)- → if cfg.static then mkStaPath cfg.linkDirs else mkLDPath cfg.linkDirs+ λ(cfg : types.BuildVars) →+ if cfg.static then mkStaPath cfg.linkDirs else mkLDPath cfg.linkDirs let mkLDPreload =- λ(libs : List Text)- → let flag = concatMapSep " " Text (λ(lib : Text) → lib) libs+ λ(libs : List Text) →+ let flag = concatMapSep " " Text (λ(lib : Text) → lib) libs in { var = "LD_PRELOAD", value = flag } let configEnv =- λ(linkLibs : List Text)- → λ(cfg : types.BuildVars)- → defaultPath cfg+ λ(linkLibs : List Text) →+ λ(cfg : types.BuildVars) →+ defaultPath cfg # [ mkLDFlagsGeneral cfg.linkDirs linkLibs cfg , mkCFlags cfg , mkPkgConfigVar (cfg.shareDirs # cfg.linkDirs)@@ -392,8 +380,8 @@ ] let buildEnv =- λ(cfg : types.BuildVars)- → defaultPath cfg+ λ(cfg : types.BuildVars) →+ defaultPath cfg # [ mkPkgConfigVar (cfg.shareDirs # cfg.linkDirs) , mkPerlLib { libDirs = cfg.linkDirs, perlVersion = [ 5, 30, 2 ], cfg }@@ -402,27 +390,25 @@ ] let configSome =- λ(linkLibs : List Text)- → λ(cfg : types.BuildVars)- → Some (configEnv linkLibs cfg)+ λ(linkLibs : List Text) →+ λ(cfg : types.BuildVars) →+ Some (configEnv linkLibs cfg) let generalConfigure =- λ(envVars : List Text → types.BuildVars → Optional (List types.EnvVar))- → λ(filename : Text)- → λ(linkLibs : List Text)- → λ(extraFlags : List Text)- → λ(cfg : types.BuildVars)- → let maybeHost = mkHost cfg.targetTriple+ λ(envVars : List Text → types.BuildVars → Optional (List types.EnvVar)) →+ λ(filename : Text) →+ λ(linkLibs : List Text) →+ λ(extraFlags : List Text) →+ λ(cfg : types.BuildVars) →+ let maybeHost = mkHost cfg.targetTriple let modifyArgs = maybeAppend Text maybeHost let mac = isMac cfg.buildOS let modifyProg =- if mac-+ if mac then λ(x : List Text) → [ "${filename}" ] # x- else λ(x : List Text) → x let program = if mac then "sh" else "./${filename}"@@ -441,8 +427,8 @@ ] let configWithEnv =- λ(envVars : List Text → types.BuildVars → Optional (List types.EnvVar))- → generalConfigure envVars "configure" ([] : List Text) ([] : List Text)+ λ(envVars : List Text → types.BuildVars → Optional (List types.EnvVar)) →+ generalConfigure envVars "configure" ([] : List Text) ([] : List Text) let configureWithFlags = generalConfigure configSome "configure" ([] : List Text)@@ -450,12 +436,12 @@ let defaultConfigure = configureWithFlags ([] : List Text) let configureLinkExtraLibs =- λ(linkLibs : List Text)- → generalConfigure configSome "configure" linkLibs ([] : List Text)+ λ(linkLibs : List Text) →+ generalConfigure configSome "configure" linkLibs ([] : List Text) let mkAclocalPath =- λ(shareDirs : List Text)- → let flag =+ λ(shareDirs : List Text) →+ let flag = concatMapSep ":" Text@@ -465,19 +451,19 @@ in { var = "ACLOCAL_PATH", value = flag } let configureMkExesExtraFlags =- λ(x : { bins : List Text, extraFlags : List Text })- → λ(cfg : types.BuildVars)- → mkExes x.bins # configureWithFlags x.extraFlags cfg+ λ(x : { bins : List Text, extraFlags : List Text }) →+ λ(cfg : types.BuildVars) →+ mkExes x.bins # configureWithFlags x.extraFlags cfg let configureMkExes =- λ(bins : List Text)- → configureMkExesExtraFlags { bins, extraFlags = [] : List Text }+ λ(bins : List Text) →+ configureMkExesExtraFlags { bins, extraFlags = [] : List Text } let generalBuild =- λ(cpus : types.BuildVars → Natural)- → λ(envs : List types.EnvVar)- → λ(cfg : types.BuildVars)- → [ call+ λ(cpus : types.BuildVars → Natural) →+ λ(envs : List types.EnvVar) →+ λ(cfg : types.BuildVars) →+ [ call ( defaultCall ⫽ { program = makeExe cfg.buildOS , arguments = [ "-j${Natural/show (cpus cfg)}" ]@@ -495,9 +481,9 @@ let defaultBuild = λ(cfg : types.BuildVars) → buildWith (buildEnv cfg) cfg let installWith =- λ(envs : List types.EnvVar)- → λ(cfg : types.BuildVars)- → [ call+ λ(envs : List types.EnvVar) →+ λ(cfg : types.BuildVars) →+ [ call ( defaultCall ⫽ { program = makeExe cfg.buildOS , arguments = [ "install" ]@@ -509,38 +495,34 @@ let defaultInstall = λ(cfg : types.BuildVars) → installWith (buildEnv cfg) cfg let installWithBinaries =- λ(bins : List Text)- → λ(installVars : types.BuildVars)- → defaultInstall installVars- # ( if not installVars.isCross-+ λ(bins : List Text) →+ λ(installVars : types.BuildVars) →+ defaultInstall installVars+ # ( if not installVars.isCross then symlinkBinaries bins- else [] : List types.Command ) let installWithManpages =- λ(mans : List { file : Text, section : Natural })- → λ(installVars : types.BuildVars)- → defaultInstall installVars- # ( if not installVars.isCross-+ λ(mans : List { file : Text, section : Natural }) →+ λ(installVars : types.BuildVars) →+ defaultInstall installVars+ # ( if not installVars.isCross then symlinkManpages mans- else [] : List types.Command ) let unbounded = λ(x : Text) → { name = x, bound = types.VersionBound.NoBound } let lowerBound =- λ(pkg : { name : Text, lower : List Natural })- → { name = pkg.name+ λ(pkg : { name : Text, lower : List Natural }) →+ { name = pkg.name , bound = types.VersionBound.Lower { lower = pkg.lower } } let upperBound =- λ(pkg : { name : Text, upper : List Natural })- → { name = pkg.name+ λ(pkg : { name : Text, upper : List Natural }) →+ { name = pkg.name , bound = types.VersionBound.Upper { upper = pkg.upper } } @@ -553,25 +535,25 @@ } let simplePackage =- λ(pkg : { name : Text, version : List Natural })- → defaultPackage+ λ(pkg : { name : Text, version : List Natural }) →+ defaultPackage ⫽ { pkgName = pkg.name , pkgVersion = pkg.version , pkgSubdir = "${pkg.name}-${showVersion pkg.version}" } let makeGnuExe =- λ(pkg : { name : Text, version : List Natural })- → simplePackage pkg+ λ(pkg : { name : Text, version : List Natural }) →+ simplePackage pkg ⫽ { pkgUrl = "https://ftp.gnu.org/gnu/${pkg.name}/${pkg.name}-${showVersion- pkg.version}.tar.xz"+ pkg.version}.tar.xz" , installCommand = installWithBinaries [ "bin/${pkg.name}" ] } let makeGnuLibrary =- λ(pkg : { name : Text, version : List Natural })- → simplePackage pkg+ λ(pkg : { name : Text, version : List Natural }) →+ simplePackage pkg ⫽ { pkgUrl = "https://ftp.gnu.org/pub/gnu/lib${pkg.name}/lib${pkg.name}-${showVersion pkg.version}.tar.xz"@@ -581,8 +563,8 @@ let createDir = λ(x : Text) → types.Command.CreateDirectory { dir = x } let printCMakeOS =- λ(os : types.OS)- → merge+ λ(os : types.OS) →+ merge { FreeBSD = "BSD" , OpenBSD = "BSD" , NetBSD = "BSD"@@ -602,30 +584,29 @@ os let cmakeConfigureGeneral =- λ(envVars : types.BuildVars → Optional (List types.EnvVar))- → λ(flags : List Text)- → λ(cfg : types.BuildVars)- → let host =- Optional/fold- types.TargetTriple+ λ(envVars : types.BuildVars → Optional (List types.EnvVar)) →+ λ(flags : List Text) →+ λ(cfg : types.BuildVars) →+ let host =+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "-DCMAKE_C_COMPILER=${printTargetTriple tgt}-gcc"+ , "-DCMAKE_CXX_COMPILER=${printTargetTriple tgt}-g++"+ ]+ , None =+ [ "-DCMAKE_C_COMPILER=gcc", "-DCMAKE_CXX_COMPILER=g++" ]+ } cfg.targetTriple- (List Text)- ( λ(tgt : types.TargetTriple)- → [ "-DCMAKE_C_COMPILER=${printTargetTriple tgt}-gcc"- , "-DCMAKE_CXX_COMPILER=${printTargetTriple tgt}-g++"- ]- )- [ "-DCMAKE_C_COMPILER=gcc", "-DCMAKE_CXX_COMPILER=g++" ] let system =- Optional/fold- types.TargetTriple+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "-DCMAKE_SYSTEM_NAME=${printCMakeOS tgt.os}" ]+ , None = [] : List Text+ } cfg.targetTriple- (List Text)- ( λ(tgt : types.TargetTriple)- → [ "-DCMAKE_SYSTEM_NAME=${printCMakeOS tgt.os}" ]- )- ([] : List Text) in [ createDir "build" , call@@ -644,8 +625,8 @@ ] let cmakeEnv =- λ(cfg : types.BuildVars)- → [ mkPkgConfigVar (cfg.shareDirs # cfg.linkDirs)+ λ(cfg : types.BuildVars) →+ [ mkPkgConfigVar (cfg.shareDirs # cfg.linkDirs) , { var = "CMAKE_INCLUDE_PATH" , value = (mkIncludePath cfg.includeDirs).value }@@ -660,28 +641,26 @@ let cmakeConfigure = cmakeConfigureWithFlags ([] : List Text) let cmakeConfigureNinja =- λ(cfg : types.BuildVars)- → let host =- Optional/fold- types.TargetTriple+ λ(cfg : types.BuildVars) →+ let host =+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "-DCMAKE_C_COMPILER=${printTargetTriple tgt}-gcc"+ , "-DCMAKE_CXX_COMPILER=${printTargetTriple tgt}-g++"+ ]+ , None = [] : List Text+ } cfg.targetTriple- (List Text)- ( λ(tgt : types.TargetTriple)- → [ "-DCMAKE_C_COMPILER=${printTargetTriple tgt}-gcc"- , "-DCMAKE_CXX_COMPILER=${printTargetTriple tgt}-g++"- ]- )- ([] : List Text) let system =- Optional/fold- types.TargetTriple+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "-DCMAKE_SYSTEM_NAME=${printCMakeOS tgt.os}" ]+ , None = [] : List Text+ } cfg.targetTriple- (List Text)- ( λ(tgt : types.TargetTriple)- → [ "-DCMAKE_SYSTEM_NAME=${printCMakeOS tgt.os}" ]- )- ([] : List Text) in [ createDir "build" , call@@ -700,8 +679,8 @@ ] let cmakeBuild =- λ(cfg : types.BuildVars)- → [ call+ λ(cfg : types.BuildVars) →+ [ call { program = "cmake" , arguments = [ "--build"@@ -718,8 +697,8 @@ ] let cmakeInstall =- λ(cfg : types.BuildVars)- → [ call+ λ(cfg : types.BuildVars) →+ [ call { program = "cmake" , arguments = [ "--build", ".", "--target", "install", "--config", "Release" ]@@ -729,9 +708,9 @@ ] let cmakeInstallWithBinaries =- λ(bins : List Text)- → λ(installVars : types.BuildVars)- → cmakeInstall installVars # symlinkBinaries bins+ λ(bins : List Text) →+ λ(installVars : types.BuildVars) →+ cmakeInstall installVars # symlinkBinaries bins let cmakePackage = defaultPackage@@ -742,8 +721,8 @@ } let autogenConfigure =- λ(cfg : types.BuildVars)- → [ call+ λ(cfg : types.BuildVars) →+ [ call ( defaultCall ⫽ { program = "./autogen.sh" , environment = Some@@ -758,18 +737,18 @@ # defaultConfigure cfg let fullVersion =- λ(x : { version : List Natural, patch : Natural })- → x.version # [ x.patch ]+ λ(x : { version : List Natural, patch : Natural }) →+ x.version # [ x.patch ] let mkPyPath =- λ(version : List Natural)- → λ(libDirs : List Text)- → let flag =+ λ(version : List Natural) →+ λ(libDirs : List Text) →+ let flag = concatMapSep ":" Text- ( λ(dir : Text)- → "${dir}/python${showVersion version}/site-packages"+ ( λ(dir : Text) →+ "${dir}/python${showVersion version}/site-packages" ) libDirs @@ -778,14 +757,14 @@ let mkPy3Path = mkPyPath [ 3, 8 ] let mesonCfgFile =- λ(cfg : types.BuildVars)- → let prefix =- Optional/fold- types.TargetTriple+ λ(cfg : types.BuildVars) →+ let prefix =+ merge+ { Some =+ λ(tgt : types.TargetTriple) → "${printTargetTriple tgt}-"+ , None = ""+ } cfg.targetTriple- Text- (λ(tgt : types.TargetTriple) → "${printTargetTriple tgt}-")- "" in '' [binaries]@@ -820,8 +799,8 @@ ++ "endian = 'little'" let mesonEnv =- λ(cfg : types.BuildVars)- → Some+ λ(cfg : types.BuildVars) →+ Some ( [ mkPkgConfigVar (cfg.linkDirs # cfg.shareDirs) , mkPy3Path cfg.linkDirs , libPath cfg@@ -834,14 +813,12 @@ ) let mesonConfigureGeneral =- λ(envs : types.BuildVars → Optional (List types.EnvVar))- → λ(flags : List Text)- → λ(cfg : types.BuildVars)- → let crossArgs =- if cfg.isCross-+ λ(envs : types.BuildVars → Optional (List types.EnvVar)) →+ λ(flags : List Text) →+ λ(cfg : types.BuildVars) →+ let crossArgs =+ if cfg.isCross then [ "--cross-file", "cross.txt" ]- else [] : List Text in [ createDir "build"@@ -861,13 +838,11 @@ let mesonConfigure = mesonConfigureWithFlags ([] : List Text) let ninjaBuildWith =- λ(linkLibs : List Text)- → λ(cfg : types.BuildVars)- → let ldPreload =- if cfg.isCross-+ λ(linkLibs : List Text) →+ λ(cfg : types.BuildVars) →+ let ldPreload =+ if cfg.isCross then [] : List types.EnvVar- else [ mkLDPreload cfg.preloadLibs ] in [ call@@ -892,8 +867,8 @@ let ninjaBuild = ninjaBuildWith ([] : List Text) let ninjaInstall =- λ(cfg : types.BuildVars)- → [ call+ λ(cfg : types.BuildVars) →+ [ call ( defaultCall ⫽ { program = "ninja" , environment = Some@@ -913,8 +888,8 @@ ] let ninjaPackage =- λ(x : { name : Text, version : List Natural })- → simplePackage x+ λ(x : { name : Text, version : List Natural }) →+ simplePackage x ⫽ { configureCommand = mesonConfigure , buildCommand = ninjaBuild , installCommand = ninjaInstall@@ -925,9 +900,9 @@ map { src : Text, dest : Text } types.Command types.Command.CopyFile let ninjaInstallWithPkgConfig =- λ(fs : List { src : Text, dest : Text })- → λ(cfg : types.BuildVars)- → ninjaInstall cfg # copyFiles fs+ λ(fs : List { src : Text, dest : Text }) →+ λ(cfg : types.BuildVars) →+ ninjaInstall cfg # copyFiles fs let doNothing = λ(_ : types.BuildVars) → [] : List types.Command @@ -935,22 +910,19 @@ map Text { src : Text, dest : Text }- ( λ(pcFile : Text)- → { src = "build/meson-private/${pcFile}"+ ( λ(pcFile : Text) →+ { src = "build/meson-private/${pcFile}" , dest = "lib/pkgconfig/${pcFile}" } ) let pythonBuild =- λ(version : List Natural)- → λ(cfg : types.BuildVars)- → let major =- Optional/fold- Natural+ λ(version : List Natural) →+ λ(cfg : types.BuildVars) →+ let major =+ merge+ { Some = Natural/show, None = "" } (List/head Natural version)- Text- Natural/show- "" let versionString = showVersion version @@ -975,15 +947,12 @@ ] let pythonInstall =- λ(version : List Natural)- → λ(cfg : types.BuildVars)- → let major =- Optional/fold- Natural+ λ(version : List Natural) →+ λ(cfg : types.BuildVars) →+ let major =+ merge+ { Some = Natural/show, None = "" } (List/head Natural version)- Text- Natural/show- "" let versionString = showVersion version @@ -1013,15 +982,12 @@ ] let pythonPackage =- λ(pyVersion : List Natural)- → λ(x : { name : Text, version : List Natural })- → let major =- Optional/fold- Natural+ λ(pyVersion : List Natural) →+ λ(x : { name : Text, version : List Natural }) →+ let major =+ merge+ { Some = Natural/show, None = "" } (List/head Natural pyVersion)- Text- Natural/show- "" in simplePackage x ⫽ { configureCommand = doNothing@@ -1039,40 +1005,41 @@ let python2Package = pythonPackage [ 2, 7 ] let mkCCVar =- λ(cfg : types.BuildVars)- → Optional/fold- types.TargetTriple+ λ(cfg : types.BuildVars) →+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ { var = "CC", value = "${printTargetTriple tgt}-gcc" } ]+ , None = [] : List types.EnvVar+ } cfg.targetTriple- (List types.EnvVar)- ( λ(tgt : types.TargetTriple)- → [ { var = "CC", value = "${printTargetTriple tgt}-gcc" } ]- )- ([] : List types.EnvVar) let squishVersion = concatMapText Natural Natural/show let mkCCArg =- λ(cfg : types.BuildVars)- → Optional/fold- types.TargetTriple+ λ(cfg : types.BuildVars) →+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "CC=${printTargetTriple tgt}-gcc" ]+ , None = [] : List Text+ } cfg.targetTriple- (List Text)- (λ(tgt : types.TargetTriple) → [ "CC=${printTargetTriple tgt}-gcc" ])- ([] : List Text) let mkFRCArg =- λ(cfg : types.BuildVars)- → Optional/fold- types.TargetTriple+ λ(cfg : types.BuildVars) →+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "CC=${printTargetTriple tgt}-gcc" ]+ , None = [] : List Text+ } cfg.targetTriple- (List Text)- (λ(tgt : types.TargetTriple) → [ "CC=${printTargetTriple tgt}-gcc" ])- ([] : List Text) let preloadEnv =- λ(_ : List Text)- → λ(cfg : types.BuildVars)- → Some+ λ(_ : List Text) →+ λ(cfg : types.BuildVars) →+ Some ( defaultPath cfg # [ mkLDFlags cfg.linkDirs cfg , mkCFlags cfg@@ -1086,8 +1053,8 @@ ) let perlConfigure =- λ(cfg : types.BuildVars)- → [ call+ λ(cfg : types.BuildVars) →+ [ call { program = "perl" , arguments = [ "Makefile.PL", "PREFIX=${cfg.installDir}" ] , environment = preloadEnv ([] : List Text) cfg@@ -1101,10 +1068,10 @@ let printEnvVar = λ(var : types.EnvVar) → "${var.var}=${var.value}" let mkPyWrapper =- λ(version : List Natural)- → λ(binName : Text)- → λ(cfg : types.BuildVars)- → let wrapperContents =+ λ(version : List Natural) →+ λ(binName : Text) →+ λ(cfg : types.BuildVars) →+ let wrapperContents = "${printEnvVar ( libPath cfg )} ${printEnvVar@@ -1126,10 +1093,10 @@ let mkPy2Wrapper = mkPyWrapper [ 2, 7 ] let installWithPyWrappers =- λ(version : List Natural)- → λ(binNames : List Text)- → λ(cfg : types.BuildVars)- → pythonInstall version cfg+ λ(version : List Natural) →+ λ(binNames : List Text) →+ λ(cfg : types.BuildVars) →+ pythonInstall version cfg # concatMap Text types.Command@@ -1139,9 +1106,9 @@ let installWithPy3Wrappers = installWithPyWrappers [ 3, 8 ] let mkLDPathWrapper =- λ(cfg : types.BuildVars)- → λ(binName : Text)- → let wrapper =+ λ(cfg : types.BuildVars) →+ λ(binName : Text) →+ let wrapper = "${printEnvVar ( mkLDPath cfg.linkDirs )}:${cfg.installDir}/lib LD_PRELOAD='${( mkLDPreload@@ -1158,24 +1125,24 @@ ] let mkLDPathWrappers =- λ(cfg : types.BuildVars)- → λ(bins : List Text)- → concatMap+ λ(cfg : types.BuildVars) →+ λ(bins : List Text) →+ concatMap Text types.Command (λ(bin : Text) → mkLDPathWrapper cfg bin) bins let installWithWrappers =- λ(bins : List Text)- → λ(cfg : types.BuildVars)- → defaultInstall cfg # mkLDPathWrappers cfg bins+ λ(bins : List Text) →+ λ(cfg : types.BuildVars) →+ defaultInstall cfg # mkLDPathWrappers cfg bins let underscoreVersion = concatMapSep "_" Natural Natural/show let isX64 =- λ(arch : types.Arch)- → merge+ λ(arch : types.Arch) →+ merge { X64 = True , AArch = False , Arm = False@@ -1203,16 +1170,16 @@ arch let configureWithPatches =- λ(patches : List Text)- → λ(cfg : types.BuildVars)- → map Text types.Command (λ(p : Text) → patch p) patches+ λ(patches : List Text) →+ λ(cfg : types.BuildVars) →+ map Text types.Command (λ(p : Text) → patch p) patches # defaultConfigure cfg let configureWithPatch = λ(p : Text) → configureWithPatches [ p ] let installPrefix =- λ(cfg : types.BuildVars)- → [ call+ λ(cfg : types.BuildVars) →+ [ call ( defaultCall ⫽ { program = "make" , arguments =
pkgs/pkg-set.dhall view
@@ -10,5020 +10,4984 @@ let prelude = ../dhall/cpkg-prelude.dhall let gpgPackage =- λ(x : { name : Text, version : List Natural })- → prelude.simplePackage x- ⫽ { pkgUrl =- "https://gnupg.org/ftp/gcrypt/${x.name}/${x.name}-${prelude.showVersion- x.version}.tar.bz2"- }--let gnupg =- λ(v : List Natural)- → gpgPackage { name = "gnupg", version = v }- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "npth", lower = [ 1, 2 ] }- , prelude.lowerBound { name = "libgpg-error", lower = [ 1, 24 ] }- , prelude.lowerBound { name = "libgcrypt", lower = [ 1, 7, 0 ] }- , prelude.lowerBound { name = "libassuan", lower = [ 2, 5, 0 ] }- , prelude.lowerBound { name = "libksba", lower = [ 1, 3, 4 ] }- ]- , installCommand = prelude.installWithBinaries [ "bin/gpg" ]- }--let npth = λ(v : List Natural) → gpgPackage { name = "npth", version = v }--let libgpgError =- λ(v : List Natural) → gpgPackage { name = "libgpg-error", version = v }--let libgcrypt =- λ(v : List Natural)- → gpgPackage { name = "libgcrypt", version = v }- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "libgpg-error", lower = [ 1, 25 ] } ]- }--let libassuan =- λ(v : List Natural)- → gpgPackage { name = "libassuan", version = v }- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "libgpg-error", lower = [ 1, 24 ] } ]- }--let libksba =- λ(v : List Natural)- → gpgPackage { name = "libksba", version = v }- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "libgpg-error", lower = [ 1, 8 ] } ]- }--let musl =- λ(v : List Natural)- → prelude.simplePackage { name = "musl", version = v }- ⫽ { pkgUrl =- "https://www.musl-libc.org/releases/musl-${prelude.showVersion- v}.tar.gz"- , installCommand = prelude.installWithBinaries [ "bin/musl-gcc" ]- }--let binutils =- λ(v : List Natural)- → prelude.makeGnuExe { name = "binutils", version = v }- ⫽ { pkgUrl =- "https://ftp.wayne.edu/gnu/binutils/binutils-${prelude.showVersion- v}.tar.lz"- , installCommand =- prelude.installWithBinaries- [ "bin/ar"- , "bin/as"- , "bin/ld"- , "bin/strip"- , "bin/strings"- , "bin/readelf"- , "bin/objdump"- , "bin/nm"- , "bin/ranlib"- ]- }--let bison =- λ(v : List Natural)- → prelude.makeGnuExe { name = "bison", version = v }- ⫽ { buildCommand =- λ(cfg : types.BuildVars)- → prelude.generalBuild- prelude.singleThreaded- (prelude.buildEnv cfg)- cfg- , installCommand =- prelude.installWithBinaries [ "bin/bison", "bin/yacc" ]- , pkgBuildDeps = [ prelude.unbounded "m4" ]- }--let cmake =- λ(cfg : { version : List Natural, patch : Natural })- → let patchString = Natural/show cfg.patch-- let versionString = prelude.showVersion cfg.version-- let cmakeConfigure =- λ(cfg : types.BuildVars)- → prelude.configureMkExesExtraFlags- { bins = [ "bootstrap" ]- , extraFlags = [ "--parallel=${Natural/show cfg.cpus}" ]- }- cfg-- in prelude.defaultPackage- ⫽ { pkgName = "cmake"- , pkgVersion = prelude.fullVersion cfg- , pkgUrl =- "https://cmake.org/files/v${versionString}/cmake-${versionString}.${patchString}.tar.gz"- , pkgSubdir = "cmake-${versionString}.${patchString}"- , configureCommand = cmakeConfigure- , installCommand =- λ(cfg : types.BuildVars)- → let wrapper =- "CMAKE_ROOT=${cfg.installDir}/share/cmake-${versionString}/ ${cfg.installDir}/bin/cmake \$@"-- let wrapped = "wrapper/cmake"-- in prelude.defaultInstall cfg- # [ prelude.createDir "wrapper"- , prelude.writeFile- { file = wrapped, contents = wrapper }- , prelude.mkExe wrapped- , prelude.copyFile wrapped wrapped- , prelude.symlinkBinary wrapped- ]- }--let curl =- λ(v : List Natural)- → prelude.simplePackage { name = "curl", version = v }- ⫽ { pkgUrl =- "https://curl.haxx.se/download/curl-${prelude.showVersion- v}.tar.xz"- , installCommand = prelude.installWithBinaries [ "bin/curl" ]- , pkgDeps = [ prelude.unbounded "zlib" ]- }--let dbus =- λ(v : List Natural)- → prelude.simplePackage { name = "dbus", version = v }- ⫽ { pkgUrl =- "https://dbus.freedesktop.org/releases/dbus/dbus-${prelude.showVersion- v}.tar.xz"- , pkgDeps =- [ prelude.unbounded "expat", prelude.unbounded "libselinux" ]- , configureCommand = prelude.configureLinkExtraLibs [ "pcre" ]- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- }--let fltk =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in 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"- ]- }--let gawk =- λ(v : List Natural)- → prelude.makeGnuExe { name = "gawk", version = v }- ⫽ { installCommand =- prelude.installWithBinaries [ "bin/gawk", "bin/awk" ]- }--let gc =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "gc", version = v }- ⫽ { pkgUrl =- "https://github.com/ivmai/bdwgc/releases/download/v${versionString}/gc-${versionString}.tar.gz"- , pkgDeps = [ prelude.unbounded "libatomic_ops" ]- }--let libatomic_ops =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libatomic_ops", version = v }- ⫽ { pkgUrl =- "https://github.com/ivmai/libatomic_ops/releases/download/v${versionString}/libatomic_ops-${versionString}.tar.gz"- }--let git =- λ(v : List Natural)- → prelude.simplePackage { name = "git", version = v }- ⫽ { pkgUrl =- "https://mirrors.edge.kernel.org/pub/software/scm/git/git-${prelude.showVersion- v}.tar.xz"- , installCommand = prelude.installWithBinaries [ "bin/git" ]- , pkgBuildDeps = [ prelude.unbounded "gettext" ]- }--let glibc =- let buildDir = Some "build"-- let glibcConfigure =- λ(cfg : types.BuildVars)- → let maybeHost = prelude.mkHost cfg.targetTriple-- let modifyArgs = prelude.maybeAppend Text maybeHost-- 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)- → [ prelude.call- { program = prelude.makeExe cfg.buildOS- , arguments = [ "-j${Natural/show cfg.cpus}" ]- , environment = prelude.configSome ([] : List Text) cfg- , procDir = buildDir- }- ]-- let glibcInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- { program = prelude.makeExe cfg.buildOS- , arguments = [ "install" ]- , environment = prelude.configSome ([] : List Text) cfg- , procDir = buildDir- }- ]-- in λ(v : List Natural)- → prelude.defaultPackage- ⫽ { pkgName = "glibc"- , pkgVersion = v- , pkgUrl =- "http://mirror.keystealth.org/gnu/libc/glibc-${prelude.showVersion- v}.tar.xz"- , pkgSubdir = "glibc-${prelude.showVersion v}"- , configureCommand = glibcConfigure- , buildCommand = glibcBuild- , installCommand = glibcInstall- , pkgBuildDeps =- [ prelude.unbounded "bison"- , prelude.unbounded "gawk"- , prelude.unbounded "python3"- ]- }--let gmp =- λ(v : List Natural)- → prelude.simplePackage { name = "gmp", version = v }- ⫽ { pkgUrl =- "https://gmplib.org/download/gmp/gmp-${prelude.showVersion- v}.tar.lz"- , pkgBuildDeps = [ prelude.unbounded "m4" ]- }--let harfbuzz =- let symlinkHarfbuzz =- λ(h : Text) → prelude.symlink "include/harfbuzz/${h}" "include/${h}"-- in λ(v : List Natural)- → prelude.simplePackage { name = "harfbuzz", version = v }- ⫽ { pkgUrl =- "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${prelude.showVersion- v}.tar.xz"- , pkgDeps =- [ prelude.unbounded "freetype-prebuild"- , prelude.unbounded "glib"- ]- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- , configureCommand =- prelude.configureLinkExtraLibs [ "pcre", "z" ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.defaultInstall cfg- # [ symlinkHarfbuzz "hb-aat-layout.h"- , symlinkHarfbuzz "hb-aat.h"- , symlinkHarfbuzz "hb-blob.h"- , symlinkHarfbuzz "hb-buffer.h"- , symlinkHarfbuzz "hb-common.h"- , symlinkHarfbuzz "hb-deprecated.h"- , symlinkHarfbuzz "hb-face.h"- , symlinkHarfbuzz "hb-font.h"- , symlinkHarfbuzz "hb-ft.h"- , symlinkHarfbuzz "hb-glib.h"- , symlinkHarfbuzz "hb-icu.h"- , symlinkHarfbuzz "hb-map.h"- , symlinkHarfbuzz "hb-ot-color.h"- , symlinkHarfbuzz "hb-ot-font.h"- , symlinkHarfbuzz "hb-ot-layout.h"- , symlinkHarfbuzz "hb-ot-math.h"- , symlinkHarfbuzz "hb-ot-name.h"- , symlinkHarfbuzz "hb-ot-shape.h"- , symlinkHarfbuzz "hb-ot-var.h"- , symlinkHarfbuzz "hb-ot.h"- , symlinkHarfbuzz "hb-set.h"- , symlinkHarfbuzz "hb-shape-plan.h"- , symlinkHarfbuzz "hb-shape.h"- , symlinkHarfbuzz "hb-subset.h"- , symlinkHarfbuzz "hb-unicode.h"- , symlinkHarfbuzz "hb-version.h"- , symlinkHarfbuzz "hb.h"- ]- }--let libjpeg-turbo =- λ(v : List Natural)- → prelude.cmakePackage- ⫽ { pkgName = "libjpeg-turbo"- , pkgVersion = v- , 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"- , prelude.unbounded "make"- ]- }--let libuv =- λ(v : List Natural)- → prelude.defaultPackage- ⫽ { pkgName = "libuv"- , pkgVersion = v- , pkgUrl =- "https://dist.libuv.org/dist/v${prelude.showVersion- v}/libuv-v${prelude.showVersion- v}.tar.gz"- , pkgSubdir = "libuv-v${prelude.showVersion v}"- , configureCommand = prelude.autogenConfigure- , pkgBuildDeps =- [ prelude.unbounded "m4"- , prelude.unbounded "automake"- , prelude.unbounded "libtool"- ]- }--let nasm =- λ(v : List Natural)- → prelude.simplePackage { name = "nasm", version = v }- ⫽ { pkgUrl =- "http://www.nasm.us/pub/nasm/releasebuilds/${prelude.showVersion- v}.02/nasm-${prelude.showVersion- v}.02.tar.xz"- , pkgSubdir = "nasm-${prelude.showVersion v}.02"- , installCommand =- prelude.installWithBinaries [ "bin/nasm", "bin/ndisasm" ]- }--let ncurses =- λ(v : List Natural)- → prelude.simplePackage { name = "ncurses", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/ncurses/ncurses-${prelude.showVersion- v}.tar.gz"- , configureCommand =- λ(cfg : types.BuildVars)- → let crossArgs =- if cfg.isCross-- then [ "--disable-stripping" ]-- else [] : List Text-- in prelude.configureWithFlags- ([ "--with-shared", "--enable-widec" ] # crossArgs)- cfg- , installCommand =- λ(cfg : types.BuildVars)- → prelude.defaultInstall cfg- # [ prelude.symlink "lib/libncursesw.so" "lib/libncurses.so" ]- }--let pcre2 =- λ(v : List Natural)- → prelude.simplePackage { name = "pcre2", version = v }- ⫽ { pkgUrl =- "https://ftp.pcre.org/pub/pcre/pcre2-${prelude.showVersion- v}.tar.bz2"- }--let pcre =- λ(v : List Natural)- → prelude.simplePackage { name = "pcre", version = v }- ⫽ { pkgUrl =- "https://ftp.pcre.org/pub/pcre/pcre-${prelude.showVersion- v}.tar.bz2"- , configureCommand =- prelude.configureWithFlags- [ "--enable-utf8", "--enable-unicode-properties" ]- }--let perl5 =- let perlConfigure =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "sh"- , arguments =- [ "./Configure"- , "-des"- , "-Dprefix=${cfg.installDir}"- ]- # ( if cfg.static-- then [] : List Text-- else [ "-Duseshrplib" ]- )- }- )- ]-- in let linkDir =- λ(os : types.OS)- → merge- { FreeBSD = "CORE"- , OpenBSD = "CORE"- , NetBSD = "CORE"- , Solaris = "CORE"- , Dragonfly = "CORE"- , Linux = "CORE"- , Darwin = "darwin-2level/CORE"- , Windows = "CORE"- , Redox = "CORE"- , Haiku = "CORE"- , IOS = "darwin-2level/CORE"- , AIX = "CORE"- , Hurd = "CORE"- , Android = "CORE"- , NoOs = "CORE"- }- os-- in λ(v : List Natural)- → let major =- Optional/fold- Natural- (List/head Natural v)- Text- Natural/show- ""-- in prelude.simplePackage { name = "perl", version = v }- ⫽ { pkgUrl =- "https://www.cpan.org/src/${major}.0/perl-${prelude.showVersion- v}.tar.gz"- , configureCommand = perlConfigure- , buildCommand =- λ(cfg : types.BuildVars)- → prelude.generalBuild- prelude.singleThreaded- (prelude.buildEnv cfg)- cfg- , installCommand =- λ(cfg : types.BuildVars)- → let libperlFile =- if cfg.static-- then "libperl.a"-- else "libperl.${prelude.libSuffix- (prelude.osCfg cfg)}"-- in prelude.installWithBinaries- [ "bin/perl", "bin/cpan", "bin/ptar" ]- cfg- # [ prelude.symlink- "lib/${prelude.showVersion- v}/${prelude.printArch- cfg.buildArch}-${prelude.printOS- cfg.buildOS}/${linkDir- cfg.buildOS}/${libperlFile}"- "lib/${libperlFile}"- ]- }--let libpng =- λ(v : List Natural)- → prelude.simplePackage { name = "libpng", version = v }- ⫽ { pkgUrl =- "https://download.sourceforge.net/libpng/libpng-${prelude.showVersion- v}.tar.xz"- , pkgDeps = [ prelude.unbounded "zlib" ]- }--let sed =- λ(v : List Natural)- → prelude.makeGnuExe { name = "sed", version = v }- ⫽ { installCommand =- prelude.installWithManpages- [ { file = "share/man/man1/sed.1", section = 1 } ]- , configureCommand =- prelude.configureWithFlags [ "--disable-dependency-tracking" ]- }--let tar = λ(v : List Natural) → prelude.makeGnuExe { name = "tar", version = v }--let unistring =- λ(v : List Natural)- → prelude.makeGnuLibrary { name = "unistring", version = v }--let valgrind =- λ(v : List Natural)- → prelude.simplePackage { name = "valgrind", version = v }- ⫽ { pkgUrl =- "https://sourceware.org/pub/valgrind/valgrind-${prelude.showVersion- v}.tar.bz2"- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/valgrind" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/pdfgrep.1", section = 1 } ]- }--let vim =- λ(v : List Natural)- → prelude.defaultPackage- ⫽ { pkgName = "vim"- , pkgVersion = v- , pkgUrl =- "http://ftp.vim.org/vim/unix/vim-${prelude.showVersion v}.tar.bz2"- , pkgSubdir = "vim${prelude.squishVersion v}"- , configureCommand =- prelude.configureMkExesExtraFlags- { bins =- [ "src/configure", "src/auto/configure", "src/which.sh" ]- , extraFlags = [ "--enable-gui=no", "--enable-pythoninterp" ]- }- , installCommand =- λ(cfg : types.BuildVars)- → let mkLibDynload =- λ(libs : List Text)- → concatMapSep- ":"- Text- ( λ(dir : Text)- → "${dir}:${dir}/python2.7/lib-dynload"- )- libs-- let mkPython =- λ(libs : List Text)- → concatMapSep- ":"- Text- ( λ(dir : Text)- → "${dir}/python2.7/:${dir}/python2.7/lib-dynload"- )- libs-- let wrapper =- "LD_LIBRARY_PATH=${mkLibDynload- cfg.linkDirs} PYTHONPATH=${mkPython- cfg.linkDirs} ${cfg.installDir}/bin/vim \$@"-- let wrapped = "wrapper/vim"-- in prelude.installWithBinaries [ "bin/xxd" ] cfg- # [ prelude.createDir "wrapper"- , prelude.writeFile { file = wrapped, contents = wrapper }- , prelude.mkExe wrapped- , prelude.copyFile wrapped wrapped- , prelude.symlinkBinary wrapped- ]- , pkgDeps =- [ prelude.unbounded "ncurses"- , prelude.unbounded "libXpm"- , prelude.unbounded "libXt"- , prelude.unbounded "python2"- ]- }--let xz =- λ(v : List Natural)- → prelude.simplePackage { name = "xz", version = v }- ⫽ { pkgUrl = "https://tukaani.org/xz/xz-${prelude.showVersion v}.tar.xz"- , installCommand = prelude.installWithBinaries [ "bin/xz" ]- }--let zlib =- λ(v : List Natural)- → let zlibConfigure =- λ(cfg : types.BuildVars)- → let host = prelude.mkCCVar cfg-- in [ prelude.call- ( prelude.defaultCall- ⫽ { program = "sh"- , arguments =- [ "configure", "--prefix=${cfg.installDir}" ]- , environment = Some- ( host- # [ { var = "PATH"- , value =- "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"- }- ]- )- }- )- ]-- in prelude.simplePackage { name = "zlib", version = v }- ⫽ { pkgUrl =- "http://www.zlib.net/zlib-${prelude.showVersion v}.tar.xz"- , configureCommand = zlibConfigure- , installCommand =- prelude.installWithManpages- [ { file = "share/man/man3/zlib.3", section = 3 } ]- }--let gettext =- λ(v : List Natural)- → prelude.makeGnuExe { name = "gettext", version = v }- ⫽ { installCommand =- prelude.installWithBinaries- [ "bin/gettext", "bin/msgfmt", "bin/autopoint" ]- , configureCommand =- prelude.configureWithFlags [ "--disable-dependency-tracking" ]- }--let gzip =- λ(v : List Natural) → prelude.makeGnuExe { name = "gzip", version = v }--let wget =- λ(v : List Natural)- → prelude.makeGnuExe { name = "wget", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/wget/wget-${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "gnutls" ]- , pkgBuildDeps = [ prelude.unbounded "perl" ]- , installCommand = prelude.installWithWrappers [ "wget" ]- }--let gnutls =- λ(cfg : { version : List Natural, patch : List Natural })- → let versionString = prelude.showVersion cfg.version-- in prelude.simplePackage- { name = "gnutls", version = cfg.version # cfg.patch }- ⫽ { pkgUrl =- "https://www.gnupg.org/ftp/gcrypt/gnutls/v${versionString}/gnutls-${versionString}.${prelude.showVersion- cfg.patch}.tar.xz"- , pkgDeps =- [ prelude.lowerBound { name = "nettle", lower = [ 3, 1 ] }- , prelude.unbounded "unistring"- , prelude.lowerBound { name = "libtasn1", lower = [ 4, 9 ] }- , prelude.lowerBound { name = "p11-kit", lower = [ 0, 23, 1 ] }- ]- , configureCommand =- prelude.configureLinkExtraLibs [ "nettle", "hogweed" ]- }--let lapack =- λ(v : List Natural)- → prelude.cmakePackage- ⫽ { pkgName = "lapack"- , pkgVersion = v- , pkgUrl =- "http://www.netlib.org/lapack/lapack-${prelude.showVersion- v}.tar.gz"- , pkgSubdir = "lapack-${prelude.showVersion v}"- , pkgBuildDeps =- [ prelude.unbounded "cmake", prelude.unbounded "gcc" ]- }--let cairo =- let symlinkCairo =- λ(h : Text) → prelude.symlink "include/cairo/${h}" "include/${h}"-- in λ(v : List Natural)- → prelude.simplePackage { name = "cairo", version = v }- ⫽ { pkgUrl =- "https://www.cairographics.org/releases/cairo-${prelude.showVersion- v}.tar.xz"- , pkgDeps =- [ prelude.lowerBound { name = "pixman", lower = [ 0, 30, 0 ] }- , prelude.lowerBound { name = "freetype", lower = [ 9, 7, 3 ] }- , prelude.lowerBound- { name = "fontconfig", lower = [ 2, 2, 95 ] }- , prelude.unbounded "libXext"- ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.defaultInstall cfg- # [ symlinkCairo "cairo-deprecated.h"- , symlinkCairo "cairo-features.h"- , symlinkCairo "cairo-ft.h"- , symlinkCairo "cairo-gobject.h"- , symlinkCairo "cairo-pdf.h"- , symlinkCairo "cairo-ps.h"- , symlinkCairo "cairo-script-interpreter.h"- , symlinkCairo "cairo-script.h"- , symlinkCairo "cairo-svg.h"- , symlinkCairo "cairo-version.h"- , symlinkCairo "cairo-xcb.h"- , symlinkCairo "cairo-xlib-xrender.h"- , symlinkCairo "cairo-xlib.h"- , symlinkCairo "cairo.h"- ]- }--let pycairo =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.python2Package { name = "pycairo", version = v }- ⫽ { pkgUrl =- "https://github.com/pygobject/pycairo/releases/download/v${versionString}/pycairo-${versionString}.tar.gz"- , pkgDeps = [ prelude.unbounded "cairo" ]- }--let libnettle =- λ(v : List Natural)- → prelude.simplePackage { name = "nettle", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/nettle/nettle-${prelude.showVersion- v}.tar.gz"- , pkgBuildDeps = [ prelude.unbounded "m4" ]- }--let diffutils =- λ(v : List Natural)- → prelude.simplePackage { name = "diffutils", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/diffutils/diffutils-${prelude.showVersion- v}.tar.xz"- , installCommand = prelude.installWithBinaries [ "bin/diff" ]- }--let patch =- λ(v : List Natural)- → prelude.makeGnuExe { name = "patch", version = v }- ⫽ { installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/patch" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/patch.1", section = 1 } ]- }--let m4 =- λ(v : List Natural)- → prelude.makeGnuExe { name = "m4", version = v }- ⫽ { configureCommand =- λ(cfg : types.BuildVars)- → [ prelude.patch- ./patches/m4.patch sha256:1fecaf9238401d3fdcad92516f7c45e866e50630eae7efdaaee0da943a532b23 as Text- ]- # prelude.defaultConfigure cfg- , installCommand =- prelude.installWithManpages- [ { file = "share/man/man1/m4.1", section = 1 } ]- , pkgBuildDeps = [ prelude.unbounded "patch" ]- }--let nginx =- λ(v : List Natural)- → prelude.simplePackage { name = "nginx", version = v }- ⫽ { pkgUrl =- "http://nginx.org/download/nginx-${prelude.showVersion v}.tar.gz"- , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "pcre2" ]- }--let openssl =- let opensslCfgVars =- λ(cfg : types.BuildVars)- → Some- (prelude.mkCCVar cfg # prelude.configEnv ([] : List Text) cfg)-- let cfgOS =- λ(os : types.OS)- → merge- { FreeBSD = "BSD-x86_64"- , OpenBSD = "BSD-x86_64"- , NetBSD = "BSD-x86_64"- , Solaris = "solaris64-x86_64-cc"- , Dragonfly = "BSD-x86_64"- , Linux = "linux-x86_64"- , Darwin = "darwin64-x86_64-cc"- , Windows = "mingw64"- , Redox = "gcc"- , Haiku = "haiku-x86_64"- , IOS = "ios64-cross"- , AIX = "aix64-cc"- , Hurd = "hurd-x86"- , Android = "android64-aarch64"- , NoOs = "gcc"- }- os-- in λ(v : List Natural)- → prelude.simplePackage { name = "openssl", version = v }- ⫽ { pkgUrl =- "https://www.openssl.org/source/openssl-${prelude.showVersion- v}d.tar.gz"- , configureCommand =- λ(cfg : types.BuildVars)- → let sharedFlag =- if cfg.static then "no-shared" else "shared"-- let targetMakefile =- if cfg.isCross then "gcc" else cfgOS cfg.buildOS-- in [ prelude.call- ( prelude.defaultCall- ⫽ { program = "perl"- , arguments =- [ "./Configure"- , "--prefix=${cfg.installDir}"- , targetMakefile- , sharedFlag- ]- , environment = opensslCfgVars cfg- }- )- ]- , pkgSubdir = "openssl-${prelude.showVersion v}d"- , pkgBuildDeps = [ prelude.unbounded "perl" ]- }--let libssh2 =- λ(v : List Natural)- → prelude.simplePackage { name = "libssh2", version = v }- ⫽ { pkgUrl =- "https://www.libssh2.org/download/libssh2-${prelude.showVersion- v}.tar.gz"- }--let giflib =- λ(v : List Natural)- → prelude.simplePackage { name = "giflib", version = v }- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/giflib/giflib-${prelude.showVersion- v}.tar.bz2"- }--let emacs =- λ(v : List Natural)- → prelude.makeGnuExe { name = "emacs", version = v }- ⫽ { pkgDeps =- [ prelude.unbounded "giflib"- , prelude.unbounded "libXaw"- , prelude.unbounded "libpng"- , prelude.unbounded "libjpeg-turbo"- , prelude.unbounded "ncurses"- , prelude.unbounded "gtk3"- , prelude.unbounded "libotf"- , prelude.unbounded "m17n-lib"- , prelude.unbounded "gnutls"- , prelude.unbounded "libXft"- , prelude.unbounded "dbus"- , prelude.unbounded "cairo"- ]- , configureCommand =- prelude.configureMkExesExtraFlags- { bins =- [ "build-aux/move-if-change", "build-aux/update-subdirs" ]- , extraFlags =- [ "--with-tiff=no"- , "--with-libotf"- , "--with-m17n-flt"- , "--with-gnutls"- , "--with-xft"- , "--with-dbus"- , "--with-cairo=yes"- ]- }- , installCommand =- λ(cfg : types.BuildVars)- → if cfg.static-- then prelude.installWithBinaries [ "bin/emacs" ] cfg-- else prelude.installWithWrappers [ "emacs" ] cfg- }--let which =- λ(v : List Natural)- → prelude.makeGnuExe { name = "which", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/which/which-${prelude.showVersion- v}.tar.gz"- }--let automake =- λ(v : List Natural)- → prelude.makeGnuExe { name = "automake", version = v }- ⫽ { pkgBuildDeps =- [ prelude.lowerBound { name = "autoconf", lower = [ 2, 65 ] } ]- , installCommand =- prelude.installWithBinaries [ "bin/automake", "bin/aclocal" ]- }--let autoconf =- λ(v : List Natural)- → prelude.makeGnuExe { name = "autoconf", version = v }- ⫽ { pkgBuildDeps =- [ prelude.lowerBound { name = "m4", lower = [ 1, 4, 16 ] } ]- , installCommand =- prelude.installWithBinaries- [ "bin/autoconf"- , "bin/autoheader"- , "bin/autom4te"- , "bin/autoreconf"- ]- }--let python =- λ(v : List Natural)- → let major =- Optional/fold Natural (List/head Natural v) Text Natural/show ""-- let versionString = prelude.showVersion v-- let pyEnv =- λ(_ : List Text)- → λ(cfg : types.BuildVars)- → Some- ( prelude.configEnv ([] : List Text) cfg- # [ { var = "CONFIG_SITE", value = "config.site" } ]- )-- in prelude.simplePackage { name = "python${major}", version = v }- ⫽ { pkgUrl =- "https://www.python.org/ftp/python/${versionString}/Python-${versionString}.tar.xz"- , pkgSubdir = "Python-${versionString}"- , configureCommand =- λ(cfg : types.BuildVars)- → let config =- ''- ac_cv_file__dev_ptmx=yes- ac_cv_file__dev_ptc=no- ''-- let staticFlag =- if cfg.static-- then [] : List Text-- else [ "--enable-shared" ]-- let crossArgs =- if cfg.isCross-- then [ "--disable-ipv6" ]-- else [] : List Text-- in [ prelude.writeFile- { file = "config.site", contents = config }- ]- # prelude.generalConfigure- pyEnv- "configure"- ([] : List Text)- ( [ "--build=${prelude.printArch cfg.buildArch}" ]- # crossArgs- # staticFlag- )- cfg- , pkgDeps =- [ prelude.unbounded "libffi", prelude.unbounded "ncurses" ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/python${major}" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/python${major}.1"- , section = 1- }- ]- }--let lua =- λ(v : List Natural)- → let printLuaOS =- λ(os : types.OS)- → merge- { FreeBSD = "freebsd"- , OpenBSD = "bsd"- , NetBSD = "bsd"- , Solaris = "solaris"- , Dragonfly = "bsd"- , Linux = "linux"- , Darwin = "macosx"- , Windows = "mingw"- , Redox = "generic"- , Haiku = "generic"- , IOS = "generic"- , AIX = "generic"- , Hurd = "generic"- , Android = "generic"- , NoOs = "c89"- }- os-- let luaBuild =- λ(cfg : types.BuildVars)- → let cc = prelude.mkCCArg cfg-- let ldflags = (prelude.mkLDFlags cfg.linkDirs cfg).value-- let cflags = (prelude.mkCFlags cfg).value-- let os = prelude.osCfg cfg-- in [ prelude.call- ( prelude.defaultCall- ⫽ { program = "make"- , arguments =- cc- # [ printLuaOS os- , "MYLDFLAGS=${ldflags}"- , "MYCFLAGS=${cflags}"- , "MYLIBS=-lncurses"- , "-j${Natural/show cfg.cpus}"- ]- }- )- ]-- let luaInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "make"- , arguments =- [ "install", "INSTALL_TOP=${cfg.installDir}" ]- }- )- ]- # prelude.symlinkBinaries [ "bin/lua", "bin/luac" ]-- in prelude.simplePackage { name = "lua", version = v }- ⫽ { pkgUrl =- "http://www.lua.org/ftp/lua-${prelude.showVersion v}.tar.gz"- , configureCommand = prelude.doNothing- , buildCommand = luaBuild- , installCommand = luaInstall- , pkgDeps =- [ prelude.unbounded "readline", prelude.unbounded "ncurses" ]- }--let libtasn1 =- λ(v : List Natural)- → prelude.simplePackage { name = "libtasn1", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/libtasn1/libtasn1-${prelude.showVersion- v}.tar.gz"- }--let p11kit =- λ(v : List Natural)- → prelude.simplePackage { name = "p11-kit", version = v }- ⫽ { pkgUrl =- "https://github.com/p11-glue/p11-kit/releases/download/${prelude.showVersion- v}/p11-kit-${prelude.showVersion- v}.tar.gz"- , pkgDeps =- [ prelude.lowerBound { name = "libffi", lower = [ 3, 0, 0 ] }- , prelude.unbounded "libtasn1"- ]- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- }--let libffi =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libffi", version = v }- ⫽ { pkgUrl =- "https://github.com/libffi/libffi/releases/download/v${versionString}/libffi-${versionString}.tar.gz"- }--let gdb =- λ(v : List Natural)- → prelude.makeGnuExe { name = "gdb", version = v }- ⫽ { pkgBuildDeps = [ prelude.unbounded "texinfo" ] }--let libtool =- λ(v : List Natural)- → prelude.makeGnuExe { name = "libtool", version = v }- ⫽ { pkgUrl =- "https://ftp.wayne.edu/gnu/libtool/libtool-${prelude.showVersion- v}.tar.xz"- , pkgBuildDeps =- [ prelude.lowerBound { name = "m4", lower = [ 1, 4, 16 ] } ]- }--let pkg-config =- λ(v : List Natural)- → prelude.simplePackage { name = "pkg-config", version = v }- ⫽ { pkgUrl =- "https://pkg-config.freedesktop.org/releases/pkg-config-${prelude.showVersion- v}.tar.gz"- , configureCommand =- prelude.configureWithFlags [ "--with-internal-glib" ]- }--let qrencode =- λ(v : List Natural)- → prelude.simplePackage { name = "qrencode", version = v }- ⫽ { pkgUrl =- "https://fukuchi.org/works/qrencode/qrencode-${prelude.showVersion- v}.tar.gz"- , configureCommand = prelude.configureWithFlags [ "--without-tools" ]- }--let readline =- λ(v : List Natural)- → prelude.simplePackage { name = "readline", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/readline/readline-${prelude.showVersion- v}.tar.gz"- }--let pixman =- λ(v : List Natural)- → prelude.simplePackage { name = "pixman", version = v }- ⫽ { pkgUrl =- "https://www.cairographics.org/releases/pixman-${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "libpng" ]- }--let freetype-shared =- λ(x : { name : Text, version : List Natural })- → let versionString = prelude.showVersion x.version-- in prelude.simplePackage x- ⫽ { pkgUrl =- "https://download.savannah.gnu.org/releases/freetype/freetype-${versionString}.tar.gz"- , pkgSubdir = "freetype-${versionString}"- , pkgBuildDeps = [ prelude.unbounded "sed" ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.defaultInstall cfg- # [ prelude.symlink- "include/freetype2/ft2build.h"- "include/ft2build.h"- , prelude.symlink- "include/freetype2/freetype"- "include/freetype"- ]- }--let freetype-prebuild =- λ(v : List Natural)- → freetype-shared { name = "freetype-prebuild", version = v }- ⫽ { pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "libpng" ]- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- }--let freetype =- λ(v : List Natural)- → freetype-shared { name = "freetype", version = v }- ⫽ { pkgDeps =- [ prelude.unbounded "zlib"- , prelude.unbounded "harfbuzz"- , prelude.unbounded "libpng"- ]- , configureCommand =- prelude.configureMkExesExtraFlags- { bins = [ "builds/unix/configure" ]- , extraFlags = [ "--enable-freetype-config" ]- }- }--let sdl2 =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "sdl2", version = v }- ⫽ { pkgUrl =- "https://www.libsdl.org/release/SDL2-${versionString}.tar.gz"- , pkgSubdir = "SDL2-${versionString}"- }--let imageMagick =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- let major =- Optional/fold Natural (List/head Natural v) Text Natural/show ""-- in prelude.simplePackage { name = "imagemagick", version = v }- ⫽ { pkgUrl =- "https://imagemagick.org/download/ImageMagick-${versionString}-67.tar.xz"- , pkgSubdir = "ImageMagick-${versionString}-67"- , pkgDeps =- [ prelude.unbounded "zlib"- , prelude.unbounded "libtool"- , prelude.unbounded "bzip2"- , prelude.unbounded "glib"- ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.defaultInstall cfg- # [ prelude.symlink- "include/ImageMagick-${major}/MagickWand"- "include/wand"- , prelude.symlinkBinary "bin/convert"- ]- }--let gtk2 =- let gtkEnv =- λ(cfg : types.BuildVars)- → prelude.defaultPath cfg- # [ { var = "LDFLAGS"- , value =- (prelude.mkLDFlags cfg.linkDirs cfg).value- ++ " -lpcre -lfribidi"- }- , prelude.mkCFlags cfg- , prelude.mkPkgConfigVar cfg.linkDirs- , prelude.libPath cfg- , prelude.mkLDRunPath cfg.linkDirs- , prelude.mkXdgDataDirs cfg.shareDirs- , prelude.mkLDPreload cfg.preloadLibs- ]-- let gtkConfig =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "./configure"- , arguments = [ "--prefix=${cfg.installDir}" ]- , environment = Some (gtkEnv cfg)- }- )- ]-- in λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.simplePackage- { name = "gtk2", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/gnome/sources/gtk+/${versionString}/gtk+-${fullVersion}.tar.xz"- , pkgSubdir = "gtk+-${fullVersion}"- , pkgDeps =- [ prelude.lowerBound { name = "cairo", lower = [ 1, 6 ] }- , prelude.lowerBound { name = "pango", lower = [ 1, 20 ] }- , prelude.lowerBound { name = "atk", lower = [ 1, 29, 2 ] }- , prelude.lowerBound { name = "glib", lower = [ 2, 28, 0 ] }- , prelude.lowerBound- { name = "gdk-pixbuf", lower = [ 2, 38, 0 ] }- ]- , buildCommand =- λ(cfg : types.BuildVars)- → prelude.buildWith (gtkEnv cfg) cfg- , configureCommand = gtkConfig- , installCommand =- λ(cfg : types.BuildVars)- → prelude.defaultInstall cfg- # [ prelude.symlink- "include/gdk-pixbuf-2.0/gdk-pixbuf"- "include/gdk-pixbuf"- ]- }--let mkXProto =- λ(name : Text)- → λ(v : List Natural)- → prelude.simplePackage { name, version = v }- ⫽ { pkgUrl =- "https://www.x.org/releases/individual/proto/${name}-${prelude.showVersion- v}.tar.bz2"- }--let mkXProtoWithPatch =- λ(name : Text)- → λ(patch : Text)- → λ(v : List Natural)- → mkXProto name v- ⫽ { configureCommand = prelude.configureWithPatch patch- , pkgBuildDeps = [ prelude.unbounded "patch" ]- }--let xproto =- mkXProtoWithPatch- "xproto"- ./patches/xproto.patch sha256:325215e1b547918dfe63278824cda399e61a36b6f11896c863dfacc0cb06e322 as Text--let renderproto =- mkXProtoWithPatch- "renderproto"- ./patches/renderproto.patch sha256:f2f154171dabe139ba07f8602fbada3b23f3d53b5773655cfe31cba2ceb70295 as Text--let randrproto = mkXProto "randrproto"--let scrnsaverproto =- mkXProtoWithPatch- "scrnsaverproto"- ./patches/scrnsaverproto.patch sha256:31983d73cdf49e8d8ed2583593f57b47d889062ae7f5bc5934a59e1e5e3e81f3 as Text--let recordproto = mkXProto "recordproto"--let xf86vidmodeproto = mkXProto "xf86vidmodeproto"--let glproto = mkXProto "glproto"--let dri2proto = mkXProto "dri2proto"--let pango =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- let pangoCfgFile =- ''- option('enable_docs',- description: 'Build API reference for Pango using GTK-Doc',- type: 'boolean',- value: false)- option('gir',- description: 'Build the GObject introspection data for Pango',- type: 'boolean',- value: false)- ''-- let no_gir =- λ(cfg : types.BuildVars)- → if cfg.isCross-- then [ prelude.writeFile- { file = "meson_options.txt"- , contents = pangoCfgFile- }- ]-- else [] : List types.Command-- in prelude.simplePackage- { name = "pango", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/GNOME/sources/pango/${versionString}/pango-${fullVersion}.tar.xz"- , configureCommand =- λ(cfg : types.BuildVars)- → no_gir cfg # prelude.mesonConfigure cfg- , buildCommand = prelude.ninjaBuild- , installCommand =- λ(cfg : types.BuildVars)- → prelude.ninjaInstallWithPkgConfig- ( prelude.mesonMoves- [ "pango.pc", "pangocairo.pc", "pangoft2.pc" ]- )- cfg- # [ prelude.symlink- "include/pango-1.0/pango"- "include/pango"- ]- , pkgBuildDeps =- [ prelude.lowerBound { name = "meson", lower = [ 0, 48, 0 ] }- , prelude.unbounded "gobject-introspection"- ]- , pkgDeps =- [ prelude.lowerBound- { name = "fontconfig", lower = [ 2, 11, 91 ] }- , prelude.lowerBound { name = "cairo", lower = [ 1, 12, 10 ] }- , prelude.lowerBound { name = "fribidi", lower = [ 0, 19, 7 ] }- , prelude.lowerBound { name = "harfbuzz", lower = [ 1, 4, 2 ] }- , prelude.unbounded "libXrender"- , prelude.unbounded "libxcb"- ]- }--let libxml2 =- λ(v : List Natural)- → prelude.simplePackage { name = "libxml2", version = v }- ⫽ { pkgUrl =- "http://xmlsoft.org/sources/libxml2-${prelude.showVersion- v}.tar.gz"- , pkgDeps =- [ prelude.unbounded "zlib"- , prelude.unbounded "xz"- , prelude.unbounded "python2"- ]- }--let shared-mime-info =- λ(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.generalBuild- prelude.singleThreaded- (prelude.buildEnv cfg)- cfg- , installCommand =- λ(cfg : types.BuildVars)- → prelude.defaultInstall cfg- # [ prelude.symlink "share/pkgconfig" "lib/pkgconfig" ]- , pkgDeps = [ prelude.unbounded "glib", prelude.unbounded "libxml2" ]- , pkgBuildDeps =- [ prelude.lowerBound { name = "intltool", lower = [ 0, 35, 0 ] }- , prelude.unbounded "sed"- , prelude.unbounded "gettext"- ]- }--let intltool =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "intltool", version = v }- ⫽ { pkgUrl =- "https://launchpad.net/intltool/trunk/${versionString}/+download/intltool-${versionString}.tar.gz"- , configureCommand =- λ(cfg : types.BuildVars)- → [ prelude.patch- ./patches/intltool.patch sha256:e33e9b3e43d80a17475e36c05ed4e649fa5d610991044749e6321dff555cc8e5 as Text- , prelude.call- ( prelude.defaultCall- ⫽ { program = "./configure"- , arguments = [ "--prefix=${cfg.installDir}" ]- , environment = Some- ( prelude.defaultPath cfg- # [ prelude.mkPerlLib- { libDirs = cfg.linkDirs- , perlVersion = [ 5, 30, 1 ]- , cfg- }- ]- )- }- )- ]- , pkgDeps = [ prelude.unbounded "XML-Parser" ]- , pkgBuildDeps =- [ prelude.lowerBound { name = "perl", lower = [ 5, 8, 1 ] } ]- }--let gdk-pixbuf =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- let gdkInstall =- λ(fs : List { src : Text, dest : Text })- → λ(cfg : types.BuildVars)- → [ prelude.call- ( 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 cfg- , prelude.mkCFlags cfg- ]- , arguments = [ "install" ]- , procDir = Some "build"- }- )- , prelude.symlink- "include/gdk-pixbuf-2.0/gdk-pixbuf"- "include/gdk-pixbuf"- ]- # prelude.copyFiles fs-- in prelude.simplePackage- { name = "gdk-pixbuf", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/${versionString}/gdk-pixbuf-${fullVersion}.tar.xz"- , configureCommand = prelude.mesonConfigure- , buildCommand = prelude.ninjaBuild- , installCommand =- gdkInstall (prelude.mesonMoves [ "gdk-pixbuf-2.0.pc" ])- , pkgDeps =- [ prelude.unbounded "glib"- , prelude.unbounded "libjpeg-turbo"- , prelude.unbounded "libpng"- , prelude.unbounded "gobject-introspection"- , prelude.unbounded "shared-mime-info"- , prelude.unbounded "libX11"- ]- }--let xmlParser =- λ(v : List Natural)- → prelude.simplePackage { name = "XML-Parser", version = v }- ⫽ { pkgUrl =- "https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-${prelude.showVersion- v}.tar.gz"- , configureCommand = prelude.perlConfigure- , pkgBuildDeps = [ prelude.unbounded "perl" ]- , pkgDeps = [ prelude.unbounded "expat" ]- }--let meson =- λ(v : List Natural)- → prelude.simplePackage { name = "meson", version = v }- ⫽ { pkgUrl =- "https://github.com/mesonbuild/meson/archive/${prelude.showVersion- v}.tar.gz"- , configureCommand =- λ(cfg : types.BuildVars)- → prelude.python3Install cfg # prelude.mkPy3Wrapper "meson" cfg- , buildCommand = prelude.doNothing- , installCommand = prelude.doNothing- , pkgDeps = [ prelude.unbounded "python3" ]- }--let ninja =- let ninjaConfigure =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "./configure.py"- , arguments = [ "--bootstrap" ]- }- )- ]-- let ninjaInstall =- λ(cfg : types.BuildVars)- → [ prelude.copyFile "ninja" "bin/ninja"- , prelude.symlinkBinary "bin/ninja"- ]-- in λ(v : List Natural)- → prelude.simplePackage { name = "ninja", version = v }- ⫽ { pkgUrl =- "https://github.com/ninja-build/ninja/archive/v${prelude.showVersion- v}.tar.gz"- , configureCommand = ninjaConfigure- , buildCommand = prelude.doNothing- , installCommand = ninjaInstall- , pkgBuildDeps = [ prelude.unbounded "python2" ]- }--let fontconfig =- λ(v : List Natural)- → prelude.simplePackage { name = "fontconfig", version = v }- ⫽ { pkgUrl =- "https://www.freedesktop.org/software/fontconfig/release/fontconfig-${prelude.showVersion- v}.tar.bz2"- , pkgDeps =- [ prelude.unbounded "freetype"- , prelude.unbounded "expat"- , prelude.unbounded "util-linux"- ]- , pkgBuildDeps = [ prelude.unbounded "gperf" ]- }--let util-linux =- λ(x : { version : List Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString-- in prelude.simplePackage { name = "util-linux", version = x.version }- ⫽ { pkgUrl =- "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${versionString}/util-linux-${fullVersion}.tar.xz"- , configureCommand =- λ(cfg : types.BuildVars)- → let crossFlags =- if cfg.isCross-- then [ "--disable-pylibmount", "--without-tinfo" ]-- else [] : List Text-- in prelude.configureWithFlags- ( [ "--disable-makeinstall-chown"- , "--disable-bash-completion"- ]- # crossFlags- )- cfg- , pkgDeps =- [ prelude.unbounded "ncurses", prelude.unbounded "pcre2" ]- }--let fribidi =- λ(v : List Natural)- → prelude.simplePackage { name = "fribidi", version = v }- ⫽ { pkgUrl =- "https://github.com/fribidi/fribidi/releases/download/v${prelude.showVersion- v}/fribidi-${prelude.showVersion- v}.tar.bz2"- }--let gobject-introspection =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.ninjaPackage- { name = "gobject-introspection"- , version = prelude.fullVersion x- }- ⫽ { pkgUrl =- "https://download.gnome.org/sources/gobject-introspection/${versionString}/gobject-introspection-${fullVersion}.tar.xz"- , pkgBuildDeps =- [ prelude.unbounded "meson"- , prelude.unbounded "m4"- , prelude.unbounded "bison"- , prelude.unbounded "flex"- , prelude.unbounded "pkg-config"- , prelude.unbounded "glibc"- ]- , pkgDeps =- [ prelude.lowerBound { name = "glib", lower = [ 2, 58, 0 ] } ]- , installCommand =- λ(cfg : types.BuildVars)- → [ prelude.mkExe "build/tools/g-ir-scanner"- , prelude.copyFile- "build/gobject-introspection-1.0.pc"- "lib/pkgconfig/gobject-introspection-1.0.pc"- ]- # prelude.ninjaInstall cfg- }--let flex =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- let flexEnv =- λ(_ : List Text)- → λ(cfg : types.BuildVars)- → Some- ( prelude.configEnv ([] : List Text) cfg- # [ { var = "YFLAGS", value = "-Wno-error=yacc" } ]- )-- in prelude.simplePackage { name = "flex", version = v }- ⫽ { pkgUrl =- "https://github.com/westes/flex/releases/download/v${versionString}/flex-${versionString}.tar.gz"- , pkgBuildDeps =- [ prelude.unbounded "m4", prelude.unbounded "bison" ]- , configureCommand = prelude.configWithEnv flexEnv- , installCommand = prelude.installWithBinaries [ "bin/flex" ]- }--let glib =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- let glibConfigure =- λ(cfg : types.BuildVars)- → let crossArgs =- if cfg.isCross-- then [ "--cross-file", "cross.txt" ]-- else [] : List Text-- in [ prelude.createDir "build"- , prelude.writeFile- { file = "build/cross.txt"- , contents = prelude.mesonCfgFile cfg- }- , prelude.call- { program = "meson"- , arguments =- [ "--prefix=${cfg.installDir}"- , ".."- , "-Dselinux=disabled"- ]- # crossArgs- , environment = Some- ( [ prelude.mkPkgConfigVar cfg.linkDirs- , { var = "LDFLAGS"- , value =- (prelude.mkLDFlags cfg.linkDirs cfg).value- }- , prelude.mkPy3Path cfg.linkDirs- , prelude.libPath cfg- , prelude.mkCFlags cfg- , prelude.mkPkgConfigVar cfg.linkDirs- ]- # prelude.defaultPath cfg- )- , procDir = Some "build"- }- ]-- let symlinkGio =- λ(h : Text)- → prelude.symlink "include/glib-2.0/gio/${h}" "include/gio/${h}"-- let symlinkGunix =- λ(h : Text)- → prelude.symlink- "include/gio-unix-2.0/gio/${h}"- "include/gio/${h}"-- in prelude.simplePackage- { name = "glib", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/gnome/sources/glib/${versionString}/glib-${fullVersion}.tar.xz"- , configureCommand = glibConfigure- , buildCommand =- λ(cfg : types.BuildVars)- → prelude.ninjaBuild cfg- # prelude.mkExes- [ "build/gobject/glib-mkenums"- , "build/gobject/glib-genmarshal"- , "build/gio/gdbus-2.0/codegen/gdbus-codegen"- ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.ninjaInstallWithPkgConfig- ( prelude.mesonMoves- [ "glib-2.0.pc"- , "gobject-2.0.pc"- , "gio-2.0.pc"- , "gio-unix-2.0.pc"- , "gmodule-no-export-2.0.pc"- , "gmodule-export-2.0.pc"- , "gmodule-2.0.pc"- , "gthread-2.0.pc"- ]- )- cfg- # [ prelude.symlink "include/glib-2.0/glib" "include/glib"- , prelude.symlink- "include/glib-2.0/gobject"- "include/gobject"- , prelude.symlink- "include/glib-2.0/glib.h"- "include/glib.h"- , prelude.symlink- "include/glib-2.0/glib-object.h"- "include/glib-object.h"- , prelude.symlink- "include/glib-2.0/glib-unix.h"- "include/glib-unix.h"- , prelude.symlink- "include/glib-2.0/gmodule.h"- "include/gmodule.h"- , symlinkGio "gaction.h"- , symlinkGio "gactiongroup.h"- , symlinkGio "gactiongroupexporter.h"- , symlinkGio "gactionmap.h"- , symlinkGio "gappinfo.h"- , symlinkGio "gapplication.h"- , symlinkGio "gapplicationcommandline.h"- , symlinkGio "gasyncinitable.h"- , symlinkGio "gasyncresult.h"- , symlinkGio "gbufferedinputstream.h"- , symlinkGio "gbufferedoutputstream.h"- , symlinkGio "gbytesicon.h"- , symlinkGio "gcancellable.h"- , symlinkGio "gcharsetconverter.h"- , symlinkGio "gcontenttype.h"- , symlinkGio "gconverter.h"- , symlinkGio "gconverterinputstream.h"- , symlinkGio "gconverteroutputstream.h"- , symlinkGio "gcredentials.h"- , symlinkGio "gdatagrambased.h"- , symlinkGio "gdatainputstream.h"- , symlinkGio "gdataoutputstream.h"- , symlinkGio "gdbusactiongroup.h"- , symlinkGio "gdbusaddress.h"- , symlinkGio "gdbusauthobserver.h"- , symlinkGio "gdbusconnection.h"- , symlinkGio "gdbuserror.h"- , symlinkGio "gdbusinterface.h"- , symlinkGio "gdbusinterfaceskeleton.h"- , symlinkGio "gdbusintrospection.h"- , symlinkGio "gdbusmenumodel.h"- , symlinkGio "gdbusmessage.h"- , symlinkGio "gdbusmethodinvocation.h"- , symlinkGio "gdbusnameowning.h"- , symlinkGio "gdbusnamewatching.h"- , symlinkGio "gdbusobject.h"- , symlinkGio "gdbusobjectmanager.h"- , symlinkGio "gdbusobjectmanagerclient.h"- , symlinkGio "gdbusobjectmanagerserver.h"- , symlinkGio "gdbusobjectproxy.h"- , symlinkGio "gdbusobjectskeleton.h"- , symlinkGio "gdbusproxy.h"- , symlinkGio "gdbusserver.h"- , symlinkGio "gdbusutils.h"- , symlinkGio "gdrive.h"- , symlinkGio "gdtlsclientconnection.h"- , symlinkGio "gdtlsconnection.h"- , symlinkGio "gdtlsserverconnection.h"- , symlinkGio "gemblem.h"- , symlinkGio "gemblemedicon.h"- , symlinkGio "gfile.h"- , symlinkGio "gfileattribute.h"- , symlinkGio "gfileenumerator.h"- , symlinkGio "gfileicon.h"- , symlinkGio "gfileinfo.h"- , symlinkGio "gfileinputstream.h"- , symlinkGio "gfileiostream.h"- , symlinkGio "gfilemonitor.h"- , symlinkGio "gfilenamecompleter.h"- , symlinkGio "gfileoutputstream.h"- , symlinkGio "gfilterinputstream.h"- , symlinkGio "gfilteroutputstream.h"- , symlinkGio "gicon.h"- , symlinkGio "ginetaddress.h"- , symlinkGio "ginetaddressmask.h"- , symlinkGio "ginetsocketaddress.h"- , symlinkGio "ginitable.h"- , symlinkGio "ginputstream.h"- , symlinkGio "gio-autocleanups.h"- , symlinkGio "gio.h"- , symlinkGio "gioenums.h"- , symlinkGio "gioenumtypes.h"- , symlinkGio "gioerror.h"- , symlinkGio "giomodule.h"- , symlinkGio "gioscheduler.h"- , symlinkGio "giostream.h"- , symlinkGio "giotypes.h"- , symlinkGio "glistmodel.h"- , symlinkGio "gliststore.h"- , symlinkGio "gloadableicon.h"- , symlinkGio "gmemoryinputstream.h"- , symlinkGio "gmemoryoutputstream.h"- , symlinkGio "gmenu.h"- , symlinkGio "gmenuexporter.h"- , symlinkGio "gmenumodel.h"- , symlinkGio "gmount.h"- , symlinkGio "gmountoperation.h"- , symlinkGio "gnativevolumemonitor.h"- , symlinkGio "gnetworkaddress.h"- , symlinkGio "gnetworking.h"- , symlinkGio "gnetworkmonitor.h"- , symlinkGio "gnetworkservice.h"- , symlinkGio "gnotification.h"- , symlinkGio "goutputstream.h"- , symlinkGio "gpermission.h"- , symlinkGio "gpollableinputstream.h"- , symlinkGio "gpollableoutputstream.h"- , symlinkGio "gpollableutils.h"- , symlinkGio "gpropertyaction.h"- , symlinkGio "gproxy.h"- , symlinkGio "gproxyaddress.h"- , symlinkGio "gproxyaddressenumerator.h"- , symlinkGio "gproxyresolver.h"- , symlinkGio "gremoteactiongroup.h"- , symlinkGio "gresolver.h"- , symlinkGio "gresource.h"- , symlinkGio "gseekable.h"- , symlinkGio "gsettings.h"- , symlinkGio "gsettingsbackend.h"- , symlinkGio "gsettingsschema.h"- , symlinkGio "gsimpleaction.h"- , symlinkGio "gsimpleactiongroup.h"- , symlinkGio "gsimpleasyncresult.h"- , symlinkGio "gsimpleiostream.h"- , symlinkGio "gsimplepermission.h"- , symlinkGio "gsimpleproxyresolver.h"- , symlinkGio "gsocket.h"- , symlinkGio "gsocketaddress.h"- , symlinkGio "gsocketaddressenumerator.h"- , symlinkGio "gsocketclient.h"- , symlinkGio "gsocketconnectable.h"- , symlinkGio "gsocketconnection.h"- , symlinkGio "gsocketcontrolmessage.h"- , symlinkGio "gsocketlistener.h"- , symlinkGio "gsocketservice.h"- , symlinkGio "gsrvtarget.h"- , symlinkGio "gsubprocess.h"- , symlinkGio "gsubprocesslauncher.h"- , symlinkGio "gtask.h"- , symlinkGio "gtcpconnection.h"- , symlinkGio "gtcpwrapperconnection.h"- , symlinkGio "gtestdbus.h"- , symlinkGio "gthemedicon.h"- , symlinkGio "gthreadedsocketservice.h"- , symlinkGio "gtlsbackend.h"- , symlinkGio "gtlscertificate.h"- , symlinkGio "gtlsclientconnection.h"- , symlinkGio "gtlsconnection.h"- , symlinkGio "gtlsdatabase.h"- , symlinkGio "gtlsfiledatabase.h"- , symlinkGio "gtlsinteraction.h"- , symlinkGio "gtlspassword.h"- , symlinkGio "gtlsserverconnection.h"- , symlinkGio "gvfs.h"- , symlinkGio "gvolume.h"- , symlinkGio "gvolumemonitor.h"- , symlinkGio "gzlibcompressor.h"- , symlinkGio "gzlibdecompressor.h"- , symlinkGunix "gdesktopappinfo.h"- , symlinkGunix "gfiledescriptorbased.h"- , symlinkGunix "gunixconnection.h"- , symlinkGunix "gunixcredentialsmessage.h"- , symlinkGunix "gunixfdlist.h"- , symlinkGunix "gunixfdmessage.h"- , symlinkGunix "gunixinputstream.h"- , symlinkGunix "gunixmounts.h"- , symlinkGunix "gunixoutputstream.h"- , symlinkGunix "gunixsocketaddress.h"- ]- , pkgBuildDeps =- [ prelude.unbounded "meson", prelude.unbounded "ninja" ]- , pkgDeps =- [ prelude.unbounded "util-linux"- , prelude.unbounded "pcre"- , prelude.unbounded "libffi"- , prelude.unbounded "zlib"- , prelude.unbounded "dbus"- ]- }--let atk =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.ninjaPackage- { name = "atk", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "https://ftp.gnome.org/pub/gnome/sources/atk/${versionString}/atk-${fullVersion}.tar.xz"- , pkgBuildDeps =- [ prelude.unbounded "gobject-introspection"- , prelude.unbounded "gettext"- ]- , pkgDeps = [ prelude.unbounded "glib" ]- , installCommand =- prelude.ninjaInstallWithPkgConfig- [ { src = "build/meson-private/atk.pc"- , dest = "lib/pkgconfig/atk.pc"- }- ]- }--let re2c =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "re2c", version = v }- ⫽ { pkgUrl =- "https://github.com/skvadrik/re2c/releases/download/${versionString}/re2c-${versionString}.tar.gz"- }--let chickenScheme =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- let printChickenOS =- λ(os : types.OS)- → merge- { FreeBSD = "bsd"- , OpenBSD = "bsd"- , NetBSD = "bsd"- , Solaris = "solaris"- , Dragonfly = "bsd"- , Linux = "linux"- , Darwin = "macosx"- , Windows = "mingw"- , Haiku = "haiku"- , IOS = "ios"- , AIX = "aix"- , Hurd = "hurd"- , Android = "android"- , Redox = "error: no port for Redox OS"- , NoOs = "error: no port for no OS"- }- os-- let chickenBuild =- λ(cfg : types.BuildVars)- → let cc =- Optional/fold- types.TargetTriple- cfg.targetTriple- (List Text)- ( λ(tgt : types.TargetTriple)- → [ "C_COMPILER=${prelude.printTargetTriple tgt}-gcc"- ]- )- ([] : List Text)-- let os = prelude.osCfg cfg-- in [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- cc- # [ "PLATFORM=${printChickenOS os}"- , "PREFIX=${cfg.installDir}"- ]- }- )- , prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- cc- # [ "PLATFORM=${printChickenOS os}"- , "PREFIX=${cfg.installDir}"- , "install"- ]- }- )- ]- # prelude.symlinkBinaries- [ "bin/csc", "bin/chicken-install", "bin/csi" ]-- in prelude.simplePackage { name = "chicken-scheme", version = v }- ⫽ { pkgUrl =- "https://code.call-cc.org/releases/${versionString}/chicken-${versionString}.tar.gz"- , configureCommand = prelude.doNothing- , buildCommand = chickenBuild- , installCommand = prelude.doNothing- , pkgSubdir = "chicken-${versionString}"- }--let xcb-proto =- λ(v : List Natural)- → prelude.simplePackage { name = "xcb-proto", version = v }- ⫽ { pkgUrl =- "https://xorg.freedesktop.org/archive/individual/xcb/xcb-proto-${prelude.showVersion- v}.tar.bz2"- }--let libxcb =- λ(v : List Natural)- → prelude.simplePackage { name = "libxcb", version = v }- ⫽ { pkgUrl =- "https://xorg.freedesktop.org/archive/individual/xcb/libxcb-${prelude.showVersion- v}.tar.bz2"- , pkgDeps =- [ prelude.lowerBound { name = "xcb-proto", lower = [ 1, 13 ] }- , prelude.unbounded "libXau"- , prelude.unbounded "libpthread-stubs"- , prelude.unbounded "libXdmcp"- ]- }--let libpthread-stubs =- λ(v : List Natural)- → prelude.simplePackage { name = "libpthread-stubs", version = v }- ⫽ { pkgUrl =- "https://www.x.org/archive/individual/xcb/libpthread-stubs-${prelude.showVersion- v}.tar.bz2"- }--let xorgConfigure =- prelude.configureWithFlags [ "--disable-malloc0returnsnull" ]--let mkXLib =- λ(name : Text)- → λ(v : List Natural)- → prelude.simplePackage { name, version = v }- ⫽ { pkgUrl =- "https://www.x.org/releases/individual/lib/${name}-${prelude.showVersion- v}.tar.bz2"- , configureCommand = xorgConfigure- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- }--let mkXLibDeps =- λ(x : { name : Text, deps : List types.Dep })- → λ(v : List Natural)- → mkXLib x.name v ⫽ { pkgDeps = x.deps }--let libXdmcp =- mkXLibDeps { name = "libXdmcp", deps = [ prelude.unbounded "xproto" ] }--let libXau =- mkXLibDeps { name = "libXau", deps = [ prelude.unbounded "xproto" ] }--let mkXUtil =- λ(name : Text)- → λ(v : List Natural)- → prelude.simplePackage { name, version = v }- ⫽ { pkgUrl =- "https://www.x.org/releases/individual/util/${name}-${prelude.showVersion- v}.tar.bz2"- }--let libXrender =- mkXLibDeps- { name = "libXrender"- , deps =- [ prelude.unbounded "xproto"- , prelude.unbounded "renderproto"- , prelude.unbounded "libX11"- ]- }--let util-macros = mkXUtil "util-macros"--let libXft =- mkXLibDeps- { name = "libXft"- , deps =- [ prelude.unbounded "freetype"- , prelude.unbounded "fontconfig"- , prelude.unbounded "libXrender"- , prelude.unbounded "libX11"- ]- }--let kbproto = mkXProto "kbproto"--let libX11 =- mkXLibDeps- { name = "libX11"- , deps =- [ prelude.unbounded "libxcb"- , prelude.unbounded "kbproto"- , prelude.unbounded "xextproto"- , prelude.unbounded "inputproto"- , prelude.unbounded "xtrans"- ]- }--let inputproto = mkXProto "inputproto"--let xineramaproto =- mkXProtoWithPatch- "xineramaproto"- ./patches/xineramaproto.patch sha256:cc2dec3895d71256bfb878ab420bb63ad6708e17a1785805473760bb9d98a310 as Text--let xtrans = mkXLib "xtrans"--let libXrandr =- mkXLibDeps- { name = "libXrandr"- , deps =- [ prelude.unbounded "util-macros"- , prelude.unbounded "libXext"- , prelude.unbounded "libXrender"- , prelude.unbounded "libX11"- , prelude.unbounded "randrproto"- ]- }--let libXinerama =- mkXLibDeps- { name = "libXinerama"- , deps =- [ prelude.unbounded "util-macros"- , prelude.unbounded "libX11"- , prelude.unbounded "libXext"- , prelude.unbounded "xineramaproto"- ]- }--let libXext =- mkXLibDeps- { name = "libXext"- , deps =- [ prelude.lowerBound { name = "xextproto", lower = [ 7, 1, 99 ] }- , prelude.lowerBound { name = "xproto", lower = [ 7, 0, 13 ] }- , prelude.lowerBound { name = "libX11", lower = [ 1, 6 ] }- ]- }--let xextproto =- mkXProtoWithPatch- "xextproto"- ./patches/xextproto.patch sha256:67185f1122233556a40a3d3df5a4967aca8533be62112f3c5e393308b70f3217 as Text--let fixesproto = mkXProto "fixesproto"--let damageproto = mkXProto "damageproto"--let libXScrnSaver =- λ(v : List Natural)- → mkXLib "libXScrnSaver" v- ⫽ { pkgDeps =- [ prelude.unbounded "util-macros"- , prelude.unbounded "libXext"- , prelude.unbounded "scrnsaverproto"- ]- }--let bzip2 =- let cc = prelude.mkCCArg-- in λ(v : List Natural)- → let versionString = prelude.showVersion v-- let bzipInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- cc cfg- # [ "PREFIX=${cfg.installDir}"- , "install"- , "-j${Natural/show cfg.cpus}"- ]- }- )- , 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"- , prelude.symlinkBinary "bin/bzip2"- , prelude.symlinkBinary "bin/bzip2recover"- ]-- let bzipShared =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- cc cfg # [ "-f", "Makefile-libbz2_so" ]- }- )- ]-- in prelude.simplePackage { name = "bzip2", version = v }- ⫽ { pkgUrl =- "https://www.sourceware.org/pub/bzip2/bzip2-${versionString}.tar.gz"- , configureCommand = prelude.doNothing- , buildCommand = bzipShared- , installCommand = bzipInstall- }--let expat =- λ(v : List Natural)- → prelude.simplePackage { name = "expat", version = v }- ⫽ { pkgUrl =- "https://github.com/libexpat/libexpat/releases/download/R_${prelude.underscoreVersion- v}/expat-${prelude.showVersion- v}.tar.bz2"- }--let gperf =- λ(v : List Natural)- → prelude.makeGnuExe { name = "gperf", version = v }- ⫽ { pkgUrl =- "http://ftp.gnu.org/pub/gnu/gperf/gperf-${prelude.showVersion- v}.tar.gz"- }--let coreutils =- λ(v : List Natural)- → prelude.makeGnuExe { name = "coreutils", version = v }- ⫽ { installCommand =- prelude.installWithBinaries- [ "bin/install"- , "bin/chmod"- , "bin/rm"- , "bin/cp"- , "bin/ln"- , "bin/mkdir"- , "bin/test"- , "bin/od"- , "bin/readlink"- ]- }--let libsepol =- let cc = prelude.mkCCArg-- let sepolInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- cc cfg- # [ "PREFIX=${cfg.installDir}"- , "SHLIBDIR=${cfg.installDir}/lib"- , "CFLAGS=-Wno-error -O2"- , "install"- , "-j${Natural/show cfg.cpus}"- ]- , environment = Some- ( prelude.defaultPath cfg- # [ prelude.mkLDFlags cfg.linkDirs cfg- , prelude.mkCFlags cfg- , prelude.mkPkgConfigVar cfg.linkDirs- ]- )- }- )- ]-- in λ(v : List Natural)- → prelude.simplePackage { name = "libsepol", version = v }- ⫽ { pkgUrl =- "https://github.com/SELinuxProject/selinux/releases/download/20191204/libsepol-${prelude.showVersion- v}.tar.gz"- , configureCommand = prelude.doNothing- , buildCommand = prelude.doNothing- , installCommand = sepolInstall- , pkgBuildDeps = [ prelude.unbounded "flex" ]- }--let libselinux =- let cc = prelude.mkCCArg-- let selinuxInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- cc cfg- # [ "PREFIX=${cfg.installDir}"- , "SHLIBDIR=${cfg.installDir}/lib"- , "EXTRA_CFLAGS=-Wno-error -lpcre "- ++ (prelude.mkCFlags cfg).value- , "install"- , "-j${Natural/show cfg.cpus}"- ]- , environment = Some- ( prelude.defaultPath cfg- # [ prelude.mkLDFlags cfg.linkDirs cfg- , prelude.mkCFlags cfg- , prelude.mkPkgConfigVar cfg.linkDirs- , prelude.libPath cfg- ]- )- }- )- ]-- in λ(v : List Natural)- → prelude.simplePackage { name = "libselinux", version = v }- ⫽ { pkgUrl =- "https://github.com/SELinuxProject/selinux/releases/download/20191204/libselinux-${prelude.showVersion- v}.tar.gz"- , configureCommand = prelude.doNothing- , buildCommand = prelude.doNothing- , installCommand = selinuxInstall- , pkgDeps =- [ prelude.unbounded "pcre", prelude.unbounded "libsepol" ]- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- }--let libXtst =- mkXLibDeps- { name = "libXtst"- , deps = [ prelude.unbounded "libXi", prelude.unbounded "recordproto" ]- }--let libXi =- mkXLibDeps- { name = "libXi"- , deps = [ prelude.unbounded "libXext", prelude.unbounded "libXfixes" ]- }--let mkGnomeNinja =- λ(name : Text)- → λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.ninjaPackage { name, version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/gnome/sources/${name}/${versionString}/${name}-${fullVersion}.tar.xz"- }--let at-spi-core =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeNinja "at-spi2-core" x- ⫽ { pkgDeps = [ prelude.unbounded "libXtst", prelude.unbounded "glib" ]- , installCommand =- prelude.ninjaInstallWithPkgConfig- [ { src = "build/meson-private/atspi-2.pc"- , dest = "lib/pkgconfig/atspi-2.pc"- }- ]- }--let at-spi-atk =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeNinja "at-spi2-atk" x- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "at-spi2-core", lower = [ 2, 32, 2 ] }- , prelude.lowerBound { name = "atk", lower = [ 2, 29, 2 ] }- , prelude.unbounded "libxml2"- ]- , installCommand =- prelude.ninjaInstallWithPkgConfig- (prelude.mesonMoves [ "atk-bridge-2.0.pc" ])- }--let libdrm =- λ(v : List Natural)- → prelude.ninjaPackage { name = "libdrm", version = v }- ⫽ { pkgUrl =- "https://dri.freedesktop.org/libdrm/libdrm-${prelude.showVersion- v}.tar.bz2"- , pkgDeps =- [ prelude.unbounded "libpciaccess", prelude.unbounded "cairo" ]- , installCommand =- prelude.ninjaInstallWithPkgConfig- ( prelude.mesonMoves- [ "libdrm.pc"- , "libdrm_amdgpu.pc"- , "libdrm_intel.pc"- , "libdrm_nouveau.pc"- , "libdrm_radeon.pc"- , "libkms.pc"- ]- )- }--let libpciaccess = mkXLib "libpciaccess"--let markupSafe =- λ(v : List Natural)- → prelude.python3Package { name = "MarkupSafe", version = v }- ⫽ { pkgUrl =- "https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-${prelude.showVersion- v}.tar.gz"- }--let mako =- λ(v : List Natural)- → prelude.python3Package { name = "Mako", version = v }- ⫽ { pkgUrl =- "https://files.pythonhosted.org/packages/source/M/Mako/Mako-${prelude.showVersion- v}.tar.gz"- }--let elfutils =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "elfutils", version = v }- ⫽ { pkgUrl =- "https://sourceware.org/ftp/elfutils/${versionString}/elfutils-${versionString}.tar.bz2"- }--let mkGnomeSimple =- λ(name : Text)- → λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.simplePackage { name, version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/gnome/sources/${name}/${versionString}/${name}-${fullVersion}.tar.xz"- }--let gtk3 =- let mkLDFlagsGtk =- λ(linkDirs : List Text)- → concatMapSep " " Text (λ(dir : Text) → "-L${dir}") linkDirs-- let gtkEnv =- λ(cfg : types.BuildVars)- → prelude.defaultPath cfg- # [ { var = "LDFLAGS"- , value = mkLDFlagsGtk cfg.linkDirs ++ " -lpcre -lfribidi"- }- , prelude.mkPkgConfigVar cfg.linkDirs- , prelude.mkLDPreload cfg.preloadLibs- , prelude.mkXdgDataDirs cfg.shareDirs- , prelude.mkCFlags cfg- ]-- let gtkConfig =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "./configure"- , arguments = [ "--prefix=${cfg.installDir}" ]- , environment = Some (gtkEnv cfg)- }- )- ]-- in λ(x : { version : List Natural, patch : Natural })- → mkGnomeSimple "gtk+" x- ⫽ { pkgName = "gtk3"- , configureCommand = gtkConfig- , buildCommand =- λ(cfg : types.BuildVars) → prelude.buildWith (gtkEnv cfg) cfg- , pkgDeps =- [ prelude.lowerBound { name = "pango", lower = [ 1, 41, 0 ] }- , prelude.unbounded "at-spi2-atk"- , prelude.lowerBound { name = "atk", lower = [ 2, 15, 1 ] }- , prelude.lowerBound- { name = "gdk-pixbuf", lower = [ 2, 30, 0 ] }- , prelude.unbounded "libXft"- , prelude.lowerBound { name = "libepoxy", lower = [ 1, 4 ] }- , prelude.unbounded "libXi"- ]- , pkgBuildDeps = [ prelude.unbounded "binutils" ]- }--let graphviz =- λ(v : List Natural)- → prelude.simplePackage { name = "graphviz", version = v }- ⫽ { pkgUrl =- "https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz"- , pkgDeps = [ prelude.unbounded "perl" ]- , installCommand = prelude.installWithBinaries [ "bin/dot" ]- }--let wayland =- λ(v : List Natural)- → prelude.simplePackage { name = "wayland", version = v }- ⫽ { pkgUrl =- "https://wayland.freedesktop.org/releases/wayland-${prelude.showVersion- v}.tar.xz"- , pkgDeps = [ prelude.unbounded "libxml2" ]- , configureCommand =- prelude.configureWithFlags [ "--disable-documentation" ]- }--let swig =- λ(v : List Natural)- → prelude.simplePackage { name = "swig", version = v }- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/swig/swig-${prelude.showVersion- v}.tar.gz"- , installCommand = prelude.installWithBinaries [ "bin/swig" ]- }--let lmdb =- let cc = prelude.mkCCArg-- let ar =- λ(cfg : types.BuildVars)- → Optional/fold- types.TargetTriple- cfg.targetTriple- (List Text)- ( λ(tgt : types.TargetTriple)- → [ "AR=${prelude.printTargetTriple tgt}-ar" ]- )- ([] : List Text)-- let lmdbInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "make"- , arguments =- cc cfg- # ar cfg- # [ "prefix=${cfg.installDir}"- , "install"- , "-j${Natural/show cfg.cpus}"- ]- , procDir = Some "libraries/liblmdb"- }- )- ]-- in λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "lmdb", version = v }- ⫽ { pkgUrl =- "https://github.com/LMDB/lmdb/archive/LMDB_${versionString}.tar.gz"- , pkgSubdir = "lmdb-LMDB_${versionString}"- , configureCommand = prelude.doNothing- , buildCommand = prelude.doNothing- , installCommand = lmdbInstall- }--let gsl =- λ(v : List Natural)- → prelude.simplePackage { name = "gsl", version = v }- ⫽ { pkgUrl =- "http://mirror.keystealth.org/gnu/gsl/gsl-${prelude.showVersion- v}.tar.gz"- }--let postgresql =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "postgresql", version = v }- ⫽ { pkgUrl =- "https://ftp.postgresql.org/pub/source/v${versionString}/postgresql-${versionString}.tar.bz2"- , configureCommand =- prelude.configureWithFlags [ "--without-readline" ]- , installCommand = prelude.installWithBinaries [ "bin/pg_config" ]- , pkgDeps = [ prelude.unbounded "zlib" ]- }--let sqlite =- λ(x : { version : List Natural })- → prelude.simplePackage { name = "sqlite", version = x.version }- ⫽ { pkgUrl =- "https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz"- , pkgSubdir = "sqlite-autoconf-3300100"- }--let ragel =- λ(v : List Natural)- → prelude.simplePackage { name = "ragel", version = v }- ⫽ { pkgUrl =- "http://www.colm.net/files/ragel/ragel-${prelude.showVersion- v}.tar.gz"- , installCommand = prelude.installWithBinaries [ "bin/ragel" ]- }--let nano =- λ(v : List Natural)- → prelude.makeGnuExe { name = "nano", version = v }- ⫽ { pkgDeps = [ prelude.unbounded "ncurses" ] }--let libarchive =- λ(v : List Natural)- → prelude.simplePackage { name = "libarchive", version = v }- ⫽ { pkgUrl =- "https://www.libarchive.org/downloads/libarchive-${prelude.showVersion- v}.tar.gz"- , pkgDeps =- [ prelude.unbounded "xz"- , prelude.unbounded "bzip2"- , prelude.unbounded "zlib"- ]- , installCommand =- prelude.installWithBinaries [ "bin/bsdtar", "bin/bsdcpio" ]- }--let pygobject =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeSimple "pygobject" x- ⫽ { pkgDeps = [ prelude.unbounded "glib" ]- , configureCommand = prelude.preloadCfg- }--let pygtk =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in mkGnomeSimple "pygtk" x- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/gnome/sources/pygtk/${versionString}/pygtk-${fullVersion}.tar.bz2"- , configureCommand = prelude.preloadCfg- , pkgDeps =- [ prelude.lowerBound { name = "glib", lower = [ 2, 8, 0 ] }- , prelude.lowerBound- { name = "pygobject", lower = [ 2, 21, 3 ] }- , prelude.unbounded "python2"- ]- }--let libglade =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.simplePackage- { name = "libglade", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/gnome/sources/libglade/${versionString}/libglade-${fullVersion}.tar.bz2"- , pkgDeps =- [ prelude.lowerBound { name = "libxml2", lower = [ 2, 4, 10 ] }- , prelude.lowerBound { name = "gtk2", lower = [ 2, 5, 0 ] }- ]- , configureCommand = prelude.configureLinkExtraLibs [ "fribidi" ]- }--let scour =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.python3Package { name = "scour", version = v }- ⫽ { pkgUrl =- "https://github.com/scour-project/scour/archive/v${versionString}/scour-${versionString}.tar.gz"- , installCommand = prelude.installWithPy3Wrappers [ "scour" ]- }--let libXpm =- λ(v : List Natural)- → mkXLib "libXpm" v- ⫽ { pkgDeps = [ prelude.unbounded "libXext", prelude.unbounded "libXt" ]- , pkgBuildDeps = [ prelude.unbounded "gettext" ]- }--let libXt =- mkXLibDeps- { name = "libXt"- , deps =- [ prelude.unbounded "libICE"- , prelude.unbounded "libSM"- , prelude.unbounded "libX11"- , prelude.unbounded "kbproto"- ]- }--let libICE =- mkXLibDeps- { name = "libICE"- , deps = [ prelude.unbounded "xproto", prelude.unbounded "xtrans" ]- }--let libSM =- mkXLibDeps- { name = "libSM"- , deps = [ prelude.unbounded "libICE", prelude.unbounded "util-linux" ]- }--let libXaw =- mkXLibDeps- { name = "libXaw"- , deps = [ prelude.unbounded "libXmu", prelude.unbounded "libXpm" ]- }--let libXaw3d =- mkXLibDeps- { name = "libXaw3d"- , deps =- [ prelude.unbounded "libX11"- , prelude.unbounded "libXt"- , prelude.unbounded "libXmu"- , prelude.unbounded "libXext"- ]- }--let libXmu =- mkXLibDeps- { name = "libXmu"- , deps =- [ prelude.unbounded "util-macros"- , prelude.unbounded "libXt"- , prelude.unbounded "libXext"- ]- }--let libotf =- λ(v : List Natural)- → prelude.simplePackage { name = "libotf", version = v }- ⫽ { pkgUrl =- "http://download.savannah.gnu.org/releases/m17n/libotf-${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "freetype" ]- }--let m17n =- λ(v : List Natural)- → 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.generalBuild- prelude.singleThreaded- (prelude.buildEnv cfg)- cfg- , pkgDeps = [ prelude.unbounded "libXt" ]- , pkgBuildDeps = [ prelude.unbounded "binutils" ]- }--let mkGimpPackage =- λ(name : Text)- → λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.simplePackage { name, version = prelude.fullVersion x }- ⫽ { pkgUrl =- "https://download.gimp.org/pub/${name}/${versionString}/${name}-${fullVersion}.tar.bz2"- }--let babl =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.simplePackage- { name = "babl", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "https://download.gimp.org/pub/babl/${versionString}/babl-${fullVersion}.tar.xz"- , pkgBuildDeps =- [ prelude.unbounded "autoconf"- , prelude.unbounded "automake"- , prelude.unbounded "libtool"- , prelude.unbounded "pkg-config"- ]- , pkgDeps = [ prelude.unbounded "lcms2" ]- , configureCommand = prelude.autogenConfigure- }--let gegl =- λ(x : { version : List Natural, patch : Natural })- → mkGimpPackage "gegl" x- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "babl", lower = [ 0, 1, 58 ] }- , prelude.lowerBound { name = "glib", lower = [ 2, 44, 0 ] }- , prelude.unbounded "json-glib"- ]- , configureCommand = prelude.preloadCfg- }--let libexif =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libexif", version = v }- ⫽ { pkgUrl =- "https://nchc.dl.sourceforge.net/project/libexif/libexif/${versionString}/libexif-${versionString}.tar.bz2"- }--let json-glib =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeNinja "json-glib" x- ⫽ { pkgDeps =- [ prelude.unbounded "glib"- , prelude.unbounded "libjpeg-turbo"- , prelude.unbounded "libpng"- ]- , pkgBuildDeps = [ prelude.unbounded "gettext" ]- , installCommand =- prelude.ninjaInstallWithPkgConfig- (prelude.mesonMoves [ "json-glib-1.0.pc" ])- }--let lcms2 =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "lcms2", version = v }- ⫽ { pkgUrl =- "https://github.com/mm2/Little-CMS/archive/lcms${versionString}.tar.gz"- , pkgSubdir = "Little-CMS-lcms${versionString}"- }--let libtiff =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libtiff", version = v }- ⫽ { pkgUrl =- "http://download.osgeo.org/libtiff/tiff-${versionString}.tar.gz"- , pkgSubdir = "tiff-${versionString}"- }--let libmypaint =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libmypaint", version = v }- ⫽ { pkgUrl =- "https://github.com/mypaint/libmypaint/releases/download/v${versionString}/libmypaint-${versionString}.tar.xz"- , pkgDeps = [ prelude.unbounded "json-c" ]- , pkgBuildDeps =- [ prelude.unbounded "intltool", prelude.unbounded "gettext" ]- }--let json-c =- λ(x : { version : List Natural, dateStr : Text })- → let versionString = "${prelude.showVersion x.version}-${x.dateStr}"-- in prelude.simplePackage { name = "json-c", version = x.version }- ⫽ { pkgUrl =- "https://github.com/json-c/json-c/archive/json-c-${versionString}.tar.gz"- , pkgSubdir = "json-c-json-c-${versionString}"- }--let libopenjpeg =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in 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" ]- , pkgBuildDeps =- [ prelude.unbounded "make", prelude.unbounded "cmake" ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.cmakeInstall cfg- # [ prelude.symlink- "lib/openjpeg-2.3/OpenJPEGConfig.cmake"- "lib/OpenJPEGConfig.cmake"- ]- }--let libevent =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libevent", version = v }- ⫽ { pkgUrl =- "https://github.com/libevent/libevent/releases/download/release-${versionString}-stable/libevent-${versionString}-stable.tar.gz"- , pkgSubdir = "libevent-${versionString}-stable"- , pkgDeps = [ prelude.unbounded "openssl" ]- }--let memcached =- λ(v : List Natural)- → prelude.simplePackage { name = "memcached", version = v }- ⫽ { pkgUrl =- "https://memcached.org/files/memcached-${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "libevent" ]- }--let motif =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "motif", version = v }- ⫽ { pkgUrl =- "https://iweb.dl.sourceforge.net/project/motif/Motif%20${versionString}%20Source%20Code/motif-${versionString}.tar.gz"- , pkgDeps =- [ prelude.unbounded "libXft"- , prelude.unbounded "libpng"- , prelude.unbounded "freetype"- ]- }--let libjpeg =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libjpeg", version = v }- ⫽ { pkgUrl =- "http://www.ijg.org/files/jpegsrc.v${versionString}c.tar.gz"- , pkgSubdir = "jpeg-${versionString}c"- }--let feh =- let cc = prelude.mkCCArg-- let fehMake =- λ(cfg : types.BuildVars) → { program = prelude.makeExe cfg.buildOS }-- let fehBuild =- λ(v : List Natural)- → λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ fehMake cfg- ⫽ { arguments = [ "feh.1" ], procDir = Some "man" }- )- , prelude.call- ( prelude.defaultCall- ⫽ fehMake cfg- ⫽ { arguments =- cc cfg- # [ "CFLAGS=${( prelude.mkCFlags cfg- ).value} -DPACKAGE=\\\"feh\\\" -DPREFIX=\\\"${cfg.installDir}\\\" -DVERSION=\\\"${prelude.showVersion- v}\\\" ${( prelude.mkLDFlags- cfg.linkDirs- cfg- ).value}"- , "feh"- ]- , procDir = Some "src"- }- )- , prelude.call- ( prelude.defaultCall- ⫽ fehMake cfg- ⫽ { arguments = [ "feh.desktop" ]- , procDir = Some "share/applications"- }- )- ]-- let fehInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- [ "CFLAGS=${(prelude.mkCFlags cfg).value}"- , "-j${Natural/show cfg.cpus}"- , "PREFIX=${cfg.installDir}"- , "install"- ]- }- )- ]- # prelude.mkLDPathWrapper cfg "feh"-- in λ(v : List Natural)- → prelude.simplePackage { name = "feh", version = v }- ⫽ { pkgUrl =- "https://github.com/derf/feh/archive/${prelude.showVersion- v}.tar.gz"- , configureCommand = prelude.doNothing- , buildCommand = fehBuild v- , installCommand = fehInstall- , pkgBuildDeps = [ prelude.unbounded "sed" ]- , pkgDeps =- [ prelude.unbounded "imlib2"- , prelude.unbounded "libXt"- , prelude.unbounded "libXinerama"- , prelude.unbounded "curl"- ]- }--let imlib2 =- λ(v : List Natural)- → prelude.simplePackage { name = "imlib2", version = v }- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/enlightenment/imlib2-${prelude.showVersion- v}.tar.bz2"- , pkgDeps =- [ prelude.unbounded "libXext"- , prelude.unbounded "freetype"- , prelude.unbounded "libjpeg"- , prelude.unbounded "libpng"- , prelude.unbounded "giflib"- ]- }--let jemalloc =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "jemalloc", version = v }- ⫽ { pkgUrl =- "https://github.com/jemalloc/jemalloc/releases/download/${versionString}/jemalloc-${versionString}.tar.bz2"- }--let gperftools =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "gperftools", version = v }- ⫽ { pkgUrl =- "https://github.com/gperftools/gperftools/releases/download/gperftools-${versionString}/gperftools-${versionString}.tar.gz"- }--let openssh =- let opensshInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- [ "PRIVSEP_PATH=${cfg.installDir}/var"- , "install"- , "-j${Natural/show cfg.cpus}"- ]- , environment = Some- ( prelude.defaultPath cfg- # [ prelude.mkPkgConfigVar cfg.linkDirs- , prelude.libPath cfg- ]- )- }- )- ]-- in λ(v : List Natural)- → prelude.simplePackage { name = "openssh", version = v }- ⫽ { pkgUrl =- "https://mirrors.gigenet.com/pub/OpenBSD/OpenSSH/portable/openssh-${prelude.showVersion- v}p1.tar.gz"- , pkgSubdir = "openssh-${prelude.showVersion v}p1"- , installCommand = opensshInstall- , pkgDeps = [ prelude.unbounded "openssl" ]- }--let libxslt =- λ(v : List Natural)- → prelude.simplePackage { name = "libxslt", version = v }- ⫽ { pkgUrl =- "http://xmlsoft.org/sources/libxslt-${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "libxml2" ]- }--let libepoxy =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.ninjaPackage { name = "libepoxy", version = v }- ⫽ { pkgUrl =- "https://github.com/anholt/libepoxy/releases/download/${versionString}/libepoxy-${versionString}.tar.xz"- , pkgDeps = [ prelude.unbounded "mesa" ]- , installCommand =- prelude.ninjaInstallWithPkgConfig- (prelude.mesonMoves [ "epoxy.pc" ])- }--let mesa =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "mesa", version = v }- ⫽ { pkgUrl =- "https://mesa.freedesktop.org/archive/mesa-${prelude.showVersion- v}.tar.xz"- , pkgDeps =- [ prelude.lowerBound { name = "libdrm", lower = [ 2, 4, 75 ] }- , prelude.unbounded "libXdamage"- , prelude.unbounded "libXfixes"- , prelude.unbounded "libXxf86vm"- , prelude.lowerBound { name = "libxshmfence", lower = [ 1, 1 ] }- , prelude.lowerBound { name = "glproto", lower = [ 1, 4, 14 ] }- , prelude.lowerBound { name = "dri2proto", lower = [ 2, 8 ] }- , prelude.unbounded "libXrandr"- ]- , configureCommand =- prelude.configureWithFlags- [ "--enable-autotools"- , "--with-gallium-drivers=nouveau,swrast"- ]- }--let libXdamage =- mkXLibDeps- { name = "libXdamage"- , deps =- [ prelude.unbounded "libXfixes", prelude.unbounded "damageproto" ]- }--let libXfixes =- mkXLibDeps- { name = "libXfixes"- , deps =- [ prelude.unbounded "xproto"- , prelude.unbounded "fixesproto"- , prelude.unbounded "xextproto"- , prelude.unbounded "libX11"- ]- }--let libXxf86vm =- mkXLibDeps- { name = "libXxf86vm"- , deps =- [ prelude.unbounded "xproto"- , prelude.unbounded "libX11"- , prelude.unbounded "xextproto"- , prelude.unbounded "libXext"- , prelude.unbounded "xf86vidmodeproto"- ]- }--let libxshmfence =- mkXLibDeps- { name = "libxshmfence", deps = [ prelude.unbounded "xproto" ] }--let gnome-doc-utils =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeSimple "gnome-doc-utils" x- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "libxslt", lower = [ 1, 1, 8 ] }- , prelude.lowerBound { name = "libxml2", lower = [ 2, 6, 12 ] }- ]- , pkgBuildDeps =- [ prelude.lowerBound { name = "intltool", lower = [ 0, 35, 0 ] }- , prelude.unbounded "gettext"- , prelude.unbounded "python2"- ]- }--let itstool =- λ(v : List Natural)- → prelude.simplePackage { name = "itstool", version = v }- ⫽ { pkgUrl =- "http://files.itstool.org/itstool/itstool-${prelude.showVersion- v}.tar.bz2"- , pkgDeps = [ prelude.unbounded "libxml2" ]- }--let gexiv2 =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeNinja "gexiv2" x- ⫽ { pkgDeps = [ prelude.unbounded "exiv2", prelude.unbounded "glib" ]- , installCommand =- prelude.ninjaInstallWithPkgConfig- (prelude.mesonMoves [ "gexiv2.pc" ])- }--let exiv2 =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "exiv2", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "http://www.exiv2.org/builds/exiv2-${versionString}-Source.tar.gz"- , pkgSubdir = "exiv2-${versionString}-Source"- }--let libtiff =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.ninjaPackage { name = "libtiff", version = v }- ⫽ { pkgUrl =- "https://download.osgeo.org/libtiff/tiff-${versionString}.tar.gz"- , pkgSubdir = "tiff-${versionString}"- , configureCommand = prelude.cmakeConfigureNinja- , pkgBuildDeps =- [ prelude.unbounded "cmake", prelude.unbounded "ninja" ]- }--let nspr =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- let bitFlag =- λ(cfg : types.BuildVars)- → if prelude.isX64 (prelude.archCfg cfg)-- then [ "--enable-64bit" ]-- else [] : List Text-- in prelude.simplePackage { name = "nspr", version = v }- ⫽ { pkgUrl =- "https://archive.mozilla.org/pub/nspr/releases/v${versionString}/src/nspr-${versionString}.tar.gz"- , pkgSubdir = "nspr-${versionString}/nspr"- , configureCommand =- λ(cfg : types.BuildVars)- → prelude.configureWithFlags (bitFlag cfg) cfg- }--let libthai =- λ(v : List Natural)- → prelude.simplePackage { name = "libthai", version = v }- ⫽ { pkgUrl =- "https://linux.thai.net/pub/thailinux/software/libthai/libthai-${prelude.showVersion- v}.tar.xz"- , pkgDeps = [ prelude.unbounded "libdatrie" ]- }--let libdatrie =- λ(v : List Natural)- → prelude.simplePackage { name = "libdatrie", version = v }- ⫽ { pkgUrl =- "https://linux.thai.net/pub/thailinux/software/libthai/libdatrie-${prelude.showVersion- v}.tar.xz"- }--let joe =- λ(v : List Natural)- → prelude.simplePackage { name = "joe", version = v }- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/joe-editor/joe-${prelude.showVersion- v}.tar.gz"- , installCommand = prelude.installWithBinaries [ "bin/joe" ]- }--let fossil =- λ(v : List Natural)- → prelude.simplePackage { name = "fossil", version = v }- ⫽ { pkgUrl =- "https://fossil-scm.org/fossil/uv/fossil-src-${prelude.showVersion- v}.tar.gz"- , installCommand = prelude.installWithBinaries [ "bin/fossil" ]- , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "openssl" ]- }--let libcroco =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeSimple "libcroco" x- ⫽ { pkgDeps =- [ prelude.lowerBound { name = "glib", lower = [ 2, 0 ] }- , prelude.lowerBound { name = "libxml2", lower = [ 2, 4, 23 ] }- ]- }--let libsoup =- λ(x : { version : List Natural, patch : Natural })- → let libsoupCfgFile =- ''- option('gssapi',- type : 'boolean',- value : true,- description : 'Build with GSSAPI support'- )-- option('krb5_config',- type : 'string',- description : 'Where to look for krb5-config, path points to krb5-config installation (defaultly looking in PATH)'- )-- option('ntlm',- type : 'boolean',- value : false,- description : 'Build with NTLM support'- )-- option('tls_check',- type : 'boolean',- value : true,- description : 'Enable TLS support through glib-networking. If you are building a package, you can disable this to allow building libsoup anyway (since glib-networking is not actually required at compile time), but you should be sure to add a runtime dependency on it.'- )-- option('gnome',- type : 'boolean',- value : true,- description : 'Build libsoup with GNOME support'- )-- option('introspection',- type : 'boolean',- value : true,- description : 'Build GObject Introspection data'- )-- option('vapi',- type : 'boolean',- value : false,- description : 'Build Vala bindings'- )-- option('doc',- type: 'boolean',- value: false,- description: 'Enable generating the API reference'- )-- option('tests',- type: 'boolean',- value: true,- description: 'Enable unit tests compilation'- )- ''-- in mkGnomeNinja "libsoup" x- ⫽ { pkgDeps =- [ prelude.unbounded "glib"- , prelude.unbounded "sqlite"- , prelude.unbounded "libxml2"- , prelude.unbounded "libpsl"- , prelude.unbounded "krb5"- , prelude.unbounded "gobject-introspection"- ]- , pkgBuildDeps = [ prelude.unbounded "vala" ]- , configureCommand =- λ(cfg : types.BuildVars)- → [ prelude.writeFile- { file = "meson_options.txt"- , contents = libsoupCfgFile- }- ]- # prelude.mesonConfigure cfg- , installCommand =- prelude.ninjaInstallWithPkgConfig- (prelude.mesonMoves [ "libsoup-2.4.pc" ])- }--let libpsl =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libpsl", version = v }- ⫽ { pkgUrl =- "https://github.com/rockdaboot/libpsl/releases/download/libpsl-${versionString}/libpsl-${versionString}.tar.gz"- }--let krb5 =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "krb5", version = v }- ⫽ { pkgUrl =- "https://kerberos.org/dist/krb5/${versionString}/krb5-${versionString}.tar.gz"- , pkgSubdir = "krb5-${versionString}/src"- , pkgBuildDeps = [ prelude.unbounded "bison" ]- }--let vala =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeSimple "vala" x- ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ]- , pkgDeps =- [ prelude.lowerBound { name = "glib", lower = [ 2, 40, 0 ] }- , prelude.lowerBound { name = "graphviz", lower = [ 2, 15 ] }- ]- }--let htop =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "htop", version = v }- ⫽ { pkgUrl =- "https://hisham.hm/htop/releases/${versionString}/htop-${versionString}.tar.gz"- , pkgDeps = [ prelude.unbounded "ncurses" ]- , pkgBuildDeps = [ prelude.unbounded "python3" ]- , installCommand = prelude.installWithBinaries [ "bin/htop" ]- }--let mpfr =- λ(v : List Natural)- → prelude.simplePackage { name = "mpfr", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/mpfr/mpfr-${prelude.showVersion- v}.tar.xz"- }--let libsodium =- λ(v : List Natural)- → prelude.simplePackage { name = "libsodium", version = v }- ⫽ { pkgUrl =- "https://download.libsodium.org/libsodium/releases/libsodium-${prelude.showVersion- v}.tar.gz"- }--let libev =- λ(v : List Natural)- → prelude.simplePackage { name = "libev", version = v }- ⫽ { pkgUrl =- "http://dist.schmorp.de/libev/Attic/libev-${prelude.showVersion- v}.tar.gz"- }--let ctags =- λ(v : List Natural)- → prelude.simplePackage { name = "ctags", version = v }- ⫽ { pkgUrl =- "http://prdownloads.sourceforge.net/ctags/ctags-${prelude.showVersion- v}.tar.gz"- , installCommand = prelude.installWithBinaries [ "bin/ctags" ]- }--let tcc =- λ(v : List Natural)- → prelude.simplePackage { name = "tcc", version = v }- ⫽ { pkgUrl =- "http://download.savannah.gnu.org/releases/tinycc/tcc-${prelude.showVersion- v}.tar.bz2"- , pkgBuildDeps =- [ prelude.unbounded "perl", prelude.unbounded "texinfo" ]- , installCommand = prelude.installWithBinaries [ "bin/tcc" ]- }--let texinfo =- λ(v : List Natural)- → prelude.simplePackage { name = "texinfo", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/texinfo/texinfo-${prelude.showVersion- v}.tar.xz"- , configureCommand =- prelude.configureWithFlags [ "--disable-dependency-tracking" ]- }--let node =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "node", version = v }- ⫽ { pkgUrl =- "https://nodejs.org/dist/v${versionString}/node-v${versionString}.tar.gz"- , pkgSubdir = "node-v${versionString}"- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/node", "bin/npm" ] cfg- # [ prelude.mkExe- "${cfg.installDir}/lib/node_modules/npm/bin/npm-cli.js"- ]- }--let glu =- λ(v : List Natural)- → prelude.simplePackage { name = "glu", version = v }- ⫽ { pkgUrl =- "https://mesa.freedesktop.org/archive/glu/glu-${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "mesa" ]- }--let compositeproto = mkXProto "compositeproto"--let libXcomposite =- mkXLibDeps- { name = "libXcomposite"- , deps =- [ prelude.unbounded "libX11"- , prelude.lowerBound { name = "compositeproto", lower = [ 0, 4 ] }- , prelude.unbounded "libXfixes"- ]- }--let mosh =- λ(v : List Natural)- → prelude.simplePackage { name = "mosh", version = v }- ⫽ { pkgUrl = "https://mosh.org/mosh-${prelude.showVersion v}.tar.gz"- , pkgBuildDeps = [ prelude.unbounded "protobuf" ]- , pkgDeps =- [ prelude.unbounded "zlib"- , prelude.unbounded "protobuf"- , prelude.unbounded "openssl"- ]- , installCommand = prelude.installWithBinaries [ "bin/mosh" ]- }--let protobuf =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "protobuf", version = v }- ⫽ { pkgUrl =- "https://github.com/protocolbuffers/protobuf/releases/download/v${versionString}/protobuf-cpp-${versionString}.tar.gz"- , pkgSubdir = "protobuf-${versionString}"- }--let libcds =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libcds", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/libcds/cds-${prelude.showVersion- v}.tar.gz"- , pkgSubdir = "cds-${versionString}"- , pkgDeps = [ prelude.unbounded "libboost" ]- }--let libboost =- -- TODO: use bootstrap.bat on windows- let boostConfigure =- λ(cfg : types.BuildVars)- → [ prelude.call- (prelude.defaultCall ⫽ { program = "./bootstrap.sh" })- ]-- let boostInstall =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "./b2"- , arguments =- [ "install"- , "--prefix=${cfg.installDir}"- , "--without-python"- ]- }- )- ]-- in λ(v : List Natural)- → let versionString = prelude.underscoreVersion v-- in prelude.simplePackage { name = "libboost", version = v }- ⫽ { pkgUrl =- "https://dl.bintray.com/boostorg/release/${prelude.showVersion- v}/source/boost_${versionString}.tar.bz2"- , pkgSubdir = "boost_${versionString}"- , configureCommand = boostConfigure- , buildCommand = prelude.doNothing- , installCommand = boostInstall- }--let slowBuild =- λ(cfg : types.BuildVars)- → [ prelude.call- { program = "cmake"- , arguments =- [ "--build", ".", "--config", "Release", "--", "-j", "2" ]- , environment = prelude.defaultEnv- , procDir = Some "build"- }- ]--let clang =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "clang", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "http://releases.llvm.org/${versionString}/cfe-${versionString}.src.tar.xz"- , pkgSubdir = "cfe-${versionString}.src"- , buildCommand = slowBuild- , pkgDeps = [ prelude.unbounded "llvm" ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.cmakeInstall cfg- # [ prelude.symlinkBinary "bin/clang"- , prelude.symlinkBinary "bin/clang-format"- ]- }--let llvm =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "llvm", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "http://releases.llvm.org/${versionString}/llvm-${versionString}.src.tar.xz"- , pkgSubdir = "llvm-${versionString}.src"- , buildCommand = slowBuild- }--let pari =- λ(v : List Natural)- → prelude.simplePackage { name = "pari", version = v }- ⫽ { pkgUrl =- "http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-${prelude.showVersion- v}.tar.gz"- , configureCommand =- prelude.generalConfigure- prelude.configSome- "Configure"- ([] : List Text)- ([] : List Text)- }--let pdfgrep =- λ(v : List Natural)- → prelude.simplePackage { name = "pdfgrep", version = v }- ⫽ { pkgUrl =- "https://pdfgrep.org/download/pdfgrep-${prelude.showVersion- v}.tar.gz"- , pkgDeps =- [ prelude.unbounded "poppler", prelude.unbounded "libgcrypt" ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithWrappers [ "pdfgrep" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/pdfgrep.1", section = 1 } ]- }--let mpc =- λ(v : List Natural)- → prelude.simplePackage { name = "mpc", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/mpc/mpc-${prelude.showVersion v}.tar.gz"- , pkgDeps = [ prelude.unbounded "mpfr" ]- }--let gcc =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "gcc", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/gcc/gcc-${versionString}/gcc-${versionString}.tar.xz"- , configureCommand =- λ(cfg : types.BuildVars)- → [ prelude.call- { program = "contrib/download_prerequisites"- , arguments = [] : List Text- , environment = None (List types.EnvVar)- , procDir = None Text- }- ]- # prelude.configureWithFlags [ "--disable-multilib" ] cfg- , 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"- ]- }--let ruby =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.simplePackage- { name = "ruby", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "https://cache.ruby-lang.org/pub/ruby/${versionString}/ruby-${fullVersion}.tar.gz"- , installCommand =- prelude.installWithBinaries [ "bin/ruby", "bin/gem" ]- , pkgDeps =- [ prelude.unbounded "readline", prelude.unbounded "openssl" ]- }--let poppler =- λ(v : List Natural)- → prelude.simplePackage { name = "poppler", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "https://poppler.freedesktop.org/poppler-${prelude.showVersion- v}.tar.xz"- , 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"- ]- , installCommand =- λ(cfg : types.BuildVars)- → prelude.cmakeInstall cfg- # prelude.mkLDPathWrappers- cfg- [ "pdfdetach"- , "pdffonts"- , "pdfimages"- , "pdfinfo"- , "pdfseparate"- , "pdfsig"- , "pdftocairo"- , "pdftohtml"- , "pdftoppm"- , "pdftops"- , "pdftotext"- , "pdfunite"- ]- }--let tesseract =- λ(v : List Natural)- → prelude.simplePackage { name = "tesseract", version = v }- ⫽ { pkgUrl =- "https://github.com/tesseract-ocr/tesseract/archive/${prelude.showVersion- v}.tar.gz"- , pkgDeps =- [ prelude.lowerBound { name = "leptonica", lower = [ 1, 74 ] } ]- , pkgBuildDeps =- [ prelude.unbounded "libtool"- , prelude.unbounded "automake"- , prelude.unbounded "pkg-config"- ]- , configureCommand = prelude.autogenConfigure- , installCommand = prelude.installWithBinaries [ "bin/tesseract" ]- }--let leptonica =- λ(v : List Natural)- → prelude.simplePackage { name = "leptonica", version = v }- ⫽ { pkgUrl =- "http://leptonica.org/source/leptonica-${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "zlib" ]- }--let grep =- λ(v : List Natural) → prelude.makeGnuExe { name = "grep", version = v }--let phash =- λ(v : List Natural)- → prelude.simplePackage { name = "pHash", version = v }- ⫽ { pkgUrl =- "http://phash.org/releases/pHash-${prelude.showVersion v}.tar.gz"- , pkgDeps =- [ prelude.lowerBound { name = "CImg", lower = [ 1, 3 ] }- , prelude.unbounded "ffmpeg"- , prelude.unbounded "libsndfile"- , prelude.unbounded "libsamplerate"- , prelude.unbounded "mpg123"- , prelude.unbounded "libjpeg-turbo"- , prelude.unbounded "libpng"- , prelude.unbounded "fftw"- ]- , pkgBuildDeps =- [ prelude.unbounded "autoconf"- , prelude.unbounded "automake"- , prelude.unbounded "grep"- , prelude.unbounded "coreutils"- , prelude.unbounded "sed"- , prelude.unbounded "libtool"- ]- , configureCommand =- λ(cfg : types.BuildVars)- → [ prelude.patch- ./patches/pHash.patch sha256:d442c0bb6c66893badf8642d8c8123026f21e78513f91af422c4d4ee70a28d50 as Text- , prelude.call- { program = "autoreconf"- , arguments = [ "-i" ]- , environment = Some- [ { var = "PATH"- , value = prelude.mkPathVar cfg.binDirs- }- , prelude.mkAclocalPath cfg.shareDirs- ]- , procDir = None Text- }- ]- # prelude.defaultConfigure cfg- }--let cimg =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "CImg", version = v }- ⫽ { pkgUrl = "http://cimg.eu/files/CImg_${versionString}.zip"- , pkgBuildDeps = [] : List types.Dep- , configureCommand = prelude.doNothing- , buildCommand = prelude.doNothing- , installCommand =- λ(_ : types.BuildVars)- → [ prelude.copyFile "CImg.h" "include/CImg.h" ]- }--let ffmpeg =- λ(v : List Natural)- → prelude.simplePackage { name = "ffmpeg", version = v }- ⫽ { pkgUrl =- "https://ffmpeg.org/releases/ffmpeg-${prelude.showVersion- v}.tar.bz2"- , pkgBuildDeps = [ prelude.unbounded "nasm" ]- , configureCommand =- prelude.configureWithFlags- [ "--enable-shared"- , "--enable-libmp3lame"- , "--enable-gpl"- , "--enable-version3"- , "--enable-nonfree"- , "--disable-debug"- , "--enable-libass"- , "--enable-libfreetype"- , "--enable-libvorbis"- , "--enable-avresample"- , "--enable-gnutls"- , "--enable-libvpx"- , "--enable-libfdk-aac"- ]- , installCommand = prelude.installWithWrappers [ "ffmpeg" ]- , pkgDeps =- [ prelude.unbounded "bzip2"- , prelude.unbounded "libmp3lame"- , prelude.unbounded "libass"- , prelude.unbounded "freetype"- , prelude.unbounded "libvorbis"- , prelude.unbounded "gnutls"- , prelude.unbounded "libvpx"- , prelude.unbounded "fdk-aac"- ]- }--let libsndfile =- λ(v : List Natural)- → prelude.simplePackage { name = "libsndfile", version = v }- ⫽ { pkgUrl =- "http://www.mega-nerd.com/libsndfile/files/libsndfile-${prelude.showVersion- v}.tar.gz"- }--let libsamplerate =- λ(v : List Natural)- → prelude.simplePackage { name = "libsamplerate", version = v }- ⫽ { pkgUrl =- "http://www.mega-nerd.com/SRC/libsamplerate-${prelude.showVersion- v}.tar.gz"- }--let mpg123 =- λ(v : List Natural)- → prelude.simplePackage { name = "mpg123", version = v }- ⫽ { pkgUrl =- "http://www.mpg123.de/download/mpg123-${prelude.showVersion- v}.tar.bz2"- }--let time =- λ(v : List Natural)- → prelude.makeGnuExe { name = "time", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/time/time-${prelude.showVersion- v}.tar.gz"- }--let make =- λ(v : List Natural)- → prelude.makeGnuExe { name = "make", version = v }- ⫽ { pkgUrl =- "https://ftp.wayne.edu/gnu/make/make-${prelude.showVersion- v}.tar.bz2"- , configureCommand =- prelude.configureWithPatch- ./patches/make.patch sha256:56f3260d302d1ecd0173ab6e5ccc0e4806fb8f0bc6aa68a1d7ef4fca77d85572 as Text- , buildCommand =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "sh"- , arguments = [ "build.sh" ]- , environment = Some (prelude.buildEnv cfg)- }- )- ]- , installCommand =- λ(_ : types.BuildVars)- → [ prelude.copyFile "make" "bin/make"- , prelude.symlinkBinary "bin/make"- ]- , pkgBuildDeps = [ prelude.unbounded "patch" ]- }--let mercury =- let mercuryBuild =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "make"- , arguments = [ "PARALLEL=-j${Natural/show cfg.cpus}" ]- , environment = Some (prelude.buildEnv cfg)- }- )- ]-- let mercuryCommon =- { pkgUrl =- "http://dl.mercurylang.org/release/mercury-srcdist-14.01.1.tar.gz"- , pkgSubdir = "mercury-srcdist-14.01.1"- , buildCommand = mercuryBuild- }-- in prelude.simplePackage { name = "mercury", version = [ 14, 1, 1 ] }- ⫽ mercuryCommon- ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ] }--let qt =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.simplePackage- { name = "qt", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "https://download.qt.io/archive/qt/${versionString}/${fullVersion}/single/qt-everywhere-src-${fullVersion}.tar.xz"- , pkgSubdir = "qt-everywhere-src-${fullVersion}"- , pkgBuildDeps =- [ prelude.unbounded "flex"- , prelude.unbounded "bison"- , prelude.unbounded "pkg-config"- , prelude.unbounded "gperf"- , prelude.unbounded "perl"- , prelude.unbounded "python2"- , prelude.unbounded "git"- ]- , pkgDeps =- [ prelude.unbounded "fontconfig"- , prelude.unbounded "mesa"- , prelude.unbounded "dbus"- , prelude.unbounded "freetype"- , prelude.unbounded "harfbuzz"- , prelude.unbounded "libjpeg-turbo"- , prelude.unbounded "libpng"- , prelude.unbounded "giflib"- , prelude.unbounded "glib"- ]- }--let lz4 =- λ(v : List Natural)- → prelude.simplePackage { name = "lz4", version = v }- ⫽ { pkgUrl =- "https://github.com/lz4/lz4/archive/v${prelude.showVersion- v}.tar.gz"- , configureCommand = prelude.doNothing- , installCommand =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "make"- , arguments =- [ "PREFIX=${cfg.installDir}", "install" ]- , environment = Some (prelude.buildEnv cfg)- }- )- , prelude.symlinkBinary "bin/lz4"- ]- # prelude.symlinkManpages- [ { file = "share/man/man1/lz4.1", section = 1 } ]- }--let fftw =- λ(v : List Natural)- → prelude.simplePackage { name = "fftw", version = v }- ⫽ { pkgUrl = "http://www.fftw.org/fftw-${prelude.showVersion v}.tar.gz"- , configureCommand =- prelude.configureWithFlags- [ "--enable-shared"- , "--enable-threads"- , "--with-combined-threads"- ]- }--let icu-le-hb =- λ(v : List Natural)- → prelude.simplePackage { name = "icu-le-hb", version = v }- ⫽ { pkgUrl =- "https://github.com/harfbuzz/icu-le-hb/archive/${prelude.showVersion- v}.tar.gz"- , configureCommand = prelude.autogenConfigure- , pkgDeps = [ prelude.unbounded "harfbuzz", prelude.unbounded "icu" ]- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- }--let icu =- λ(v : List Natural)- → prelude.simplePackage { name = "icu", version = v }- ⫽ { pkgUrl =- "http://download.icu-project.org/files/icu4c/${prelude.showVersion- v}/icu4c-${prelude.underscoreVersion- v}-src.tgz"- , pkgSubdir = "icu/source"- , pkgBuildDeps =- [ prelude.lowerBound { name = "make", lower = [ 3, 80 ] }- , prelude.unbounded "python3"- ]- }--let opencv =- λ(v : List Natural)- → prelude.simplePackage { name = "opencv", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "https://github.com/opencv/opencv/archive/${prelude.showVersion- v}.zip"- , pkgBuildDeps =- [ prelude.lowerBound { name = "cmake", lower = [ 2, 8, 7 ] }- , prelude.unbounded "pkg-config"- , prelude.unbounded "python2"- ]- , pkgDeps =- [ prelude.unbounded "zlib"- , prelude.unbounded "libjpeg-turbo"- , prelude.unbounded "libpng"- , prelude.unbounded "gtk3"- , prelude.unbounded "ffmpeg"- ]- }--let libraw =- λ(v : List Natural)- → prelude.simplePackage { name = "libraw", version = v }- ⫽ { pkgUrl =- "https://www.libraw.org/data/LibRaw-${prelude.showVersion- v}.tar.gz"- , pkgSubdir = "LibRaw-${prelude.showVersion v}"- }--let quazip =- λ(v : List Natural)- → prelude.simplePackage { name = "quazip", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "https://github.com/stachenov/quazip/archive/v${prelude.showVersion- v}.tar.gz"- , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "qt" ]- }--let eigen =- λ(v : List Natural)- → prelude.simplePackage { name = "eigen", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "http://bitbucket.org/eigen/eigen/get/${prelude.showVersion- v}.tar.bz2"- , pkgSubdir = "eigen-eigen-323c052e1731"- }--let blas =- λ(v : List Natural)- → prelude.simplePackage { name = "blas", version = v }- ⫽ { pkgUrl =- "http://www.netlib.org/blas/blas-${prelude.showVersion v}.tgz"- , pkgSubdir = "BLAS-${prelude.showVersion v}"- , pkgBuildDeps = [ prelude.unbounded "gcc" ]- , configureCommand = prelude.doNothing- , installCommand =- λ(_ : types.BuildVars)- → [ prelude.copyFile "blas_LINUX.a" "lib/blas.a" ]- }--let openblas =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "openblas", version = v }- ⫽ { pkgUrl =- "https://github.com/xianyi/OpenBLAS/archive/v${versionString}.tar.gz"- , pkgSubdir = "OpenBLAS-${versionString}"- , pkgBuildDeps = [ prelude.unbounded "gcc" ]- , pkgDeps = [ prelude.unbounded "gcc" ]- , configureCommand = prelude.doNothing- , installCommand = prelude.installPrefix- }--let r =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "r", version = v }- ⫽ { pkgUrl =- "https://cran.r-project.org/src/base/R-4/R-${versionString}.tar.gz"- , pkgSubdir = "R-${versionString}"- , pkgDeps =- [ prelude.unbounded "readline"- , prelude.unbounded "libXt"- , prelude.unbounded "pcre"- ]- , pkgBuildDeps = [ prelude.unbounded "gcc" ]- , installCommand =- prelude.installWithBinaries [ "bin/R", "bin/Rscript" ]- }--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" ]- }--let glib-networking =- λ(x : { version : List Natural, patch : Natural })- → let versionString = prelude.showVersion x.version-- let fullVersion = versionString ++ "." ++ Natural/show x.patch-- in prelude.ninjaPackage- { name = "glib-networking", version = prelude.fullVersion x }- ⫽ { pkgUrl =- "http://ftp.gnome.org/pub/gnome/sources/glib-networking/${versionString}/glib-networking-${fullVersion}.tar.xz"- , pkgBuildDeps =- [ prelude.unbounded "pkg-config", prelude.unbounded "gettext" ]- , pkgDeps =- [ prelude.unbounded "glib", prelude.unbounded "gnutls" ]- }--let libwebp =- λ(v : List Natural)- → prelude.simplePackage { name = "libwebp", version = v }- ⫽ { pkgUrl =- "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${prelude.showVersion- v}.tar.gz"- }--let rustc =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "rustc", version = v }- ⫽ { pkgUrl =- "https://static.rust-lang.org/dist/rust-${versionString}-x86_64-unknown-linux-gnu.tar.gz"- , pkgSubdir = "rust-${versionString}-x86_64-unknown-linux-gnu"- , configureCommand = prelude.doNothing- , buildCommand = prelude.doNothing- , installCommand =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "./install.sh"- , arguments =- [ "--prefix=${cfg.installDir}"- , "--disable-ldconfig"- ]- }- )- ]- }--let librsvg =- λ(x : { version : List Natural, patch : Natural })- → mkGnomeSimple "librsvg" x- ⫽ { pkgBuildDeps =- [ prelude.lowerBound { name = "rustc", lower = [ 1, 16, 0 ] }- , prelude.unbounded "pkg-config"- ]- , pkgDeps =- [ prelude.lowerBound { name = "cairo", lower = [ 1, 16, 0 ] }- , prelude.lowerBound { name = "libxml2", lower = [ 2, 9, 0 ] }- , prelude.lowerBound { name = "libcroco", lower = [ 0, 6, 1 ] }- , prelude.unbounded "pango"- , prelude.lowerBound { name = "gdk-pixbuf", lower = [ 2, 20 ] }- , prelude.unbounded "gobject-introspection"- , prelude.lowerBound { name = "glib", lower = [ 2, 10, 0 ] }- ]- }--let ats =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in let atsBuild =- λ(cfg : types.BuildVars)- → let buildDir =- cfg.currentDir- ++ "/ATS2-Postiats-gmp-${versionString}"-- in [ prelude.call- ( prelude.defaultCall- ⫽ { program = prelude.makeExe cfg.buildOS- , arguments =- [ "CFLAGS=${( prelude.mkCFlags cfg- ).value} -I${buildDir}/src/CBOOT/ccomp/runtime -I${buildDir}/src/CBOOT"- , "LDFLAGS='${( prelude.mkLDFlags- cfg.linkDirs- cfg- ).value}'"- ]- , environment = Some (prelude.buildEnv cfg)- }- )- ]-- in prelude.simplePackage { name = "ats", version = v }- ⫽ { pkgUrl =- "http://ats-lang.sourceforge.net/IMPLEMENT/Postiats/ATS2-Postiats-gmp-${versionString}.tgz"- , pkgSubdir = "ATS2-Postiats-gmp-${versionString}"- , pkgDeps = [ prelude.unbounded "gmp" ]- , buildCommand = atsBuild- , installCommand =- prelude.installWithBinaries- [ "bin/patsopt", "bin/patscc" ]- }--let libiconv =- λ(v : List Natural)- → prelude.simplePackage { name = "libiconv", version = v }- ⫽ { pkgUrl =- "https://ftp.wayne.edu/gnu/libiconv/libiconv-${prelude.showVersion- v}.tar.gz"- }--let libav =- λ(v : List Natural)- → prelude.simplePackage { name = "libav", version = v }- ⫽ { pkgUrl =- "https://libav.org/releases/libav-${prelude.showVersion v}.tar.xz"- , pkgBuildDeps =- [ prelude.unbounded "nasm", prelude.unbounded "perl" ]- , installCommand =- prelude.installWithBinaries [ "bin/avconv", "bin/avprobe" ]- }--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"- }--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"- }--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)- , pkgBuildDeps =- [ prelude.unbounded "coreutils"- , prelude.unbounded "sed"- , prelude.unbounded "gcc"- , prelude.unbounded "binutils"- , prelude.unbounded "grep"- , prelude.unbounded "findutils"- ]- }--let bash =- λ(v : List Natural)- → prelude.simplePackage { name = "bash", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/gnu/bash/bash-${prelude.showVersion- v}.tar.gz"- }--let findutils =- λ(v : List Natural)- → prelude.simplePackage { name = "findutils", version = v }- ⫽ { pkgUrl =- "https://ftp.gnu.org/pub/gnu/findutils/findutils-${prelude.showVersion- v}.tar.xz"- }--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- }--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"- }--let lzip =- λ(v : List Natural)- → prelude.simplePackage { name = "lzip", version = v }- ⫽ { pkgUrl =- "http://download.savannah.gnu.org/releases/lzip/lzip-${prelude.showVersion- v}.tar.lz"- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/lzip" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/lzip.1", section = 1 } ]- }--let clzip =- λ(v : List Natural)- → prelude.simplePackage { name = "clzip", version = v }- ⫽ { pkgUrl =- "http://download.savannah.gnu.org/releases/lzip/clzip/clzip-${prelude.showVersion- v}.tar.lz"- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/clzip" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/clzip.1", section = 1 } ]- }--let lunzip =- λ(v : List Natural)- → prelude.simplePackage { name = "lunzip", version = v }- ⫽ { pkgUrl =- "http://download.savannah.gnu.org/releases/lzip/lunzip/lunzip-${prelude.showVersion- v}.tar.lz"- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/lunzip" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/lunzip.1", section = 1 } ]- }--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.lz"- , configureCommand = prelude.configureWithFlags [ "--enable-shared" ]- }--let lziprecover =- λ(v : List Natural)- → prelude.simplePackage { name = "lziprecover", version = v }- ⫽ { pkgUrl =- "http://download.savannah.gnu.org/releases/lzip/lziprecover/lziprecover-${prelude.showVersion- v}.tar.lz"- , installCommand = prelude.installWithBinaries [ "bin/lziprecover" ]- }--let libmp3lame =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libmp3lame", version = v }- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/lame/lame-${versionString}.tar.gz"- , pkgSubdir = "lame-${versionString}"- }--let libass =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libass", version = v }- ⫽ { pkgUrl =- "https://github.com/libass/libass/releases/download/${versionString}/libass-${versionString}.tar.xz"- , pkgBuildDeps = [ prelude.unbounded "nasm" ]- , pkgDeps =- [ prelude.lowerBound { name = "freetype", lower = [ 9, 10, 3 ] }- , prelude.lowerBound { name = "fribidi", lower = [ 0, 19, 0 ] }- , prelude.lowerBound { name = "harfbuzz", lower = [ 0, 9, 5 ] }- , prelude.lowerBound- { name = "fontconfig", lower = [ 2, 10, 92 ] }- ]- }--let libogg =- λ(v : List Natural)- → prelude.simplePackage { name = "libogg", version = v }- ⫽ { pkgUrl =- "https://downloads.xiph.org/releases/ogg/libogg-${prelude.showVersion- v}.tar.xz"- }--let libvorbis =- λ(v : List Natural)- → prelude.simplePackage { name = "libvorbis", version = v }- ⫽ { pkgUrl =- "https://downloads.xiph.org/releases/vorbis/libvorbis-${prelude.showVersion- v}.tar.xz"- , pkgDeps = [ prelude.unbounded "libogg" ]- }--let libvpx =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "libvpx", version = v }- ⫽ { pkgUrl =- "https://github.com/webmproject/libvpx/archive/v${versionString}/libvpx-${versionString}.tar.gz"- , pkgBuildDeps =- [ prelude.unbounded "nasm", prelude.unbounded "perl" ]- }--let fdk-aac =- λ(v : List Natural)- → prelude.simplePackage { name = "fdk-aac", version = v }- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/opencore-amr/fdk-aac-${prelude.showVersion- v}.tar.gz"- }--let swi-prolog =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.ninjaPackage { name = "swi-prolog", version = v }- ⫽ { pkgUrl =- "https://www.swi-prolog.org/download/stable/src/swipl-${versionString}.tar.gz"- , configureCommand = prelude.cmakeConfigureNinja- , pkgBuildDeps =- [ prelude.unbounded "cmake"- , prelude.unbounded "ninja"- , prelude.unbounded "coreutils"- ]- , pkgSubdir = "swipl-${versionString}"- }--let exiftool =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "exiftool", version = v }- ⫽ { pkgUrl =- "https://sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-${versionString}.tar.gz"- , pkgSubdir = "Image-ExifTool-${versionString}"- , configureCommand = prelude.perlConfigure- , installCommand =- λ(cfg : types.BuildVars)- → let perlWrapper =- "PERL5LIB=${cfg.installDir}/lib/site_perl/5.30.0/ ${cfg.installDir}/bin/exiftool \$@"-- let wrapped = "wrapper/exiftool"-- in prelude.defaultInstall cfg- # [ prelude.createDir "wrapper"- , prelude.writeFile- { file = wrapped, contents = perlWrapper }- , prelude.mkExe wrapped- , prelude.copyFile wrapped wrapped- , prelude.symlinkBinary wrapped- ]- , pkgBuildDeps = [ prelude.unbounded "perl" ]- }--let subversion =- λ(v : List Natural)- → prelude.simplePackage { name = "subversion", version = v }- ⫽ { pkgUrl =- "https://www-eu.apache.org/dist/subversion/subversion-${prelude.showVersion- v}.tar.bz2"- , pkgDeps =- [ prelude.unbounded "apr"- , prelude.unbounded "apr-util"- , prelude.unbounded "sqlite"- , prelude.unbounded "lz4"- , prelude.unbounded "zlib"- , prelude.unbounded "utf8proc"- ]- , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]- , installCommand = prelude.installWithBinaries [ "bin/svn" ]- }--let utf8proc =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "utf8proc", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "https://github.com/JuliaStrings/utf8proc/archive/v${versionString}.tar.gz"- }--let apr =- λ(v : List Natural)- → prelude.simplePackage { name = "apr", version = v }- ⫽ { pkgUrl =- "https://www-eu.apache.org/dist/apr/apr-${prelude.showVersion- v}.tar.bz2"- }--let apr-util =- λ(v : List Natural)- → prelude.simplePackage { name = "apr-util", version = v }- ⫽ { pkgUrl =- "https://www-eu.apache.org/dist/apr/apr-util-${prelude.showVersion- v}.tar.bz2"- , pkgDeps = [ prelude.unbounded "apr" ]- , configureCommand =- λ(cfg : types.BuildVars)- → prelude.configureWithFlags- [ "--with-apr=${concat cfg.linkDirs}/../" ]- cfg- }--let libsass =- λ(v : List Natural)- → prelude.simplePackage { name = "libsass", version = v }- ⫽ { pkgUrl =- "https://github.com/sass/libsass/archive/${prelude.showVersion- v}.tar.gz"- , pkgBuildDeps =- [ prelude.unbounded "autoconf"- , prelude.unbounded "automake"- , prelude.unbounded "m4"- , prelude.unbounded "grep"- , prelude.unbounded "sed"- , prelude.unbounded "coreutils"- , prelude.unbounded "libtool"- ]- , configureCommand =- λ(cfg : types.BuildVars)- → [ prelude.call- { program = "autoreconf"- , arguments = [ "-i" ]- , environment = Some- [ { var = "PATH"- , value = prelude.mkPathVar cfg.binDirs- }- , prelude.mkAclocalPath cfg.shareDirs- ]- , procDir = None Text- }- ]- # prelude.defaultConfigure cfg- }--let zstd =- λ(v : List Natural)- → let versionString = prelude.showVersion v-- in prelude.simplePackage { name = "zstd", version = v }- ⫽ prelude.cmakePackage- ⫽ { pkgUrl =- "https://github.com/facebook/zstd/releases/download/v${versionString}/zstd-${versionString}.tar.zst"- , pkgSubdir = "zstd-${versionString}/build/cmake"- , installCommand =- λ(cfg : types.BuildVars)- → prelude.cmakeInstall cfg- # [ prelude.symlinkBinary "bin/zstd" ]- # prelude.symlinkManpages- [ { file = "share/man/man1/zstd.1", section = 1 } ]- }--let luarocks =- λ(v : List Natural)- → prelude.simplePackage { name = "luarocks", version = v }- ⫽ { pkgUrl =- "http://luarocks.org/releases/luarocks-${prelude.showVersion- v}.tar.gz"- , pkgBuildDeps = [ prelude.unbounded "lua" ]- , 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 }- ]- }--let smake =- λ(v : List Natural)- → prelude.simplePackage { name = "smake", version = v }- ⫽ { pkgUrl =- "https://downloads.sourceforge.net/s-make/smake-${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/smake"- ]- # prelude.symlinkManpages- [ { file = "opt/schily/share/man/man1/smake.1"- , section = 1- }- , { file = "opt/schily/share/man/man5/makefiles.5"- , section = 5- }- , { file = "opt/schily/share/man/man5/makerules.5"- , section = 5- }- ]- }--let busybox =- λ(v : List Natural)- → prelude.simplePackage { name = "busybox", version = v }- ⫽ { pkgUrl =- "https://www.busybox.net/downloads/busybox-${prelude.showVersion- v}.tar.bz2"- , configureCommand =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "make"- , arguments = [ "defconfig" ]- , environment = Some (prelude.buildEnv cfg)- }- )- ]- , installCommand =- λ(cfg : types.BuildVars)- → [ prelude.call- ( prelude.defaultCall- ⫽ { program = "make"- , arguments =- [ "CONFIG_PREFIX=${cfg.installDir}", "install" ]- , environment = Some (prelude.buildEnv cfg)- }- )- , prelude.symlinkBinary "bin/busybox"- ]- }--let tarlz =- λ(v : List Natural)- → prelude.simplePackage { name = "tarlz", version = v }- ⫽ { pkgUrl =- "http://download.savannah.gnu.org/releases/lzip/tarlz/tarlz-${prelude.showVersion- v}.tar.lz"- , installCommand =- λ(cfg : types.BuildVars)- → prelude.installWithBinaries [ "bin/tarlz" ] cfg- # prelude.symlinkManpages- [ { file = "share/man/man1/tarlz.1", section = 1 } ]- }--in [ alsa-lib [ 1, 1, 9 ]- , apr [ 1, 7, 0 ]- , apr-util [ 1, 6, 1 ]- , at-spi-atk { version = [ 2, 33 ], patch = 2 }- , at-spi-core { version = [ 2, 33 ], patch = 2 }- , atk { version = [ 2, 36 ], patch = 0 }- , ats [ 0, 4, 0 ]- , autoconf [ 2, 69 ]- , automake [ 1, 16, 2 ]- , babl { version = [ 0, 1 ], patch = 68 }- , bash [ 5, 0, 17 ]- , bash-completion [ 2, 9 ]- , binutils [ 2, 33, 1 ]- , bison [ 3, 5 ]- , blas [ 3, 8, 0 ]- , busybox [ 1, 31, 1 ]- , bzip2 [ 1, 0, 8 ]- , cairo [ 1, 16, 0 ]- , chickenScheme [ 5, 0, 0 ]- , cimg [ 2, 7, 0 ]- , clang [ 9, 0, 0 ]- , clzip [ 1, 11 ]- , cmake { version = [ 3, 17 ], patch = 2 }- , cmark [ 0, 29, 0 ]- , compositeproto [ 0, 4 ]- , coreutils [ 8, 31 ]- , ctags [ 5, 8 ]- , curl [ 7, 66, 0 ]- , damageproto [ 1, 2, 1 ]- , dbus [ 1, 13, 12 ]- , diffutils [ 3, 7 ]- , dri2proto [ 2, 8 ]- , eigen [ 3, 3, 7 ]- , elfutils [ 0, 177 ]- , emacs [ 26, 3 ]- , exiftool [ 11, 65 ]- , exiv2 [ 0, 27, 1 ]- , expat [ 2, 2, 9 ]- , fdk-aac [ 2, 0, 1 ]- , feh [ 3, 2, 1 ]- , ffmpeg [ 4, 2, 2 ]- , fftw [ 3, 3, 8 ]- , findutils [ 4, 7, 0 ]- , fixesproto [ 5, 0 ]- , fontconfig [ 2, 13, 1 ]- , fossil [ 2, 10 ]- , flex [ 2, 6, 3 ]- , fltk [ 1, 3, 5 ]- , freetype-prebuild [ 2, 10, 1 ]- , freetype [ 2, 10, 1 ]- , fribidi [ 1, 0, 9 ]- , gawk [ 5, 0, 1 ]- , gc [ 8, 0, 4 ]- , gcc [ 10, 1, 0 ]- , gdb [ 8, 3, 1 ]- , gdk-pixbuf { version = [ 2, 38 ], patch = 1 }- , gegl { version = [ 0, 4 ], patch = 16 }- , gettext [ 0, 20, 2 ]- , gexiv2 { version = [ 0, 12 ], patch = 0 }- , ghc [ 8, 8, 3 ]- , gperf [ 3, 1 ]- , gperftools [ 2, 7 ]- , giflib [ 5, 1, 4 ]- , git [ 2, 26, 2 ]- , glib { version = [ 2, 64 ], patch = 2 }- , glib-networking { version = [ 2, 61 ], patch = 2 }- , glproto [ 1, 4, 17 ]- , glu [ 9, 0, 0 ]- , json-glib { version = [ 1, 4 ], patch = 4 }- , glibc [ 2, 30 ]- , gmp [ 6, 2, 0 ]- , gobject-introspection { version = [ 1, 62 ], patch = 0 }- , gnome-doc-utils { version = [ 0, 20 ], patch = 10 }- , gnupg [ 2, 2, 20 ]- , gnutls { version = [ 3, 6 ], patch = [ 13 ] }- , graphviz [ 2, 40, 1 ]- , grep [ 3, 3 ]- , gsl [ 2, 6 ]- , gtk2 { version = [ 2, 24 ], patch = 32 }- , gtk3 { version = [ 3, 24 ], patch = 18 }- , gzip [ 1, 10 ]- , harfbuzz [ 2, 6, 4 ]- , htop [ 2, 2, 0 ]- , hugs- , icu [ 64, 2 ]- , icu-le-hb [ 1, 0, 3 ]- , imageMagick [ 7, 0, 8 ]- , imlib2 [ 1, 5, 1 ]- , inputproto [ 2, 3, 2 ]- , intltool [ 0, 51, 0 ]- , itstool [ 2, 0, 6 ]- , jemalloc [ 5, 2, 1 ]- , joe [ 4, 6 ]- , json-c { version = [ 0, 13, 1 ], dateStr = "20180305" }- , kbproto [ 1, 0, 7 ]- , krb5 [ 1, 18 ]- , lapack [ 3, 8, 0 ]- , lcms2 [ 2, 9 ]- , leptonica [ 1, 78, 0 ]- , libarchive [ 3, 4, 2 ]- , libass [ 0, 14, 0 ]- , libassuan [ 2, 5, 3 ]- , libatomic_ops [ 7, 6, 10 ]- , libav [ 12, 3 ]- , libboost [ 1, 72, 0 ]- , libcds [ 2, 3, 2 ]- , libcroco { version = [ 0, 6 ], patch = 12 }- , libdatrie [ 0, 2, 12 ]- , libdrm [ 2, 4, 96 ]- , libepoxy [ 1, 5, 3 ]- , libev [ 4, 25 ]- , libevent [ 2, 1, 10 ]- , libexif [ 0, 6, 21 ]- , libffi [ 3, 3 ]- , libgcrypt [ 1, 8, 5 ]- , libglade { version = [ 2, 6 ], patch = 4 }- , libgpgError [ 1, 37 ]- , libICE [ 1, 0, 9 ]- , libiconv [ 1, 16 ]- , libjpeg [ 9 ]- , libjpeg-turbo [ 2, 0, 4 ]- , libksba [ 1, 3, 5 ]- , libmp3lame [ 3, 100 ]- , libmypaint [ 1, 3, 0 ]- , libnettle [ 3, 5, 1 ]- , libogg [ 1, 3, 4 ]- , libopenjpeg [ 2, 3, 1 ]- , libotf [ 0, 9, 16 ]- , libpciaccess [ 0, 14 ]- , libpng [ 1, 6, 37 ]- , libpsl [ 0, 21, 0 ]- , libpthread-stubs [ 0, 4 ]- , libraw [ 0, 19, 2 ]- , librsvg { version = [ 2, 48 ], patch = 4 }- , libsamplerate [ 0, 1, 9 ]- , libsass [ 3, 6, 2 ]- , libselinux [ 3, 0 ]- , libsndfile [ 1, 0, 28 ]- , libsepol [ 3, 0 ]- , libsodium [ 1, 0, 17 ]- , libsoup { version = [ 2, 67 ], patch = 3 }- , libspng [ 0, 5, 0 ]- , libssh2 [ 1, 8, 0 ]- , libtasn1 [ 4, 15, 0 ]- , libtiff [ 4, 0, 10 ]- , libtool [ 2, 4, 6 ]- , libuv [ 1, 24, 0 ]- , libwebp [ 1, 0, 3 ]- , libSM [ 1, 2, 3 ]- , libthai [ 0, 1, 28 ]- , libvorbis [ 1, 3, 6 ]- , libvpx [ 1, 8, 2 ]- , libX11 [ 1, 6, 8 ]- , libXau [ 1, 0, 9 ]- , libXaw [ 1, 0, 13 ]- , libXaw3d [ 1, 6, 3 ]- , libxcb [ 1, 13 ]- , libXcomposite [ 0, 4, 5 ]- , libXdamage [ 1, 1, 5 ]- , libXdmcp [ 1, 1, 3 ]- , libXext [ 1, 3, 4 ]- , libXfixes [ 5, 0, 3 ]- , libXft [ 2, 3, 3 ]- , libXi [ 1, 7, 10 ]- , libXinerama [ 1, 1, 4 ]- , libxml2 [ 2, 9, 9 ]- , libXmu [ 1, 1, 3 ]- , libXpm [ 3, 5, 12 ]- , libXScrnSaver [ 1, 2, 3 ]- , libxshmfence [ 1, 3 ]- , libxslt [ 1, 1, 33 ]- , libXrandr [ 1, 5, 2 ]- , libXrender [ 0, 9, 10 ]- , libXt [ 1, 2, 0 ]- , libXtst [ 1, 2, 3 ]- , libXxf86vm [ 1, 1, 4 ]- , llvm [ 9, 0, 0 ]- , lmdb [ 0, 9, 23 ]- , lua [ 5, 3, 5 ]- , luarocks [ 3, 2, 1 ]- , lunzip [ 1, 11 ]- , lz4 [ 1, 9, 2 ]- , lzip [ 1, 21 ]- , lziprecover [ 1, 21 ]- , lzlib [ 1, 11 ]- , m17n [ 1, 8, 0 ]- , m4 [ 1, 4, 18 ]- , make [ 4, 2, 1 ]- , mako [ 1, 0, 7 ]- , markupSafe [ 1, 0 ]- , memcached [ 1, 5, 18 ]- , mercury- , mesa [ 19, 0, 5 ]- , meson [ 0, 51, 2 ]- , mosh [ 1, 3, 2 ]- , motif [ 2, 3, 8 ]- , mpc [ 1, 1, 0 ]- , mpfr [ 4, 0, 2 ]- , mpg123 [ 1, 25, 12 ]- , musl [ 1, 1, 20 ]- , nano [ 4, 3 ]- , nasm [ 2, 14 ]- , ncurses [ 6, 2 ]- , nginx [ 1, 15, 7 ]- , ninja [ 1, 9, 0 ]- , node [ 12, 16, 2 ]- , npth [ 1, 6 ]- , nspr [ 4, 20 ]- , openblas [ 0, 3, 2 ]- , opencv [ 4, 2, 0 ]- , openssh [ 7, 9 ]- , openssl [ 1, 1, 1 ]- , p11kit [ 0, 23, 16, 1 ]- , pango { version = [ 1, 43 ], patch = 0 }- , pari [ 2, 11, 1 ]- , patch [ 2, 7 ]- , pcre [ 8, 44 ]- , pcre2 [ 10, 33 ]- , pdfgrep [ 2, 1, 2 ]- , perl5 [ 5, 30, 2 ]- , phash [ 0, 9, 6 ]- , pixman [ 0, 38, 4 ]- , pkg-config [ 0, 29, 2 ]- , poppler [ 0, 84, 0 ]- , postgresql [ 12, 2 ]- , protobuf [ 3, 8, 0 ]- , pycairo [ 1, 18, 1 ]- , pygobject { version = [ 2, 28 ], patch = 7 }- , pygtk { version = [ 2, 24 ], patch = 0 }- , python [ 2, 7, 17 ]- , python [ 3, 8, 2 ]- , qrencode [ 4, 0, 2 ]- , qt { version = [ 5, 13 ], patch = 0 }- , quazip [ 0, 8, 1 ]- , r [ 4, 0, 0 ]- , ragel [ 6, 10 ]- , randrproto [ 1, 5, 0 ]- , re2c [ 1, 1, 1 ]- , readline [ 8, 0 ]- , recordproto [ 1, 14, 2 ]- , renderproto [ 0, 11, 1 ]- , ruby { version = [ 2, 7 ], patch = 1 }- , rustc [ 1, 42, 0 ]- , scour [ 0, 37 ]- , scrnsaverproto [ 1, 2, 2 ]- , sdl2 [ 2, 0, 10 ]- , sed [ 4, 7 ]- , shared-mime-info [ 1, 10 ]- , smake [ 1, 2, 5 ]- , sqlite { version = [ 3, 30, 1 ] }- , star [ 1, 6 ]- , subversion [ 1, 12, 2 ]- , swig [ 3, 0, 12 ]- , swi-prolog [ 8, 0, 3 ]- , tar [ 1, 32 ]- , tarlz [ 0, 16 ]- , tcc [ 0, 9, 27 ]- , texinfo [ 6, 6 ]- , tesseract [ 4, 0, 0 ]- , time [ 1, 9 ]- , unistring [ 0, 9, 10 ]- , utf8proc [ 2, 4, 0 ]- , util-linux { version = [ 2, 34 ] }- , util-macros [ 1, 19, 2 ]- , vala { version = [ 0, 45 ], patch = 3 }- , valgrind [ 3, 15, 0 ]- , vim [ 8, 2 ]- , wayland [ 1, 17, 0 ]- , wget [ 1, 20, 3 ]- , which [ 2, 21 ]- , xcb-proto [ 1, 13 ]- , xextproto [ 7, 3, 0 ]- , xf86vidmodeproto [ 2, 3, 1 ]- , xineramaproto [ 1, 2 ]- , xmlParser [ 2, 44 ]- , xproto [ 7, 0, 31 ]- , xtrans [ 1, 4, 0 ]- , xz [ 5, 2, 5 ]- , zlib [ 1, 2, 11 ]- , zstd [ 1, 4, 4 ]+ λ(x : { name : Text, version : List Natural }) →+ prelude.simplePackage x+ ⫽ { pkgUrl =+ "https://gnupg.org/ftp/gcrypt/${x.name}/${x.name}-${prelude.showVersion+ x.version}.tar.bz2"+ }++let gnupg =+ λ(v : List Natural) →+ gpgPackage { name = "gnupg", version = v }+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "npth", lower = [ 1, 2 ] }+ , prelude.lowerBound { name = "libgpg-error", lower = [ 1, 24 ] }+ , prelude.lowerBound { name = "libgcrypt", lower = [ 1, 7, 0 ] }+ , prelude.lowerBound { name = "libassuan", lower = [ 2, 5, 0 ] }+ , prelude.lowerBound { name = "libksba", lower = [ 1, 3, 4 ] }+ ]+ , installCommand = prelude.installWithBinaries [ "bin/gpg" ]+ }++let npth = λ(v : List Natural) → gpgPackage { name = "npth", version = v }++let libgpgError =+ λ(v : List Natural) → gpgPackage { name = "libgpg-error", version = v }++let libgcrypt =+ λ(v : List Natural) →+ gpgPackage { name = "libgcrypt", version = v }+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "libgpg-error", lower = [ 1, 25 ] } ]+ }++let libassuan =+ λ(v : List Natural) →+ gpgPackage { name = "libassuan", version = v }+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "libgpg-error", lower = [ 1, 24 ] } ]+ }++let libksba =+ λ(v : List Natural) →+ gpgPackage { name = "libksba", version = v }+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "libgpg-error", lower = [ 1, 8 ] } ]+ }++let musl =+ λ(v : List Natural) →+ prelude.simplePackage { name = "musl", version = v }+ ⫽ { pkgUrl =+ "https://www.musl-libc.org/releases/musl-${prelude.showVersion+ v}.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/musl-gcc" ]+ }++let binutils =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "binutils", version = v }+ ⫽ { pkgUrl =+ "https://ftp.wayne.edu/gnu/binutils/binutils-${prelude.showVersion+ v}.tar.lz"+ , installCommand =+ prelude.installWithBinaries+ [ "bin/ar"+ , "bin/as"+ , "bin/ld"+ , "bin/strip"+ , "bin/strings"+ , "bin/readelf"+ , "bin/objdump"+ , "bin/nm"+ , "bin/ranlib"+ ]+ }++let bison =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "bison", version = v }+ ⫽ { buildCommand =+ λ(cfg : types.BuildVars) →+ prelude.generalBuild+ prelude.singleThreaded+ (prelude.buildEnv cfg)+ cfg+ , installCommand =+ prelude.installWithBinaries [ "bin/bison", "bin/yacc" ]+ , pkgBuildDeps = [ prelude.unbounded "m4" ]+ }++let cmake =+ λ(cfg : { version : List Natural, patch : Natural }) →+ let patchString = Natural/show cfg.patch++ let versionString = prelude.showVersion cfg.version++ let cmakeConfigure =+ λ(cfg : types.BuildVars) →+ prelude.configureMkExesExtraFlags+ { bins = [ "bootstrap" ]+ , extraFlags = [ "--parallel=${Natural/show cfg.cpus}" ]+ }+ cfg++ in prelude.defaultPackage+ ⫽ { pkgName = "cmake"+ , pkgVersion = prelude.fullVersion cfg+ , pkgUrl =+ "https://cmake.org/files/v${versionString}/cmake-${versionString}.${patchString}.tar.gz"+ , pkgSubdir = "cmake-${versionString}.${patchString}"+ , configureCommand = cmakeConfigure+ , installCommand =+ λ(cfg : types.BuildVars) →+ let wrapper =+ "CMAKE_ROOT=${cfg.installDir}/share/cmake-${versionString}/ ${cfg.installDir}/bin/cmake \$@"++ let wrapped = "wrapper/cmake"++ in prelude.defaultInstall cfg+ # [ prelude.createDir "wrapper"+ , prelude.writeFile+ { file = wrapped, contents = wrapper }+ , prelude.mkExe wrapped+ , prelude.copyFile wrapped wrapped+ , prelude.symlinkBinary wrapped+ ]+ }++let curl =+ λ(v : List Natural) →+ prelude.simplePackage { name = "curl", version = v }+ ⫽ { pkgUrl =+ "https://curl.haxx.se/download/curl-${prelude.showVersion+ v}.tar.xz"+ , installCommand = prelude.installWithBinaries [ "bin/curl" ]+ , pkgDeps = [ prelude.unbounded "zlib" ]+ }++let dbus =+ λ(v : List Natural) →+ prelude.simplePackage { name = "dbus", version = v }+ ⫽ { pkgUrl =+ "https://dbus.freedesktop.org/releases/dbus/dbus-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps =+ [ prelude.unbounded "expat", prelude.unbounded "libselinux" ]+ , configureCommand = prelude.configureLinkExtraLibs [ "pcre" ]+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ }++let fltk =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in 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"+ ]+ }++let gawk =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "gawk", version = v }+ ⫽ { installCommand =+ prelude.installWithBinaries [ "bin/gawk", "bin/awk" ]+ }++let gc =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "gc", version = v }+ ⫽ { pkgUrl =+ "https://github.com/ivmai/bdwgc/releases/download/v${versionString}/gc-${versionString}.tar.gz"+ , pkgDeps = [ prelude.unbounded "libatomic_ops" ]+ }++let libatomic_ops =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libatomic_ops", version = v }+ ⫽ { pkgUrl =+ "https://github.com/ivmai/libatomic_ops/releases/download/v${versionString}/libatomic_ops-${versionString}.tar.gz"+ }++let git =+ λ(v : List Natural) →+ prelude.simplePackage { name = "git", version = v }+ ⫽ { pkgUrl =+ "https://mirrors.edge.kernel.org/pub/software/scm/git/git-${prelude.showVersion+ v}.tar.xz"+ , installCommand = prelude.installWithBinaries [ "bin/git" ]+ , pkgBuildDeps = [ prelude.unbounded "gettext" ]+ }++let glibc =+ let buildDir = Some "build"++ let glibcConfigure =+ λ(cfg : types.BuildVars) →+ let maybeHost = prelude.mkHost cfg.targetTriple++ let modifyArgs = prelude.maybeAppend Text maybeHost++ 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) →+ [ prelude.call+ { program = prelude.makeExe cfg.buildOS+ , arguments = [ "-j${Natural/show cfg.cpus}" ]+ , environment = prelude.configSome ([] : List Text) cfg+ , procDir = buildDir+ }+ ]++ let glibcInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ { program = prelude.makeExe cfg.buildOS+ , arguments = [ "install" ]+ , environment = prelude.configSome ([] : List Text) cfg+ , procDir = buildDir+ }+ ]++ in λ(v : List Natural) →+ prelude.defaultPackage+ ⫽ { pkgName = "glibc"+ , pkgVersion = v+ , pkgUrl =+ "http://mirror.keystealth.org/gnu/libc/glibc-${prelude.showVersion+ v}.tar.xz"+ , pkgSubdir = "glibc-${prelude.showVersion v}"+ , configureCommand = glibcConfigure+ , buildCommand = glibcBuild+ , installCommand = glibcInstall+ , pkgBuildDeps =+ [ prelude.unbounded "bison"+ , prelude.unbounded "gawk"+ , prelude.unbounded "python3"+ ]+ }++let gmp =+ λ(v : List Natural) →+ prelude.simplePackage { name = "gmp", version = v }+ ⫽ { pkgUrl =+ "https://gmplib.org/download/gmp/gmp-${prelude.showVersion+ v}.tar.lz"+ , pkgBuildDeps = [ prelude.unbounded "m4" ]+ }++let harfbuzz =+ let symlinkHarfbuzz =+ λ(h : Text) → prelude.symlink "include/harfbuzz/${h}" "include/${h}"++ in λ(v : List Natural) →+ prelude.simplePackage { name = "harfbuzz", version = v }+ ⫽ { pkgUrl =+ "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps =+ [ prelude.unbounded "freetype-prebuild"+ , prelude.unbounded "glib"+ ]+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ , configureCommand =+ prelude.configureLinkExtraLibs [ "pcre", "z" ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ symlinkHarfbuzz "hb-aat-layout.h"+ , symlinkHarfbuzz "hb-aat.h"+ , symlinkHarfbuzz "hb-blob.h"+ , symlinkHarfbuzz "hb-buffer.h"+ , symlinkHarfbuzz "hb-common.h"+ , symlinkHarfbuzz "hb-deprecated.h"+ , symlinkHarfbuzz "hb-face.h"+ , symlinkHarfbuzz "hb-font.h"+ , symlinkHarfbuzz "hb-ft.h"+ , symlinkHarfbuzz "hb-glib.h"+ , symlinkHarfbuzz "hb-icu.h"+ , symlinkHarfbuzz "hb-map.h"+ , symlinkHarfbuzz "hb-ot-color.h"+ , symlinkHarfbuzz "hb-ot-font.h"+ , symlinkHarfbuzz "hb-ot-layout.h"+ , symlinkHarfbuzz "hb-ot-math.h"+ , symlinkHarfbuzz "hb-ot-name.h"+ , symlinkHarfbuzz "hb-ot-shape.h"+ , symlinkHarfbuzz "hb-ot-var.h"+ , symlinkHarfbuzz "hb-ot.h"+ , symlinkHarfbuzz "hb-set.h"+ , symlinkHarfbuzz "hb-shape-plan.h"+ , symlinkHarfbuzz "hb-shape.h"+ , symlinkHarfbuzz "hb-subset.h"+ , symlinkHarfbuzz "hb-unicode.h"+ , symlinkHarfbuzz "hb-version.h"+ , symlinkHarfbuzz "hb.h"+ ]+ }++let libjpeg-turbo =+ λ(v : List Natural) →+ prelude.cmakePackage+ ⫽ { pkgName = "libjpeg-turbo"+ , pkgVersion = v+ , 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"+ , prelude.unbounded "make"+ ]+ }++let libuv =+ λ(v : List Natural) →+ prelude.defaultPackage+ ⫽ { pkgName = "libuv"+ , pkgVersion = v+ , pkgUrl =+ "https://dist.libuv.org/dist/v${prelude.showVersion+ v}/libuv-v${prelude.showVersion+ v}.tar.gz"+ , pkgSubdir = "libuv-v${prelude.showVersion v}"+ , configureCommand = prelude.autogenConfigure+ , pkgBuildDeps =+ [ prelude.unbounded "m4"+ , prelude.unbounded "automake"+ , prelude.unbounded "libtool"+ ]+ }++let nasm =+ λ(v : List Natural) →+ prelude.simplePackage { name = "nasm", version = v }+ ⫽ { pkgUrl =+ "http://www.nasm.us/pub/nasm/releasebuilds/${prelude.showVersion+ v}.02/nasm-${prelude.showVersion+ v}.02.tar.xz"+ , pkgSubdir = "nasm-${prelude.showVersion v}.02"+ , installCommand =+ prelude.installWithBinaries [ "bin/nasm", "bin/ndisasm" ]+ }++let ncurses =+ λ(v : List Natural) →+ prelude.simplePackage { name = "ncurses", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/ncurses/ncurses-${prelude.showVersion+ v}.tar.gz"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ let crossArgs =+ if cfg.isCross+ then [ "--disable-stripping" ]+ else [] : List Text++ in prelude.configureWithFlags+ ([ "--with-shared", "--enable-widec" ] # crossArgs)+ cfg+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ prelude.symlink "lib/libncursesw.so" "lib/libncurses.so" ]+ }++let pcre2 =+ λ(v : List Natural) →+ prelude.simplePackage { name = "pcre2", version = v }+ ⫽ { pkgUrl =+ "https://ftp.pcre.org/pub/pcre/pcre2-${prelude.showVersion+ v}.tar.bz2"+ }++let pcre =+ λ(v : List Natural) →+ prelude.simplePackage { name = "pcre", version = v }+ ⫽ { pkgUrl =+ "https://ftp.pcre.org/pub/pcre/pcre-${prelude.showVersion+ v}.tar.bz2"+ , configureCommand =+ prelude.configureWithFlags+ [ "--enable-utf8", "--enable-unicode-properties" ]+ }++let perl5 =+ let perlConfigure =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "sh"+ , arguments =+ [ "./Configure"+ , "-des"+ , "-Dprefix=${cfg.installDir}"+ ]+ # ( if cfg.static+ then [] : List Text+ else [ "-Duseshrplib" ]+ )+ }+ )+ ]++ let linkDir =+ λ(os : types.OS) →+ merge+ { FreeBSD = "CORE"+ , OpenBSD = "CORE"+ , NetBSD = "CORE"+ , Solaris = "CORE"+ , Dragonfly = "CORE"+ , Linux = "CORE"+ , Darwin = "darwin-2level/CORE"+ , Windows = "CORE"+ , Redox = "CORE"+ , Haiku = "CORE"+ , IOS = "darwin-2level/CORE"+ , AIX = "CORE"+ , Hurd = "CORE"+ , Android = "CORE"+ , NoOs = "CORE"+ }+ os++ in λ(v : List Natural) →+ let major =+ merge { Some = Natural/show, None = "" } (List/head Natural v)++ in prelude.simplePackage { name = "perl", version = v }+ ⫽ { pkgUrl =+ "https://www.cpan.org/src/${major}.0/perl-${prelude.showVersion+ v}.tar.gz"+ , configureCommand = perlConfigure+ , buildCommand =+ λ(cfg : types.BuildVars) →+ prelude.generalBuild+ prelude.singleThreaded+ (prelude.buildEnv cfg)+ cfg+ , installCommand =+ λ(cfg : types.BuildVars) →+ let libperlFile =+ if cfg.static+ then "libperl.a"+ else "libperl.${prelude.libSuffix+ (prelude.osCfg cfg)}"++ in prelude.installWithBinaries+ [ "bin/perl", "bin/cpan", "bin/ptar" ]+ cfg+ # [ prelude.symlink+ "lib/${prelude.showVersion+ v}/${prelude.printArch+ cfg.buildArch}-${prelude.printOS+ cfg.buildOS}/${linkDir+ cfg.buildOS}/${libperlFile}"+ "lib/${libperlFile}"+ ]+ }++let libpng =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libpng", version = v }+ ⫽ { pkgUrl =+ "https://download.sourceforge.net/libpng/libpng-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps = [ prelude.unbounded "zlib" ]+ }++let sed =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "sed", version = v }+ ⫽ { installCommand =+ prelude.installWithManpages+ [ { file = "share/man/man1/sed.1", section = 1 } ]+ , configureCommand =+ prelude.configureWithFlags [ "--disable-dependency-tracking" ]+ }++let tar = λ(v : List Natural) → prelude.makeGnuExe { name = "tar", version = v }++let unistring =+ λ(v : List Natural) →+ prelude.makeGnuLibrary { name = "unistring", version = v }++let valgrind =+ λ(v : List Natural) →+ prelude.simplePackage { name = "valgrind", version = v }+ ⫽ { pkgUrl =+ "https://sourceware.org/pub/valgrind/valgrind-${prelude.showVersion+ v}.tar.bz2"+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/valgrind" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/pdfgrep.1", section = 1 } ]+ }++let vim =+ λ(v : List Natural) →+ prelude.defaultPackage+ ⫽ { pkgName = "vim"+ , pkgVersion = v+ , pkgUrl =+ "http://ftp.vim.org/vim/unix/vim-${prelude.showVersion v}.tar.bz2"+ , pkgSubdir = "vim${prelude.squishVersion v}"+ , configureCommand =+ prelude.configureMkExesExtraFlags+ { bins =+ [ "src/configure", "src/auto/configure", "src/which.sh" ]+ , extraFlags = [ "--enable-gui=no", "--enable-pythoninterp" ]+ }+ , installCommand =+ λ(cfg : types.BuildVars) →+ let mkLibDynload =+ λ(libs : List Text) →+ concatMapSep+ ":"+ Text+ ( λ(dir : Text) →+ "${dir}:${dir}/python2.7/lib-dynload"+ )+ libs++ let mkPython =+ λ(libs : List Text) →+ concatMapSep+ ":"+ Text+ ( λ(dir : Text) →+ "${dir}/python2.7/:${dir}/python2.7/lib-dynload"+ )+ libs++ let wrapper =+ "LD_LIBRARY_PATH=${mkLibDynload+ cfg.linkDirs} PYTHONPATH=${mkPython+ cfg.linkDirs} ${cfg.installDir}/bin/vim \$@"++ let wrapped = "wrapper/vim"++ in prelude.installWithBinaries [ "bin/xxd" ] cfg+ # [ prelude.createDir "wrapper"+ , prelude.writeFile { file = wrapped, contents = wrapper }+ , prelude.mkExe wrapped+ , prelude.copyFile wrapped wrapped+ , prelude.symlinkBinary wrapped+ ]+ , pkgDeps =+ [ prelude.unbounded "ncurses"+ , prelude.unbounded "libXpm"+ , prelude.unbounded "libXt"+ , prelude.unbounded "python2"+ ]+ }++let xz =+ λ(v : List Natural) →+ prelude.simplePackage { name = "xz", version = v }+ ⫽ { pkgUrl = "https://tukaani.org/xz/xz-${prelude.showVersion v}.tar.xz"+ , installCommand = prelude.installWithBinaries [ "bin/xz" ]+ }++let zlib =+ λ(v : List Natural) →+ let zlibConfigure =+ λ(cfg : types.BuildVars) →+ let host = prelude.mkCCVar cfg++ in [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "sh"+ , arguments =+ [ "configure", "--prefix=${cfg.installDir}" ]+ , environment = Some+ ( host+ # [ { var = "PATH"+ , value =+ "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"+ }+ ]+ )+ }+ )+ ]++ in prelude.simplePackage { name = "zlib", version = v }+ ⫽ { pkgUrl =+ "http://www.zlib.net/zlib-${prelude.showVersion v}.tar.xz"+ , configureCommand = zlibConfigure+ , installCommand =+ prelude.installWithManpages+ [ { file = "share/man/man3/zlib.3", section = 3 } ]+ }++let gettext =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "gettext", version = v }+ ⫽ { installCommand =+ prelude.installWithBinaries+ [ "bin/gettext", "bin/msgfmt", "bin/autopoint" ]+ , configureCommand =+ prelude.configureWithFlags [ "--disable-dependency-tracking" ]+ }++let gzip =+ λ(v : List Natural) → prelude.makeGnuExe { name = "gzip", version = v }++let wget =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "wget", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/wget/wget-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "gnutls" ]+ , pkgBuildDeps = [ prelude.unbounded "perl" ]+ , installCommand = prelude.installWithWrappers [ "wget" ]+ }++let gnutls =+ λ(cfg : { version : List Natural, patch : List Natural }) →+ let versionString = prelude.showVersion cfg.version++ in prelude.simplePackage+ { name = "gnutls", version = cfg.version # cfg.patch }+ ⫽ { pkgUrl =+ "https://www.gnupg.org/ftp/gcrypt/gnutls/v${versionString}/gnutls-${versionString}.${prelude.showVersion+ cfg.patch}.tar.xz"+ , pkgDeps =+ [ prelude.lowerBound { name = "nettle", lower = [ 3, 1 ] }+ , prelude.unbounded "unistring"+ , prelude.lowerBound { name = "libtasn1", lower = [ 4, 9 ] }+ , prelude.lowerBound { name = "p11-kit", lower = [ 0, 23, 1 ] }+ ]+ , configureCommand =+ prelude.configureLinkExtraLibs [ "nettle", "hogweed" ]+ }++let lapack =+ λ(v : List Natural) →+ prelude.cmakePackage+ ⫽ { pkgName = "lapack"+ , pkgVersion = v+ , pkgUrl =+ "http://www.netlib.org/lapack/lapack-${prelude.showVersion+ v}.tar.gz"+ , pkgSubdir = "lapack-${prelude.showVersion v}"+ , pkgBuildDeps =+ [ prelude.unbounded "cmake", prelude.unbounded "gcc" ]+ }++let cairo =+ let symlinkCairo =+ λ(h : Text) → prelude.symlink "include/cairo/${h}" "include/${h}"++ in λ(v : List Natural) →+ prelude.simplePackage { name = "cairo", version = v }+ ⫽ { pkgUrl =+ "https://www.cairographics.org/releases/cairo-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps =+ [ prelude.lowerBound { name = "pixman", lower = [ 0, 30, 0 ] }+ , prelude.lowerBound { name = "freetype", lower = [ 9, 7, 3 ] }+ , prelude.lowerBound+ { name = "fontconfig", lower = [ 2, 2, 95 ] }+ , prelude.unbounded "libXext"+ ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ symlinkCairo "cairo-deprecated.h"+ , symlinkCairo "cairo-features.h"+ , symlinkCairo "cairo-ft.h"+ , symlinkCairo "cairo-gobject.h"+ , symlinkCairo "cairo-pdf.h"+ , symlinkCairo "cairo-ps.h"+ , symlinkCairo "cairo-script-interpreter.h"+ , symlinkCairo "cairo-script.h"+ , symlinkCairo "cairo-svg.h"+ , symlinkCairo "cairo-version.h"+ , symlinkCairo "cairo-xcb.h"+ , symlinkCairo "cairo-xlib-xrender.h"+ , symlinkCairo "cairo-xlib.h"+ , symlinkCairo "cairo.h"+ ]+ }++let pycairo =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.python2Package { name = "pycairo", version = v }+ ⫽ { pkgUrl =+ "https://github.com/pygobject/pycairo/releases/download/v${versionString}/pycairo-${versionString}.tar.gz"+ , pkgDeps = [ prelude.unbounded "cairo" ]+ }++let libnettle =+ λ(v : List Natural) →+ prelude.simplePackage { name = "nettle", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/nettle/nettle-${prelude.showVersion+ v}.tar.gz"+ , pkgBuildDeps = [ prelude.unbounded "m4" ]+ }++let diffutils =+ λ(v : List Natural) →+ prelude.simplePackage { name = "diffutils", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/diffutils/diffutils-${prelude.showVersion+ v}.tar.xz"+ , installCommand = prelude.installWithBinaries [ "bin/diff" ]+ }++let patch =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "patch", version = v }+ ⫽ { installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/patch" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/patch.1", section = 1 } ]+ }++let m4 =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "m4", version = v }+ ⫽ { configureCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.patch+ ./patches/m4.patch sha256:1fecaf9238401d3fdcad92516f7c45e866e50630eae7efdaaee0da943a532b23 as Text+ ]+ # prelude.defaultConfigure cfg+ , installCommand =+ prelude.installWithManpages+ [ { file = "share/man/man1/m4.1", section = 1 } ]+ , pkgBuildDeps = [ prelude.unbounded "patch" ]+ }++let nginx =+ λ(v : List Natural) →+ prelude.simplePackage { name = "nginx", version = v }+ ⫽ { pkgUrl =+ "http://nginx.org/download/nginx-${prelude.showVersion v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "pcre2" ]+ }++let openssl =+ let opensslCfgVars =+ λ(cfg : types.BuildVars) →+ Some+ (prelude.mkCCVar cfg # prelude.configEnv ([] : List Text) cfg)++ let cfgOS =+ λ(os : types.OS) →+ merge+ { FreeBSD = "BSD-x86_64"+ , OpenBSD = "BSD-x86_64"+ , NetBSD = "BSD-x86_64"+ , Solaris = "solaris64-x86_64-cc"+ , Dragonfly = "BSD-x86_64"+ , Linux = "linux-x86_64"+ , Darwin = "darwin64-x86_64-cc"+ , Windows = "mingw64"+ , Redox = "gcc"+ , Haiku = "haiku-x86_64"+ , IOS = "ios64-cross"+ , AIX = "aix64-cc"+ , Hurd = "hurd-x86"+ , Android = "android64-aarch64"+ , NoOs = "gcc"+ }+ os++ in λ(v : List Natural) →+ prelude.simplePackage { name = "openssl", version = v }+ ⫽ { pkgUrl =+ "https://www.openssl.org/source/openssl-${prelude.showVersion+ v}d.tar.gz"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ let sharedFlag =+ if cfg.static then "no-shared" else "shared"++ let targetMakefile =+ if cfg.isCross then "gcc" else cfgOS cfg.buildOS++ in [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "perl"+ , arguments =+ [ "./Configure"+ , "--prefix=${cfg.installDir}"+ , targetMakefile+ , sharedFlag+ ]+ , environment = opensslCfgVars cfg+ }+ )+ ]+ , pkgSubdir = "openssl-${prelude.showVersion v}d"+ , pkgBuildDeps = [ prelude.unbounded "perl" ]+ }++let libssh2 =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libssh2", version = v }+ ⫽ { pkgUrl =+ "https://www.libssh2.org/download/libssh2-${prelude.showVersion+ v}.tar.gz"+ }++let giflib =+ λ(v : List Natural) →+ prelude.simplePackage { name = "giflib", version = v }+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/giflib/giflib-${prelude.showVersion+ v}.tar.bz2"+ }++let emacs =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "emacs", version = v }+ ⫽ { pkgDeps =+ [ prelude.unbounded "giflib"+ , prelude.unbounded "libXaw"+ , prelude.unbounded "libpng"+ , prelude.unbounded "libjpeg-turbo"+ , prelude.unbounded "ncurses"+ , prelude.unbounded "gtk3"+ , prelude.unbounded "libotf"+ , prelude.unbounded "m17n-lib"+ , prelude.unbounded "gnutls"+ , prelude.unbounded "libXft"+ , prelude.unbounded "dbus"+ , prelude.unbounded "cairo"+ ]+ , configureCommand =+ prelude.configureMkExesExtraFlags+ { bins =+ [ "build-aux/move-if-change", "build-aux/update-subdirs" ]+ , extraFlags =+ [ "--with-tiff=no"+ , "--with-libotf"+ , "--with-m17n-flt"+ , "--with-gnutls"+ , "--with-xft"+ , "--with-dbus"+ , "--with-cairo=yes"+ ]+ }+ , installCommand =+ λ(cfg : types.BuildVars) →+ if cfg.static+ then prelude.installWithBinaries [ "bin/emacs" ] cfg+ else prelude.installWithWrappers [ "emacs" ] cfg+ }++let which =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "which", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/which/which-${prelude.showVersion+ v}.tar.gz"+ }++let automake =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "automake", version = v }+ ⫽ { pkgBuildDeps =+ [ prelude.lowerBound { name = "autoconf", lower = [ 2, 65 ] } ]+ , installCommand =+ prelude.installWithBinaries [ "bin/automake", "bin/aclocal" ]+ }++let autoconf =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "autoconf", version = v }+ ⫽ { pkgBuildDeps =+ [ prelude.lowerBound { name = "m4", lower = [ 1, 4, 16 ] } ]+ , installCommand =+ prelude.installWithBinaries+ [ "bin/autoconf"+ , "bin/autoheader"+ , "bin/autom4te"+ , "bin/autoreconf"+ ]+ }++let python =+ λ(v : List Natural) →+ let major =+ merge { Some = Natural/show, None = "" } (List/head Natural v)++ let versionString = prelude.showVersion v++ let pyEnv =+ λ(_ : List Text) →+ λ(cfg : types.BuildVars) →+ Some+ ( prelude.configEnv ([] : List Text) cfg+ # [ { var = "CONFIG_SITE", value = "config.site" } ]+ )++ in prelude.simplePackage { name = "python${major}", version = v }+ ⫽ { pkgUrl =+ "https://www.python.org/ftp/python/${versionString}/Python-${versionString}.tar.xz"+ , pkgSubdir = "Python-${versionString}"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ let config =+ ''+ ac_cv_file__dev_ptmx=yes+ ac_cv_file__dev_ptc=no+ ''++ let staticFlag =+ if cfg.static+ then [] : List Text+ else [ "--enable-shared" ]++ let crossArgs =+ if cfg.isCross+ then [ "--disable-ipv6" ]+ else [] : List Text++ in [ prelude.writeFile+ { file = "config.site", contents = config }+ ]+ # prelude.generalConfigure+ pyEnv+ "configure"+ ([] : List Text)+ ( [ "--build=${prelude.printArch cfg.buildArch}" ]+ # crossArgs+ # staticFlag+ )+ cfg+ , pkgDeps =+ [ prelude.unbounded "libffi", prelude.unbounded "ncurses" ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/python${major}" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/python${major}.1"+ , section = 1+ }+ ]+ }++let lua =+ λ(v : List Natural) →+ let printLuaOS =+ λ(os : types.OS) →+ merge+ { FreeBSD = "freebsd"+ , OpenBSD = "bsd"+ , NetBSD = "bsd"+ , Solaris = "solaris"+ , Dragonfly = "bsd"+ , Linux = "linux"+ , Darwin = "macosx"+ , Windows = "mingw"+ , Redox = "generic"+ , Haiku = "generic"+ , IOS = "generic"+ , AIX = "generic"+ , Hurd = "generic"+ , Android = "generic"+ , NoOs = "c89"+ }+ os++ let luaBuild =+ λ(cfg : types.BuildVars) →+ let cc = prelude.mkCCArg cfg++ let ldflags = (prelude.mkLDFlags cfg.linkDirs cfg).value++ let cflags = (prelude.mkCFlags cfg).value++ let os = prelude.osCfg cfg++ in [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "make"+ , arguments =+ cc+ # [ printLuaOS os+ , "MYLDFLAGS=${ldflags}"+ , "MYCFLAGS=${cflags}"+ , "MYLIBS=-lncurses"+ , "-j${Natural/show cfg.cpus}"+ ]+ }+ )+ ]++ let luaInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "make"+ , arguments =+ [ "install", "INSTALL_TOP=${cfg.installDir}" ]+ }+ )+ ]+ # prelude.symlinkBinaries [ "bin/lua", "bin/luac" ]++ in prelude.simplePackage { name = "lua", version = v }+ ⫽ { pkgUrl =+ "http://www.lua.org/ftp/lua-${prelude.showVersion v}.tar.gz"+ , configureCommand = prelude.doNothing+ , buildCommand = luaBuild+ , installCommand = luaInstall+ , pkgDeps =+ [ prelude.unbounded "readline", prelude.unbounded "ncurses" ]+ }++let libtasn1 =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libtasn1", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/libtasn1/libtasn1-${prelude.showVersion+ v}.tar.gz"+ }++let p11kit =+ λ(v : List Natural) →+ prelude.simplePackage { name = "p11-kit", version = v }+ ⫽ { pkgUrl =+ "https://github.com/p11-glue/p11-kit/releases/download/${prelude.showVersion+ v}/p11-kit-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps =+ [ prelude.lowerBound { name = "libffi", lower = [ 3, 0, 0 ] }+ , prelude.unbounded "libtasn1"+ ]+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ }++let libffi =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libffi", version = v }+ ⫽ { pkgUrl =+ "https://github.com/libffi/libffi/releases/download/v${versionString}/libffi-${versionString}.tar.gz"+ }++let gdb =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "gdb", version = v }+ ⫽ { pkgBuildDeps = [ prelude.unbounded "texinfo" ] }++let libtool =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "libtool", version = v }+ ⫽ { pkgUrl =+ "https://ftp.wayne.edu/gnu/libtool/libtool-${prelude.showVersion+ v}.tar.xz"+ , pkgBuildDeps =+ [ prelude.lowerBound { name = "m4", lower = [ 1, 4, 16 ] } ]+ }++let pkg-config =+ λ(v : List Natural) →+ prelude.simplePackage { name = "pkg-config", version = v }+ ⫽ { pkgUrl =+ "https://pkg-config.freedesktop.org/releases/pkg-config-${prelude.showVersion+ v}.tar.gz"+ , configureCommand =+ prelude.configureWithFlags [ "--with-internal-glib" ]+ }++let qrencode =+ λ(v : List Natural) →+ prelude.simplePackage { name = "qrencode", version = v }+ ⫽ { pkgUrl =+ "https://fukuchi.org/works/qrencode/qrencode-${prelude.showVersion+ v}.tar.gz"+ , configureCommand = prelude.configureWithFlags [ "--without-tools" ]+ }++let readline =+ λ(v : List Natural) →+ prelude.simplePackage { name = "readline", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/readline/readline-${prelude.showVersion+ v}.tar.gz"+ }++let pixman =+ λ(v : List Natural) →+ prelude.simplePackage { name = "pixman", version = v }+ ⫽ { pkgUrl =+ "https://www.cairographics.org/releases/pixman-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "libpng" ]+ }++let freetype-shared =+ λ(x : { name : Text, version : List Natural }) →+ let versionString = prelude.showVersion x.version++ in prelude.simplePackage x+ ⫽ { pkgUrl =+ "https://download.savannah.gnu.org/releases/freetype/freetype-${versionString}.tar.gz"+ , pkgSubdir = "freetype-${versionString}"+ , pkgBuildDeps = [ prelude.unbounded "sed" ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ prelude.symlink+ "include/freetype2/ft2build.h"+ "include/ft2build.h"+ , prelude.symlink+ "include/freetype2/freetype"+ "include/freetype"+ ]+ }++let freetype-prebuild =+ λ(v : List Natural) →+ freetype-shared { name = "freetype-prebuild", version = v }+ ⫽ { pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "libpng" ]+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ }++let freetype =+ λ(v : List Natural) →+ freetype-shared { name = "freetype", version = v }+ ⫽ { pkgDeps =+ [ prelude.unbounded "zlib"+ , prelude.unbounded "harfbuzz"+ , prelude.unbounded "libpng"+ ]+ , configureCommand =+ prelude.configureMkExesExtraFlags+ { bins = [ "builds/unix/configure" ]+ , extraFlags = [ "--enable-freetype-config" ]+ }+ }++let sdl2 =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "sdl2", version = v }+ ⫽ { pkgUrl =+ "https://www.libsdl.org/release/SDL2-${versionString}.tar.gz"+ , pkgSubdir = "SDL2-${versionString}"+ }++let imageMagick =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ let major =+ merge { Some = Natural/show, None = "" } (List/head Natural v)++ in prelude.simplePackage { name = "imagemagick", version = v }+ ⫽ { pkgUrl =+ "https://imagemagick.org/download/ImageMagick-${versionString}-67.tar.xz"+ , pkgSubdir = "ImageMagick-${versionString}-67"+ , pkgDeps =+ [ prelude.unbounded "zlib"+ , prelude.unbounded "libtool"+ , prelude.unbounded "bzip2"+ , prelude.unbounded "glib"+ ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ prelude.symlink+ "include/ImageMagick-${major}/MagickWand"+ "include/wand"+ , prelude.symlinkBinary "bin/convert"+ ]+ }++let gtk2 =+ let gtkEnv =+ λ(cfg : types.BuildVars) →+ prelude.defaultPath cfg+ # [ { var = "LDFLAGS"+ , value =+ (prelude.mkLDFlags cfg.linkDirs cfg).value+ ++ " -lpcre -lfribidi"+ }+ , prelude.mkCFlags cfg+ , prelude.mkPkgConfigVar cfg.linkDirs+ , prelude.libPath cfg+ , prelude.mkLDRunPath cfg.linkDirs+ , prelude.mkXdgDataDirs cfg.shareDirs+ , prelude.mkLDPreload cfg.preloadLibs+ ]++ let gtkConfig =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "./configure"+ , arguments = [ "--prefix=${cfg.installDir}" ]+ , environment = Some (gtkEnv cfg)+ }+ )+ ]++ in λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.simplePackage+ { name = "gtk2", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/gnome/sources/gtk+/${versionString}/gtk+-${fullVersion}.tar.xz"+ , pkgSubdir = "gtk+-${fullVersion}"+ , pkgDeps =+ [ prelude.lowerBound { name = "cairo", lower = [ 1, 6 ] }+ , prelude.lowerBound { name = "pango", lower = [ 1, 20 ] }+ , prelude.lowerBound { name = "atk", lower = [ 1, 29, 2 ] }+ , prelude.lowerBound { name = "glib", lower = [ 2, 28, 0 ] }+ , prelude.lowerBound+ { name = "gdk-pixbuf", lower = [ 2, 38, 0 ] }+ ]+ , buildCommand =+ λ(cfg : types.BuildVars) →+ prelude.buildWith (gtkEnv cfg) cfg+ , configureCommand = gtkConfig+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ prelude.symlink+ "include/gdk-pixbuf-2.0/gdk-pixbuf"+ "include/gdk-pixbuf"+ ]+ }++let mkXProto =+ λ(name : Text) →+ λ(v : List Natural) →+ prelude.simplePackage { name, version = v }+ ⫽ { pkgUrl =+ "https://www.x.org/releases/individual/proto/${name}-${prelude.showVersion+ v}.tar.bz2"+ }++let mkXProtoWithPatch =+ λ(name : Text) →+ λ(patch : Text) →+ λ(v : List Natural) →+ mkXProto name v+ ⫽ { configureCommand = prelude.configureWithPatch patch+ , pkgBuildDeps = [ prelude.unbounded "patch" ]+ }++let xproto =+ mkXProtoWithPatch+ "xproto"+ ./patches/xproto.patch sha256:325215e1b547918dfe63278824cda399e61a36b6f11896c863dfacc0cb06e322 as Text++let renderproto =+ mkXProtoWithPatch+ "renderproto"+ ./patches/renderproto.patch sha256:f2f154171dabe139ba07f8602fbada3b23f3d53b5773655cfe31cba2ceb70295 as Text++let randrproto = mkXProto "randrproto"++let scrnsaverproto =+ mkXProtoWithPatch+ "scrnsaverproto"+ ./patches/scrnsaverproto.patch sha256:31983d73cdf49e8d8ed2583593f57b47d889062ae7f5bc5934a59e1e5e3e81f3 as Text++let recordproto = mkXProto "recordproto"++let xf86vidmodeproto = mkXProto "xf86vidmodeproto"++let glproto = mkXProto "glproto"++let dri2proto = mkXProto "dri2proto"++let pango =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ let pangoCfgFile =+ ''+ option('enable_docs',+ description: 'Build API reference for Pango using GTK-Doc',+ type: 'boolean',+ value: false)+ option('gir',+ description: 'Build the GObject introspection data for Pango',+ type: 'boolean',+ value: false)+ ''++ let no_gir =+ λ(cfg : types.BuildVars) →+ if cfg.isCross+ then [ prelude.writeFile+ { file = "meson_options.txt"+ , contents = pangoCfgFile+ }+ ]+ else [] : List types.Command++ in prelude.simplePackage+ { name = "pango", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/GNOME/sources/pango/${versionString}/pango-${fullVersion}.tar.xz"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ no_gir cfg # prelude.mesonConfigure cfg+ , buildCommand = prelude.ninjaBuild+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.ninjaInstallWithPkgConfig+ ( prelude.mesonMoves+ [ "pango.pc", "pangocairo.pc", "pangoft2.pc" ]+ )+ cfg+ # [ prelude.symlink+ "include/pango-1.0/pango"+ "include/pango"+ ]+ , pkgBuildDeps =+ [ prelude.lowerBound { name = "meson", lower = [ 0, 48, 0 ] }+ , prelude.unbounded "gobject-introspection"+ ]+ , pkgDeps =+ [ prelude.lowerBound+ { name = "fontconfig", lower = [ 2, 11, 91 ] }+ , prelude.lowerBound { name = "cairo", lower = [ 1, 12, 10 ] }+ , prelude.lowerBound { name = "fribidi", lower = [ 0, 19, 7 ] }+ , prelude.lowerBound { name = "harfbuzz", lower = [ 1, 4, 2 ] }+ , prelude.unbounded "libXrender"+ , prelude.unbounded "libxcb"+ ]+ }++let libxml2 =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libxml2", version = v }+ ⫽ { pkgUrl =+ "http://xmlsoft.org/sources/libxml2-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps =+ [ prelude.unbounded "zlib"+ , prelude.unbounded "xz"+ , prelude.unbounded "python2"+ ]+ }++let shared-mime-info =+ λ(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.generalBuild+ prelude.singleThreaded+ (prelude.buildEnv cfg)+ cfg+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.defaultInstall cfg+ # [ prelude.symlink "share/pkgconfig" "lib/pkgconfig" ]+ , pkgDeps = [ prelude.unbounded "glib", prelude.unbounded "libxml2" ]+ , pkgBuildDeps =+ [ prelude.lowerBound { name = "intltool", lower = [ 0, 35, 0 ] }+ , prelude.unbounded "sed"+ , prelude.unbounded "gettext"+ ]+ }++let intltool =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "intltool", version = v }+ ⫽ { pkgUrl =+ "https://launchpad.net/intltool/trunk/${versionString}/+download/intltool-${versionString}.tar.gz"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.patch+ ./patches/intltool.patch sha256:e33e9b3e43d80a17475e36c05ed4e649fa5d610991044749e6321dff555cc8e5 as Text+ , prelude.call+ ( prelude.defaultCall+ ⫽ { program = "./configure"+ , arguments = [ "--prefix=${cfg.installDir}" ]+ , environment = Some+ ( prelude.defaultPath cfg+ # [ prelude.mkPerlLib+ { libDirs = cfg.linkDirs+ , perlVersion = [ 5, 30, 1 ]+ , cfg+ }+ ]+ )+ }+ )+ ]+ , pkgDeps = [ prelude.unbounded "XML-Parser" ]+ , pkgBuildDeps =+ [ prelude.lowerBound { name = "perl", lower = [ 5, 8, 1 ] } ]+ }++let gdk-pixbuf =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ let gdkInstall =+ λ(fs : List { src : Text, dest : Text }) →+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( 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 cfg+ , prelude.mkCFlags cfg+ ]+ , arguments = [ "install" ]+ , procDir = Some "build"+ }+ )+ , prelude.symlink+ "include/gdk-pixbuf-2.0/gdk-pixbuf"+ "include/gdk-pixbuf"+ ]+ # prelude.copyFiles fs++ in prelude.simplePackage+ { name = "gdk-pixbuf", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/${versionString}/gdk-pixbuf-${fullVersion}.tar.xz"+ , configureCommand = prelude.mesonConfigure+ , buildCommand = prelude.ninjaBuild+ , installCommand =+ gdkInstall (prelude.mesonMoves [ "gdk-pixbuf-2.0.pc" ])+ , pkgDeps =+ [ prelude.unbounded "glib"+ , prelude.unbounded "libjpeg-turbo"+ , prelude.unbounded "libpng"+ , prelude.unbounded "gobject-introspection"+ , prelude.unbounded "shared-mime-info"+ , prelude.unbounded "libX11"+ ]+ }++let xmlParser =+ λ(v : List Natural) →+ prelude.simplePackage { name = "XML-Parser", version = v }+ ⫽ { pkgUrl =+ "https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-${prelude.showVersion+ v}.tar.gz"+ , configureCommand = prelude.perlConfigure+ , pkgBuildDeps = [ prelude.unbounded "perl" ]+ , pkgDeps = [ prelude.unbounded "expat" ]+ }++let meson =+ λ(v : List Natural) →+ prelude.simplePackage { name = "meson", version = v }+ ⫽ { pkgUrl =+ "https://github.com/mesonbuild/meson/archive/${prelude.showVersion+ v}.tar.gz"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ prelude.python3Install cfg # prelude.mkPy3Wrapper "meson" cfg+ , buildCommand = prelude.doNothing+ , installCommand = prelude.doNothing+ , pkgDeps = [ prelude.unbounded "python3" ]+ }++let ninja =+ let ninjaConfigure =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "./configure.py"+ , arguments = [ "--bootstrap" ]+ }+ )+ ]++ let ninjaInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.copyFile "ninja" "bin/ninja"+ , prelude.symlinkBinary "bin/ninja"+ ]++ in λ(v : List Natural) →+ prelude.simplePackage { name = "ninja", version = v }+ ⫽ { pkgUrl =+ "https://github.com/ninja-build/ninja/archive/v${prelude.showVersion+ v}.tar.gz"+ , configureCommand = ninjaConfigure+ , buildCommand = prelude.doNothing+ , installCommand = ninjaInstall+ , pkgBuildDeps = [ prelude.unbounded "python2" ]+ }++let fontconfig =+ λ(v : List Natural) →+ prelude.simplePackage { name = "fontconfig", version = v }+ ⫽ { pkgUrl =+ "https://www.freedesktop.org/software/fontconfig/release/fontconfig-${prelude.showVersion+ v}.tar.bz2"+ , pkgDeps =+ [ prelude.unbounded "freetype"+ , prelude.unbounded "expat"+ , prelude.unbounded "util-linux"+ ]+ , pkgBuildDeps = [ prelude.unbounded "gperf" ]+ }++let util-linux =+ λ(x : { version : List Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString++ in prelude.simplePackage { name = "util-linux", version = x.version }+ ⫽ { pkgUrl =+ "https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v${versionString}/util-linux-${fullVersion}.tar.xz"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ let crossFlags =+ if cfg.isCross+ then [ "--disable-pylibmount", "--without-tinfo" ]+ else [] : List Text++ in prelude.configureWithFlags+ ( [ "--disable-makeinstall-chown"+ , "--disable-bash-completion"+ ]+ # crossFlags+ )+ cfg+ , pkgDeps =+ [ prelude.unbounded "ncurses", prelude.unbounded "pcre2" ]+ }++let fribidi =+ λ(v : List Natural) →+ prelude.simplePackage { name = "fribidi", version = v }+ ⫽ { pkgUrl =+ "https://github.com/fribidi/fribidi/releases/download/v${prelude.showVersion+ v}/fribidi-${prelude.showVersion+ v}.tar.bz2"+ }++let gobject-introspection =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.ninjaPackage+ { name = "gobject-introspection"+ , version = prelude.fullVersion x+ }+ ⫽ { pkgUrl =+ "https://download.gnome.org/sources/gobject-introspection/${versionString}/gobject-introspection-${fullVersion}.tar.xz"+ , pkgBuildDeps =+ [ prelude.unbounded "meson"+ , prelude.unbounded "m4"+ , prelude.unbounded "bison"+ , prelude.unbounded "flex"+ , prelude.unbounded "pkg-config"+ , prelude.unbounded "glibc"+ ]+ , pkgDeps =+ [ prelude.lowerBound { name = "glib", lower = [ 2, 58, 0 ] } ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.mkExe "build/tools/g-ir-scanner"+ , prelude.copyFile+ "build/gobject-introspection-1.0.pc"+ "lib/pkgconfig/gobject-introspection-1.0.pc"+ ]+ # prelude.ninjaInstall cfg+ }++let flex =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ let flexEnv =+ λ(_ : List Text) →+ λ(cfg : types.BuildVars) →+ Some+ ( prelude.configEnv ([] : List Text) cfg+ # [ { var = "YFLAGS", value = "-Wno-error=yacc" } ]+ )++ in prelude.simplePackage { name = "flex", version = v }+ ⫽ { pkgUrl =+ "https://github.com/westes/flex/releases/download/v${versionString}/flex-${versionString}.tar.gz"+ , pkgBuildDeps =+ [ prelude.unbounded "m4", prelude.unbounded "bison" ]+ , configureCommand = prelude.configWithEnv flexEnv+ , installCommand = prelude.installWithBinaries [ "bin/flex" ]+ }++let glib =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ let glibConfigure =+ λ(cfg : types.BuildVars) →+ let crossArgs =+ if cfg.isCross+ then [ "--cross-file", "cross.txt" ]+ else [] : List Text++ in [ prelude.createDir "build"+ , prelude.writeFile+ { file = "build/cross.txt"+ , contents = prelude.mesonCfgFile cfg+ }+ , prelude.call+ { program = "meson"+ , arguments =+ [ "--prefix=${cfg.installDir}"+ , ".."+ , "-Dselinux=disabled"+ ]+ # crossArgs+ , environment = Some+ ( [ prelude.mkPkgConfigVar cfg.linkDirs+ , { var = "LDFLAGS"+ , value =+ (prelude.mkLDFlags cfg.linkDirs cfg).value+ }+ , prelude.mkPy3Path cfg.linkDirs+ , prelude.libPath cfg+ , prelude.mkCFlags cfg+ , prelude.mkPkgConfigVar cfg.linkDirs+ ]+ # prelude.defaultPath cfg+ )+ , procDir = Some "build"+ }+ ]++ let symlinkGio =+ λ(h : Text) →+ prelude.symlink "include/glib-2.0/gio/${h}" "include/gio/${h}"++ let symlinkGunix =+ λ(h : Text) →+ prelude.symlink+ "include/gio-unix-2.0/gio/${h}"+ "include/gio/${h}"++ in prelude.simplePackage+ { name = "glib", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/gnome/sources/glib/${versionString}/glib-${fullVersion}.tar.xz"+ , configureCommand = glibConfigure+ , buildCommand =+ λ(cfg : types.BuildVars) →+ prelude.ninjaBuild cfg+ # prelude.mkExes+ [ "build/gobject/glib-mkenums"+ , "build/gobject/glib-genmarshal"+ , "build/gio/gdbus-2.0/codegen/gdbus-codegen"+ ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.ninjaInstallWithPkgConfig+ ( prelude.mesonMoves+ [ "glib-2.0.pc"+ , "gobject-2.0.pc"+ , "gio-2.0.pc"+ , "gio-unix-2.0.pc"+ , "gmodule-no-export-2.0.pc"+ , "gmodule-export-2.0.pc"+ , "gmodule-2.0.pc"+ , "gthread-2.0.pc"+ ]+ )+ cfg+ # [ prelude.symlink "include/glib-2.0/glib" "include/glib"+ , prelude.symlink+ "include/glib-2.0/gobject"+ "include/gobject"+ , prelude.symlink+ "include/glib-2.0/glib.h"+ "include/glib.h"+ , prelude.symlink+ "include/glib-2.0/glib-object.h"+ "include/glib-object.h"+ , prelude.symlink+ "include/glib-2.0/glib-unix.h"+ "include/glib-unix.h"+ , prelude.symlink+ "include/glib-2.0/gmodule.h"+ "include/gmodule.h"+ , symlinkGio "gaction.h"+ , symlinkGio "gactiongroup.h"+ , symlinkGio "gactiongroupexporter.h"+ , symlinkGio "gactionmap.h"+ , symlinkGio "gappinfo.h"+ , symlinkGio "gapplication.h"+ , symlinkGio "gapplicationcommandline.h"+ , symlinkGio "gasyncinitable.h"+ , symlinkGio "gasyncresult.h"+ , symlinkGio "gbufferedinputstream.h"+ , symlinkGio "gbufferedoutputstream.h"+ , symlinkGio "gbytesicon.h"+ , symlinkGio "gcancellable.h"+ , symlinkGio "gcharsetconverter.h"+ , symlinkGio "gcontenttype.h"+ , symlinkGio "gconverter.h"+ , symlinkGio "gconverterinputstream.h"+ , symlinkGio "gconverteroutputstream.h"+ , symlinkGio "gcredentials.h"+ , symlinkGio "gdatagrambased.h"+ , symlinkGio "gdatainputstream.h"+ , symlinkGio "gdataoutputstream.h"+ , symlinkGio "gdbusactiongroup.h"+ , symlinkGio "gdbusaddress.h"+ , symlinkGio "gdbusauthobserver.h"+ , symlinkGio "gdbusconnection.h"+ , symlinkGio "gdbuserror.h"+ , symlinkGio "gdbusinterface.h"+ , symlinkGio "gdbusinterfaceskeleton.h"+ , symlinkGio "gdbusintrospection.h"+ , symlinkGio "gdbusmenumodel.h"+ , symlinkGio "gdbusmessage.h"+ , symlinkGio "gdbusmethodinvocation.h"+ , symlinkGio "gdbusnameowning.h"+ , symlinkGio "gdbusnamewatching.h"+ , symlinkGio "gdbusobject.h"+ , symlinkGio "gdbusobjectmanager.h"+ , symlinkGio "gdbusobjectmanagerclient.h"+ , symlinkGio "gdbusobjectmanagerserver.h"+ , symlinkGio "gdbusobjectproxy.h"+ , symlinkGio "gdbusobjectskeleton.h"+ , symlinkGio "gdbusproxy.h"+ , symlinkGio "gdbusserver.h"+ , symlinkGio "gdbusutils.h"+ , symlinkGio "gdrive.h"+ , symlinkGio "gdtlsclientconnection.h"+ , symlinkGio "gdtlsconnection.h"+ , symlinkGio "gdtlsserverconnection.h"+ , symlinkGio "gemblem.h"+ , symlinkGio "gemblemedicon.h"+ , symlinkGio "gfile.h"+ , symlinkGio "gfileattribute.h"+ , symlinkGio "gfileenumerator.h"+ , symlinkGio "gfileicon.h"+ , symlinkGio "gfileinfo.h"+ , symlinkGio "gfileinputstream.h"+ , symlinkGio "gfileiostream.h"+ , symlinkGio "gfilemonitor.h"+ , symlinkGio "gfilenamecompleter.h"+ , symlinkGio "gfileoutputstream.h"+ , symlinkGio "gfilterinputstream.h"+ , symlinkGio "gfilteroutputstream.h"+ , symlinkGio "gicon.h"+ , symlinkGio "ginetaddress.h"+ , symlinkGio "ginetaddressmask.h"+ , symlinkGio "ginetsocketaddress.h"+ , symlinkGio "ginitable.h"+ , symlinkGio "ginputstream.h"+ , symlinkGio "gio-autocleanups.h"+ , symlinkGio "gio.h"+ , symlinkGio "gioenums.h"+ , symlinkGio "gioenumtypes.h"+ , symlinkGio "gioerror.h"+ , symlinkGio "giomodule.h"+ , symlinkGio "gioscheduler.h"+ , symlinkGio "giostream.h"+ , symlinkGio "giotypes.h"+ , symlinkGio "glistmodel.h"+ , symlinkGio "gliststore.h"+ , symlinkGio "gloadableicon.h"+ , symlinkGio "gmemoryinputstream.h"+ , symlinkGio "gmemoryoutputstream.h"+ , symlinkGio "gmenu.h"+ , symlinkGio "gmenuexporter.h"+ , symlinkGio "gmenumodel.h"+ , symlinkGio "gmount.h"+ , symlinkGio "gmountoperation.h"+ , symlinkGio "gnativevolumemonitor.h"+ , symlinkGio "gnetworkaddress.h"+ , symlinkGio "gnetworking.h"+ , symlinkGio "gnetworkmonitor.h"+ , symlinkGio "gnetworkservice.h"+ , symlinkGio "gnotification.h"+ , symlinkGio "goutputstream.h"+ , symlinkGio "gpermission.h"+ , symlinkGio "gpollableinputstream.h"+ , symlinkGio "gpollableoutputstream.h"+ , symlinkGio "gpollableutils.h"+ , symlinkGio "gpropertyaction.h"+ , symlinkGio "gproxy.h"+ , symlinkGio "gproxyaddress.h"+ , symlinkGio "gproxyaddressenumerator.h"+ , symlinkGio "gproxyresolver.h"+ , symlinkGio "gremoteactiongroup.h"+ , symlinkGio "gresolver.h"+ , symlinkGio "gresource.h"+ , symlinkGio "gseekable.h"+ , symlinkGio "gsettings.h"+ , symlinkGio "gsettingsbackend.h"+ , symlinkGio "gsettingsschema.h"+ , symlinkGio "gsimpleaction.h"+ , symlinkGio "gsimpleactiongroup.h"+ , symlinkGio "gsimpleasyncresult.h"+ , symlinkGio "gsimpleiostream.h"+ , symlinkGio "gsimplepermission.h"+ , symlinkGio "gsimpleproxyresolver.h"+ , symlinkGio "gsocket.h"+ , symlinkGio "gsocketaddress.h"+ , symlinkGio "gsocketaddressenumerator.h"+ , symlinkGio "gsocketclient.h"+ , symlinkGio "gsocketconnectable.h"+ , symlinkGio "gsocketconnection.h"+ , symlinkGio "gsocketcontrolmessage.h"+ , symlinkGio "gsocketlistener.h"+ , symlinkGio "gsocketservice.h"+ , symlinkGio "gsrvtarget.h"+ , symlinkGio "gsubprocess.h"+ , symlinkGio "gsubprocesslauncher.h"+ , symlinkGio "gtask.h"+ , symlinkGio "gtcpconnection.h"+ , symlinkGio "gtcpwrapperconnection.h"+ , symlinkGio "gtestdbus.h"+ , symlinkGio "gthemedicon.h"+ , symlinkGio "gthreadedsocketservice.h"+ , symlinkGio "gtlsbackend.h"+ , symlinkGio "gtlscertificate.h"+ , symlinkGio "gtlsclientconnection.h"+ , symlinkGio "gtlsconnection.h"+ , symlinkGio "gtlsdatabase.h"+ , symlinkGio "gtlsfiledatabase.h"+ , symlinkGio "gtlsinteraction.h"+ , symlinkGio "gtlspassword.h"+ , symlinkGio "gtlsserverconnection.h"+ , symlinkGio "gvfs.h"+ , symlinkGio "gvolume.h"+ , symlinkGio "gvolumemonitor.h"+ , symlinkGio "gzlibcompressor.h"+ , symlinkGio "gzlibdecompressor.h"+ , symlinkGunix "gdesktopappinfo.h"+ , symlinkGunix "gfiledescriptorbased.h"+ , symlinkGunix "gunixconnection.h"+ , symlinkGunix "gunixcredentialsmessage.h"+ , symlinkGunix "gunixfdlist.h"+ , symlinkGunix "gunixfdmessage.h"+ , symlinkGunix "gunixinputstream.h"+ , symlinkGunix "gunixmounts.h"+ , symlinkGunix "gunixoutputstream.h"+ , symlinkGunix "gunixsocketaddress.h"+ ]+ , pkgBuildDeps =+ [ prelude.unbounded "meson", prelude.unbounded "ninja" ]+ , pkgDeps =+ [ prelude.unbounded "util-linux"+ , prelude.unbounded "pcre"+ , prelude.unbounded "libffi"+ , prelude.unbounded "zlib"+ , prelude.unbounded "dbus"+ ]+ }++let atk =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.ninjaPackage+ { name = "atk", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "https://ftp.gnome.org/pub/gnome/sources/atk/${versionString}/atk-${fullVersion}.tar.xz"+ , pkgBuildDeps =+ [ prelude.unbounded "gobject-introspection"+ , prelude.unbounded "gettext"+ ]+ , pkgDeps = [ prelude.unbounded "glib" ]+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ [ { src = "build/meson-private/atk.pc"+ , dest = "lib/pkgconfig/atk.pc"+ }+ ]+ }++let re2c =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "re2c", version = v }+ ⫽ { pkgUrl =+ "https://github.com/skvadrik/re2c/releases/download/${versionString}/re2c-${versionString}.tar.gz"+ }++let chickenScheme =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ let printChickenOS =+ λ(os : types.OS) →+ merge+ { FreeBSD = "bsd"+ , OpenBSD = "bsd"+ , NetBSD = "bsd"+ , Solaris = "solaris"+ , Dragonfly = "bsd"+ , Linux = "linux"+ , Darwin = "macosx"+ , Windows = "mingw"+ , Haiku = "haiku"+ , IOS = "ios"+ , AIX = "aix"+ , Hurd = "hurd"+ , Android = "android"+ , Redox = "error: no port for Redox OS"+ , NoOs = "error: no port for no OS"+ }+ os++ let chickenBuild =+ λ(cfg : types.BuildVars) →+ let cc =+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "C_COMPILER=${prelude.printTargetTriple+ tgt}-gcc"+ ]+ , None = [] : List Text+ }+ cfg.targetTriple++ let os = prelude.osCfg cfg++ in [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ cc+ # [ "PLATFORM=${printChickenOS os}"+ , "PREFIX=${cfg.installDir}"+ ]+ }+ )+ , prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ cc+ # [ "PLATFORM=${printChickenOS os}"+ , "PREFIX=${cfg.installDir}"+ , "install"+ ]+ }+ )+ ]+ # prelude.symlinkBinaries+ [ "bin/csc", "bin/chicken-install", "bin/csi" ]++ in prelude.simplePackage { name = "chicken-scheme", version = v }+ ⫽ { pkgUrl =+ "https://code.call-cc.org/releases/${versionString}/chicken-${versionString}.tar.gz"+ , configureCommand = prelude.doNothing+ , buildCommand = chickenBuild+ , installCommand = prelude.doNothing+ , pkgSubdir = "chicken-${versionString}"+ }++let xcb-proto =+ λ(v : List Natural) →+ prelude.simplePackage { name = "xcb-proto", version = v }+ ⫽ { pkgUrl =+ "https://xorg.freedesktop.org/archive/individual/xcb/xcb-proto-${prelude.showVersion+ v}.tar.bz2"+ }++let libxcb =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libxcb", version = v }+ ⫽ { pkgUrl =+ "https://xorg.freedesktop.org/archive/individual/xcb/libxcb-${prelude.showVersion+ v}.tar.bz2"+ , pkgDeps =+ [ prelude.lowerBound { name = "xcb-proto", lower = [ 1, 13 ] }+ , prelude.unbounded "libXau"+ , prelude.unbounded "libpthread-stubs"+ , prelude.unbounded "libXdmcp"+ ]+ }++let libpthread-stubs =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libpthread-stubs", version = v }+ ⫽ { pkgUrl =+ "https://www.x.org/archive/individual/xcb/libpthread-stubs-${prelude.showVersion+ v}.tar.bz2"+ }++let xorgConfigure =+ prelude.configureWithFlags [ "--disable-malloc0returnsnull" ]++let mkXLib =+ λ(name : Text) →+ λ(v : List Natural) →+ prelude.simplePackage { name, version = v }+ ⫽ { pkgUrl =+ "https://www.x.org/releases/individual/lib/${name}-${prelude.showVersion+ v}.tar.bz2"+ , configureCommand = xorgConfigure+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ }++let mkXLibDeps =+ λ(x : { name : Text, deps : List types.Dep }) →+ λ(v : List Natural) →+ mkXLib x.name v ⫽ { pkgDeps = x.deps }++let libXdmcp =+ mkXLibDeps { name = "libXdmcp", deps = [ prelude.unbounded "xproto" ] }++let libXau =+ mkXLibDeps { name = "libXau", deps = [ prelude.unbounded "xproto" ] }++let mkXUtil =+ λ(name : Text) →+ λ(v : List Natural) →+ prelude.simplePackage { name, version = v }+ ⫽ { pkgUrl =+ "https://www.x.org/releases/individual/util/${name}-${prelude.showVersion+ v}.tar.bz2"+ }++let libXrender =+ mkXLibDeps+ { name = "libXrender"+ , deps =+ [ prelude.unbounded "xproto"+ , prelude.unbounded "renderproto"+ , prelude.unbounded "libX11"+ ]+ }++let util-macros = mkXUtil "util-macros"++let libXft =+ mkXLibDeps+ { name = "libXft"+ , deps =+ [ prelude.unbounded "freetype"+ , prelude.unbounded "fontconfig"+ , prelude.unbounded "libXrender"+ , prelude.unbounded "libX11"+ ]+ }++let kbproto = mkXProto "kbproto"++let libX11 =+ mkXLibDeps+ { name = "libX11"+ , deps =+ [ prelude.unbounded "libxcb"+ , prelude.unbounded "kbproto"+ , prelude.unbounded "xextproto"+ , prelude.unbounded "inputproto"+ , prelude.unbounded "xtrans"+ ]+ }++let inputproto = mkXProto "inputproto"++let xineramaproto =+ mkXProtoWithPatch+ "xineramaproto"+ ./patches/xineramaproto.patch sha256:cc2dec3895d71256bfb878ab420bb63ad6708e17a1785805473760bb9d98a310 as Text++let xtrans = mkXLib "xtrans"++let libXrandr =+ mkXLibDeps+ { name = "libXrandr"+ , deps =+ [ prelude.unbounded "util-macros"+ , prelude.unbounded "libXext"+ , prelude.unbounded "libXrender"+ , prelude.unbounded "libX11"+ , prelude.unbounded "randrproto"+ ]+ }++let libXinerama =+ mkXLibDeps+ { name = "libXinerama"+ , deps =+ [ prelude.unbounded "util-macros"+ , prelude.unbounded "libX11"+ , prelude.unbounded "libXext"+ , prelude.unbounded "xineramaproto"+ ]+ }++let libXext =+ mkXLibDeps+ { name = "libXext"+ , deps =+ [ prelude.lowerBound { name = "xextproto", lower = [ 7, 1, 99 ] }+ , prelude.lowerBound { name = "xproto", lower = [ 7, 0, 13 ] }+ , prelude.lowerBound { name = "libX11", lower = [ 1, 6 ] }+ ]+ }++let xextproto =+ mkXProtoWithPatch+ "xextproto"+ ./patches/xextproto.patch sha256:67185f1122233556a40a3d3df5a4967aca8533be62112f3c5e393308b70f3217 as Text++let fixesproto = mkXProto "fixesproto"++let damageproto = mkXProto "damageproto"++let libXScrnSaver =+ λ(v : List Natural) →+ mkXLib "libXScrnSaver" v+ ⫽ { pkgDeps =+ [ prelude.unbounded "util-macros"+ , prelude.unbounded "libXext"+ , prelude.unbounded "scrnsaverproto"+ ]+ }++let bzip2 =+ let cc = prelude.mkCCArg++ in λ(v : List Natural) →+ let versionString = prelude.showVersion v++ let bzipInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ cc cfg+ # [ "PREFIX=${cfg.installDir}"+ , "install"+ , "-j${Natural/show cfg.cpus}"+ ]+ }+ )+ , 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"+ , prelude.symlinkBinary "bin/bzip2"+ , prelude.symlinkBinary "bin/bzip2recover"+ ]++ let bzipShared =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ cc cfg # [ "-f", "Makefile-libbz2_so" ]+ }+ )+ ]++ in prelude.simplePackage { name = "bzip2", version = v }+ ⫽ { pkgUrl =+ "https://www.sourceware.org/pub/bzip2/bzip2-${versionString}.tar.gz"+ , configureCommand = prelude.doNothing+ , buildCommand = bzipShared+ , installCommand = bzipInstall+ }++let expat =+ λ(v : List Natural) →+ prelude.simplePackage { name = "expat", version = v }+ ⫽ { pkgUrl =+ "https://github.com/libexpat/libexpat/releases/download/R_${prelude.underscoreVersion+ v}/expat-${prelude.showVersion+ v}.tar.bz2"+ }++let gperf =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "gperf", version = v }+ ⫽ { pkgUrl =+ "http://ftp.gnu.org/pub/gnu/gperf/gperf-${prelude.showVersion+ v}.tar.gz"+ }++let coreutils =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "coreutils", version = v }+ ⫽ { installCommand =+ prelude.installWithBinaries+ [ "bin/install"+ , "bin/chmod"+ , "bin/rm"+ , "bin/cp"+ , "bin/ln"+ , "bin/mkdir"+ , "bin/test"+ , "bin/od"+ , "bin/readlink"+ ]+ }++let libsepol =+ let cc = prelude.mkCCArg++ let sepolInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ cc cfg+ # [ "PREFIX=${cfg.installDir}"+ , "SHLIBDIR=${cfg.installDir}/lib"+ , "CFLAGS=-Wno-error -O2"+ , "install"+ , "-j${Natural/show cfg.cpus}"+ ]+ , environment = Some+ ( prelude.defaultPath cfg+ # [ prelude.mkLDFlags cfg.linkDirs cfg+ , prelude.mkCFlags cfg+ , prelude.mkPkgConfigVar cfg.linkDirs+ ]+ )+ }+ )+ ]++ in λ(v : List Natural) →+ prelude.simplePackage { name = "libsepol", version = v }+ ⫽ { pkgUrl =+ "https://github.com/SELinuxProject/selinux/releases/download/20191204/libsepol-${prelude.showVersion+ v}.tar.gz"+ , configureCommand = prelude.doNothing+ , buildCommand = prelude.doNothing+ , installCommand = sepolInstall+ , pkgBuildDeps = [ prelude.unbounded "flex" ]+ }++let libselinux =+ let cc = prelude.mkCCArg++ let selinuxInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ cc cfg+ # [ "PREFIX=${cfg.installDir}"+ , "SHLIBDIR=${cfg.installDir}/lib"+ , "EXTRA_CFLAGS=-Wno-error -lpcre "+ ++ (prelude.mkCFlags cfg).value+ , "install"+ , "-j${Natural/show cfg.cpus}"+ ]+ , environment = Some+ ( prelude.defaultPath cfg+ # [ prelude.mkLDFlags cfg.linkDirs cfg+ , prelude.mkCFlags cfg+ , prelude.mkPkgConfigVar cfg.linkDirs+ , prelude.libPath cfg+ ]+ )+ }+ )+ ]++ in λ(v : List Natural) →+ prelude.simplePackage { name = "libselinux", version = v }+ ⫽ { pkgUrl =+ "https://github.com/SELinuxProject/selinux/releases/download/20191204/libselinux-${prelude.showVersion+ v}.tar.gz"+ , configureCommand = prelude.doNothing+ , buildCommand = prelude.doNothing+ , installCommand = selinuxInstall+ , pkgDeps =+ [ prelude.unbounded "pcre", prelude.unbounded "libsepol" ]+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ }++let libXtst =+ mkXLibDeps+ { name = "libXtst"+ , deps = [ prelude.unbounded "libXi", prelude.unbounded "recordproto" ]+ }++let libXi =+ mkXLibDeps+ { name = "libXi"+ , deps = [ prelude.unbounded "libXext", prelude.unbounded "libXfixes" ]+ }++let mkGnomeNinja =+ λ(name : Text) →+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.ninjaPackage { name, version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/gnome/sources/${name}/${versionString}/${name}-${fullVersion}.tar.xz"+ }++let at-spi-core =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeNinja "at-spi2-core" x+ ⫽ { pkgDeps = [ prelude.unbounded "libXtst", prelude.unbounded "glib" ]+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ [ { src = "build/meson-private/atspi-2.pc"+ , dest = "lib/pkgconfig/atspi-2.pc"+ }+ ]+ }++let at-spi-atk =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeNinja "at-spi2-atk" x+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "at-spi2-core", lower = [ 2, 32, 2 ] }+ , prelude.lowerBound { name = "atk", lower = [ 2, 29, 2 ] }+ , prelude.unbounded "libxml2"+ ]+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ (prelude.mesonMoves [ "atk-bridge-2.0.pc" ])+ }++let libdrm =+ λ(v : List Natural) →+ prelude.ninjaPackage { name = "libdrm", version = v }+ ⫽ { pkgUrl =+ "https://dri.freedesktop.org/libdrm/libdrm-${prelude.showVersion+ v}.tar.bz2"+ , pkgDeps =+ [ prelude.unbounded "libpciaccess", prelude.unbounded "cairo" ]+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ ( prelude.mesonMoves+ [ "libdrm.pc"+ , "libdrm_amdgpu.pc"+ , "libdrm_intel.pc"+ , "libdrm_nouveau.pc"+ , "libdrm_radeon.pc"+ , "libkms.pc"+ ]+ )+ }++let libpciaccess = mkXLib "libpciaccess"++let markupSafe =+ λ(v : List Natural) →+ prelude.python3Package { name = "MarkupSafe", version = v }+ ⫽ { pkgUrl =+ "https://files.pythonhosted.org/packages/source/M/MarkupSafe/MarkupSafe-${prelude.showVersion+ v}.tar.gz"+ }++let mako =+ λ(v : List Natural) →+ prelude.python3Package { name = "Mako", version = v }+ ⫽ { pkgUrl =+ "https://files.pythonhosted.org/packages/source/M/Mako/Mako-${prelude.showVersion+ v}.tar.gz"+ }++let elfutils =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "elfutils", version = v }+ ⫽ { pkgUrl =+ "https://sourceware.org/ftp/elfutils/${versionString}/elfutils-${versionString}.tar.bz2"+ }++let mkGnomeSimple =+ λ(name : Text) →+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.simplePackage { name, version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/gnome/sources/${name}/${versionString}/${name}-${fullVersion}.tar.xz"+ }++let gtk3 =+ let mkLDFlagsGtk =+ λ(linkDirs : List Text) →+ concatMapSep " " Text (λ(dir : Text) → "-L${dir}") linkDirs++ let gtkEnv =+ λ(cfg : types.BuildVars) →+ prelude.defaultPath cfg+ # [ { var = "LDFLAGS"+ , value = mkLDFlagsGtk cfg.linkDirs ++ " -lpcre -lfribidi"+ }+ , prelude.mkPkgConfigVar cfg.linkDirs+ , prelude.mkLDPreload cfg.preloadLibs+ , prelude.mkXdgDataDirs cfg.shareDirs+ , prelude.mkCFlags cfg+ ]++ let gtkConfig =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "./configure"+ , arguments = [ "--prefix=${cfg.installDir}" ]+ , environment = Some (gtkEnv cfg)+ }+ )+ ]++ in λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeSimple "gtk+" x+ ⫽ { pkgName = "gtk3"+ , configureCommand = gtkConfig+ , buildCommand =+ λ(cfg : types.BuildVars) → prelude.buildWith (gtkEnv cfg) cfg+ , pkgDeps =+ [ prelude.lowerBound { name = "pango", lower = [ 1, 41, 0 ] }+ , prelude.unbounded "at-spi2-atk"+ , prelude.lowerBound { name = "atk", lower = [ 2, 15, 1 ] }+ , prelude.lowerBound+ { name = "gdk-pixbuf", lower = [ 2, 30, 0 ] }+ , prelude.unbounded "libXft"+ , prelude.lowerBound { name = "libepoxy", lower = [ 1, 4 ] }+ , prelude.unbounded "libXi"+ ]+ , pkgBuildDeps = [ prelude.unbounded "binutils" ]+ }++let graphviz =+ λ(v : List Natural) →+ prelude.simplePackage { name = "graphviz", version = v }+ ⫽ { pkgUrl =+ "https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz"+ , pkgDeps = [ prelude.unbounded "perl" ]+ , installCommand = prelude.installWithBinaries [ "bin/dot" ]+ }++let wayland =+ λ(v : List Natural) →+ prelude.simplePackage { name = "wayland", version = v }+ ⫽ { pkgUrl =+ "https://wayland.freedesktop.org/releases/wayland-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps = [ prelude.unbounded "libxml2" ]+ , configureCommand =+ prelude.configureWithFlags [ "--disable-documentation" ]+ }++let swig =+ λ(v : List Natural) →+ prelude.simplePackage { name = "swig", version = v }+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/swig/swig-${prelude.showVersion+ v}.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/swig" ]+ }++let lmdb =+ let cc = prelude.mkCCArg++ let ar =+ λ(cfg : types.BuildVars) →+ merge+ { Some =+ λ(tgt : types.TargetTriple) →+ [ "AR=${prelude.printTargetTriple tgt}-ar" ]+ , None = [] : List Text+ }+ cfg.targetTriple++ let lmdbInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "make"+ , arguments =+ cc cfg+ # ar cfg+ # [ "prefix=${cfg.installDir}"+ , "install"+ , "-j${Natural/show cfg.cpus}"+ ]+ , procDir = Some "libraries/liblmdb"+ }+ )+ ]++ in λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "lmdb", version = v }+ ⫽ { pkgUrl =+ "https://github.com/LMDB/lmdb/archive/LMDB_${versionString}.tar.gz"+ , pkgSubdir = "lmdb-LMDB_${versionString}"+ , configureCommand = prelude.doNothing+ , buildCommand = prelude.doNothing+ , installCommand = lmdbInstall+ }++let gsl =+ λ(v : List Natural) →+ prelude.simplePackage { name = "gsl", version = v }+ ⫽ { pkgUrl =+ "http://mirror.keystealth.org/gnu/gsl/gsl-${prelude.showVersion+ v}.tar.gz"+ }++let postgresql =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "postgresql", version = v }+ ⫽ { pkgUrl =+ "https://ftp.postgresql.org/pub/source/v${versionString}/postgresql-${versionString}.tar.bz2"+ , configureCommand =+ prelude.configureWithFlags [ "--without-readline" ]+ , installCommand = prelude.installWithBinaries [ "bin/pg_config" ]+ , pkgDeps = [ prelude.unbounded "zlib" ]+ }++let sqlite =+ λ(x : { version : List Natural }) →+ prelude.simplePackage { name = "sqlite", version = x.version }+ ⫽ { pkgUrl =+ "https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz"+ , pkgSubdir = "sqlite-autoconf-3300100"+ }++let ragel =+ λ(v : List Natural) →+ prelude.simplePackage { name = "ragel", version = v }+ ⫽ { pkgUrl =+ "http://www.colm.net/files/ragel/ragel-${prelude.showVersion+ v}.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/ragel" ]+ }++let nano =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "nano", version = v }+ ⫽ { pkgDeps = [ prelude.unbounded "ncurses" ] }++let libarchive =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libarchive", version = v }+ ⫽ { pkgUrl =+ "https://www.libarchive.org/downloads/libarchive-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps =+ [ prelude.unbounded "xz"+ , prelude.unbounded "bzip2"+ , prelude.unbounded "zlib"+ ]+ , installCommand =+ prelude.installWithBinaries [ "bin/bsdtar", "bin/bsdcpio" ]+ }++let pygobject =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeSimple "pygobject" x+ ⫽ { pkgDeps = [ prelude.unbounded "glib" ]+ , configureCommand = prelude.preloadCfg+ }++let pygtk =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in mkGnomeSimple "pygtk" x+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/gnome/sources/pygtk/${versionString}/pygtk-${fullVersion}.tar.bz2"+ , configureCommand = prelude.preloadCfg+ , pkgDeps =+ [ prelude.lowerBound { name = "glib", lower = [ 2, 8, 0 ] }+ , prelude.lowerBound+ { name = "pygobject", lower = [ 2, 21, 3 ] }+ , prelude.unbounded "python2"+ ]+ }++let libglade =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.simplePackage+ { name = "libglade", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/gnome/sources/libglade/${versionString}/libglade-${fullVersion}.tar.bz2"+ , pkgDeps =+ [ prelude.lowerBound { name = "libxml2", lower = [ 2, 4, 10 ] }+ , prelude.lowerBound { name = "gtk2", lower = [ 2, 5, 0 ] }+ ]+ , configureCommand = prelude.configureLinkExtraLibs [ "fribidi" ]+ }++let scour =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.python3Package { name = "scour", version = v }+ ⫽ { pkgUrl =+ "https://github.com/scour-project/scour/archive/v${versionString}/scour-${versionString}.tar.gz"+ , installCommand = prelude.installWithPy3Wrappers [ "scour" ]+ }++let libXpm =+ λ(v : List Natural) →+ mkXLib "libXpm" v+ ⫽ { pkgDeps = [ prelude.unbounded "libXext", prelude.unbounded "libXt" ]+ , pkgBuildDeps = [ prelude.unbounded "gettext" ]+ }++let libXt =+ mkXLibDeps+ { name = "libXt"+ , deps =+ [ prelude.unbounded "libICE"+ , prelude.unbounded "libSM"+ , prelude.unbounded "libX11"+ , prelude.unbounded "kbproto"+ ]+ }++let libICE =+ mkXLibDeps+ { name = "libICE"+ , deps = [ prelude.unbounded "xproto", prelude.unbounded "xtrans" ]+ }++let libSM =+ mkXLibDeps+ { name = "libSM"+ , deps = [ prelude.unbounded "libICE", prelude.unbounded "util-linux" ]+ }++let libXaw =+ mkXLibDeps+ { name = "libXaw"+ , deps = [ prelude.unbounded "libXmu", prelude.unbounded "libXpm" ]+ }++let libXaw3d =+ mkXLibDeps+ { name = "libXaw3d"+ , deps =+ [ prelude.unbounded "libX11"+ , prelude.unbounded "libXt"+ , prelude.unbounded "libXmu"+ , prelude.unbounded "libXext"+ ]+ }++let libXmu =+ mkXLibDeps+ { name = "libXmu"+ , deps =+ [ prelude.unbounded "util-macros"+ , prelude.unbounded "libXt"+ , prelude.unbounded "libXext"+ ]+ }++let libotf =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libotf", version = v }+ ⫽ { pkgUrl =+ "http://download.savannah.gnu.org/releases/m17n/libotf-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "freetype" ]+ }++let m17n =+ λ(v : List Natural) →+ 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.generalBuild+ prelude.singleThreaded+ (prelude.buildEnv cfg)+ cfg+ , pkgDeps = [ prelude.unbounded "libXt" ]+ , pkgBuildDeps = [ prelude.unbounded "binutils" ]+ }++let mkGimpPackage =+ λ(name : Text) →+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.simplePackage { name, version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "https://download.gimp.org/pub/${name}/${versionString}/${name}-${fullVersion}.tar.bz2"+ }++let babl =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.simplePackage+ { name = "babl", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "https://download.gimp.org/pub/babl/${versionString}/babl-${fullVersion}.tar.xz"+ , pkgBuildDeps =+ [ prelude.unbounded "autoconf"+ , prelude.unbounded "automake"+ , prelude.unbounded "libtool"+ , prelude.unbounded "pkg-config"+ ]+ , pkgDeps = [ prelude.unbounded "lcms2" ]+ , configureCommand = prelude.autogenConfigure+ }++let gegl =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGimpPackage "gegl" x+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "babl", lower = [ 0, 1, 58 ] }+ , prelude.lowerBound { name = "glib", lower = [ 2, 44, 0 ] }+ , prelude.unbounded "json-glib"+ ]+ , configureCommand = prelude.preloadCfg+ }++let libexif =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libexif", version = v }+ ⫽ { pkgUrl =+ "https://nchc.dl.sourceforge.net/project/libexif/libexif/${versionString}/libexif-${versionString}.tar.bz2"+ }++let json-glib =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeNinja "json-glib" x+ ⫽ { pkgDeps =+ [ prelude.unbounded "glib"+ , prelude.unbounded "libjpeg-turbo"+ , prelude.unbounded "libpng"+ ]+ , pkgBuildDeps = [ prelude.unbounded "gettext" ]+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ (prelude.mesonMoves [ "json-glib-1.0.pc" ])+ }++let lcms2 =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "lcms2", version = v }+ ⫽ { pkgUrl =+ "https://github.com/mm2/Little-CMS/archive/lcms${versionString}.tar.gz"+ , pkgSubdir = "Little-CMS-lcms${versionString}"+ }++let libmypaint =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libmypaint", version = v }+ ⫽ { pkgUrl =+ "https://github.com/mypaint/libmypaint/releases/download/v${versionString}/libmypaint-${versionString}.tar.xz"+ , pkgDeps = [ prelude.unbounded "json-c" ]+ , pkgBuildDeps =+ [ prelude.unbounded "intltool", prelude.unbounded "gettext" ]+ }++let json-c =+ λ(x : { version : List Natural, dateStr : Text }) →+ let versionString = "${prelude.showVersion x.version}-${x.dateStr}"++ in prelude.simplePackage { name = "json-c", version = x.version }+ ⫽ { pkgUrl =+ "https://github.com/json-c/json-c/archive/json-c-${versionString}.tar.gz"+ , pkgSubdir = "json-c-json-c-${versionString}"+ }++let libopenjpeg =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in 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" ]+ , pkgBuildDeps =+ [ prelude.unbounded "make", prelude.unbounded "cmake" ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.cmakeInstall cfg+ # [ prelude.symlink+ "lib/openjpeg-2.3/OpenJPEGConfig.cmake"+ "lib/OpenJPEGConfig.cmake"+ ]+ }++let libevent =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libevent", version = v }+ ⫽ { pkgUrl =+ "https://github.com/libevent/libevent/releases/download/release-${versionString}-stable/libevent-${versionString}-stable.tar.gz"+ , pkgSubdir = "libevent-${versionString}-stable"+ , pkgDeps = [ prelude.unbounded "openssl" ]+ }++let memcached =+ λ(v : List Natural) →+ prelude.simplePackage { name = "memcached", version = v }+ ⫽ { pkgUrl =+ "https://memcached.org/files/memcached-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "libevent" ]+ }++let motif =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "motif", version = v }+ ⫽ { pkgUrl =+ "https://iweb.dl.sourceforge.net/project/motif/Motif%20${versionString}%20Source%20Code/motif-${versionString}.tar.gz"+ , pkgDeps =+ [ prelude.unbounded "libXft"+ , prelude.unbounded "libpng"+ , prelude.unbounded "freetype"+ ]+ }++let libjpeg =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libjpeg", version = v }+ ⫽ { pkgUrl =+ "http://www.ijg.org/files/jpegsrc.v${versionString}c.tar.gz"+ , pkgSubdir = "jpeg-${versionString}c"+ }++let feh =+ let cc = prelude.mkCCArg++ let fehMake =+ λ(cfg : types.BuildVars) → { program = prelude.makeExe cfg.buildOS }++ let fehBuild =+ λ(v : List Natural) →+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ fehMake cfg+ ⫽ { arguments = [ "feh.1" ], procDir = Some "man" }+ )+ , prelude.call+ ( prelude.defaultCall+ ⫽ fehMake cfg+ ⫽ { arguments =+ cc cfg+ # [ "CFLAGS=${( prelude.mkCFlags cfg+ ).value} -DPACKAGE=\\\"feh\\\" -DPREFIX=\\\"${cfg.installDir}\\\" -DVERSION=\\\"${prelude.showVersion+ v}\\\" ${( prelude.mkLDFlags+ cfg.linkDirs+ cfg+ ).value}"+ , "feh"+ ]+ , procDir = Some "src"+ }+ )+ , prelude.call+ ( prelude.defaultCall+ ⫽ fehMake cfg+ ⫽ { arguments = [ "feh.desktop" ]+ , procDir = Some "share/applications"+ }+ )+ ]++ let fehInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ [ "CFLAGS=${(prelude.mkCFlags cfg).value}"+ , "-j${Natural/show cfg.cpus}"+ , "PREFIX=${cfg.installDir}"+ , "install"+ ]+ }+ )+ ]+ # prelude.mkLDPathWrapper cfg "feh"++ in λ(v : List Natural) →+ prelude.simplePackage { name = "feh", version = v }+ ⫽ { pkgUrl =+ "https://github.com/derf/feh/archive/${prelude.showVersion+ v}.tar.gz"+ , configureCommand = prelude.doNothing+ , buildCommand = fehBuild v+ , installCommand = fehInstall+ , pkgBuildDeps = [ prelude.unbounded "sed" ]+ , pkgDeps =+ [ prelude.unbounded "imlib2"+ , prelude.unbounded "libXt"+ , prelude.unbounded "libXinerama"+ , prelude.unbounded "curl"+ ]+ }++let imlib2 =+ λ(v : List Natural) →+ prelude.simplePackage { name = "imlib2", version = v }+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/enlightenment/imlib2-${prelude.showVersion+ v}.tar.bz2"+ , pkgDeps =+ [ prelude.unbounded "libXext"+ , prelude.unbounded "freetype"+ , prelude.unbounded "libjpeg"+ , prelude.unbounded "libpng"+ , prelude.unbounded "giflib"+ ]+ }++let jemalloc =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "jemalloc", version = v }+ ⫽ { pkgUrl =+ "https://github.com/jemalloc/jemalloc/releases/download/${versionString}/jemalloc-${versionString}.tar.bz2"+ }++let gperftools =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "gperftools", version = v }+ ⫽ { pkgUrl =+ "https://github.com/gperftools/gperftools/releases/download/gperftools-${versionString}/gperftools-${versionString}.tar.gz"+ }++let openssh =+ let opensshInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ [ "PRIVSEP_PATH=${cfg.installDir}/var"+ , "install"+ , "-j${Natural/show cfg.cpus}"+ ]+ , environment = Some+ ( prelude.defaultPath cfg+ # [ prelude.mkPkgConfigVar cfg.linkDirs+ , prelude.libPath cfg+ ]+ )+ }+ )+ ]++ in λ(v : List Natural) →+ prelude.simplePackage { name = "openssh", version = v }+ ⫽ { pkgUrl =+ "https://mirrors.gigenet.com/pub/OpenBSD/OpenSSH/portable/openssh-${prelude.showVersion+ v}p1.tar.gz"+ , pkgSubdir = "openssh-${prelude.showVersion v}p1"+ , installCommand = opensshInstall+ , pkgDeps = [ prelude.unbounded "openssl" ]+ }++let libxslt =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libxslt", version = v }+ ⫽ { pkgUrl =+ "http://xmlsoft.org/sources/libxslt-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "libxml2" ]+ }++let libepoxy =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.ninjaPackage { name = "libepoxy", version = v }+ ⫽ { pkgUrl =+ "https://github.com/anholt/libepoxy/releases/download/${versionString}/libepoxy-${versionString}.tar.xz"+ , pkgDeps = [ prelude.unbounded "mesa" ]+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ (prelude.mesonMoves [ "epoxy.pc" ])+ }++let mesa =+ λ(v : List Natural) →+ prelude.simplePackage { name = "mesa", version = v }+ ⫽ { pkgUrl =+ "https://mesa.freedesktop.org/archive/mesa-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps =+ [ prelude.lowerBound { name = "libdrm", lower = [ 2, 4, 75 ] }+ , prelude.unbounded "libXdamage"+ , prelude.unbounded "libXfixes"+ , prelude.unbounded "libXxf86vm"+ , prelude.lowerBound { name = "libxshmfence", lower = [ 1, 1 ] }+ , prelude.lowerBound { name = "glproto", lower = [ 1, 4, 14 ] }+ , prelude.lowerBound { name = "dri2proto", lower = [ 2, 8 ] }+ , prelude.unbounded "libXrandr"+ ]+ , configureCommand =+ prelude.configureWithFlags+ [ "--enable-autotools"+ , "--with-gallium-drivers=nouveau,swrast"+ ]+ }++let libXdamage =+ mkXLibDeps+ { name = "libXdamage"+ , deps =+ [ prelude.unbounded "libXfixes", prelude.unbounded "damageproto" ]+ }++let libXfixes =+ mkXLibDeps+ { name = "libXfixes"+ , deps =+ [ prelude.unbounded "xproto"+ , prelude.unbounded "fixesproto"+ , prelude.unbounded "xextproto"+ , prelude.unbounded "libX11"+ ]+ }++let libXxf86vm =+ mkXLibDeps+ { name = "libXxf86vm"+ , deps =+ [ prelude.unbounded "xproto"+ , prelude.unbounded "libX11"+ , prelude.unbounded "xextproto"+ , prelude.unbounded "libXext"+ , prelude.unbounded "xf86vidmodeproto"+ ]+ }++let libxshmfence =+ mkXLibDeps+ { name = "libxshmfence", deps = [ prelude.unbounded "xproto" ] }++let gnome-doc-utils =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeSimple "gnome-doc-utils" x+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "libxslt", lower = [ 1, 1, 8 ] }+ , prelude.lowerBound { name = "libxml2", lower = [ 2, 6, 12 ] }+ ]+ , pkgBuildDeps =+ [ prelude.lowerBound { name = "intltool", lower = [ 0, 35, 0 ] }+ , prelude.unbounded "gettext"+ , prelude.unbounded "python2"+ ]+ }++let itstool =+ λ(v : List Natural) →+ prelude.simplePackage { name = "itstool", version = v }+ ⫽ { pkgUrl =+ "http://files.itstool.org/itstool/itstool-${prelude.showVersion+ v}.tar.bz2"+ , pkgDeps = [ prelude.unbounded "libxml2" ]+ }++let gexiv2 =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeNinja "gexiv2" x+ ⫽ { pkgDeps = [ prelude.unbounded "exiv2", prelude.unbounded "glib" ]+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ (prelude.mesonMoves [ "gexiv2.pc" ])+ }++let exiv2 =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "exiv2", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "http://www.exiv2.org/builds/exiv2-${versionString}-Source.tar.gz"+ , pkgSubdir = "exiv2-${versionString}-Source"+ }++let libtiff =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.ninjaPackage { name = "libtiff", version = v }+ ⫽ { pkgUrl =+ "https://download.osgeo.org/libtiff/tiff-${versionString}.tar.gz"+ , pkgSubdir = "tiff-${versionString}"+ , configureCommand = prelude.cmakeConfigureNinja+ , pkgBuildDeps =+ [ prelude.unbounded "cmake", prelude.unbounded "ninja" ]+ }++let nspr =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ let bitFlag =+ λ(cfg : types.BuildVars) →+ if prelude.isX64 (prelude.archCfg cfg)+ then [ "--enable-64bit" ]+ else [] : List Text++ in prelude.simplePackage { name = "nspr", version = v }+ ⫽ { pkgUrl =+ "https://archive.mozilla.org/pub/nspr/releases/v${versionString}/src/nspr-${versionString}.tar.gz"+ , pkgSubdir = "nspr-${versionString}/nspr"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ prelude.configureWithFlags (bitFlag cfg) cfg+ }++let libthai =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libthai", version = v }+ ⫽ { pkgUrl =+ "https://linux.thai.net/pub/thailinux/software/libthai/libthai-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps = [ prelude.unbounded "libdatrie" ]+ }++let libdatrie =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libdatrie", version = v }+ ⫽ { pkgUrl =+ "https://linux.thai.net/pub/thailinux/software/libthai/libdatrie-${prelude.showVersion+ v}.tar.xz"+ }++let joe =+ λ(v : List Natural) →+ prelude.simplePackage { name = "joe", version = v }+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/joe-editor/joe-${prelude.showVersion+ v}.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/joe" ]+ }++let fossil =+ λ(v : List Natural) →+ prelude.simplePackage { name = "fossil", version = v }+ ⫽ { pkgUrl =+ "https://fossil-scm.org/fossil/uv/fossil-src-${prelude.showVersion+ v}.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/fossil" ]+ , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "openssl" ]+ }++let libcroco =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeSimple "libcroco" x+ ⫽ { pkgDeps =+ [ prelude.lowerBound { name = "glib", lower = [ 2, 0 ] }+ , prelude.lowerBound { name = "libxml2", lower = [ 2, 4, 23 ] }+ ]+ }++let libsoup =+ λ(x : { version : List Natural, patch : Natural }) →+ let libsoupCfgFile =+ ''+ option('gssapi',+ type : 'boolean',+ value : true,+ description : 'Build with GSSAPI support'+ )++ option('krb5_config',+ type : 'string',+ description : 'Where to look for krb5-config, path points to krb5-config installation (defaultly looking in PATH)'+ )++ option('ntlm',+ type : 'boolean',+ value : false,+ description : 'Build with NTLM support'+ )++ option('tls_check',+ type : 'boolean',+ value : true,+ description : 'Enable TLS support through glib-networking. If you are building a package, you can disable this to allow building libsoup anyway (since glib-networking is not actually required at compile time), but you should be sure to add a runtime dependency on it.'+ )++ option('gnome',+ type : 'boolean',+ value : true,+ description : 'Build libsoup with GNOME support'+ )++ option('introspection',+ type : 'boolean',+ value : true,+ description : 'Build GObject Introspection data'+ )++ option('vapi',+ type : 'boolean',+ value : false,+ description : 'Build Vala bindings'+ )++ option('doc',+ type: 'boolean',+ value: false,+ description: 'Enable generating the API reference'+ )++ option('tests',+ type: 'boolean',+ value: true,+ description: 'Enable unit tests compilation'+ )+ ''++ in mkGnomeNinja "libsoup" x+ ⫽ { pkgDeps =+ [ prelude.unbounded "glib"+ , prelude.unbounded "sqlite"+ , prelude.unbounded "libxml2"+ , prelude.unbounded "libpsl"+ , prelude.unbounded "krb5"+ , prelude.unbounded "gobject-introspection"+ ]+ , pkgBuildDeps = [ prelude.unbounded "vala" ]+ , configureCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.writeFile+ { file = "meson_options.txt"+ , contents = libsoupCfgFile+ }+ ]+ # prelude.mesonConfigure cfg+ , installCommand =+ prelude.ninjaInstallWithPkgConfig+ (prelude.mesonMoves [ "libsoup-2.4.pc" ])+ }++let libpsl =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libpsl", version = v }+ ⫽ { pkgUrl =+ "https://github.com/rockdaboot/libpsl/releases/download/libpsl-${versionString}/libpsl-${versionString}.tar.gz"+ }++let krb5 =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "krb5", version = v }+ ⫽ { pkgUrl =+ "https://kerberos.org/dist/krb5/${versionString}/krb5-${versionString}.tar.gz"+ , pkgSubdir = "krb5-${versionString}/src"+ , pkgBuildDeps = [ prelude.unbounded "bison" ]+ }++let vala =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeSimple "vala" x+ ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ]+ , pkgDeps =+ [ prelude.lowerBound { name = "glib", lower = [ 2, 40, 0 ] }+ , prelude.lowerBound { name = "graphviz", lower = [ 2, 15 ] }+ ]+ }++let htop =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "htop", version = v }+ ⫽ { pkgUrl =+ "https://hisham.hm/htop/releases/${versionString}/htop-${versionString}.tar.gz"+ , pkgDeps = [ prelude.unbounded "ncurses" ]+ , pkgBuildDeps = [ prelude.unbounded "python3" ]+ , installCommand = prelude.installWithBinaries [ "bin/htop" ]+ }++let mpfr =+ λ(v : List Natural) →+ prelude.simplePackage { name = "mpfr", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/mpfr/mpfr-${prelude.showVersion+ v}.tar.xz"+ }++let libsodium =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libsodium", version = v }+ ⫽ { pkgUrl =+ "https://download.libsodium.org/libsodium/releases/libsodium-${prelude.showVersion+ v}.tar.gz"+ }++let libev =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libev", version = v }+ ⫽ { pkgUrl =+ "http://dist.schmorp.de/libev/Attic/libev-${prelude.showVersion+ v}.tar.gz"+ }++let ctags =+ λ(v : List Natural) →+ prelude.simplePackage { name = "ctags", version = v }+ ⫽ { pkgUrl =+ "http://prdownloads.sourceforge.net/ctags/ctags-${prelude.showVersion+ v}.tar.gz"+ , installCommand = prelude.installWithBinaries [ "bin/ctags" ]+ }++let tcc =+ λ(v : List Natural) →+ prelude.simplePackage { name = "tcc", version = v }+ ⫽ { pkgUrl =+ "http://download.savannah.gnu.org/releases/tinycc/tcc-${prelude.showVersion+ v}.tar.bz2"+ , pkgBuildDeps =+ [ prelude.unbounded "perl", prelude.unbounded "texinfo" ]+ , installCommand = prelude.installWithBinaries [ "bin/tcc" ]+ }++let texinfo =+ λ(v : List Natural) →+ prelude.simplePackage { name = "texinfo", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/texinfo/texinfo-${prelude.showVersion+ v}.tar.xz"+ , configureCommand =+ prelude.configureWithFlags [ "--disable-dependency-tracking" ]+ }++let node =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "node", version = v }+ ⫽ { pkgUrl =+ "https://nodejs.org/dist/v${versionString}/node-v${versionString}.tar.gz"+ , pkgSubdir = "node-v${versionString}"+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/node", "bin/npm" ] cfg+ # [ prelude.mkExe+ "${cfg.installDir}/lib/node_modules/npm/bin/npm-cli.js"+ ]+ }++let glu =+ λ(v : List Natural) →+ prelude.simplePackage { name = "glu", version = v }+ ⫽ { pkgUrl =+ "https://mesa.freedesktop.org/archive/glu/glu-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "mesa" ]+ }++let compositeproto = mkXProto "compositeproto"++let libXcomposite =+ mkXLibDeps+ { name = "libXcomposite"+ , deps =+ [ prelude.unbounded "libX11"+ , prelude.lowerBound { name = "compositeproto", lower = [ 0, 4 ] }+ , prelude.unbounded "libXfixes"+ ]+ }++let mosh =+ λ(v : List Natural) →+ prelude.simplePackage { name = "mosh", version = v }+ ⫽ { pkgUrl = "https://mosh.org/mosh-${prelude.showVersion v}.tar.gz"+ , pkgBuildDeps = [ prelude.unbounded "protobuf" ]+ , pkgDeps =+ [ prelude.unbounded "zlib"+ , prelude.unbounded "protobuf"+ , prelude.unbounded "openssl"+ ]+ , installCommand = prelude.installWithBinaries [ "bin/mosh" ]+ }++let protobuf =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "protobuf", version = v }+ ⫽ { pkgUrl =+ "https://github.com/protocolbuffers/protobuf/releases/download/v${versionString}/protobuf-cpp-${versionString}.tar.gz"+ , pkgSubdir = "protobuf-${versionString}"+ }++let libcds =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libcds", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/libcds/cds-${prelude.showVersion+ v}.tar.gz"+ , pkgSubdir = "cds-${versionString}"+ , pkgDeps = [ prelude.unbounded "libboost" ]+ }++let libboost =+ -- TODO: use bootstrap.bat on windows+ let boostConfigure =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ (prelude.defaultCall ⫽ { program = "./bootstrap.sh" })+ ]++ let boostInstall =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "./b2"+ , arguments =+ [ "install"+ , "--prefix=${cfg.installDir}"+ , "--without-python"+ ]+ }+ )+ ]++ in λ(v : List Natural) →+ let versionString = prelude.underscoreVersion v++ in prelude.simplePackage { name = "libboost", version = v }+ ⫽ { pkgUrl =+ "https://dl.bintray.com/boostorg/release/${prelude.showVersion+ v}/source/boost_${versionString}.tar.bz2"+ , pkgSubdir = "boost_${versionString}"+ , configureCommand = boostConfigure+ , buildCommand = prelude.doNothing+ , installCommand = boostInstall+ }++let slowBuild =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ { program = "cmake"+ , arguments =+ [ "--build", ".", "--config", "Release", "--", "-j", "2" ]+ , environment = prelude.defaultEnv+ , procDir = Some "build"+ }+ ]++let clang =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "clang", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "http://releases.llvm.org/${versionString}/cfe-${versionString}.src.tar.xz"+ , pkgSubdir = "cfe-${versionString}.src"+ , buildCommand = slowBuild+ , pkgDeps = [ prelude.unbounded "llvm" ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.cmakeInstall cfg+ # [ prelude.symlinkBinary "bin/clang"+ , prelude.symlinkBinary "bin/clang-format"+ ]+ }++let llvm =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "llvm", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "http://releases.llvm.org/${versionString}/llvm-${versionString}.src.tar.xz"+ , pkgSubdir = "llvm-${versionString}.src"+ , buildCommand = slowBuild+ }++let pari =+ λ(v : List Natural) →+ prelude.simplePackage { name = "pari", version = v }+ ⫽ { pkgUrl =+ "http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-${prelude.showVersion+ v}.tar.gz"+ , configureCommand =+ prelude.generalConfigure+ prelude.configSome+ "Configure"+ ([] : List Text)+ ([] : List Text)+ }++let pdfgrep =+ λ(v : List Natural) →+ prelude.simplePackage { name = "pdfgrep", version = v }+ ⫽ { pkgUrl =+ "https://pdfgrep.org/download/pdfgrep-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps =+ [ prelude.unbounded "poppler", prelude.unbounded "libgcrypt" ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithWrappers [ "pdfgrep" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/pdfgrep.1", section = 1 } ]+ }++let mpc =+ λ(v : List Natural) →+ prelude.simplePackage { name = "mpc", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/mpc/mpc-${prelude.showVersion v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "mpfr" ]+ }++let gcc =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "gcc", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/gcc/gcc-${versionString}/gcc-${versionString}.tar.xz"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ { program = "contrib/download_prerequisites"+ , arguments = [] : List Text+ , environment = None (List types.EnvVar)+ , procDir = None Text+ }+ ]+ # prelude.configureWithFlags [ "--disable-multilib" ] cfg+ , 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"+ ]+ }++let ruby =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.simplePackage+ { name = "ruby", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "https://cache.ruby-lang.org/pub/ruby/${versionString}/ruby-${fullVersion}.tar.gz"+ , installCommand =+ prelude.installWithBinaries [ "bin/ruby", "bin/gem" ]+ , pkgDeps =+ [ prelude.unbounded "readline", prelude.unbounded "openssl" ]+ }++let poppler =+ λ(v : List Natural) →+ prelude.simplePackage { name = "poppler", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "https://poppler.freedesktop.org/poppler-${prelude.showVersion+ v}.tar.xz"+ , 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"+ ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.cmakeInstall cfg+ # prelude.mkLDPathWrappers+ cfg+ [ "pdfdetach"+ , "pdffonts"+ , "pdfimages"+ , "pdfinfo"+ , "pdfseparate"+ , "pdfsig"+ , "pdftocairo"+ , "pdftohtml"+ , "pdftoppm"+ , "pdftops"+ , "pdftotext"+ , "pdfunite"+ ]+ }++let tesseract =+ λ(v : List Natural) →+ prelude.simplePackage { name = "tesseract", version = v }+ ⫽ { pkgUrl =+ "https://github.com/tesseract-ocr/tesseract/archive/${prelude.showVersion+ v}.tar.gz"+ , pkgDeps =+ [ prelude.lowerBound { name = "leptonica", lower = [ 1, 74 ] } ]+ , pkgBuildDeps =+ [ prelude.unbounded "libtool"+ , prelude.unbounded "automake"+ , prelude.unbounded "pkg-config"+ ]+ , configureCommand = prelude.autogenConfigure+ , installCommand = prelude.installWithBinaries [ "bin/tesseract" ]+ }++let leptonica =+ λ(v : List Natural) →+ prelude.simplePackage { name = "leptonica", version = v }+ ⫽ { pkgUrl =+ "http://leptonica.org/source/leptonica-${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "zlib" ]+ }++let grep =+ λ(v : List Natural) → prelude.makeGnuExe { name = "grep", version = v }++let phash =+ λ(v : List Natural) →+ prelude.simplePackage { name = "pHash", version = v }+ ⫽ { pkgUrl =+ "http://phash.org/releases/pHash-${prelude.showVersion v}.tar.gz"+ , pkgDeps =+ [ prelude.lowerBound { name = "CImg", lower = [ 1, 3 ] }+ , prelude.unbounded "ffmpeg"+ , prelude.unbounded "libsndfile"+ , prelude.unbounded "libsamplerate"+ , prelude.unbounded "mpg123"+ , prelude.unbounded "libjpeg-turbo"+ , prelude.unbounded "libpng"+ , prelude.unbounded "fftw"+ ]+ , pkgBuildDeps =+ [ prelude.unbounded "autoconf"+ , prelude.unbounded "automake"+ , prelude.unbounded "grep"+ , prelude.unbounded "coreutils"+ , prelude.unbounded "sed"+ , prelude.unbounded "libtool"+ ]+ , configureCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.patch+ ./patches/pHash.patch sha256:d442c0bb6c66893badf8642d8c8123026f21e78513f91af422c4d4ee70a28d50 as Text+ , prelude.call+ { program = "autoreconf"+ , arguments = [ "-i" ]+ , environment = Some+ [ { var = "PATH"+ , value = prelude.mkPathVar cfg.binDirs+ }+ , prelude.mkAclocalPath cfg.shareDirs+ ]+ , procDir = None Text+ }+ ]+ # prelude.defaultConfigure cfg+ }++let cimg =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "CImg", version = v }+ ⫽ { pkgUrl = "http://cimg.eu/files/CImg_${versionString}.zip"+ , pkgBuildDeps = [] : List types.Dep+ , configureCommand = prelude.doNothing+ , buildCommand = prelude.doNothing+ , installCommand =+ λ(_ : types.BuildVars) →+ [ prelude.copyFile "CImg.h" "include/CImg.h" ]+ }++let ffmpeg =+ λ(v : List Natural) →+ prelude.simplePackage { name = "ffmpeg", version = v }+ ⫽ { pkgUrl =+ "https://ffmpeg.org/releases/ffmpeg-${prelude.showVersion+ v}.tar.bz2"+ , pkgBuildDeps = [ prelude.unbounded "nasm" ]+ , configureCommand =+ prelude.configureWithFlags+ [ "--enable-shared"+ , "--enable-libmp3lame"+ , "--enable-gpl"+ , "--enable-version3"+ , "--enable-nonfree"+ , "--disable-debug"+ , "--enable-libass"+ , "--enable-libfreetype"+ , "--enable-libvorbis"+ , "--enable-avresample"+ , "--enable-gnutls"+ , "--enable-libvpx"+ , "--enable-libfdk-aac"+ ]+ , installCommand = prelude.installWithWrappers [ "ffmpeg" ]+ , pkgDeps =+ [ prelude.unbounded "bzip2"+ , prelude.unbounded "libmp3lame"+ , prelude.unbounded "libass"+ , prelude.unbounded "freetype"+ , prelude.unbounded "libvorbis"+ , prelude.unbounded "gnutls"+ , prelude.unbounded "libvpx"+ , prelude.unbounded "fdk-aac"+ ]+ }++let libsndfile =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libsndfile", version = v }+ ⫽ { pkgUrl =+ "http://www.mega-nerd.com/libsndfile/files/libsndfile-${prelude.showVersion+ v}.tar.gz"+ }++let libsamplerate =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libsamplerate", version = v }+ ⫽ { pkgUrl =+ "http://www.mega-nerd.com/SRC/libsamplerate-${prelude.showVersion+ v}.tar.gz"+ }++let mpg123 =+ λ(v : List Natural) →+ prelude.simplePackage { name = "mpg123", version = v }+ ⫽ { pkgUrl =+ "http://www.mpg123.de/download/mpg123-${prelude.showVersion+ v}.tar.bz2"+ }++let time =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "time", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/time/time-${prelude.showVersion+ v}.tar.gz"+ }++let make =+ λ(v : List Natural) →+ prelude.makeGnuExe { name = "make", version = v }+ ⫽ { pkgUrl =+ "https://ftp.wayne.edu/gnu/make/make-${prelude.showVersion+ v}.tar.bz2"+ , configureCommand =+ prelude.configureWithPatch+ ./patches/make.patch sha256:56f3260d302d1ecd0173ab6e5ccc0e4806fb8f0bc6aa68a1d7ef4fca77d85572 as Text+ , buildCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "sh"+ , arguments = [ "build.sh" ]+ , environment = Some (prelude.buildEnv cfg)+ }+ )+ ]+ , installCommand =+ λ(_ : types.BuildVars) →+ [ prelude.copyFile "make" "bin/make"+ , prelude.symlinkBinary "bin/make"+ ]+ , pkgBuildDeps = [ prelude.unbounded "patch" ]+ }++let mercury =+ let mercuryBuild =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "make"+ , arguments = [ "PARALLEL=-j${Natural/show cfg.cpus}" ]+ , environment = Some (prelude.buildEnv cfg)+ }+ )+ ]++ let mercuryCommon =+ { pkgUrl =+ "http://dl.mercurylang.org/release/mercury-srcdist-14.01.1.tar.gz"+ , pkgSubdir = "mercury-srcdist-14.01.1"+ , buildCommand = mercuryBuild+ }++ in prelude.simplePackage { name = "mercury", version = [ 14, 1, 1 ] }+ ⫽ mercuryCommon+ ⫽ { pkgBuildDeps = [ prelude.unbounded "flex" ] }++let qt =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.simplePackage+ { name = "qt", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "https://download.qt.io/archive/qt/${versionString}/${fullVersion}/single/qt-everywhere-src-${fullVersion}.tar.xz"+ , pkgSubdir = "qt-everywhere-src-${fullVersion}"+ , pkgBuildDeps =+ [ prelude.unbounded "flex"+ , prelude.unbounded "bison"+ , prelude.unbounded "pkg-config"+ , prelude.unbounded "gperf"+ , prelude.unbounded "perl"+ , prelude.unbounded "python2"+ , prelude.unbounded "git"+ ]+ , pkgDeps =+ [ prelude.unbounded "fontconfig"+ , prelude.unbounded "mesa"+ , prelude.unbounded "dbus"+ , prelude.unbounded "freetype"+ , prelude.unbounded "harfbuzz"+ , prelude.unbounded "libjpeg-turbo"+ , prelude.unbounded "libpng"+ , prelude.unbounded "giflib"+ , prelude.unbounded "glib"+ ]+ }++let lz4 =+ λ(v : List Natural) →+ prelude.simplePackage { name = "lz4", version = v }+ ⫽ { pkgUrl =+ "https://github.com/lz4/lz4/archive/v${prelude.showVersion+ v}.tar.gz"+ , configureCommand = prelude.doNothing+ , installCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "make"+ , arguments =+ [ "PREFIX=${cfg.installDir}", "install" ]+ , environment = Some (prelude.buildEnv cfg)+ }+ )+ , prelude.symlinkBinary "bin/lz4"+ ]+ # prelude.symlinkManpages+ [ { file = "share/man/man1/lz4.1", section = 1 } ]+ }++let fftw =+ λ(v : List Natural) →+ prelude.simplePackage { name = "fftw", version = v }+ ⫽ { pkgUrl = "http://www.fftw.org/fftw-${prelude.showVersion v}.tar.gz"+ , configureCommand =+ prelude.configureWithFlags+ [ "--enable-shared"+ , "--enable-threads"+ , "--with-combined-threads"+ ]+ }++let icu-le-hb =+ λ(v : List Natural) →+ prelude.simplePackage { name = "icu-le-hb", version = v }+ ⫽ { pkgUrl =+ "https://github.com/harfbuzz/icu-le-hb/archive/${prelude.showVersion+ v}.tar.gz"+ , configureCommand = prelude.autogenConfigure+ , pkgDeps = [ prelude.unbounded "harfbuzz", prelude.unbounded "icu" ]+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ }++let icu =+ λ(v : List Natural) →+ prelude.simplePackage { name = "icu", version = v }+ ⫽ { pkgUrl =+ "http://download.icu-project.org/files/icu4c/${prelude.showVersion+ v}/icu4c-${prelude.underscoreVersion+ v}-src.tgz"+ , pkgSubdir = "icu/source"+ , pkgBuildDeps =+ [ prelude.lowerBound { name = "make", lower = [ 3, 80 ] }+ , prelude.unbounded "python3"+ ]+ }++let opencv =+ λ(v : List Natural) →+ prelude.simplePackage { name = "opencv", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "https://github.com/opencv/opencv/archive/${prelude.showVersion+ v}.zip"+ , pkgBuildDeps =+ [ prelude.lowerBound { name = "cmake", lower = [ 2, 8, 7 ] }+ , prelude.unbounded "pkg-config"+ , prelude.unbounded "python2"+ ]+ , pkgDeps =+ [ prelude.unbounded "zlib"+ , prelude.unbounded "libjpeg-turbo"+ , prelude.unbounded "libpng"+ , prelude.unbounded "gtk3"+ , prelude.unbounded "ffmpeg"+ ]+ }++let libraw =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libraw", version = v }+ ⫽ { pkgUrl =+ "https://www.libraw.org/data/LibRaw-${prelude.showVersion+ v}.tar.gz"+ , pkgSubdir = "LibRaw-${prelude.showVersion v}"+ }++let quazip =+ λ(v : List Natural) →+ prelude.simplePackage { name = "quazip", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "https://github.com/stachenov/quazip/archive/v${prelude.showVersion+ v}.tar.gz"+ , pkgDeps = [ prelude.unbounded "zlib", prelude.unbounded "qt" ]+ }++let eigen =+ λ(v : List Natural) →+ prelude.simplePackage { name = "eigen", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "http://bitbucket.org/eigen/eigen/get/${prelude.showVersion+ v}.tar.bz2"+ , pkgSubdir = "eigen-eigen-323c052e1731"+ }++let blas =+ λ(v : List Natural) →+ prelude.simplePackage { name = "blas", version = v }+ ⫽ { pkgUrl =+ "http://www.netlib.org/blas/blas-${prelude.showVersion v}.tgz"+ , pkgSubdir = "BLAS-${prelude.showVersion v}"+ , pkgBuildDeps = [ prelude.unbounded "gcc" ]+ , configureCommand = prelude.doNothing+ , installCommand =+ λ(_ : types.BuildVars) →+ [ prelude.copyFile "blas_LINUX.a" "lib/blas.a" ]+ }++let openblas =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "openblas", version = v }+ ⫽ { pkgUrl =+ "https://github.com/xianyi/OpenBLAS/archive/v${versionString}.tar.gz"+ , pkgSubdir = "OpenBLAS-${versionString}"+ , pkgBuildDeps = [ prelude.unbounded "gcc" ]+ , pkgDeps = [ prelude.unbounded "gcc" ]+ , configureCommand = prelude.doNothing+ , installCommand = prelude.installPrefix+ }++let r =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "r", version = v }+ ⫽ { pkgUrl =+ "https://cran.r-project.org/src/base/R-4/R-${versionString}.tar.gz"+ , pkgSubdir = "R-${versionString}"+ , pkgDeps =+ [ prelude.unbounded "readline"+ , prelude.unbounded "libXt"+ , prelude.unbounded "pcre"+ ]+ , pkgBuildDeps = [ prelude.unbounded "gcc" ]+ , installCommand =+ prelude.installWithBinaries [ "bin/R", "bin/Rscript" ]+ }++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" ]+ }++let glib-networking =+ λ(x : { version : List Natural, patch : Natural }) →+ let versionString = prelude.showVersion x.version++ let fullVersion = versionString ++ "." ++ Natural/show x.patch++ in prelude.ninjaPackage+ { name = "glib-networking", version = prelude.fullVersion x }+ ⫽ { pkgUrl =+ "http://ftp.gnome.org/pub/gnome/sources/glib-networking/${versionString}/glib-networking-${fullVersion}.tar.xz"+ , pkgBuildDeps =+ [ prelude.unbounded "pkg-config", prelude.unbounded "gettext" ]+ , pkgDeps =+ [ prelude.unbounded "glib", prelude.unbounded "gnutls" ]+ }++let libwebp =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libwebp", version = v }+ ⫽ { pkgUrl =+ "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${prelude.showVersion+ v}.tar.gz"+ }++let rustc =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "rustc", version = v }+ ⫽ { pkgUrl =+ "https://static.rust-lang.org/dist/rust-${versionString}-x86_64-unknown-linux-gnu.tar.gz"+ , pkgSubdir = "rust-${versionString}-x86_64-unknown-linux-gnu"+ , configureCommand = prelude.doNothing+ , buildCommand = prelude.doNothing+ , installCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "./install.sh"+ , arguments =+ [ "--prefix=${cfg.installDir}"+ , "--disable-ldconfig"+ ]+ }+ )+ ]+ }++let librsvg =+ λ(x : { version : List Natural, patch : Natural }) →+ mkGnomeSimple "librsvg" x+ ⫽ { pkgBuildDeps =+ [ prelude.lowerBound { name = "rustc", lower = [ 1, 16, 0 ] }+ , prelude.unbounded "pkg-config"+ ]+ , pkgDeps =+ [ prelude.lowerBound { name = "cairo", lower = [ 1, 16, 0 ] }+ , prelude.lowerBound { name = "libxml2", lower = [ 2, 9, 0 ] }+ , prelude.lowerBound { name = "libcroco", lower = [ 0, 6, 1 ] }+ , prelude.unbounded "pango"+ , prelude.lowerBound { name = "gdk-pixbuf", lower = [ 2, 20 ] }+ , prelude.unbounded "gobject-introspection"+ , prelude.lowerBound { name = "glib", lower = [ 2, 10, 0 ] }+ ]+ }++let ats =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ let atsBuild =+ λ(cfg : types.BuildVars) →+ let buildDir =+ cfg.currentDir ++ "/ATS2-Postiats-gmp-${versionString}"++ in [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = prelude.makeExe cfg.buildOS+ , arguments =+ [ "CFLAGS=${( prelude.mkCFlags cfg+ ).value} -I${buildDir}/src/CBOOT/ccomp/runtime -I${buildDir}/src/CBOOT"+ , "LDFLAGS='${( prelude.mkLDFlags cfg.linkDirs cfg+ ).value}'"+ ]+ , environment = Some (prelude.buildEnv cfg)+ }+ )+ ]++ in prelude.simplePackage { name = "ats", version = v }+ ⫽ { pkgUrl =+ "http://ats-lang.sourceforge.net/IMPLEMENT/Postiats/ATS2-Postiats-gmp-${versionString}.tgz"+ , pkgSubdir = "ATS2-Postiats-gmp-${versionString}"+ , pkgDeps = [ prelude.unbounded "gmp" ]+ , buildCommand = atsBuild+ , installCommand =+ prelude.installWithBinaries [ "bin/patsopt", "bin/patscc" ]+ }++let libiconv =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libiconv", version = v }+ ⫽ { pkgUrl =+ "https://ftp.wayne.edu/gnu/libiconv/libiconv-${prelude.showVersion+ v}.tar.gz"+ }++let libav =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libav", version = v }+ ⫽ { pkgUrl =+ "https://libav.org/releases/libav-${prelude.showVersion v}.tar.xz"+ , pkgBuildDeps =+ [ prelude.unbounded "nasm", prelude.unbounded "perl" ]+ , installCommand =+ prelude.installWithBinaries [ "bin/avconv", "bin/avprobe" ]+ }++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"+ }++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"+ }++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)+ , pkgBuildDeps =+ [ prelude.unbounded "coreutils"+ , prelude.unbounded "sed"+ , prelude.unbounded "gcc"+ , prelude.unbounded "binutils"+ , prelude.unbounded "grep"+ , prelude.unbounded "findutils"+ ]+ }++let bash =+ λ(v : List Natural) →+ prelude.simplePackage { name = "bash", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/gnu/bash/bash-${prelude.showVersion+ v}.tar.gz"+ }++let findutils =+ λ(v : List Natural) →+ prelude.simplePackage { name = "findutils", version = v }+ ⫽ { pkgUrl =+ "https://ftp.gnu.org/pub/gnu/findutils/findutils-${prelude.showVersion+ v}.tar.xz"+ }++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+ }++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"+ }++let lzip =+ λ(v : List Natural) →+ prelude.simplePackage { name = "lzip", version = v }+ ⫽ { pkgUrl =+ "http://download.savannah.gnu.org/releases/lzip/lzip-${prelude.showVersion+ v}.tar.lz"+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/lzip" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/lzip.1", section = 1 } ]+ }++let clzip =+ λ(v : List Natural) →+ prelude.simplePackage { name = "clzip", version = v }+ ⫽ { pkgUrl =+ "http://download.savannah.gnu.org/releases/lzip/clzip/clzip-${prelude.showVersion+ v}.tar.lz"+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/clzip" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/clzip.1", section = 1 } ]+ }++let lunzip =+ λ(v : List Natural) →+ prelude.simplePackage { name = "lunzip", version = v }+ ⫽ { pkgUrl =+ "http://download.savannah.gnu.org/releases/lzip/lunzip/lunzip-${prelude.showVersion+ v}.tar.lz"+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/lunzip" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/lunzip.1", section = 1 } ]+ }++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.lz"+ , configureCommand = prelude.configureWithFlags [ "--enable-shared" ]+ }++let lziprecover =+ λ(v : List Natural) →+ prelude.simplePackage { name = "lziprecover", version = v }+ ⫽ { pkgUrl =+ "http://download.savannah.gnu.org/releases/lzip/lziprecover/lziprecover-${prelude.showVersion+ v}.tar.lz"+ , installCommand = prelude.installWithBinaries [ "bin/lziprecover" ]+ }++let libmp3lame =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libmp3lame", version = v }+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/lame/lame-${versionString}.tar.gz"+ , pkgSubdir = "lame-${versionString}"+ }++let libass =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libass", version = v }+ ⫽ { pkgUrl =+ "https://github.com/libass/libass/releases/download/${versionString}/libass-${versionString}.tar.xz"+ , pkgBuildDeps = [ prelude.unbounded "nasm" ]+ , pkgDeps =+ [ prelude.lowerBound { name = "freetype", lower = [ 9, 10, 3 ] }+ , prelude.lowerBound { name = "fribidi", lower = [ 0, 19, 0 ] }+ , prelude.lowerBound { name = "harfbuzz", lower = [ 0, 9, 5 ] }+ , prelude.lowerBound+ { name = "fontconfig", lower = [ 2, 10, 92 ] }+ ]+ }++let libogg =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libogg", version = v }+ ⫽ { pkgUrl =+ "https://downloads.xiph.org/releases/ogg/libogg-${prelude.showVersion+ v}.tar.xz"+ }++let libvorbis =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libvorbis", version = v }+ ⫽ { pkgUrl =+ "https://downloads.xiph.org/releases/vorbis/libvorbis-${prelude.showVersion+ v}.tar.xz"+ , pkgDeps = [ prelude.unbounded "libogg" ]+ }++let libvpx =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "libvpx", version = v }+ ⫽ { pkgUrl =+ "https://github.com/webmproject/libvpx/archive/v${versionString}/libvpx-${versionString}.tar.gz"+ , pkgBuildDeps =+ [ prelude.unbounded "nasm", prelude.unbounded "perl" ]+ }++let fdk-aac =+ λ(v : List Natural) →+ prelude.simplePackage { name = "fdk-aac", version = v }+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/opencore-amr/fdk-aac-${prelude.showVersion+ v}.tar.gz"+ }++let swi-prolog =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.ninjaPackage { name = "swi-prolog", version = v }+ ⫽ { pkgUrl =+ "https://www.swi-prolog.org/download/stable/src/swipl-${versionString}.tar.gz"+ , configureCommand = prelude.cmakeConfigureNinja+ , pkgBuildDeps =+ [ prelude.unbounded "cmake"+ , prelude.unbounded "ninja"+ , prelude.unbounded "coreutils"+ ]+ , pkgSubdir = "swipl-${versionString}"+ }++let exiftool =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "exiftool", version = v }+ ⫽ { pkgUrl =+ "https://sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-${versionString}.tar.gz"+ , pkgSubdir = "Image-ExifTool-${versionString}"+ , configureCommand = prelude.perlConfigure+ , installCommand =+ λ(cfg : types.BuildVars) →+ let perlWrapper =+ "PERL5LIB=${cfg.installDir}/lib/site_perl/5.30.0/ ${cfg.installDir}/bin/exiftool \$@"++ let wrapped = "wrapper/exiftool"++ in prelude.defaultInstall cfg+ # [ prelude.createDir "wrapper"+ , prelude.writeFile+ { file = wrapped, contents = perlWrapper }+ , prelude.mkExe wrapped+ , prelude.copyFile wrapped wrapped+ , prelude.symlinkBinary wrapped+ ]+ , pkgBuildDeps = [ prelude.unbounded "perl" ]+ }++let subversion =+ λ(v : List Natural) →+ prelude.simplePackage { name = "subversion", version = v }+ ⫽ { pkgUrl =+ "https://www-eu.apache.org/dist/subversion/subversion-${prelude.showVersion+ v}.tar.bz2"+ , pkgDeps =+ [ prelude.unbounded "apr"+ , prelude.unbounded "apr-util"+ , prelude.unbounded "sqlite"+ , prelude.unbounded "lz4"+ , prelude.unbounded "zlib"+ , prelude.unbounded "utf8proc"+ ]+ , pkgBuildDeps = [ prelude.unbounded "pkg-config" ]+ , installCommand = prelude.installWithBinaries [ "bin/svn" ]+ }++let utf8proc =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "utf8proc", version = v }+ ⫽ prelude.cmakePackage+ ⫽ { pkgUrl =+ "https://github.com/JuliaStrings/utf8proc/archive/v${versionString}.tar.gz"+ }++let apr =+ λ(v : List Natural) →+ prelude.simplePackage { name = "apr", version = v }+ ⫽ { pkgUrl =+ "https://www-eu.apache.org/dist/apr/apr-${prelude.showVersion+ v}.tar.bz2"+ }++let apr-util =+ λ(v : List Natural) →+ prelude.simplePackage { name = "apr-util", version = v }+ ⫽ { pkgUrl =+ "https://www-eu.apache.org/dist/apr/apr-util-${prelude.showVersion+ v}.tar.bz2"+ , pkgDeps = [ prelude.unbounded "apr" ]+ , configureCommand =+ λ(cfg : types.BuildVars) →+ prelude.configureWithFlags+ [ "--with-apr=${concat cfg.linkDirs}/../" ]+ cfg+ }++let libsass =+ λ(v : List Natural) →+ prelude.simplePackage { name = "libsass", version = v }+ ⫽ { pkgUrl =+ "https://github.com/sass/libsass/archive/${prelude.showVersion+ v}.tar.gz"+ , pkgBuildDeps =+ [ prelude.unbounded "autoconf"+ , prelude.unbounded "automake"+ , prelude.unbounded "m4"+ , prelude.unbounded "grep"+ , prelude.unbounded "sed"+ , prelude.unbounded "coreutils"+ , prelude.unbounded "libtool"+ ]+ , configureCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ { program = "autoreconf"+ , arguments = [ "-i" ]+ , environment = Some+ [ { var = "PATH"+ , value = prelude.mkPathVar cfg.binDirs+ }+ , prelude.mkAclocalPath cfg.shareDirs+ ]+ , procDir = None Text+ }+ ]+ # prelude.defaultConfigure cfg+ }++let zstd =+ λ(v : List Natural) →+ let versionString = prelude.showVersion v++ in prelude.simplePackage { name = "zstd", version = v }+ ⫽ { pkgUrl =+ "https://github.com/facebook/zstd/releases/download/v${versionString}/zstd-${versionString}.tar.zst"+ , configureCommand = prelude.doNothing+ , installCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ { program = "make"+ , arguments =+ [ "PREFIX=${cfg.installDir}", "install" ]+ , environment = Some (prelude.buildEnv cfg)+ , procDir = None Text+ }+ , prelude.symlinkBinary "bin/zstd"+ ]+ # prelude.symlinkManpages+ [ { file = "share/man/man1/zstd.1", section = 1 } ]+ }++let luarocks =+ λ(v : List Natural) →+ prelude.simplePackage { name = "luarocks", version = v }+ ⫽ { pkgUrl =+ "http://luarocks.org/releases/luarocks-${prelude.showVersion+ v}.tar.gz"+ , pkgBuildDeps = [ prelude.unbounded "lua" ]+ , 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 }+ ]+ }++let smake =+ λ(v : List Natural) →+ prelude.simplePackage { name = "smake", version = v }+ ⫽ { pkgUrl =+ "https://downloads.sourceforge.net/s-make/smake-${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/smake"+ ]+ # prelude.symlinkManpages+ [ { file = "opt/schily/share/man/man1/smake.1"+ , section = 1+ }+ , { file = "opt/schily/share/man/man5/makefiles.5"+ , section = 5+ }+ , { file = "opt/schily/share/man/man5/makerules.5"+ , section = 5+ }+ ]+ }++let busybox =+ λ(v : List Natural) →+ prelude.simplePackage { name = "busybox", version = v }+ ⫽ { pkgUrl =+ "https://www.busybox.net/downloads/busybox-${prelude.showVersion+ v}.tar.bz2"+ , configureCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "make"+ , arguments = [ "defconfig" ]+ , environment = Some (prelude.buildEnv cfg)+ }+ )+ ]+ , installCommand =+ λ(cfg : types.BuildVars) →+ [ prelude.call+ ( prelude.defaultCall+ ⫽ { program = "make"+ , arguments =+ [ "CONFIG_PREFIX=${cfg.installDir}", "install" ]+ , environment = Some (prelude.buildEnv cfg)+ }+ )+ , prelude.symlinkBinary "bin/busybox"+ ]+ }++let tarlz =+ λ(v : List Natural) →+ prelude.simplePackage { name = "tarlz", version = v }+ ⫽ { pkgUrl =+ "http://download.savannah.gnu.org/releases/lzip/tarlz/tarlz-${prelude.showVersion+ v}.tar.lz"+ , installCommand =+ λ(cfg : types.BuildVars) →+ prelude.installWithBinaries [ "bin/tarlz" ] cfg+ # prelude.symlinkManpages+ [ { file = "share/man/man1/tarlz.1", section = 1 } ]+ }++in [ alsa-lib [ 1, 1, 9 ]+ , apr [ 1, 7, 0 ]+ , apr-util [ 1, 6, 1 ]+ , at-spi-atk { version = [ 2, 33 ], patch = 2 }+ , at-spi-core { version = [ 2, 33 ], patch = 2 }+ , atk { version = [ 2, 36 ], patch = 0 }+ , ats [ 0, 4, 0 ]+ , autoconf [ 2, 69 ]+ , automake [ 1, 16, 2 ]+ , babl { version = [ 0, 1 ], patch = 68 }+ , bash [ 5, 0, 17 ]+ , bash-completion [ 2, 9 ]+ , binutils [ 2, 33, 1 ]+ , bison [ 3, 5 ]+ , blas [ 3, 8, 0 ]+ , busybox [ 1, 31, 1 ]+ , bzip2 [ 1, 0, 8 ]+ , cairo [ 1, 16, 0 ]+ , chickenScheme [ 5, 0, 0 ]+ , cimg [ 2, 7, 0 ]+ , clang [ 9, 0, 0 ]+ , clzip [ 1, 11 ]+ , cmake { version = [ 3, 17 ], patch = 2 }+ , cmark [ 0, 29, 0 ]+ , compositeproto [ 0, 4 ]+ , coreutils [ 8, 31 ]+ , ctags [ 5, 8 ]+ , curl [ 7, 66, 0 ]+ , damageproto [ 1, 2, 1 ]+ , dbus [ 1, 13, 12 ]+ , diffutils [ 3, 7 ]+ , dri2proto [ 2, 8 ]+ , eigen [ 3, 3, 7 ]+ , elfutils [ 0, 177 ]+ , emacs [ 26, 3 ]+ , exiftool [ 11, 65 ]+ , exiv2 [ 0, 27, 1 ]+ , expat [ 2, 2, 9 ]+ , fdk-aac [ 2, 0, 1 ]+ , feh [ 3, 2, 1 ]+ , ffmpeg [ 4, 2, 2 ]+ , fftw [ 3, 3, 8 ]+ , findutils [ 4, 7, 0 ]+ , fixesproto [ 5, 0 ]+ , fontconfig [ 2, 13, 1 ]+ , fossil [ 2, 10 ]+ , flex [ 2, 6, 3 ]+ , fltk [ 1, 3, 5 ]+ , freetype-prebuild [ 2, 10, 1 ]+ , freetype [ 2, 10, 1 ]+ , fribidi [ 1, 0, 9 ]+ , gawk [ 5, 0, 1 ]+ , gc [ 8, 0, 4 ]+ , gcc [ 10, 1, 0 ]+ , gdb [ 8, 3, 1 ]+ , gdk-pixbuf { version = [ 2, 38 ], patch = 1 }+ , gegl { version = [ 0, 4 ], patch = 16 }+ , gettext [ 0, 20, 2 ]+ , gexiv2 { version = [ 0, 12 ], patch = 0 }+ , ghc [ 8, 8, 3 ]+ , gperf [ 3, 1 ]+ , gperftools [ 2, 7 ]+ , giflib [ 5, 1, 4 ]+ , git [ 2, 26, 2 ]+ , glib { version = [ 2, 64 ], patch = 2 }+ , glib-networking { version = [ 2, 61 ], patch = 2 }+ , glproto [ 1, 4, 17 ]+ , glu [ 9, 0, 0 ]+ , json-glib { version = [ 1, 4 ], patch = 4 }+ , glibc [ 2, 30 ]+ , gmp [ 6, 2, 0 ]+ , gobject-introspection { version = [ 1, 62 ], patch = 0 }+ , gnome-doc-utils { version = [ 0, 20 ], patch = 10 }+ , gnupg [ 2, 2, 20 ]+ , gnutls { version = [ 3, 6 ], patch = [ 13 ] }+ , graphviz [ 2, 40, 1 ]+ , grep [ 3, 3 ]+ , gsl [ 2, 6 ]+ , gtk2 { version = [ 2, 24 ], patch = 32 }+ , gtk3 { version = [ 3, 24 ], patch = 18 }+ , gzip [ 1, 10 ]+ , harfbuzz [ 2, 6, 4 ]+ , htop [ 2, 2, 0 ]+ , hugs+ , icu [ 64, 2 ]+ , icu-le-hb [ 1, 0, 3 ]+ , imageMagick [ 7, 0, 8 ]+ , imlib2 [ 1, 5, 1 ]+ , inputproto [ 2, 3, 2 ]+ , intltool [ 0, 51, 0 ]+ , itstool [ 2, 0, 6 ]+ , jemalloc [ 5, 2, 1 ]+ , joe [ 4, 6 ]+ , json-c { version = [ 0, 13, 1 ], dateStr = "20180305" }+ , kbproto [ 1, 0, 7 ]+ , krb5 [ 1, 18 ]+ , lapack [ 3, 8, 0 ]+ , lcms2 [ 2, 9 ]+ , leptonica [ 1, 78, 0 ]+ , libarchive [ 3, 4, 3 ]+ , libass [ 0, 14, 0 ]+ , libassuan [ 2, 5, 3 ]+ , libatomic_ops [ 7, 6, 10 ]+ , libav [ 12, 3 ]+ , libboost [ 1, 72, 0 ]+ , libcds [ 2, 3, 2 ]+ , libcroco { version = [ 0, 6 ], patch = 12 }+ , libdatrie [ 0, 2, 12 ]+ , libdrm [ 2, 4, 96 ]+ , libepoxy [ 1, 5, 3 ]+ , libev [ 4, 25 ]+ , libevent [ 2, 1, 10 ]+ , libexif [ 0, 6, 21 ]+ , libffi [ 3, 3 ]+ , libgcrypt [ 1, 8, 5 ]+ , libglade { version = [ 2, 6 ], patch = 4 }+ , libgpgError [ 1, 37 ]+ , libICE [ 1, 0, 9 ]+ , libiconv [ 1, 16 ]+ , libjpeg [ 9 ]+ , libjpeg-turbo [ 2, 0, 4 ]+ , libksba [ 1, 3, 5 ]+ , libmp3lame [ 3, 100 ]+ , libmypaint [ 1, 3, 0 ]+ , libnettle [ 3, 5, 1 ]+ , libogg [ 1, 3, 4 ]+ , libopenjpeg [ 2, 3, 1 ]+ , libotf [ 0, 9, 16 ]+ , libpciaccess [ 0, 14 ]+ , libpng [ 1, 6, 37 ]+ , libpsl [ 0, 21, 0 ]+ , libpthread-stubs [ 0, 4 ]+ , libraw [ 0, 19, 2 ]+ , librsvg { version = [ 2, 48 ], patch = 4 }+ , libsamplerate [ 0, 1, 9 ]+ , libsass [ 3, 6, 2 ]+ , libselinux [ 3, 0 ]+ , libsndfile [ 1, 0, 28 ]+ , libsepol [ 3, 0 ]+ , libsodium [ 1, 0, 17 ]+ , libsoup { version = [ 2, 67 ], patch = 3 }+ , libspng [ 0, 5, 0 ]+ , libssh2 [ 1, 8, 0 ]+ , libtasn1 [ 4, 15, 0 ]+ , libtiff [ 4, 0, 10 ]+ , libtool [ 2, 4, 6 ]+ , libuv [ 1, 24, 0 ]+ , libwebp [ 1, 0, 3 ]+ , libSM [ 1, 2, 3 ]+ , libthai [ 0, 1, 28 ]+ , libvorbis [ 1, 3, 6 ]+ , libvpx [ 1, 8, 2 ]+ , libX11 [ 1, 6, 8 ]+ , libXau [ 1, 0, 9 ]+ , libXaw [ 1, 0, 13 ]+ , libXaw3d [ 1, 6, 3 ]+ , libxcb [ 1, 13 ]+ , libXcomposite [ 0, 4, 5 ]+ , libXdamage [ 1, 1, 5 ]+ , libXdmcp [ 1, 1, 3 ]+ , libXext [ 1, 3, 4 ]+ , libXfixes [ 5, 0, 3 ]+ , libXft [ 2, 3, 3 ]+ , libXi [ 1, 7, 10 ]+ , libXinerama [ 1, 1, 4 ]+ , libxml2 [ 2, 9, 9 ]+ , libXmu [ 1, 1, 3 ]+ , libXpm [ 3, 5, 12 ]+ , libXScrnSaver [ 1, 2, 3 ]+ , libxshmfence [ 1, 3 ]+ , libxslt [ 1, 1, 33 ]+ , libXrandr [ 1, 5, 2 ]+ , libXrender [ 0, 9, 10 ]+ , libXt [ 1, 2, 0 ]+ , libXtst [ 1, 2, 3 ]+ , libXxf86vm [ 1, 1, 4 ]+ , llvm [ 9, 0, 0 ]+ , lmdb [ 0, 9, 23 ]+ , lua [ 5, 3, 5 ]+ , luarocks [ 3, 2, 1 ]+ , lunzip [ 1, 11 ]+ , lz4 [ 1, 9, 2 ]+ , lzip [ 1, 21 ]+ , lziprecover [ 1, 21 ]+ , lzlib [ 1, 11 ]+ , m17n [ 1, 8, 0 ]+ , m4 [ 1, 4, 18 ]+ , make [ 4, 2, 1 ]+ , mako [ 1, 0, 7 ]+ , markupSafe [ 1, 0 ]+ , memcached [ 1, 5, 18 ]+ , mercury+ , mesa [ 19, 0, 5 ]+ , meson [ 0, 51, 2 ]+ , mosh [ 1, 3, 2 ]+ , motif [ 2, 3, 8 ]+ , mpc [ 1, 1, 0 ]+ , mpfr [ 4, 0, 2 ]+ , mpg123 [ 1, 25, 12 ]+ , musl [ 1, 1, 20 ]+ , nano [ 4, 3 ]+ , nasm [ 2, 14 ]+ , ncurses [ 6, 2 ]+ , nginx [ 1, 15, 7 ]+ , ninja [ 1, 9, 0 ]+ , node [ 12, 17, 0 ]+ , npth [ 1, 6 ]+ , nspr [ 4, 20 ]+ , openblas [ 0, 3, 2 ]+ , opencv [ 4, 2, 0 ]+ , openssh [ 7, 9 ]+ , openssl [ 1, 1, 1 ]+ , p11kit [ 0, 23, 16, 1 ]+ , pango { version = [ 1, 43 ], patch = 0 }+ , pari [ 2, 11, 1 ]+ , patch [ 2, 7 ]+ , pcre [ 8, 44 ]+ , pcre2 [ 10, 33 ]+ , pdfgrep [ 2, 1, 2 ]+ , perl5 [ 5, 30, 2 ]+ , phash [ 0, 9, 6 ]+ , pixman [ 0, 38, 4 ]+ , pkg-config [ 0, 29, 2 ]+ , poppler [ 0, 84, 0 ]+ , postgresql [ 12, 2 ]+ , protobuf [ 3, 8, 0 ]+ , pycairo [ 1, 18, 1 ]+ , pygobject { version = [ 2, 28 ], patch = 7 }+ , pygtk { version = [ 2, 24 ], patch = 0 }+ , python [ 2, 7, 17 ]+ , python [ 3, 8, 2 ]+ , qrencode [ 4, 0, 2 ]+ , qt { version = [ 5, 13 ], patch = 0 }+ , quazip [ 0, 8, 1 ]+ , r [ 4, 0, 0 ]+ , ragel [ 6, 10 ]+ , randrproto [ 1, 5, 0 ]+ , re2c [ 1, 1, 1 ]+ , readline [ 8, 0 ]+ , recordproto [ 1, 14, 2 ]+ , renderproto [ 0, 11, 1 ]+ , ruby { version = [ 2, 7 ], patch = 1 }+ , rustc [ 1, 42, 0 ]+ , scour [ 0, 37 ]+ , scrnsaverproto [ 1, 2, 2 ]+ , sdl2 [ 2, 0, 10 ]+ , sed [ 4, 7 ]+ , shared-mime-info [ 1, 10 ]+ , smake [ 1, 2, 5 ]+ , sqlite { version = [ 3, 30, 1 ] }+ , star [ 1, 6 ]+ , subversion [ 1, 12, 2 ]+ , swig [ 3, 0, 12 ]+ , swi-prolog [ 8, 0, 3 ]+ , tar [ 1, 32 ]+ , tarlz [ 0, 16 ]+ , tcc [ 0, 9, 27 ]+ , texinfo [ 6, 6 ]+ , tesseract [ 4, 0, 0 ]+ , time [ 1, 9 ]+ , unistring [ 0, 9, 10 ]+ , utf8proc [ 2, 4, 0 ]+ , util-linux { version = [ 2, 34 ] }+ , util-macros [ 1, 19, 2 ]+ , vala { version = [ 0, 45 ], patch = 3 }+ , valgrind [ 3, 15, 0 ]+ , vim [ 8, 2 ]+ , wayland [ 1, 17, 0 ]+ , wget [ 1, 20, 3 ]+ , which [ 2, 21 ]+ , xcb-proto [ 1, 13 ]+ , xextproto [ 7, 3, 0 ]+ , xf86vidmodeproto [ 2, 3, 1 ]+ , xineramaproto [ 1, 2 ]+ , xmlParser [ 2, 44 ]+ , xproto [ 7, 0, 31 ]+ , xtrans [ 1, 4, 0 ]+ , xz [ 5, 2, 5 ]+ , zlib [ 1, 2, 11 ]+ , zstd [ 1, 4, 5 ] ]
src/Package/C/PackageSet.hs view
@@ -24,11 +24,11 @@ import Package.C.Type.Tree defaultPackageSetHash :: T.Text-defaultPackageSetHash = "sha256:4e933beb267d7c5b55afca08137f204f3555ef82a5763c617782026fc2898fde"+defaultPackageSetHash = "sha256:a3898bfbcc705d1561ff41fc01b6eee94f3eb344f1451917c75402a9865c4cf9" defaultPackageSetDhall :: Maybe String -> IO PackageSetDhall defaultPackageSetDhall (Just pkSet) = input auto (T.pack pkSet)-defaultPackageSetDhall Nothing = input auto ("https://raw.githubusercontent.com/vmchale/cpkg/80d61a9f060f5b950e72f4d30a4c51b83bb2d729/pkgs/pkg-set.dhall " <> defaultPackageSetHash)+defaultPackageSetDhall Nothing = input auto ("https://raw.githubusercontent.com/vmchale/cpkg/c6522de9a876e1fa3141752d61bff2272d92075c/pkgs/pkg-set.dhall " <> defaultPackageSetHash) displayPackageSet :: Maybe String -> IO ()