diff --git a/android/AndroidManifest.xml.nix b/android/AndroidManifest.xml.nix
index cf915b7d8..1e3e1796b 100644
--- a/android/AndroidManifest.xml.nix
+++ b/android/AndroidManifest.xml.nix
@@ -11,33 +11,34 @@
}:
let
boolStr = x: if x then "true" else "false";
-in ''
-
-
-
-
-
-
-
-
- ${intentFilters}
-
- ${services}
-
-
- ${permissions}
-
+in
+''
+
+
+
+
+
+
+
+
+ ${intentFilters}
+
+ ${services}
+
+
+ ${permissions}
+
''
diff --git a/android/Application.mk.nix b/android/Application.mk.nix
index 1a3884a11..4e0411900 100644
--- a/android/Application.mk.nix
+++ b/android/Application.mk.nix
@@ -2,5 +2,5 @@
, abiVersions
}:
''
-APP_ABI := ${nixpkgs.lib.concatStringsSep " " abiVersions}
+ APP_ABI := ${nixpkgs.lib.concatStringsSep " " abiVersions}
''
diff --git a/android/build-gradle-app.nix b/android/build-gradle-app.nix
index 72115c15f..8ae3a1fcb 100644
--- a/android/build-gradle-app.nix
+++ b/android/build-gradle-app.nix
@@ -1,13 +1,35 @@
-{ stdenv, lib, androidenv, jdk, gnumake, gawk, file
-, which, gradle, fetchurl, buildEnv, runCommand }:
+{ stdenv
+, lib
+, androidenv
+, jdk
+, gnumake
+, gawk
+, file
+, which
+, gradle
+, fetchurl
+, buildEnv
+, runCommand
+}:
-args@{ name, src, platformVersions ? [ "8" ]
- , buildToolsVersions ? [ "30.0.2" ]
- , useGoogleAPIs ? false, useGooglePlayServices ? false
- , release ? false, keyStore ? null, keyAlias ? null
- , keyStorePassword ? null, keyAliasPassword ? null
- , useNDK ? false, buildInputs ? [], mavenDeps, gradleTask
- , buildDirectory ? "./.", acceptAndroidSdkLicenses ? false }:
+args@{ name
+, src
+, platformVersions ? [ "8" ]
+, buildToolsVersions ? [ "30.0.2" ]
+, useGoogleAPIs ? false
+, useGooglePlayServices ? false
+, release ? false
+, keyStore ? null
+, keyAlias ? null
+, keyStorePassword ? null
+, keyAliasPassword ? null
+, useNDK ? false
+, buildInputs ? [ ]
+, mavenDeps
+, gradleTask
+, buildDirectory ? "./."
+, acceptAndroidSdkLicenses ? false
+}:
assert release -> keyStore != null;
assert release -> keyAlias != null;
@@ -18,34 +40,45 @@ assert acceptAndroidSdkLicenses;
let
inherit (lib) optionalString optional;
- m2install = { repo, version, artifactId, groupId
- , jarSha256, pomSha256, aarSha256, suffix ? ""
- , customJarUrl ? null, customJarSuffix ? null }:
- let m2Name = "${artifactId}-${version}";
- m2Path = "${builtins.replaceStrings ["."] ["/"] groupId}/${artifactId}/${version}";
- jarFile = fetchurl {
- url = if customJarUrl != null then customJarUrl else "${repo}${m2Path}/${m2Name}${suffix}.jar";
- sha256 = jarSha256;
- };
- in runCommand m2Name {} (''
- installPath="$out"/m2/'${m2Path}'
- mkdir -p "$installPath"
- '' + optionalString (jarSha256 != null) ''
- install -D '${jarFile}' "$installPath"/'${m2Name}${suffix}.jar'
- ${optionalString (customJarSuffix != null) ''
- install -D '${jarFile}' "$installPath"/'${m2Name}${suffix}${customJarSuffix}.jar'
- ''}
- '' + optionalString (pomSha256 != null) ''
- install -D ${fetchurl {
- url = "${repo}${m2Path}/${m2Name}${suffix}.pom";
- sha256 = pomSha256;
- }} "$installPath/${m2Name}${suffix}.pom"
- '' + optionalString (aarSha256 != null) ''
- install -D ${fetchurl {
- url = "${repo}${m2Path}/${m2Name}${suffix}.aar";
- sha256 = aarSha256;
- }} "$installPath/${m2Name}${suffix}.aar"
- '');
+ m2install =
+ { repo
+ , version
+ , artifactId
+ , groupId
+ , jarSha256
+ , pomSha256
+ , aarSha256
+ , suffix ? ""
+ , customJarUrl ? null
+ , customJarSuffix ? null
+ }:
+ let
+ m2Name = "${artifactId}-${version}";
+ m2Path = "${builtins.replaceStrings ["."] ["/"] groupId}/${artifactId}/${version}";
+ jarFile = fetchurl {
+ url = if customJarUrl != null then customJarUrl else "${repo}${m2Path}/${m2Name}${suffix}.jar";
+ sha256 = jarSha256;
+ };
+ in
+ runCommand m2Name { } (''
+ installPath="$out"/m2/'${m2Path}'
+ mkdir -p "$installPath"
+ '' + optionalString (jarSha256 != null) ''
+ install -D '${jarFile}' "$installPath"/'${m2Name}${suffix}.jar'
+ ${optionalString (customJarSuffix != null) ''
+ install -D '${jarFile}' "$installPath"/'${m2Name}${suffix}${customJarSuffix}.jar'
+ ''}
+ '' + optionalString (pomSha256 != null) ''
+ install -D ${fetchurl {
+ url = "${repo}${m2Path}/${m2Name}${suffix}.pom";
+ sha256 = pomSha256;
+ }} "$installPath/${m2Name}${suffix}.pom"
+ '' + optionalString (aarSha256 != null) ''
+ install -D ${fetchurl {
+ url = "${repo}${m2Path}/${m2Name}${suffix}.aar";
+ sha256 = aarSha256;
+ }} "$installPath/${m2Name}${suffix}.aar"
+ '');
androidsdkComposition = androidenv.composeAndroidPackages {
inherit platformVersions useGoogleAPIs buildToolsVersions;
includeNDK = true;
@@ -55,16 +88,17 @@ let
in
stdenv.mkDerivation ({
inherit src;
- name = builtins.replaceStrings [" "] [""] args.name;
+ name = builtins.replaceStrings [ " " ] [ "" ] args.name;
ANDROID_HOME = "${androidsdkComposition.androidsdk}/libexec";
ANDROID_NDK_HOME = "${androidsdkComposition.ndk-bundle}/libexec/android-sdk/ndk-bundle";
buildInputs = [ jdk gradle ] ++ buildInputs ++ lib.optional useNDK [ androidsdkComposition.ndk-bundle gnumake gawk file which ];
- DEPENDENCIES = buildEnv { name = "${name}-maven-deps";
- paths = map m2install mavenDeps;
- };
+ DEPENDENCIES = buildEnv {
+ name = "${name}-maven-deps";
+ paths = map m2install mavenDeps;
+ };
buildPhase = ''
${optionalString release ''
@@ -110,4 +144,4 @@ stdenv.mkDerivation ({
meta = {
license = lib.licenses.unfree;
};
-} // builtins.removeAttrs args ["name" "mavenDeps"])
+} // builtins.removeAttrs args [ "name" "mavenDeps" ])
diff --git a/android/build.gradle.nix b/android/build.gradle.nix
index b26ed9ab4..5dc31c959 100644
--- a/android/build.gradle.nix
+++ b/android/build.gradle.nix
@@ -7,138 +7,138 @@
, universalApk
}:
''
-buildscript {
- repositories {
- mavenLocal {
- metadataSources {
- mavenPom()
- artifact()
+ buildscript {
+ repositories {
+ mavenLocal {
+ metadataSources {
+ mavenPom()
+ artifact()
+ }
}
- }
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:4.2.2'
- ${googleServicesClasspath}
- }
-}
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:4.2.2'
+ ${googleServicesClasspath}
+ }
+ }
-task proguard(type: proguard.gradle.ProGuardTask) {
- configuration 'proguard.txt'
+ task proguard(type: proguard.gradle.ProGuardTask) {
+ configuration 'proguard.txt'
- // injars 'build/libs/proguard-gradle-example.jar'
- // outjars 'build/libs/proguard-gradle-example.out.jar'
+ // injars 'build/libs/proguard-gradle-example.jar'
+ // outjars 'build/libs/proguard-gradle-example.out.jar'
-}
+ }
-allprojects {
- repositories {
- mavenLocal {
- metadataSources {
- mavenPom()
- artifact()
+ allprojects {
+ repositories {
+ mavenLocal {
+ metadataSources {
+ mavenPom()
+ artifact()
+ }
}
- }
- }
-}
+ }
+ }
-apply plugin: 'com.android.application'
+ apply plugin: 'com.android.application'
-android {
- compileSdkVersion 30
- buildToolsVersion '30.0.2'
+ android {
+ compileSdkVersion 30
+ buildToolsVersion '30.0.2'
- lintOptions {
- checkReleaseBuilds false
- abortOnError false
- }
+ lintOptions {
+ checkReleaseBuilds false
+ abortOnError false
+ }
- sourceSets {
- main {
- manifest.srcFile 'AndroidManifest.xml'
- java.srcDirs = ['src']
- res.srcDirs = ['res']
- assets.srcDirs = ['assets'];
- jniLibs.srcDir 'lib'
+ sourceSets {
+ main {
+ manifest.srcFile 'AndroidManifest.xml'
+ java.srcDirs = ['src']
+ res.srcDirs = ['res']
+ assets.srcDirs = ['assets'];
+ jniLibs.srcDir 'lib'
+ }
+ }
+ defaultConfig {
+ applicationId "${applicationId}"
+ minSdkVersion 21
+ targetSdkVersion 30
+ versionCode ${version.code}
+ versionName "${version.name}"
+ multiDexEnabled false
}
- }
- defaultConfig {
- applicationId "${applicationId}"
- minSdkVersion 21
- targetSdkVersion 30
- versionCode ${version.code}
- versionName "${version.name}"
- multiDexEnabled false
- }
- ${if releaseKey == null then "" else ''
- signingConfigs {
- release {
- storeFile file("${releaseKey.storeFile}")
- storePassword "${releaseKey.storePassword}"
- keyAlias "${releaseKey.keyAlias}"
- keyPassword "${releaseKey.keyPassword}"
+ ${if releaseKey == null then "" else ''
+ signingConfigs {
+ release {
+ storeFile file("${releaseKey.storeFile}")
+ storePassword "${releaseKey.storePassword}"
+ keyAlias "${releaseKey.keyAlias}"
+ keyPassword "${releaseKey.keyPassword}"
+ }
}
- }
- ''
- }
+ ''
+ }
- buildTypes {
- release {
- minifyEnabled false
- useProguard false
- zipAlignEnabled true
- ${if releaseKey == null then "" else ''
- signingConfig signingConfigs.release
- ''}
- }
- debug {
- minifyEnabled false
- useProguard false
- debuggable true
- }
- }
+ buildTypes {
+ release {
+ minifyEnabled false
+ useProguard false
+ zipAlignEnabled true
+ ${if releaseKey == null then "" else ''
+ signingConfig signingConfigs.release
+ ''}
+ }
+ debug {
+ minifyEnabled false
+ useProguard false
+ debuggable true
+ }
+ }
- packagingOptions {
- }
+ packagingOptions {
+ }
- // see https://developer.android.com/studio/build/configure-apk-splits.html
- // for information about this and the applicationVariants stuff below.
- // See https://developer.android.com/google/play/publishing/multiple-apks.html#SingleAPK
- // for reasons you might not want to do this.
- ${if universalApk then "" else ''
- splits {
- abi {
- enable true
- reset()
- include "armeabi-v7a", "arm64-v8a"
- universalApk false
- }
- }
- ''
- }
-}
+ // see https://developer.android.com/studio/build/configure-apk-splits.html
+ // for information about this and the applicationVariants stuff below.
+ // See https://developer.android.com/google/play/publishing/multiple-apks.html#SingleAPK
+ // for reasons you might not want to do this.
+ ${if universalApk then "" else ''
+ splits {
+ abi {
+ enable true
+ reset()
+ include "armeabi-v7a", "arm64-v8a"
+ universalApk false
+ }
+ }
+ ''
+ }
+ }
-ext.abiCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2] // This order is important!
+ ext.abiCodes = ['armeabi-v7a': 1, 'arm64-v8a': 2] // This order is important!
-import com.android.build.OutputFile
+ import com.android.build.OutputFile
-android.applicationVariants.all { variant ->
- variant.outputs.each { output ->
- def baseAbiVersionCode =
- project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
+ android.applicationVariants.all { variant ->
+ variant.outputs.each { output ->
+ def baseAbiVersionCode =
+ project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
- if (baseAbiVersionCode != null) { // this will be null if splitting was disabled
- output.versionCodeOverride = baseAbiVersionCode * 1000 + variant.versionCode
+ if (baseAbiVersionCode != null) { // this will be null if splitting was disabled
+ output.versionCodeOverride = baseAbiVersionCode * 1000 + variant.versionCode
+ }
}
}
-}
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'com.google.firebase:firebase-iid:20.2.3'
- implementation 'com.google.firebase:firebase-messaging:20.2.3'
- ${additionalDependencies}
-}
+ dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'com.google.firebase:firebase-iid:20.2.3'
+ implementation 'com.google.firebase:firebase-messaging:20.2.3'
+ ${additionalDependencies}
+ }
-${googleServicesPlugin}
+ ${googleServicesPlugin}
''
diff --git a/android/buildIcons.nix b/android/buildIcons.nix
index 9f6f7b856..1703edbaa 100644
--- a/android/buildIcons.nix
+++ b/android/buildIcons.nix
@@ -1,6 +1,7 @@
{ runCommand, imagemagick }:
{ src }:
-runCommand "android-icons" {
+runCommand "android-icons"
+{
inherit src;
buildCommand = ''
mkdir "$out"
diff --git a/android/default.nix b/android/default.nix
index f09b6cfa8..2b5b36cfe 100644
--- a/android/default.nix
+++ b/android/default.nix
@@ -1,5 +1,4 @@
-env@{
- nixpkgs
+env@{ nixpkgs
, nixpkgsCross
, ghcAndroidAarch64
, ghcAndroidAarch32
@@ -10,8 +9,8 @@ with nixpkgs.lib.strings;
let impl = import ./impl.nix env;
in rec {
# URI information that becomes AndroidManifest.xml content for additional intent filters.
- intentFilterXml = {
- scheme
+ intentFilterXml =
+ { scheme
# URL scheme
# E.g.: "https"
@@ -24,19 +23,19 @@ in rec {
, pathPrefix ? ""
}: impl.intentFilterXml {
inherit scheme
- host
- port
- pathPrefix;
+ host
+ port
+ pathPrefix;
};
defaultResources = ./res;
defaultAssets = ./assets;
defaultIconPath = "@drawable/ic_launcher";
- buildIcons = nixpkgs.callPackage ./buildIcons.nix {};
+ buildIcons = nixpkgs.callPackage ./buildIcons.nix { };
- buildApp = {
- package
+ buildApp =
+ { package
# A function from haskellPackages to the package we'd like to turn into
# an APK
# E.g.: (p: p.hello)
@@ -98,7 +97,7 @@ in rec {
, additionalDependencies ? ""
- , runtimeSharedLibs ? (_: [])
+ , runtimeSharedLibs ? (_: [ ])
# Allows to copy native .so libraries into APK. Example:
# runtimeSharedLibs = nixpkgs: [
# "${nixpkgs.libsodium}/lib/libsodium.so"
@@ -109,7 +108,7 @@ in rec {
# You need to patch soname in make files of libraries to link against
# unversioned libraries.
- , javaSources ? []
+ , javaSources ? [ ]
# A list of additional Java source directories to include in the APK build
, universalApk ? true
@@ -119,32 +118,32 @@ in rec {
, usesCleartextTraffic ? false
- # Can be "assembleRelease", "assembleDebug", or "bundleRelease"
+ # Can be "assembleRelease", "assembleDebug", or "bundleRelease"
, gradleTask ? (if isRelease then "assembleRelease" else "assembleDebug")
}:
- assert builtins.match "^([A-Za-z][A-Za-z0-9_]*\\.)*[A-Za-z][A-Za-z0-9_]*$" applicationId != null;
- nixpkgs.lib.makeOverridable impl.buildApp {
- inherit package
- acceptAndroidSdkLicenses
- executableName
- applicationId
- displayName
- version
- releaseKey
- resources
- assets
- iconPath
- activityAttributes
- permissions
- services
- intentFilters
- googleServicesJson
- additionalDependencies
- runtimeSharedLibs
- javaSources
- universalApk
- mavenDeps
- usesCleartextTraffic
- gradleTask;
- };
+ assert builtins.match "^([A-Za-z][A-Za-z0-9_]*\\.)*[A-Za-z][A-Za-z0-9_]*$" applicationId != null;
+ nixpkgs.lib.makeOverridable impl.buildApp {
+ inherit package
+ acceptAndroidSdkLicenses
+ executableName
+ applicationId
+ displayName
+ version
+ releaseKey
+ resources
+ assets
+ iconPath
+ activityAttributes
+ permissions
+ services
+ intentFilters
+ googleServicesJson
+ additionalDependencies
+ runtimeSharedLibs
+ javaSources
+ universalApk
+ mavenDeps
+ usesCleartextTraffic
+ gradleTask;
+ };
}
diff --git a/android/defaults/deps.nix b/android/defaults/deps.nix
index 8e9e49d3c..1453a8d45 100644
--- a/android/defaults/deps.nix
+++ b/android/defaults/deps.nix
@@ -1,1786 +1,2232 @@
[
- { artifactId = "annotation";
+ {
+ artifactId = "annotation";
groupId = "androidx.annotation";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = "0baae9755f7caf52aa80cd04324b91ba93af55d4d1d17dcc9a7b53d99ef7c016";
pomSha256 = "a179c12db43d9c0300c9db63f4811db496504be5401b951d422b78490ad1e5b4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "annotation";
+ {
+ artifactId = "annotation";
groupId = "androidx.annotation";
version = "1.1.0";
repo = "https://maven.google.com/";
jarSha256 = "d38d63edb30f1467818d50aaf05f8a692dea8b31392a049bfa991b159ad5b692";
pomSha256 = "2e9372ba7780ef44952adbf86b66e1f08682c1e5277c926185f6564a13799efe";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "core-common";
+ {
+ artifactId = "core-common";
groupId = "androidx.arch.core";
version = "2.0.0";
repo = "https://maven.google.com/";
jarSha256 = "4b80b337779b526e64b0ee0ca9e0df43b808344d145f8e9b1c42a134dac57ad8";
pomSha256 = "4b6f1d459ddd146b4e85ed6d46e86eb8c2639c5de47904e6db4d698721334220";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "core-runtime";
+ {
+ artifactId = "core-runtime";
groupId = "androidx.arch.core";
version = "2.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "e2007d41ddc69ee2a77fed7b5c1dc5a41e01122926ba59696aab7b18d2264411";
- aarSha256 = "87e65fc767c712b437649c7cee2431ebb4bed6daef82e501d4125b3ed3f65f8e"; }
+ aarSha256 = "87e65fc767c712b437649c7cee2431ebb4bed6daef82e501d4125b3ed3f65f8e";
+ }
- { artifactId = "asynclayoutinflater";
+ {
+ artifactId = "asynclayoutinflater";
groupId = "androidx.asynclayoutinflater";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "48167eeedc8da79c4d29deaf0d0cd9b5d8fedcae01f1a6efb3f28f08e8982f71";
- aarSha256 = "f7eab60c57addd94bb06275832fe7600611beaaae1a1ec597c231956faf96c8b"; }
+ aarSha256 = "f7eab60c57addd94bb06275832fe7600611beaaae1a1ec597c231956faf96c8b";
+ }
- { artifactId = "collection";
+ {
+ artifactId = "collection";
groupId = "androidx.collection";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = "9c8d117b5c2bc120a1cdfeb857e05b495b16c36013570372a708f7827e3ac9f9";
pomSha256 = "a7913a5275ad68e555d2612ebe8c14c367b153e14ca48a1872a64899020e54ef";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "coordinatorlayout";
+ {
+ artifactId = "coordinatorlayout";
groupId = "androidx.coordinatorlayout";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "3e44e4de2fee6debc33d23626ee906e54e1bb3c1749b19e02bb667b614ab9392";
- aarSha256 = "e508c695489493374d942bf7b4ee02abf7571d25aac4c622e57d6cd5cd29eb73"; }
+ aarSha256 = "e508c695489493374d942bf7b4ee02abf7571d25aac4c622e57d6cd5cd29eb73";
+ }
- { artifactId = "core";
+ {
+ artifactId = "core";
groupId = "androidx.core";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "384d529ad668ada4808de29b29a6348f0007c2841ad79cae9a5a089bd68810f5";
- aarSha256 = "d7672358fc0d46de678968bcddfd3bdfe1618574299a753477b16116cfec74f5"; }
+ aarSha256 = "d7672358fc0d46de678968bcddfd3bdfe1618574299a753477b16116cfec74f5";
+ }
- { artifactId = "cursoradapter";
+ {
+ artifactId = "cursoradapter";
groupId = "androidx.cursoradapter";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "62d95c89850af21030b19f14d5f7ecd6d8bcc9a3014c59002ec99624caac8100";
- aarSha256 = "a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564"; }
+ aarSha256 = "a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564";
+ }
- { artifactId = "customview";
+ {
+ artifactId = "customview";
groupId = "androidx.customview";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "ce9e47b87184f5bd5e139e9becd5b26476d42d78c31bf2fdedc37acb41b9ad49";
- aarSha256 = "20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2"; }
+ aarSha256 = "20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2";
+ }
- { artifactId = "databinding-common";
+ {
+ artifactId = "databinding-common";
groupId = "androidx.databinding";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "b1aaf40152c4c610280a35ae439a31d86aa7fbbb5d3379036ecf012b290a19b7";
pomSha256 = "e67bc6c3d337678de3ddaf28c61a495ecb12eabd66678a0ebeb66f7e84f948f4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "databinding-compiler-common";
+ {
+ artifactId = "databinding-compiler-common";
groupId = "androidx.databinding";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "ec212fbdb77e41386b5b423b12b69f4d839f954c79d449bc57c648e603a1b755";
pomSha256 = "6f2398a2db43ade9e44454c9898fdaae0df4746db1b53ca7c854af2a535d592d";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "documentfile";
+ {
+ artifactId = "documentfile";
groupId = "androidx.documentfile";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "013288a9317a552706ce625fb24493e8223288529223ec578cf855a5ae9c16e5";
- aarSha256 = "865a061ef2fad16522f8433536b8d47208c46ff7c7745197dfa1eeb481869487"; }
+ aarSha256 = "865a061ef2fad16522f8433536b8d47208c46ff7c7745197dfa1eeb481869487";
+ }
- { artifactId = "drawerlayout";
+ {
+ artifactId = "drawerlayout";
groupId = "androidx.drawerlayout";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "da6733425a83f5ce850878fa7201082345fed7c668dd58550fdd19c0396c6fa4";
- aarSha256 = "9402442cdc5a43cf62fb14f8cf98c63342d4d9d9b805c8033c6cf7e802749ac1"; }
+ aarSha256 = "9402442cdc5a43cf62fb14f8cf98c63342d4d9d9b805c8033c6cf7e802749ac1";
+ }
- { artifactId = "fragment";
+ {
+ artifactId = "fragment";
groupId = "androidx.fragment";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "e329d673361e94d2e8f4d4d14e1f0586368bd43fb19efd5766ce7498bcccd162";
- aarSha256 = "65dd32d71fe65a32e77989a6cfb1ad09307038927f82a740c7611162d0b518f8"; }
+ aarSha256 = "65dd32d71fe65a32e77989a6cfb1ad09307038927f82a740c7611162d0b518f8";
+ }
- { artifactId = "interpolator";
+ {
+ artifactId = "interpolator";
groupId = "androidx.interpolator";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "0ddc07cc39699f48ecd9ec894b5830c0f09e22e82959294edf37217224c88b7b";
- aarSha256 = "33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a"; }
+ aarSha256 = "33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a";
+ }
- { artifactId = "legacy-support-core-ui";
+ {
+ artifactId = "legacy-support-core-ui";
groupId = "androidx.legacy";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "2baaf7f17551765524bd1e4d2f954a2a0178a112039cf549ba8b7d4b41e66931";
- aarSha256 = "0d1260c6e7e6a337f875df71b516931e703f716e90889817cd3a20fa5ac3d947"; }
+ aarSha256 = "0d1260c6e7e6a337f875df71b516931e703f716e90889817cd3a20fa5ac3d947";
+ }
- { artifactId = "legacy-support-core-utils";
+ {
+ artifactId = "legacy-support-core-utils";
groupId = "androidx.legacy";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "8fd093008b3ee7c06e52c78da2af980a7b47b69b967fa91dad7af466f7a00a38";
- aarSha256 = "a7edcf01d5b52b3034073027bc4775b78a4764bb6202bb91d61c829add8dd1c7"; }
+ aarSha256 = "a7edcf01d5b52b3034073027bc4775b78a4764bb6202bb91d61c829add8dd1c7";
+ }
- { artifactId = "lifecycle-common";
+ {
+ artifactId = "lifecycle-common";
groupId = "androidx.lifecycle";
version = "2.0.0";
repo = "https://maven.google.com/";
jarSha256 = "7bad7a188804adea6fa1f35d5ef99b705f20bd93ecadde484760ff86b535fefc";
pomSha256 = "04d525073469214d0c99e81aaa875dd548ba32b82945abd8326bc50229df700d";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "lifecycle-livedata";
+ {
+ artifactId = "lifecycle-livedata";
groupId = "androidx.lifecycle";
version = "2.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "a84842ffc0f14e518db75c05cc112680a8a4a164fa78395be32d88304a439423";
- aarSha256 = "c82609ced8c498f0a701a30fb6771bb7480860daee84d82e0a81ee86edf7ba39"; }
+ aarSha256 = "c82609ced8c498f0a701a30fb6771bb7480860daee84d82e0a81ee86edf7ba39";
+ }
- { artifactId = "lifecycle-livedata-core";
+ {
+ artifactId = "lifecycle-livedata-core";
groupId = "androidx.lifecycle";
version = "2.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "650fda1a232f5669742140571570ccad2f47a71225ab0f02179bc8d144b982c8";
- aarSha256 = "fde334ec7e22744c0f5bfe7caf1a84c9d717327044400577bdf9bd921ec4f7bc"; }
+ aarSha256 = "fde334ec7e22744c0f5bfe7caf1a84c9d717327044400577bdf9bd921ec4f7bc";
+ }
- { artifactId = "lifecycle-runtime";
+ {
+ artifactId = "lifecycle-runtime";
groupId = "androidx.lifecycle";
version = "2.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "a92a46fa7aec8ac326a5d578734a2d5b63206976996b9e06cae171b35b0ab6de";
- aarSha256 = "e4afc9e636183f6f3e0edf1cf46121a492ffd2c673075bb07f55c7a99dd43cfb"; }
+ aarSha256 = "e4afc9e636183f6f3e0edf1cf46121a492ffd2c673075bb07f55c7a99dd43cfb";
+ }
- { artifactId = "lifecycle-viewmodel";
+ {
+ artifactId = "lifecycle-viewmodel";
groupId = "androidx.lifecycle";
version = "2.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "60b758fd1c664089f82d1c018ed4ff7955c14a2b1620af7aa106591f733e0827";
- aarSha256 = "d6460aea1b6bad80ab14cf88297e9e43bfde8d87c3e5c28f2c508233ffbcc062"; }
+ aarSha256 = "d6460aea1b6bad80ab14cf88297e9e43bfde8d87c3e5c28f2c508233ffbcc062";
+ }
- { artifactId = "loader";
+ {
+ artifactId = "loader";
groupId = "androidx.loader";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "c978d550808b47434aa49a63164110a50b55b0bcc6160a93a2e37d5110df8c5e";
- aarSha256 = "11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025"; }
+ aarSha256 = "11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025";
+ }
- { artifactId = "localbroadcastmanager";
+ {
+ artifactId = "localbroadcastmanager";
groupId = "androidx.localbroadcastmanager";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "a000041f5a1f79283c5175e1bb60cf3683780f401c6a9d34fbe9751253fa6ff9";
- aarSha256 = "e71c328ceef5c4a7d76f2d86df1b65d65fe2acf868b1a4efd84a3f34336186d8"; }
+ aarSha256 = "e71c328ceef5c4a7d76f2d86df1b65d65fe2acf868b1a4efd84a3f34336186d8";
+ }
- { artifactId = "print";
+ {
+ artifactId = "print";
groupId = "androidx.print";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "62482c0594841bee24bb996abb6cb7b320a6a3b77dca9f0a0ba4fe3be5530aa7";
- aarSha256 = "1d5c7f3135a1bba661fc373fd72e11eb0a4adbb3396787826dd8e4190d5d9edd"; }
+ aarSha256 = "1d5c7f3135a1bba661fc373fd72e11eb0a4adbb3396787826dd8e4190d5d9edd";
+ }
- { artifactId = "slidingpanelayout";
+ {
+ artifactId = "slidingpanelayout";
groupId = "androidx.slidingpanelayout";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "40e90f96838c2a8156ab51b181400767049f387cec8c695e412d3d9205b0745b";
- aarSha256 = "76bffb7cefbf780794d8817002dad1562f3e27c0a9f746d62401c8edb30aeede"; }
+ aarSha256 = "76bffb7cefbf780794d8817002dad1562f3e27c0a9f746d62401c8edb30aeede";
+ }
- { artifactId = "swiperefreshlayout";
+ {
+ artifactId = "swiperefreshlayout";
groupId = "androidx.swiperefreshlayout";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "8fe4b5db332af33cde899ba571ee866ad977be38114d3ab600edaca454ea8299";
- aarSha256 = "9761b3a809c9b093fd06a3c4bbc645756dec0e95b5c9da419bc9f2a3f3026e8d"; }
+ aarSha256 = "9761b3a809c9b093fd06a3c4bbc645756dec0e95b5c9da419bc9f2a3f3026e8d";
+ }
- { artifactId = "versionedparcelable";
+ {
+ artifactId = "versionedparcelable";
groupId = "androidx.versionedparcelable";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "47ee7c5543239a651f8fb81310cadeeaab8e38a2d844d7bb92dd086e4ffbb320";
- aarSha256 = "f6438a93ed8016ccddca0e140a70be0b0110e0424edaa1472f84f98fed2e1ce3"; }
+ aarSha256 = "f6438a93ed8016ccddca0e140a70be0b0110e0424edaa1472f84f98fed2e1ce3";
+ }
- { artifactId = "viewpager";
+ {
+ artifactId = "viewpager";
groupId = "androidx.viewpager";
version = "1.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "1f72f836339d03c6eb013f65075e76ca87075a577578eb4f95f74a3a5d253128";
- aarSha256 = "147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682"; }
+ aarSha256 = "147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682";
+ }
- { artifactId = "signflinger";
+ {
+ artifactId = "signflinger";
groupId = "com.android";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "4d7aafd9666707b483b1ad2c466824287cf2e379dda1d204dd3b7e453ffcf760";
pomSha256 = "7032f04664cefb8a2873f3ee83a0815eeab696d7474c15ead1d946ec722b47c6";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "zipflinger";
+ {
+ artifactId = "zipflinger";
groupId = "com.android";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "8e4677086c9a8f4a67374a4edc31db7e481f0d9b85907263c51ca72452c23a93";
pomSha256 = "0da5d6433c442a72c6a7792fd77aa2b47b060ee645ba7fa9371f404856233111";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "baseLibrary";
+ {
+ artifactId = "baseLibrary";
groupId = "com.android.databinding";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "3bf72e0a904a638da231ead13368d45f3f59864505619af9cf7a080c757243b9";
pomSha256 = "4d77b2e9da4e4f21463888fcfcc9103e3924fc1770ea8ff0278c7b986fc71ca0";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "annotations";
+ {
+ artifactId = "annotations";
groupId = "com.android.tools";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "9375fb2df5c0cf1b46fef9e65b3a27ac88925ccf90054b19ae0ca0adc7036fe1";
pomSha256 = "6079a742cf454932d291d81c0640dd9756577ec8d1e027acafe31e3de7fe1210";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "common";
+ {
+ artifactId = "common";
groupId = "com.android.tools";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "a76f4e10cad39bed317be031fee915d280aa8bc11616c58ab94e051b1e38769d";
pomSha256 = "386c0e9f163e8d6a54470399ca1a8f81870ed0c91d528fe6169c8bb110acd288";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "dvlib";
+ {
+ artifactId = "dvlib";
groupId = "com.android.tools";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "9931c6b57460b5f8cc2613ca5ff8596aa089a67655ace13d173f90538ecb4301";
pomSha256 = "fde5930331444ba6b68e1a03d0177f3055370ecb2e157899e7faa8bbaa93d19d";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "repository";
+ {
+ artifactId = "repository";
groupId = "com.android.tools";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "ac5f9b19dc5d9d08e80b57da76059f5760ca76c221e40ffd4bf43d7b13991674";
pomSha256 = "ee48662c9180a00761e88f5b987f49d2ae93bc19dd485875644b0d1ab91b402d";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "sdk-common";
+ {
+ artifactId = "sdk-common";
groupId = "com.android.tools";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "b147acc13850808d61fc391ccfeeebdf90841b461a7042acb2d92e466da8e674";
pomSha256 = "80f999d14b7113727de314823943b7c49aa4bd205e72b0fdae326a5492315fda";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "sdklib";
+ {
+ artifactId = "sdklib";
groupId = "com.android.tools";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "fae0bafbe8b4f546cf64986a22b7d8ed108d45519366ff22f0170a9cf3ea7f34";
pomSha256 = "38f382d03a407e421ef86e52deecc7ee8df02892d293e9fce647549c5373f994";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "crash";
+ {
+ artifactId = "crash";
groupId = "com.android.tools.analytics-library";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "2965780e340dc46f837681f8d4e915b8d93ac2a4560b9df23cbfade814091eb8";
pomSha256 = "1f2ee5f417ec7e105921e5fda995af4cae5160b892ba8383dc0da70d906185a7";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protos";
+ {
+ artifactId = "protos";
groupId = "com.android.tools.analytics-library";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "02482564443c294dfe87c5f2b25387f724a698a09ed58e0cf0127400caa35a19";
pomSha256 = "de8e37c4b1e8a90b9f681f219e66eb5c6b15c2a66db100a02d7402c39be56ff1";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "shared";
+ {
+ artifactId = "shared";
groupId = "com.android.tools.analytics-library";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "0efe017ca17ee775c5af386475a09799a1282faa04821d54810c1a34f6348d9c";
pomSha256 = "ed68d316c91d5067b1031b2004e073732418162877811ae72bbc1d83158eddca";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "tracker";
+ {
+ artifactId = "tracker";
groupId = "com.android.tools.analytics-library";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "62489d84192dc06219664945c43201654ff85c3b715f46550751512a880d0e39";
pomSha256 = "f0e8fb7900e40b7fcf2f77ddab05d043056c1cadc9775d20a3fcc315729745fc";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "aapt2-proto";
+ {
+ artifactId = "aapt2-proto";
groupId = "com.android.tools.build";
version = "4.1.0-alpha01-6193524";
repo = "https://maven.google.com/";
jarSha256 = "17e75523e1e92dd4f222c7368ee41df9e964a508232f591e265d0c499baf9dca";
pomSha256 = "140a406bcc52be2c99937c51f629076134c74fb060aeedb9f54e91cb7091d786";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "aapt2-proto";
+ {
+ artifactId = "aapt2-proto";
groupId = "com.android.tools.build";
version = "4.2.2-7147631";
repo = "https://maven.google.com/";
jarSha256 = "9d645a960fa55b348f9b0c35c8b9a20e2859e723bde68d08bcbfa86823f46061";
pomSha256 = "e9d1a2736ba485b958c096636d9a1ba75c5d49b68d8c9cfc19f11be6121e897f";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "aaptcompiler";
+ {
+ artifactId = "aaptcompiler";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "6f26ecf4535a094ae1fec9804f68bf8b2da43421dd16e3c1dade0b1d323051e1";
pomSha256 = "55a155b1d3d9a3d031f7b3e6953dbc70c869fba4940409f0383c7fbe6bd41946";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "apksig";
+ {
+ artifactId = "apksig";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "632690bf641b429dcb31650e6b2f6a2e87c4ac8afd45a6ba3cbc99fb1612178f";
pomSha256 = "3f4cd9d77e9c338db6293bfdc5eed183d144b5a9e5671b853ddb327f600e25ac";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "apkzlib";
+ {
+ artifactId = "apkzlib";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "3b5167c1265e97f65201c4d2be6a6f72165a3aa2fe9e0594a59b67af9e9e97b9";
pomSha256 = "5d7fec8433bc2c9cd7e5653d714004be22585215f88a8e20b2338edc82b38360";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "builder";
+ {
+ artifactId = "builder";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "40fedd0d16db8f34ddb4eaf812d966b90ef1764f65cf119030442823bcf995cd";
pomSha256 = "f9b8a5310e9238bb1c97647ddce69e1ecbce8abea05370b9699ea4ea8b0b6037";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "builder-model";
+ {
+ artifactId = "builder-model";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "41868de0cb88ae70b828eee4191c13e0233f433abb1becdf6a2bd391bd446bc0";
pomSha256 = "e81957f5e09b4b2ae46a41ce64ccd09c7bce485b2a6e6dcb56c746ac24a4c932";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "builder-test-api";
+ {
+ artifactId = "builder-test-api";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "2f305c6d3a7b637d736b821bad372dcabd959e979f2065a9f65bac1e7b4d1875";
pomSha256 = "9f3fec7226f49f24d9279c7a19b9c946284f9a623fe34bad61436f97371e2be6";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "bundletool";
+ {
+ artifactId = "bundletool";
groupId = "com.android.tools.build";
version = "1.1.0";
repo = "https://maven.google.com/";
jarSha256 = "4cb02a7963fa7c82c302fdcde679b336e669e928f5bbad00457d9c562ef1cd30";
pomSha256 = "efe2d08fb32cd70a2ce007591bd0ceecbb2091a9b9cb4e10bc597b7bd6e3e654";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gradle";
+ {
+ artifactId = "gradle";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "6877441af1ad27acb2f68613dae556d9620ef7a5705d73b1412a49755038b3e6";
pomSha256 = "8aabe97aec79e657f216989c7d08eaecbb72d068372772ab0f1cf1911e2a8bde";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gradle-api";
+ {
+ artifactId = "gradle-api";
groupId = "com.android.tools.build";
version = "4.2.2";
repo = "https://maven.google.com/";
jarSha256 = "dd4ef35bbbfb8fc2d20e3311c76b516bc1672e82b61cb3a59fc877da0f9b4f61";
pomSha256 = "bfbd61b4b583eb54972fd8c93844b85b4d81b6084abbbfd71b636396a5c8127b";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "manifest-merger";
+ {
+ artifactId = "manifest-merger";
groupId = "com.android.tools.build";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "971974756f32d9e94c857d92772b1499b0b0f5d9c70cb8ebbd20d9bbf804a923";
pomSha256 = "1f2622abdb3f327a6b4ad87fcef70ad57ffc636bd0b77237103c90b12629c8ad";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "transform-api";
+ {
+ artifactId = "transform-api";
groupId = "com.android.tools.build";
version = "2.0.0-deprecated-use-gradle-api";
repo = "https://jcenter.bintray.com/";
jarSha256 = "e8b4151ae1679f1abe7a14ee371ac9b3c651ae7b63290d1f586bdd0f78face9a";
pomSha256 = "d49d179f707d3f3a00b2a7d36136b54aa8d44fa22770703cd82fe52fb39e22eb";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jetifier-core";
+ {
+ artifactId = "jetifier-core";
groupId = "com.android.tools.build.jetifier";
version = "1.0.0-beta09";
repo = "https://maven.google.com/";
jarSha256 = "9bb3a91e871e784446e4dd1e1d1dea5c322e271cba8278c1dec3669a66aee858";
pomSha256 = "4688b442fb347820a85a8e0f019978f9eaa762fbbbadb774ab945119d7304da5";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jetifier-processor";
+ {
+ artifactId = "jetifier-processor";
groupId = "com.android.tools.build.jetifier";
version = "1.0.0-beta09";
repo = "https://maven.google.com/";
jarSha256 = "1838f9ee70120e64f45612ca071972ac83ddc118185abffbce3932a4710325eb";
pomSha256 = "388408f994059031929d14723ec01411f85c6834608465763d4c79afe220a738";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "ddmlib";
+ {
+ artifactId = "ddmlib";
groupId = "com.android.tools.ddms";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "9ab0f9b58737c316af454184705854c75936ca3531f21acc29bd68a3343334d1";
pomSha256 = "cd42fa67187b9b395bdee26c3a829279a1afe74ab8332ac36b10520edf8ecd6f";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "layoutlib-api";
+ {
+ artifactId = "layoutlib-api";
groupId = "com.android.tools.layoutlib";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "f0901f2295d814e82ad95850ea2103dd89d8489e01727fafa55ccccc0dccd163";
pomSha256 = "fc76d044fde1648ce195fa752bfdc2f9095b4faeeae21985b3d78515027ee409";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "lint-gradle-api";
+ {
+ artifactId = "lint-gradle-api";
groupId = "com.android.tools.lint";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "2be9c69d6fbbfb012ff6521fdfcb22eb7cfaa57d108e07bb1d4143dae9c1b433";
pomSha256 = "847d7a6cb47f5143eb1c189e844dde7e59a422b591936806b626c40f28201be0";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "lint-model";
+ {
+ artifactId = "lint-model";
groupId = "com.android.tools.lint";
version = "27.2.2";
repo = "https://maven.google.com/";
jarSha256 = "ee31012586462bea2d591b6175934e5f29b6f781a78fda50f79387972364b9ab";
pomSha256 = "82d505b42e41b13de7c17503554ace51f97dfa2a47f033511c94bb1a3ecb6456";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "google";
+ {
+ artifactId = "google";
groupId = "com.google";
version = "1";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "cd6db17a11a31ede794ccbd1df0e4d9750f640234731f21cff885a9997277e81";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "transport-api";
+ {
+ artifactId = "transport-api";
groupId = "com.google.android.datatransport";
version = "2.1.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "90df79a49f78c427aaa72e2bdba81732e6a19ac14e0655ac13fdf20a5e4f4316";
- aarSha256 = "c876d4f93b6d03cf7fba46e2d7f458d31ed4c68d8d50c5d453c7f63dfa0ff82e"; }
+ aarSha256 = "c876d4f93b6d03cf7fba46e2d7f458d31ed4c68d8d50c5d453c7f63dfa0ff82e";
+ }
- { artifactId = "transport-api";
+ {
+ artifactId = "transport-api";
groupId = "com.google.android.datatransport";
version = "2.2.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "ba50c554f459220920168d591ddb221eeeb78ea2f44ff0a659f05514fbfc034f";
- aarSha256 = "576514f8b75d8ae32897f1b9b031f88b00465bf6e0996e227d09af688195f71e"; }
+ aarSha256 = "576514f8b75d8ae32897f1b9b031f88b00465bf6e0996e227d09af688195f71e";
+ }
- { artifactId = "transport-backend-cct";
+ {
+ artifactId = "transport-backend-cct";
groupId = "com.google.android.datatransport";
version = "2.1.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "0596082466dd0a1188d87a9b7e0bf7505d39aff5b7846a24054e0dfcb2a5820b";
- aarSha256 = "3357e12aafeb176cbd8f438da601c612d6694430f7e44227abfe0ff1d9aebd37"; }
+ aarSha256 = "3357e12aafeb176cbd8f438da601c612d6694430f7e44227abfe0ff1d9aebd37";
+ }
- { artifactId = "transport-backend-cct";
+ {
+ artifactId = "transport-backend-cct";
groupId = "com.google.android.datatransport";
version = "2.2.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "b932519ddf57b6cc3d6775bd016b4b236bfc30bc832b1c888f7e90d4cc9059b0";
- aarSha256 = "33abba2b7749479ae397176ae482b1807010b2bb331d61264bbdcc799eb398cd"; }
+ aarSha256 = "33abba2b7749479ae397176ae482b1807010b2bb331d61264bbdcc799eb398cd";
+ }
- { artifactId = "transport-runtime";
+ {
+ artifactId = "transport-runtime";
groupId = "com.google.android.datatransport";
version = "2.1.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "339855f65009224f99d07cd4c895099327a4e705c7e16df7ed6753441f73c670";
- aarSha256 = "3d2d609a27ff4b19537025e2bb77587ad6ff286bed7b3c60a7809fc1604969af"; }
+ aarSha256 = "3d2d609a27ff4b19537025e2bb77587ad6ff286bed7b3c60a7809fc1604969af";
+ }
- { artifactId = "transport-runtime";
+ {
+ artifactId = "transport-runtime";
groupId = "com.google.android.datatransport";
version = "2.2.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "a911c8a33f02942c10a5e730613a533c209d6ae8ddb0e7cd8e65fceb1162de56";
- aarSha256 = "e72912014b67151b689a7e820d3f1edf12fe2af5fbc308ab196ac392436ab771"; }
+ aarSha256 = "e72912014b67151b689a7e820d3f1edf12fe2af5fbc308ab196ac392436ab771";
+ }
- { artifactId = "play-services-base";
+ {
+ artifactId = "play-services-base";
groupId = "com.google.android.gms";
version = "17.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "c30489d38be5d41e19272f6aa47d6c43de85034500bcb1864b79381c9634d924";
- aarSha256 = "dd0980edf729e0d346e2b58e70801dc237c1aed0c7ab274fa3f1c8c8efc64cc7"; }
+ aarSha256 = "dd0980edf729e0d346e2b58e70801dc237c1aed0c7ab274fa3f1c8c8efc64cc7";
+ }
- { artifactId = "play-services-basement";
+ {
+ artifactId = "play-services-basement";
groupId = "com.google.android.gms";
version = "17.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "ffe9295d9eb2ec2d784bb4c3634f6a10175224d2111332fa2735320b52a24b66";
- aarSha256 = "d324a1785bbc48bfe3639fc847cfd3cf43d49e967b5caf2794240a854557a39c"; }
+ aarSha256 = "d324a1785bbc48bfe3639fc847cfd3cf43d49e967b5caf2794240a854557a39c";
+ }
- { artifactId = "play-services-stats";
+ {
+ artifactId = "play-services-stats";
groupId = "com.google.android.gms";
version = "17.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "16f62288613923857f616976985fdfdc212bacc898b2b947715ebffd8fdea19b";
- aarSha256 = "e8ae5b40512b71e2258bfacd8cd3da398733aa4cde3b32d056093f832b83a6fe"; }
+ aarSha256 = "e8ae5b40512b71e2258bfacd8cd3da398733aa4cde3b32d056093f832b83a6fe";
+ }
- { artifactId = "play-services-tasks";
+ {
+ artifactId = "play-services-tasks";
groupId = "com.google.android.gms";
version = "17.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "fdd93302c2eb94bbe6007caa28d072246d2875cda5cb774bb6299416b94d74a6";
- aarSha256 = "2e6d1738b73647f3fe7a038b9780b97717b3746eae258009197e36e7bf3112a5"; }
+ aarSha256 = "2e6d1738b73647f3fe7a038b9780b97717b3746eae258009197e36e7bf3112a5";
+ }
- { artifactId = "strict-version-matcher-plugin";
+ {
+ artifactId = "strict-version-matcher-plugin";
groupId = "com.google.android.gms";
version = "1.2.1";
repo = "https://maven.google.com/";
jarSha256 = "0c1027a51198190386eae3f90adee9a30687e76da7589f06c79269fea4c7a4c0";
pomSha256 = "33417a7f40225f2b5ffc67df4c2c2e7e9050028af2cbecf9de2b8e1c33401fd3";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "auto-parent";
+ {
+ artifactId = "auto-parent";
groupId = "com.google.auto";
version = "6";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "05f740c6648165db00cf618dd56c200c4725e358e6d54f5853e0bec15734ea0a";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "auto-parent";
+ {
+ artifactId = "auto-parent";
groupId = "com.google.auto";
version = "7";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "a46426fccb5d32705ad9cbbc996f786bd048cc8cbdd21db046500169f15a4356";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "auto-value-annotations";
+ {
+ artifactId = "auto-value-annotations";
groupId = "com.google.auto.value";
version = "1.6.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "b48b04ddba40e8ac33bf036f06fc43995fc5084bd94bdaace807ce27d3bea3fb";
pomSha256 = "1c76cd462fc96e7aa96dc70ce82f0d54063d6df16db35c9c7d9cc0d1a99d3fff";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "auto-value-annotations";
+ {
+ artifactId = "auto-value-annotations";
groupId = "com.google.auto.value";
version = "1.6.5";
repo = "https://jcenter.bintray.com/";
jarSha256 = "3677f725f5b1b6cd6a4cc8aa8cf8f5fd2b76d170205cbdc3e9bfd9b58f934b3b";
pomSha256 = "6fc498858e0cd1387595af38957820cb341d1e687ccf753e1cbd982f46ef4fc3";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "auto-value-parent";
+ {
+ artifactId = "auto-value-parent";
groupId = "com.google.auto.value";
version = "1.6.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "27b640c82179f5cff62009c0b72033d9bc60f60e9902a66802274b7fe37fc81c";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "auto-value-parent";
+ {
+ artifactId = "auto-value-parent";
groupId = "com.google.auto.value";
version = "1.6.5";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "b9d2d3aa6919d5f07e18c7cea942be9aef3b650a8f1e68f33c854a25c09c2049";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jsr305";
+ {
+ artifactId = "jsr305";
groupId = "com.google.code.findbugs";
version = "3.0.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7";
pomSha256 = "19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gson";
+ {
+ artifactId = "gson";
groupId = "com.google.code.gson";
version = "2.8.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "c6221763bd79c4f1c3dc7f750b5f29a0bb38b367b81314c4f71896e340c40825";
pomSha256 = "a5331a0ecb548f9942ab5b93c7ac43c38a21e897763dde1bcdbf0774f416ca6f";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gson";
+ {
+ artifactId = "gson";
groupId = "com.google.code.gson";
version = "2.8.5";
repo = "https://jcenter.bintray.com/";
jarSha256 = "233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81";
pomSha256 = "b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gson";
+ {
+ artifactId = "gson";
groupId = "com.google.code.gson";
version = "2.8.6";
repo = "https://jcenter.bintray.com/";
jarSha256 = "c8fb4839054d280b3033f800d1f5a97de2f028eb8ba2eb458ad287e536f3f25f";
pomSha256 = "2174415a647332d30fda04bd1cfc708a3ecc84eaf7517f596188d8244e103911";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gson-parent";
+ {
+ artifactId = "gson-parent";
groupId = "com.google.code.gson";
version = "2.8.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "0f1d8369b1e9f1bc4b467c8dcfdd8b59733aad5b5c8419c3a59b2f9abaf04cd2";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gson-parent";
+ {
+ artifactId = "gson-parent";
groupId = "com.google.code.gson";
version = "2.8.5";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "gson-parent";
+ {
+ artifactId = "gson-parent";
groupId = "com.google.code.gson";
version = "2.8.6";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "3736463859ec19267295e894940ae82a8f684413031122fe35ce7cff7e30a774";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "tink";
+ {
+ artifactId = "tink";
groupId = "com.google.crypto.tink";
version = "1.3.0-rc2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "3aa576b5671d0e26d83d7fdb7186810b5672f00bf8e72184260bcc7c2d7dc07a";
pomSha256 = "5b9a11c11183d011de9a9a5490962d78a4d4bfe7579b0c5be4afb18a222e3f41";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "dagger";
+ {
+ artifactId = "dagger";
groupId = "com.google.dagger";
version = "2.24";
repo = "https://jcenter.bintray.com/";
jarSha256 = "550a6e46a6dfcdf1d764887b6090cea94f783327e50e5c73754f18facfc70b64";
pomSha256 = "477bdf6579ecc9cc8f99a565203f6244914f289d87e7efbdf96243fa58f9df4c";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "dagger";
+ {
+ artifactId = "dagger";
groupId = "com.google.dagger";
version = "2.28.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = "f1dd23f8ae34a8e91366723991ead0d6499d1a3e9163ce550c200b02d76a872b";
pomSha256 = "265ba959a8e13c3a06133f04b539169c1018daffd4d33f53c453ab4cb386f570";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "error_prone_annotations";
+ {
+ artifactId = "error_prone_annotations";
groupId = "com.google.errorprone";
version = "2.3.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "10a5949aa0f95c8de4fd47edfe20534d2acefd8c224f8afea1f607e112816120";
pomSha256 = "3edce6b711ba368efe16b9b7aacb0214fbd648414cb9b965953a2e7ed89a819a";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "error_prone_annotations";
+ {
+ artifactId = "error_prone_annotations";
groupId = "com.google.errorprone";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "357cd6cfb067c969226c442451502aee13800a24e950fdfde77bcdb4565a668d";
pomSha256 = "8d175561619289a527573cfbdcf872eb5c1216cf9ab692a0ef3dba6d793f63b4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "error_prone_parent";
+ {
+ artifactId = "error_prone_parent";
groupId = "com.google.errorprone";
version = "2.3.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "767525d9a81129cd081968382980336327be4162b1e2251a182911daa733c123";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "error_prone_parent";
+ {
+ artifactId = "error_prone_parent";
groupId = "com.google.errorprone";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "8d3b5b9fa211979e9c425e989825c07743d2eb4dc8c20ec61de0f5b3dc1a6333";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "firebase-common";
+ {
+ artifactId = "firebase-common";
groupId = "com.google.firebase";
version = "19.3.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "d11dd4923436f29d301d0d8fc0e03a3497bce181e572c54a74cb84b925b3a085";
- aarSha256 = "7bd7971470ff943e3c3abb1d7809ef5cb4b81f1996be0867714372b3efa7405a"; }
+ aarSha256 = "7bd7971470ff943e3c3abb1d7809ef5cb4b81f1996be0867714372b3efa7405a";
+ }
- { artifactId = "firebase-components";
+ {
+ artifactId = "firebase-components";
groupId = "com.google.firebase";
version = "16.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "5c5d0a5f811e4eb7512ea7aba70241ebeb27b9e195fbdea9b2c4b914272c326e";
- aarSha256 = "8ef43b412de4ec3e36a87c66d8a0a14a3de0a2e8566946da6a0e799b7fdd8ec9"; }
+ aarSha256 = "8ef43b412de4ec3e36a87c66d8a0a14a3de0a2e8566946da6a0e799b7fdd8ec9";
+ }
- { artifactId = "firebase-datatransport";
+ {
+ artifactId = "firebase-datatransport";
groupId = "com.google.firebase";
version = "17.0.3";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "04bd79c377c7b03fe3d4a5f26b90b0cfb0654c2d3b5c8dcfa6e90fcb1cb8d5d4";
- aarSha256 = "10c9f65c4f897ea33d028e46226daaabdfee43ac712559e5570d21b6b58a067e"; }
+ aarSha256 = "10c9f65c4f897ea33d028e46226daaabdfee43ac712559e5570d21b6b58a067e";
+ }
- { artifactId = "firebase-encoders-json";
+ {
+ artifactId = "firebase-encoders-json";
groupId = "com.google.firebase";
version = "16.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "dcaf1909552a73b2f7081768d687331e09200b7afeddd5be7712291cf1359425";
- aarSha256 = "d1769fcec2a424ee7f92b9996c4b5c1dff0dfa27ceed28981b857b144fb5ec49"; }
+ aarSha256 = "d1769fcec2a424ee7f92b9996c4b5c1dff0dfa27ceed28981b857b144fb5ec49";
+ }
- { artifactId = "firebase-iid";
+ {
+ artifactId = "firebase-iid";
groupId = "com.google.firebase";
version = "20.2.3";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "e0e27db2be35f8b5e2d73eb37d0b2431ecb5337e55bb74c04aa816ff279dc2a3";
- aarSha256 = "4ee59ef2d256a1c64bb55665d9fd3ca822e371e36d3a9b901582a9fb426d657c"; }
+ aarSha256 = "4ee59ef2d256a1c64bb55665d9fd3ca822e371e36d3a9b901582a9fb426d657c";
+ }
- { artifactId = "firebase-iid-interop";
+ {
+ artifactId = "firebase-iid-interop";
groupId = "com.google.firebase";
version = "17.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "d01b366337829913fb0efc8c17388ad9673e3531fddf48d2f76d63e21bc5e788";
- aarSha256 = "b6f4ad581eb489370be3bf38a4bdabfc6ea3d4e716234c625a0f42516c53523c"; }
+ aarSha256 = "b6f4ad581eb489370be3bf38a4bdabfc6ea3d4e716234c625a0f42516c53523c";
+ }
- { artifactId = "firebase-installations";
+ {
+ artifactId = "firebase-installations";
groupId = "com.google.firebase";
version = "16.3.2";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "8de71da34dc282a211b256e5872083937857d8781fcdbcac086d38ed0982d41b";
- aarSha256 = "0d0f88b3c3789d5fe1aa9a69bd5ab6c0e92036fcf34520775a0091e37268dd3f"; }
+ aarSha256 = "0d0f88b3c3789d5fe1aa9a69bd5ab6c0e92036fcf34520775a0091e37268dd3f";
+ }
- { artifactId = "firebase-installations-interop";
+ {
+ artifactId = "firebase-installations-interop";
groupId = "com.google.firebase";
version = "16.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "623c9a2cc9d554afae478e0c82f644df9dc55efb2fb2491fd22761094f73287e";
- aarSha256 = "d498fe20e7d2c65fc8f7124f1c1791d2828bebdf6bf06ab4cdee13e7fe9ccaa2"; }
+ aarSha256 = "d498fe20e7d2c65fc8f7124f1c1791d2828bebdf6bf06ab4cdee13e7fe9ccaa2";
+ }
- { artifactId = "firebase-measurement-connector";
+ {
+ artifactId = "firebase-measurement-connector";
groupId = "com.google.firebase";
version = "18.0.0";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "24bd1b4a8f81aea76ae30054df6343b5c0abc27024a5f6fb9c6ee7d4ffb86533";
- aarSha256 = "17e8b9b60ac0a79fcbed754d03d4b966cc5bb8837e79c2308bf2970f1d05700c"; }
+ aarSha256 = "17e8b9b60ac0a79fcbed754d03d4b966cc5bb8837e79c2308bf2970f1d05700c";
+ }
- { artifactId = "firebase-messaging";
+ {
+ artifactId = "firebase-messaging";
groupId = "com.google.firebase";
version = "20.2.3";
repo = "https://maven.google.com/";
jarSha256 = null;
pomSha256 = "78c2c4b37726c4ef475eb20f9864bf09f95b6ae2e95f6ef1d9bd869bc5e2eac5";
- aarSha256 = "6c188ff01e9ac4e714bb26c95a920c35d98ec0c324724d13de0ea3539423cdd0"; }
+ aarSha256 = "6c188ff01e9ac4e714bb26c95a920c35d98ec0c324724d13de0ea3539423cdd0";
+ }
- { artifactId = "flatbuffers-java";
+ {
+ artifactId = "flatbuffers-java";
groupId = "com.google.flatbuffers";
version = "1.12.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "3f8c088b4dd04a9858721f2e162508c94db0dd86f961e306ee63ef2eda871bf7";
pomSha256 = "cb226baf546260770f21e8152a6aa88ba15230d739f750df480f2a668d43e0eb";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "google-services";
+ {
+ artifactId = "google-services";
groupId = "com.google.gms";
version = "4.3.3";
repo = "https://maven.google.com/";
jarSha256 = "d9668002ef7032deddf7dbf853b47e10e6722bbce1b318fe7d6a297e28a8dcae";
pomSha256 = "d46bba8531af0a008504148486dd2584432278499db092a4f3916dfbd32b3b7b";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "failureaccess";
+ {
+ artifactId = "failureaccess";
groupId = "com.google.guava";
version = "1.0.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26";
pomSha256 = "e96042ce78fecba0da2be964522947c87b40a291b5fd3cd672a434924103c4b9";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava";
+ {
+ artifactId = "guava";
groupId = "com.google.guava";
version = "18.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "d664fbfc03d2e5ce9cab2a44fb01f1d0bf9dfebeccc1a473b1f9ea31f79f6f99";
pomSha256 = "e743d61d76f76b5dc060d6f7914fdd41c4418b3529062556920116a716719836";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava";
+ {
+ artifactId = "guava";
groupId = "com.google.guava";
version = "23.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "7baa80df284117e5b945b19b98d367a85ea7b7801bd358ff657946c3bd1b6596";
pomSha256 = "ac2ac42a7a6b4ce5097c6c83e2fbbacbbb7f9913f1b4f993eb1723a14476324e";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava";
+ {
+ artifactId = "guava";
groupId = "com.google.guava";
version = "27.0.1-jre";
repo = "https://jcenter.bintray.com/";
jarSha256 = "e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4";
pomSha256 = "6a8dd041f23a6bb14a86e440fccb993537b62271357a0dac0a3cb0ff39158f36";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava";
+ {
+ artifactId = "guava";
groupId = "com.google.guava";
version = "28.0-android";
repo = "https://jcenter.bintray.com/";
jarSha256 = "aa12035fa0ce8bdab6a4ddc218c2749df9306126f6fc9171bc0d73a5af2e0549";
pomSha256 = "b9cc4824a3973bbff1ff66ea93f61a9cfc12cefd5453889413484eaa2a74da83";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava";
+ {
+ artifactId = "guava";
groupId = "com.google.guava";
version = "28.1-jre";
repo = "https://jcenter.bintray.com/";
jarSha256 = "30beb8b8527bd07c6e747e77f1a92122c2f29d57ce347461a4a55eb26e382da4";
pomSha256 = "74af0e8dd935894ce9bcb8e2842dd0001581b84cb6a7751c3ef9314011399ba4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava-parent";
+ {
+ artifactId = "guava-parent";
groupId = "com.google.guava";
version = "18.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "a4accc8895e757f6a33f087e4fd0b661c5638ffe5e0728f298efe7d80551b166";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava-parent";
+ {
+ artifactId = "guava-parent";
groupId = "com.google.guava";
version = "23.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "66cc3a0d329f9fe130605fdb2c901e5a9bb2612f02f23a76757b46e689b3594d";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava-parent";
+ {
+ artifactId = "guava-parent";
groupId = "com.google.guava";
version = "26.0-android";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava-parent";
+ {
+ artifactId = "guava-parent";
groupId = "com.google.guava";
version = "27.0.1-jre";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "317e88291262e0cf2805e956c18850f1d4565c85c2e1112f5d9d08ab1732e696";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava-parent";
+ {
+ artifactId = "guava-parent";
groupId = "com.google.guava";
version = "28.0-android";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "cfe57db4777a2d1acb8630050ae2f4e23ce102658aba356c2a4a99d23d113374";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "guava-parent";
+ {
+ artifactId = "guava-parent";
groupId = "com.google.guava";
version = "28.1-jre";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "f31a5846bd9e14a4c374da1b9b146a5715ecdca925e071e1d2bf4da2daaded90";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "listenablefuture";
+ {
+ artifactId = "listenablefuture";
groupId = "com.google.guava";
version = "9999.0-empty-to-avoid-conflict-with-guava";
repo = "https://jcenter.bintray.com/";
jarSha256 = "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99";
pomSha256 = "18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "j2objc-annotations";
+ {
+ artifactId = "j2objc-annotations";
groupId = "com.google.j2objc";
version = "1.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = "21af30c92267bd6122c0e0b4d20cccb6641a37eaf956c6540ec471d584e64a7b";
pomSha256 = "5faca824ba115bee458730337dfdb2fcea46ba2fd774d4304edbf30fa6a3f055";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jimfs";
+ {
+ artifactId = "jimfs";
groupId = "com.google.jimfs";
version = "1.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd";
pomSha256 = "efa86e5cd922f17b472fdfcae57234d8d4ac3e148b6250737dfce454af7a7a44";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jimfs-parent";
+ {
+ artifactId = "jimfs-parent";
groupId = "com.google.jimfs";
version = "1.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "c71555751e57e0ef912870e8ac9625ae782502a6a5b9c19ccf83b2a97d8b26bd";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protobuf-bom";
+ {
+ artifactId = "protobuf-bom";
groupId = "com.google.protobuf";
version = "3.10.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "32ff2307dafc658d0b55b2ad841d625aea5606bb9b0316605165cd6980503243";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protobuf-java";
+ {
+ artifactId = "protobuf-java";
groupId = "com.google.protobuf";
version = "3.10.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "161d7d61a8cb3970891c299578702fd079646e032329d6c2cabf998d191437c9";
pomSha256 = "b404c1b093ec9dea888e02c8dfe8662759586b94efa4f97061cdfc1bbfa15af0";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protobuf-java";
+ {
+ artifactId = "protobuf-java";
groupId = "com.google.protobuf";
version = "3.4.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "dce7e66b32456a1b1198da0caff3a8acb71548658391e798c79369241e6490a4";
pomSha256 = "83f17ba86c5fa1a15a3a3c8030d4ce42ef21c1d39b65db6cc004a8eeb2c59406";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protobuf-java-util";
+ {
+ artifactId = "protobuf-java-util";
groupId = "com.google.protobuf";
version = "3.10.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "619b0b0dc344cb141e493cbedc5687c8fb7c985e609a1b035e621bfab2f89021";
pomSha256 = "146660182d07798ced06fa8e8ae3b9faa90aa48cf3c6adfc67db9371188ba502";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protobuf-java-util";
+ {
+ artifactId = "protobuf-java-util";
groupId = "com.google.protobuf";
version = "3.4.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "4189e0be5ab15cf2330f70b24fbdc75ca37514f188388fce8580ce16a9a68052";
pomSha256 = "89c43073e7eaa0eaba72a4a36ae1b6bfdfe5d81bb9d0e156aee05e4a72de3cb8";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protobuf-parent";
+ {
+ artifactId = "protobuf-parent";
groupId = "com.google.protobuf";
version = "3.10.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "6dd84a508125fffdefbd583fae12bf166aa902511b570ca54fa9efa45f6dfe80";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "protobuf-parent";
+ {
+ artifactId = "protobuf-parent";
groupId = "com.google.protobuf";
version = "3.4.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "24909c552842c0eb7a4c769d631a43cbef5a9a10c1640f2bdbd1ea149c573a47";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "core-proto";
+ {
+ artifactId = "core-proto";
groupId = "com.google.testing.platform";
version = "0.0.8-alpha01";
repo = "https://maven.google.com/";
jarSha256 = "2deaa8c40f27c8af158ae2c2132927cd9be345deb1450da49aca29cb168289cd";
pomSha256 = "501e7a6b743cf4e81643ce31e2850f37477494a689513e756e059c688773867f";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "json-simple";
+ {
+ artifactId = "json-simple";
groupId = "com.googlecode.json-simple";
version = "1.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439";
pomSha256 = "47a89be0fa0fedd476db5fd2c83487654d2a119c391f83a142be876667cf7dab";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "juniversalchardet";
+ {
+ artifactId = "juniversalchardet";
groupId = "com.googlecode.juniversalchardet";
version = "1.0.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = "757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76";
pomSha256 = "7846399b35c7cd642a9b3a000c3e2d62d04eb37a4547b6933cc8b18bcc2f086b";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "javapoet";
+ {
+ artifactId = "javapoet";
groupId = "com.squareup";
version = "1.10.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "20ef4b82e43ff7c652281a21313cf3b941092467add3fa73509c26f6969efdab";
pomSha256 = "1690340a222279f2cbadf373e88826fa20f7f3cc3ec0252f36818fed32701ab1";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "javawriter";
+ {
+ artifactId = "javawriter";
groupId = "com.squareup";
version = "2.5.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0";
pomSha256 = "e1abd7f1116cf5e0c59947693e2189208ec94296b2a3394c959e3511d399a7b0";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "all";
+ {
+ artifactId = "all";
groupId = "com.sun.activation";
version = "1.2.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "1d8518e3ac7532a104e4f7be77def37c982e530723c6bdb3d67708cce2b0c2c4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "all";
+ {
+ artifactId = "all";
groupId = "com.sun.activation";
version = "1.2.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "360883bf64486ecef161b8f282f6503536dd1a670d53a0a871c8fb20170e6795";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "javax.activation";
+ {
+ artifactId = "javax.activation";
groupId = "com.sun.activation";
version = "1.2.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce";
pomSha256 = "f879b6e945854c6900b0dbee1c8384d7ab3de7e157fd7ac84937405c416d2a5e";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "istack-commons";
+ {
+ artifactId = "istack-commons";
groupId = "com.sun.istack";
version = "3.0.8";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "a0f0517e8512f0fbcc7b8295c12f6566a3d0c2d86d655639dc662ef8c0c7ebe5";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "istack-commons-runtime";
+ {
+ artifactId = "istack-commons-runtime";
groupId = "com.sun.istack";
version = "3.0.8";
repo = "https://jcenter.bintray.com/";
jarSha256 = "4ffabb06be454a05e4398e20c77fa2b6308d4b88dfbef7ca30a76b5b7d5505ef";
pomSha256 = "c2e014d34cb84ed287d064986c45c305a4124228a7337eccf6c421d14d708f1c";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jaxb-bom-ext";
+ {
+ artifactId = "jaxb-bom-ext";
groupId = "com.sun.xml.bind";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "1a7dec2b27e7e055744cdb8cf1b90def4fd473acd1b804eff098139358959bd7";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jaxb-parent";
+ {
+ artifactId = "jaxb-parent";
groupId = "com.sun.xml.bind.mvn";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "20dd6dc34ab7549ac40da1d82e92222ec4347ad0ec0cb118ef6c5703bed53a18";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jaxb-runtime-parent";
+ {
+ artifactId = "jaxb-runtime-parent";
groupId = "com.sun.xml.bind.mvn";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "b24f8d51f184a68bc1b86d48c0e3cfefeb21a44ede1c5f7303c58ae0488533ec";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jaxb-txw-parent";
+ {
+ artifactId = "jaxb-txw-parent";
groupId = "com.sun.xml.bind.mvn";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "b55d3efa9b158f483a30e92c78ccb600f93314733d089eba9b74436f01b314a4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "FastInfoset";
+ {
+ artifactId = "FastInfoset";
groupId = "com.sun.xml.fastinfoset";
version = "1.2.16";
repo = "https://jcenter.bintray.com/";
jarSha256 = "056f3a1e144409f21ed16afc26805f58e9a21f3fce1543c42d400719d250c511";
pomSha256 = "e147d258ab6e6691f70599a952400e6e6c7558f8c9c028dbe1be23178308e830";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "fastinfoset-project";
+ {
+ artifactId = "fastinfoset-project";
groupId = "com.sun.xml.fastinfoset";
version = "1.2.16";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "90582425adc1f40b41362dafb95173931225acaa5e79620d5e6bd52f646292ba";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-codec";
+ {
+ artifactId = "commons-codec";
groupId = "commons-codec";
version = "1.10";
repo = "https://jcenter.bintray.com/";
jarSha256 = "4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569";
pomSha256 = "bdb8db7012d112a6e3ea8fdb7c510b300d99eff0819d27dddba9c43397ea4cfb";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-io";
+ {
+ artifactId = "commons-io";
groupId = "commons-io";
version = "2.4";
repo = "https://jcenter.bintray.com/";
jarSha256 = "cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581";
pomSha256 = "b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-logging";
+ {
+ artifactId = "commons-logging";
groupId = "commons-logging";
version = "1.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636";
pomSha256 = "c91ab5aa570d86f6fd07cc158ec6bc2c50080402972ee9179fe24100739fbb20";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "fastutil";
+ {
+ artifactId = "fastutil";
groupId = "it.unimi.dsi";
version = "8.4.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "2ad2824a4a0a0eb836b52ee2fc84ba2134f44bce7bfa54015ae3f31c710a3071";
pomSha256 = "110e6f66c7d5ed3c91408eb0b49d40791614decc842eb92d7547ae7f88482822";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jakarta.activation-api";
+ {
+ artifactId = "jakarta.activation-api";
groupId = "jakarta.activation";
version = "1.2.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "8b0a0f52fa8b05c5431921a063ed866efaa41dadf2e3a7ee3e1961f2b0d9645b";
pomSha256 = "42585cb07dda7f23aa04eb5e0940061944a246a67ad3d16942fbe569ff03cd31";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jakarta.xml.bind-api";
+ {
+ artifactId = "jakarta.xml.bind-api";
groupId = "jakarta.xml.bind";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "69156304079bdeed9fc0ae3b39389f19b3cc4ba4443bc80508995394ead742ea";
pomSha256 = "b537b388dbab4cc0690b9d2fb0c74124d672531734567acf6e53130eab131ad6";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jakarta.xml.bind-api-parent";
+ {
+ artifactId = "jakarta.xml.bind-api-parent";
groupId = "jakarta.xml.bind";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "15a55b7d537c9f9970aead28d2af97c059f65ff6102f76bbd29f1247dd8a6dfb";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "javax.inject";
+ {
+ artifactId = "javax.inject";
groupId = "javax.inject";
version = "1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff";
pomSha256 = "943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jvnet-parent";
+ {
+ artifactId = "jvnet-parent";
groupId = "net.java";
version = "1";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jna";
+ {
+ artifactId = "jna";
groupId = "net.java.dev.jna";
version = "5.6.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "5557e235a8aa2f9766d5dc609d67948f2a8832c2d796cea9ef1d6cbe0b3b7eaf";
pomSha256 = "5fe81b0255978f24616d37b10608b79498a5f3073e1d9b2038d8736a831f2608";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jna-platform";
+ {
+ artifactId = "jna-platform";
groupId = "net.java.dev.jna";
version = "5.6.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "9ecea8bf2b1b39963939d18b70464eef60c508fed8820f9dcaba0c35518eabf7";
pomSha256 = "1beb35cb4184e6c906a7e32eaebd852dd3da0a263962e99134ab945832394e28";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jopt-simple";
+ {
+ artifactId = "jopt-simple";
groupId = "net.sf.jopt-simple";
version = "4.9";
repo = "https://jcenter.bintray.com/";
jarSha256 = "26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5";
pomSha256 = "7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kxml2";
+ {
+ artifactId = "kxml2";
groupId = "net.sf.kxml";
version = "2.3.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2";
pomSha256 = "31ce606f4e9518936299bb0d27c978fa61e185fd1de7c9874fe959a53e34a685";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "proguard-base";
+ {
+ artifactId = "proguard-base";
groupId = "net.sf.proguard";
version = "6.0.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = "75bc89695fa66e75374ecda439b802406f0ab1d826dd386eed0a23b1f0a9d264";
pomSha256 = "2a823d79f2675582a988d539466d1b175e939782efbe0f6e61f06cb165ed4907";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "proguard-gradle";
+ {
+ artifactId = "proguard-gradle";
groupId = "net.sf.proguard";
version = "6.0.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = "cc12b1168e521491dd0e687cfebec11a4af874b22af70e10cf2a05b47ca00c8f";
pomSha256 = "5a5c7317d68ce80d1d40c9d8bd4e38814d42d1b16c265146e333634833a35a57";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "proguard-parent";
+ {
+ artifactId = "proguard-parent";
groupId = "net.sf.proguard";
version = "6.0.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "d87266bfd2312c3b036c4ac709310afa35c448ceb18027c3b87a33d03c6de0a0";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "antlr4";
+ {
+ artifactId = "antlr4";
groupId = "org.antlr";
version = "4.5.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = "a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4";
pomSha256 = "8a4e4b32eedaa72976a757e12cf1dfe742725db0b7311bf176dd937ba4236384";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "antlr4-master";
+ {
+ artifactId = "antlr4-master";
groupId = "org.antlr";
version = "4.5.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "apache";
+ {
+ artifactId = "apache";
groupId = "org.apache";
version = "13";
repo = "https://central.maven.org/maven2/";
jarSha256 = null;
pomSha256 = "ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "apache";
+ {
+ artifactId = "apache";
groupId = "org.apache";
version = "15";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "36c2f2f979ac67b450c0cb480e4e9baf6b40f3a681f22ba9692287d1139ad494";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "apache";
+ {
+ artifactId = "apache";
groupId = "org.apache";
version = "16";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "apache";
+ {
+ artifactId = "apache";
groupId = "org.apache";
version = "18";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "apache";
+ {
+ artifactId = "apache";
groupId = "org.apache";
version = "9";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-compress";
+ {
+ artifactId = "commons-compress";
groupId = "org.apache.commons";
version = "1.12";
repo = "https://jcenter.bintray.com/";
jarSha256 = "2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6";
pomSha256 = "b787d574c851505e76212968b9ae1641ea79804aef7f5a2cee2a01cd4055213a";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-parent";
+ {
+ artifactId = "commons-parent";
groupId = "org.apache.commons";
version = "25";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-parent";
+ {
+ artifactId = "commons-parent";
groupId = "org.apache.commons";
version = "34";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "3a2e69d06d641d1f3b293126dc9e2e4ea6563bf8c36c87e0ab6fa4292d04b79c";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-parent";
+ {
+ artifactId = "commons-parent";
groupId = "org.apache.commons";
version = "35";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "7098a1ab8336ecd4c9dc21cbbcac869f82c66f64b8ac4f7988d41b4fcb44e49a";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "commons-parent";
+ {
+ artifactId = "commons-parent";
groupId = "org.apache.commons";
version = "39";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "httpclient";
+ {
+ artifactId = "httpclient";
groupId = "org.apache.httpcomponents";
version = "4.5.6";
repo = "https://jcenter.bintray.com/";
jarSha256 = "c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7";
pomSha256 = "7efc1241e73e7fbb268bfd33242d11ebd3ca07061d7d85f2962dc32a0f0b8855";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "httpcomponents-client";
+ {
+ artifactId = "httpcomponents-client";
groupId = "org.apache.httpcomponents";
version = "4.5.6";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "b042b41f2391edb00d35f7f4e509aed2123648c1d246ce58d0f7b905c9fe1f73";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "httpcomponents-core";
+ {
+ artifactId = "httpcomponents-core";
groupId = "org.apache.httpcomponents";
version = "4.4.10";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "61e9427d4be326c307a7f16ba828d1cb3b14713c9b04fc8ba992a58f376c3136";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "httpcomponents-parent";
+ {
+ artifactId = "httpcomponents-parent";
groupId = "org.apache.httpcomponents";
version = "10";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "httpcore";
+ {
+ artifactId = "httpcore";
groupId = "org.apache.httpcomponents";
version = "4.4.10";
repo = "https://jcenter.bintray.com/";
jarSha256 = "78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd";
pomSha256 = "c5c12066df2b3b88a89a2c8602b81ea9a61627e976e5129eea1899ebbaea392b";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "httpmime";
+ {
+ artifactId = "httpmime";
groupId = "org.apache.httpcomponents";
version = "4.5.6";
repo = "https://jcenter.bintray.com/";
jarSha256 = "0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e";
pomSha256 = "dfbfd6ffe2a784ca9817c46365aa7f8a578320b805bde39d6f55a0b09d8aa8ca";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "bcpkix-jdk15on";
+ {
+ artifactId = "bcpkix-jdk15on";
groupId = "org.bouncycastle";
version = "1.56";
repo = "https://jcenter.bintray.com/";
jarSha256 = "7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca";
pomSha256 = "321668fc474a73140eb9cc73c779f1ebb9f60948aade3beddee082ecefcf0259";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "bcprov-jdk15on";
+ {
+ artifactId = "bcprov-jdk15on";
groupId = "org.bouncycastle";
version = "1.56";
repo = "https://jcenter.bintray.com/";
jarSha256 = "963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349";
pomSha256 = "8fdc3336e7b01873193ba9c48b87de7d788dc0954d1eb45c322492627a4b5c6e";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "checker-qual";
+ {
+ artifactId = "checker-qual";
groupId = "org.checkerframework";
version = "2.5.8";
repo = "https://jcenter.bintray.com/";
jarSha256 = "bd655da535df1eeb96fc8874d05d0f7029209de95096e4f84bd07c66688a210d";
pomSha256 = "33ac6a0f1341ae96647c7d4465f4aa3d24fe97d2697bcee2ceae6fc8b5ef2c3c";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "checker-qual";
+ {
+ artifactId = "checker-qual";
groupId = "org.checkerframework";
version = "2.8.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "9103499008bcecd4e948da29b17864abb64304e15706444ae209d17ebe0575df";
pomSha256 = "f23376b58ed795f2ff47426ac76b996d49e3918442e5d8713e3925f889a77799";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "animal-sniffer-annotations";
+ {
+ artifactId = "animal-sniffer-annotations";
groupId = "org.codehaus.mojo";
version = "1.17";
repo = "https://jcenter.bintray.com/";
jarSha256 = "92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53";
pomSha256 = "e956ab5d2eb48fabae12300d0cd2d3294d4a2a41abc2068c23cb4d60ad76cbe5";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "animal-sniffer-annotations";
+ {
+ artifactId = "animal-sniffer-annotations";
groupId = "org.codehaus.mojo";
version = "1.18";
repo = "https://jcenter.bintray.com/";
jarSha256 = "47f05852b48ee9baefef80fa3d8cea60efa4753c0013121dd7fe5eef2e5c729d";
pomSha256 = "adf522f4839c35f5329ea97c407aebebfa8807b644852dc4d5cd7c97b7a6d2e0";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "animal-sniffer-parent";
+ {
+ artifactId = "animal-sniffer-parent";
groupId = "org.codehaus.mojo";
version = "1.17";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "18a03df16e2a184c582db7b125633c15fb7714027a84c1b532d72933dc08b81f";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "animal-sniffer-parent";
+ {
+ artifactId = "animal-sniffer-parent";
groupId = "org.codehaus.mojo";
version = "1.18";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "4e9df546a47cf6304a1317c46870100a8726fbea11b0dd18322f957e4070973c";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "mojo-parent";
+ {
+ artifactId = "mojo-parent";
groupId = "org.codehaus.mojo";
version = "40";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "fc648dcdc404f8bf66e0583914ecf980176618201227bea114fae85043cb755e";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "mojo-parent";
+ {
+ artifactId = "mojo-parent";
groupId = "org.codehaus.mojo";
version = "50";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "f819cad1b15b6a7791c8b601e96bde33765e4681395807db4537d2f0dedd493b";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "project";
+ {
+ artifactId = "project";
groupId = "org.eclipse.ee4j";
version = "1.0.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "7495a07a797e88e43c3bc1a87421bd8b1fc55e32291fa18e4e32d8031ddc873f";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "project";
+ {
+ artifactId = "project";
groupId = "org.eclipse.ee4j";
version = "1.0.5";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "916b4794d8d8220a59a3fdf6a64dbe794aeb23395e888b81ae36a9b5a2c591a6";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jaxb-bom";
+ {
+ artifactId = "jaxb-bom";
groupId = "org.glassfish.jaxb";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "a1018bb54678ed9f5acb2f7a4084e385ff510201f4e9dbf5f75dc6a675f66be7";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jaxb-runtime";
+ {
+ artifactId = "jaxb-runtime";
groupId = "org.glassfish.jaxb";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "e6e0a1e89fb6ff786279e6a0082d5cef52dc2ebe67053d041800737652b4fd1b";
pomSha256 = "9448a5ad7fa68a6083dfbe4f42c8c83e082b9202a105401fc68e944c26548b34";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "txw2";
+ {
+ artifactId = "txw2";
groupId = "org.glassfish.jaxb";
version = "2.3.2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "4a6a9f483388d461b81aa9a28c685b8b74c0597993bf1884b04eddbca95f48fe";
pomSha256 = "a79dd002fb038183ff286a2635be2e68c103b87e0e64717d8d44bfd017fd33ea";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "jdom2";
+ {
+ artifactId = "jdom2";
groupId = "org.jdom";
version = "2.0.6";
repo = "https://jcenter.bintray.com/";
jarSha256 = "1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5";
pomSha256 = "47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "annotations";
+ {
+ artifactId = "annotations";
groupId = "org.jetbrains";
version = "13.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478";
pomSha256 = "965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "trove4j";
+ {
+ artifactId = "trove4j";
groupId = "org.jetbrains.intellij.deps";
version = "1.0.20181211";
repo = "https://jcenter.bintray.com/";
jarSha256 = "affb7c85a3c87bdcf69ff1dbb84de11f63dc931293934bc08cd7ab18de083601";
pomSha256 = "310a6aa2d90534c32b8f46f1fc98cd0edae95dcdfca23e2847e5efa9ae0c019a";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-reflect";
+ {
+ artifactId = "kotlin-reflect";
groupId = "org.jetbrains.kotlin";
version = "1.4.31";
repo = "https://jcenter.bintray.com/";
jarSha256 = "91fad0b42974a7d5811e30a61f05706e176b144235717c6de7e81e3a781028f2";
pomSha256 = "8e49bab843dd855f315c87e390c529a9ca239121d8bffb85b3acfa2f60603697";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-stdlib";
+ {
+ artifactId = "kotlin-stdlib";
groupId = "org.jetbrains.kotlin";
version = "1.3.60";
repo = "https://jcenter.bintray.com/";
jarSha256 = "e98834000b5db07376d5782761ad58f3f23ccd05b6f1fa90dc0ad428be582506";
pomSha256 = "e737fa1a6a51f7cff7eaf7f69525d4bec9f22e7c9d806cd46dc72051600443de";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-stdlib";
+ {
+ artifactId = "kotlin-stdlib";
groupId = "org.jetbrains.kotlin";
version = "1.4.31";
repo = "https://jcenter.bintray.com/";
jarSha256 = "76a599d88b167e8ac90879b6daa722c6ad3452ba714c9aba19bd196544b97f1c";
pomSha256 = "8519e3e7ac5ee700527ee10488eb432f1aa106dccdde7c06c3bab258a1ddbd4e";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-stdlib-common";
+ {
+ artifactId = "kotlin-stdlib-common";
groupId = "org.jetbrains.kotlin";
version = "1.3.11";
repo = "https://jcenter.bintray.com/";
jarSha256 = "75bdd11bedf5736a5b95bbdb643a8f920a9e801caa20f5335a499fa95dc8f9fc";
pomSha256 = "501095e7aa12a7e3d18559d1cd7ecc3996205eff1ace83d660706aa5e9d44adf";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-stdlib-common";
+ {
+ artifactId = "kotlin-stdlib-common";
groupId = "org.jetbrains.kotlin";
version = "1.4.31";
repo = "https://jcenter.bintray.com/";
jarSha256 = "57962f44371a746b678218a0802a8712c6255206de9a69ede215e3aa4b044708";
pomSha256 = "1582ab130b68fcbb89b2e915573c1f99f8ba3bc68fdd451f6b362d6c53353187";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-stdlib-jdk7";
+ {
+ artifactId = "kotlin-stdlib-jdk7";
groupId = "org.jetbrains.kotlin";
version = "1.4.31";
repo = "https://jcenter.bintray.com/";
jarSha256 = "1f966e54e86cf4b7d7014afdce04e0f3ee4625084cda3494edccc7b84af52664";
pomSha256 = "f67e52bebc23a07e23d51e525d20f59de8da6720bde2ff7c598f99ba9c272118";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-stdlib-jdk8";
+ {
+ artifactId = "kotlin-stdlib-jdk8";
groupId = "org.jetbrains.kotlin";
version = "1.3.11";
repo = "https://jcenter.bintray.com/";
jarSha256 = "ed00c4c25c44073785b6b9a54d398a25da59f24d53cbf794b31800ea8be48d87";
pomSha256 = "ad2c80108a6481e236e96eda7eb9570c078429e3daae519137bd5fbce5a9292c";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "kotlin-stdlib-jdk8";
+ {
+ artifactId = "kotlin-stdlib-jdk8";
groupId = "org.jetbrains.kotlin";
version = "1.4.31";
repo = "https://jcenter.bintray.com/";
jarSha256 = "b2f8364435ebcb0106ff9d4415a11ffdef8ec7786ee6e5ed465a01556cbd1683";
pomSha256 = "4ee4f626e69f5f6fdad8cd28ad555a0ff416c84f25a569ec0a4b3587f86df457";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "json";
+ {
+ artifactId = "json";
groupId = "org.json";
version = "20180813";
repo = "https://jcenter.bintray.com/";
jarSha256 = "518080049ba83181914419d11a25d9bc9833a2d729b6a6e7469fa52851356da8";
pomSha256 = "c7e660c50bf4ecda0fc81ab62b489db9171e207fa784ddcb48c6c85bb40b49f5";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "stax-ex";
+ {
+ artifactId = "stax-ex";
groupId = "org.jvnet.staxex";
version = "1.8.1";
repo = "https://jcenter.bintray.com/";
jarSha256 = "20522549056e9e50aa35ef0b445a2e47a53d06be0b0a9467d704e2483ffb049a";
pomSha256 = "8fc84f36ce6da6ce8c893b6538199a7f69a69a0706d9b17a3ee6a3a09452eed6";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "ow2";
+ {
+ artifactId = "ow2";
groupId = "org.ow2";
version = "1.3";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "ow2";
+ {
+ artifactId = "ow2";
groupId = "org.ow2";
version = "1.5";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "0f8a1b116e760b8fe6389c51b84e4b07a70fc11082d4f936e453b583dd50b43b";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm";
+ {
+ artifactId = "asm";
groupId = "org.ow2.asm";
version = "6.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "dd8971c74a4e697899a8e95caae4ea8760ea6c486dc6b97b1795e75760420461";
pomSha256 = "c2bc497e197112e699085426bbb45b1ab0be8002da68267a3b1f450a0312c32e";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm";
+ {
+ artifactId = "asm";
groupId = "org.ow2.asm";
version = "7.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "b88ef66468b3c978ad0c97fd6e90979e56155b4ac69089ba7a44e9aa7ffe9acf";
pomSha256 = "83f65b1083d5ce4f8ba7f9545cfe9ff17824589c9a7cc82c3a4695801e4f5f68";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm-analysis";
+ {
+ artifactId = "asm-analysis";
groupId = "org.ow2.asm";
version = "7.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "e981f8f650c4d900bb033650b18e122fa6b161eadd5f88978d08751f72ee8474";
pomSha256 = "c6b54477e9d5bae1e7addff2e24cbf92aaff2ff08fd6bc0596c3933c3fadc2cb";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm-commons";
+ {
+ artifactId = "asm-commons";
groupId = "org.ow2.asm";
version = "6.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "f1bce5c648a96a017bdcd01fe5d59af9845297fd7b79b81c015a6fbbd9719abf";
pomSha256 = "90f4f29473afb957229016eb5741954976cc1b67bc049b3981c0d1e653ad5cdd";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm-commons";
+ {
+ artifactId = "asm-commons";
groupId = "org.ow2.asm";
version = "7.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "fed348ef05958e3e846a3ac074a12af5f7936ef3d21ce44a62c4fa08a771927d";
pomSha256 = "f4c697886cdb4a5b2472054a0b5e34371e9b48e620be40c3ed48e1f4b6d51eb4";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm-parent";
+ {
+ artifactId = "asm-parent";
groupId = "org.ow2.asm";
version = "6.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "791d064bb9ecc9a46d43bc9efecd74c91464dfc451f321b802d2261e2ccd7d14";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm-tree";
+ {
+ artifactId = "asm-tree";
groupId = "org.ow2.asm";
version = "7.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "cfd7a0874f9de36a999c127feeadfbfe6e04d4a71ee954d7af3d853f0be48a6c";
pomSha256 = "d39e7dd12f4ff535a0839d1949c39c7644355a4470220c94b76a5c168c57a068";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm-util";
+ {
+ artifactId = "asm-util";
groupId = "org.ow2.asm";
version = "6.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "356afebdb0f870175262e5188f8709a3b17aa2a5a6a4b0340b04d4b449bca5f6";
pomSha256 = "3cdfc61f988d167b97503419da82a5808b20f4205aeb46c394e6e7ffd3211f12";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "asm-util";
+ {
+ artifactId = "asm-util";
groupId = "org.ow2.asm";
version = "7.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "75fbbca440ef463f41c2b0ab1a80abe67e910ac486da60a7863cbcb5bae7e145";
pomSha256 = "e07bce4bb55d5a06f4c10d912fc9dee8a9b9c04ec549bbb8db4f20db34706f75";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "oss-parent";
+ {
+ artifactId = "oss-parent";
groupId = "org.sonatype.oss";
version = "7";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "oss-parent";
+ {
+ artifactId = "oss-parent";
groupId = "org.sonatype.oss";
version = "9";
repo = "https://jcenter.bintray.com/";
jarSha256 = null;
pomSha256 = "fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "tensorflow-lite-metadata";
+ {
+ artifactId = "tensorflow-lite-metadata";
groupId = "org.tensorflow";
version = "0.1.0-rc2";
repo = "https://jcenter.bintray.com/";
jarSha256 = "2c2a264f842498c36d34d2a7b91342490d9a962862c85baac1acd54ec2fca6d9";
pomSha256 = "8359ad51e0476c8e0df7188a43f16d49733c4a428fb45e99794b783f01b97520";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "xercesImpl";
+ {
+ artifactId = "xercesImpl";
groupId = "xerces";
version = "2.12.0";
repo = "https://jcenter.bintray.com/";
jarSha256 = "b50d3a4ca502faa4d1c838acb8aa9480446953421f7327e338c5dda3da5e76d0";
pomSha256 = "138ebb33cce7080fd5cdb4fb90a0ee550173d7e8d41024da8c0d788b1460a1f3";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
- { artifactId = "xml-apis";
+ {
+ artifactId = "xml-apis";
groupId = "xml-apis";
version = "1.4.01";
repo = "https://jcenter.bintray.com/";
jarSha256 = "a840968176645684bb01aed376e067ab39614885f9eee44abe35a5f20ebe7fad";
pomSha256 = "09a82ff150ac86bfa31145e0a6afd89a02e4504785f5da112e4fae1425020e92";
- aarSha256 = null; }
+ aarSha256 = null;
+ }
]
diff --git a/android/impl.nix b/android/impl.nix
index 4fadb0d02..60c6558f5 100644
--- a/android/impl.nix
+++ b/android/impl.nix
@@ -1,16 +1,17 @@
env: with env;
-let overrideAndroidCabal = package: overrideCabal package (drv: {
- # -Wl,--unresolved-symbols=ignore-in-object-files
- preConfigure = (drv.preConfigure or "") + ''
- export NIX_CFLAGS_LINK="-no-pie -v"
- sed -i 's%^executable *\(.*\)$%executable lib\1.so\n cc-options: -no-pie -shared -fPIC\n ld-options: -no-pie -shared -Wl,--gc-sections,--version-script=${./haskellActivity.version},-u,Java_systems_obsidian_HaskellActivity_haskellStartMain,-u,hs_main\n ghc-options: -fPIC -shared -no-pie -threaded -no-hs-main -lHSrts_thr -lffi -lm -llog%i' *.cabal
- '';
- # -no-hs-main
- configureFlags = (drv.configureFlags or []) ++ [
- "--enable-shared"
- ];
- });
- /*
+let
+ overrideAndroidCabal = package: overrideCabal package (drv: {
+ # -Wl,--unresolved-symbols=ignore-in-object-files
+ preConfigure = (drv.preConfigure or "") + ''
+ export NIX_CFLAGS_LINK="-no-pie -v"
+ sed -i 's%^executable *\(.*\)$%executable lib\1.so\n cc-options: -no-pie -shared -fPIC\n ld-options: -no-pie -shared -Wl,--gc-sections,--version-script=${./haskellActivity.version},-u,Java_systems_obsidian_HaskellActivity_haskellStartMain,-u,hs_main\n ghc-options: -fPIC -shared -no-pie -threaded -no-hs-main -lHSrts_thr -lffi -lm -llog%i' *.cabal
+ '';
+ # -no-hs-main
+ configureFlags = (drv.configureFlags or [ ]) ++ [
+ "--enable-shared"
+ ];
+ });
+ /*
overrideAndroidCabal = package: overrideCabal package (drv: {
preConfigure = ''
export NIX_CFLAGS_COMPILE=""
@@ -18,9 +19,10 @@ let overrideAndroidCabal = package: overrideCabal package (drv: {
'';
});
*/
- androidenv = nixpkgs.androidenv;
- #TODO: Keep the signing key for dev mode more consistent, e.g. in ~/.config/reflex-platform, so that the app can be reinstalled in-place
- addDeployScript = src: nixpkgs.runCommand "android-app" {
+ androidenv = nixpkgs.androidenv;
+ #TODO: Keep the signing key for dev mode more consistent, e.g. in ~/.config/reflex-platform, so that the app can be reinstalled in-place
+ addDeployScript = src: nixpkgs.runCommand "android-app"
+ {
inherit src;
buildCommand = ''
mkdir -p "$out/bin"
@@ -34,17 +36,18 @@ let overrideAndroidCabal = package: overrideCabal package (drv: {
'';
buildInputs = [ androidenv.androidPkgs_9_0.androidsdk ];
} "";
- buildGradleApp = import ./build-gradle-app.nix {
- inherit (nixpkgs) stdenv lib gnumake gawk file runCommand
+ buildGradleApp = import ./build-gradle-app.nix {
+ inherit (nixpkgs) stdenv lib gnumake gawk file runCommand
which fetchurl buildEnv;
- inherit androidenv;
- gradle = nixpkgs.gradle.override {
- java = nixpkgs.buildPackages.openjdk11_headless;
- };
- jdk = nixpkgs.buildPackages.openjdk17_headless;
+ inherit androidenv;
+ gradle = nixpkgs.gradle.override {
+ java = nixpkgs.buildPackages.openjdk11_headless;
};
- inherit (nixpkgs.lib) splitString escapeShellArg mapAttrs attrNames concatStrings optionalString;
-in {
+ jdk = nixpkgs.buildPackages.openjdk17_headless;
+ };
+ inherit (nixpkgs.lib) splitString escapeShellArg mapAttrs attrNames concatStrings optionalString;
+in
+{
buildApp = args: with args; addDeployScript (buildGradleApp {
inherit acceptAndroidSdkLicenses mavenDeps;
buildDirectory = "./.";
@@ -57,11 +60,14 @@ in {
platformVersions = [ "30" ];
release = false;
src =
- let splitApplicationId = splitString "." applicationId;
- appSOs = mapAttrs (abiVersion: { myNixpkgs, myHaskellPackages }: {
+ let
+ splitApplicationId = splitString "." applicationId;
+ appSOs = mapAttrs
+ (abiVersion: { myNixpkgs, myHaskellPackages }: {
hsApp = overrideAndroidCabal (package myHaskellPackages);
sharedLibs = runtimeSharedLibs myNixpkgs ++ [ "${myNixpkgs.libffi}/lib/libffi.so" ];
- }) ({
+ })
+ ({
"arm64-v8a" = {
myNixpkgs = nixpkgsCross.android.aarch64;
myHaskellPackages = ghcAndroidAarch64;
@@ -72,35 +78,38 @@ in {
myHaskellPackages = ghcAndroidAarch32;
};
}));
- abiVersions = attrNames appSOs;
- in nixpkgs.runCommand "android-app" {
- buildGradle = builtins.toFile "build.gradle" (import ./build.gradle.nix {
- inherit applicationId version additionalDependencies releaseKey universalApk;
- googleServicesClasspath = optionalString (googleServicesJson != null)
- "classpath 'com.google.gms:google-services:4.3.3'";
- googleServicesPlugin = optionalString (googleServicesJson != null)
- "apply plugin: 'com.google.gms.google-services'";
- });
- androidManifestXml = builtins.toFile "AndroidManifest.xml" (import ./AndroidManifest.xml.nix {
- inherit applicationId version iconPath intentFilters services permissions activityAttributes usesCleartextTraffic;
- });
- stringsXml = builtins.toFile "strings.xml" (import ./strings.xml.nix {
- inherit displayName;
- });
- applicationMk = builtins.toFile "Application.mk" (import ./Application.mk.nix {
- inherit nixpkgs abiVersions;
- });
- javaSrc = nixpkgs.buildEnv {
- name = applicationId + "-java";
- paths = javaSources ++ [
- (ghcAndroidAarch64.android-activity.src + "/java") #TODO: Use output, not src
- (ghcAndroidAarch64.reflex-dom.src + "/java")
- ];
- };
- src = ./src;
- nativeBuildInputs = [ nixpkgs.rsync ];
- unpackPhase = "";
- } (''
+ abiVersions = attrNames appSOs;
+ in
+ nixpkgs.runCommand "android-app"
+ {
+ buildGradle = builtins.toFile "build.gradle" (import ./build.gradle.nix {
+ inherit applicationId version additionalDependencies releaseKey universalApk;
+ googleServicesClasspath = optionalString (googleServicesJson != null)
+ "classpath 'com.google.gms:google-services:4.3.3'";
+ googleServicesPlugin = optionalString (googleServicesJson != null)
+ "apply plugin: 'com.google.gms.google-services'";
+ });
+ androidManifestXml = builtins.toFile "AndroidManifest.xml" (import ./AndroidManifest.xml.nix {
+ inherit applicationId version iconPath intentFilters services permissions activityAttributes usesCleartextTraffic;
+ });
+ stringsXml = builtins.toFile "strings.xml" (import ./strings.xml.nix {
+ inherit displayName;
+ });
+ applicationMk = builtins.toFile "Application.mk" (import ./Application.mk.nix {
+ inherit nixpkgs abiVersions;
+ });
+ javaSrc = nixpkgs.buildEnv {
+ name = applicationId + "-java";
+ paths = javaSources ++ [
+ (ghcAndroidAarch64.android-activity.src + "/java") #TODO: Use output, not src
+ (ghcAndroidAarch64.reflex-dom.src + "/java")
+ ];
+ };
+ src = ./src;
+ nativeBuildInputs = [ nixpkgs.rsync ];
+ unpackPhase = "";
+ }
+ (''
cp -r --no-preserve=mode "$src" "$out"
mkdir -p "$out/src/main"
cp -r --no-preserve=mode "$javaSrc" "$out/src/main/java"
@@ -111,32 +120,37 @@ in {
mkdir -p "$out/jni"
ln -s "$applicationMk" "$out/jni/Application.mk"
${optionalString (googleServicesJson != null) ''cp '${googleServicesJson}' "$out/google-services.json"''}
- '' + concatStrings (builtins.map (arch:
- let
- inherit (appSOs.${arch}) hsApp sharedLibs;
- sharedLibsCmd = concatStrings (map (libPath: ''
- local lib="${libPath}"
- if [ ! -f "$lib" ] ; then
- >&2 echo 'Error: library $lib not found'
- exit 1
- fi
- cp --no-preserve=mode "$lib" "$ARCH_LIB"
- '') sharedLibs);
- in ''
- {
- ARCH_LIB=$out/lib/${arch}
- mkdir -p $ARCH_LIB
+ '' + concatStrings (builtins.map
+ (arch:
+ let
+ inherit (appSOs.${arch}) hsApp sharedLibs;
+ sharedLibsCmd = concatStrings (map
+ (libPath: ''
+ local lib="${libPath}"
+ if [ ! -f "$lib" ] ; then
+ >&2 echo 'Error: library $lib not found'
+ exit 1
+ fi
+ cp --no-preserve=mode "$lib" "$ARCH_LIB"
+ '')
+ sharedLibs);
+ in
+ ''
+ {
+ ARCH_LIB=$out/lib/${arch}
+ mkdir -p $ARCH_LIB
- local exe="${hsApp}/bin/lib${executableName}.so"
- if [ ! -f "$exe" ] ; then
- >&2 echo 'Error: executable "${executableName}" not found'
- exit 1
- fi
- cp --no-preserve=mode "$exe" "$ARCH_LIB/libHaskellActivity.so"
+ local exe="${hsApp}/bin/lib${executableName}.so"
+ if [ ! -f "$exe" ] ; then
+ >&2 echo 'Error: executable "${executableName}" not found'
+ exit 1
+ fi
+ cp --no-preserve=mode "$exe" "$ARCH_LIB/libHaskellActivity.so"
- '' + sharedLibsCmd + ''
- }
- '') abiVersions) + ''
+ '' + sharedLibsCmd + ''
+ }
+ '')
+ abiVersions) + ''
rsync -r --chmod=+w "${assets}"/ "$out/assets/"
rsync -r --chmod=+w "${resources}"/ "$out/res/"
[ -d "$out/assets" ]
diff --git a/android/strings.xml.nix b/android/strings.xml.nix
index d8aca800b..4ac3e4414 100644
--- a/android/strings.xml.nix
+++ b/android/strings.xml.nix
@@ -1,8 +1,8 @@
{ displayName
}:
''
-
-
- ${displayName}
-
+
+
+ ${displayName}
+
''
diff --git a/default.nix b/default.nix
index 005bfd736..0b3a36227 100644
--- a/default.nix
+++ b/default.nix
@@ -1,6 +1,6 @@
{ nixpkgsFunc ? import ./nixpkgs
, system ? builtins.currentSystem
-, config ? {}
+, config ? { }
, enableLibraryProfiling ? false
, enableExposeAllUnfoldings ? true
, enableTraceReflexEvents ? false
@@ -10,287 +10,294 @@
, __useTemplateHaskell ? true # Deprecated, just here until we remove feature from reflex and stop CIing it
, __useNewerCompiler ? false
, iosSdkVersion ? "13.2"
-, nixpkgsOverlays ? []
-, haskellOverlays ? [] # TODO deprecate
-, haskellOverlaysPre ? []
+, nixpkgsOverlays ? [ ]
+, haskellOverlays ? [ ] # TODO deprecate
+, haskellOverlaysPre ? [ ]
, haskellOverlaysPost ? haskellOverlays
, hideDeprecated ? false # The moral equivalent of "-Wcompat -Werror" for using reflex-platform.
}:
-let iosSupport = system == "x86_64-darwin";
- androidSupport = lib.elem system [ "x86_64-linux" ];
-
- xcodeVer = {
- "13.2" = "11.3.1";
- }.${iosSdkVersion} or (throw "Unknown iosSdkVersion: ${iosSdkVersion}");
-
- # Overlay for GHC which supports the external splices plugin
- splicesEval = self: super: {
- haskell = super.haskell // {
- compiler = super.haskell.compiler // {
- ghcSplices-8_6 = (super.haskell.compiler.ghc865.overrideAttrs (drv: {
- enableParallelBuilding = false;
- src = nixpkgs.hackGet ./haskell-overlays/splices-load-save/dep/ghc-8.6;
- # When building from the ghc git repo, ./boot must be run before configuring, whereas
- # in the distribution tarball on the haskell.org downloads page, ./boot has already been
- # run.
- preConfigure = ''
- echo ${drv.version} >VERSION
- ./boot
- '' + drv.preConfigure or "";
- patches = [
- # nixpkgs-21.05 ships with a version of autoreconf that is incompatible with ghc 8.6.5,
- # Cf. https://gitlab.haskell.org/ghc/ghc/-/commit/ad2ef3a13f1eb000eab8e3d64592373b91a52806
- ./haskell-overlays/splices-load-save/ghc-8.6-autoreconf.patch
- ];
- })).override {
- bootPkgs = super.haskell.packages.ghc865Binary // {
- happy = super.haskell.packages.ghc865Binary.happy_1_19_12;
- };
- useLdGold = !(self.stdenv.targetPlatform.isAarch32) && self.stdenv.hostPlatform.useAndroidPrebuilt;
- enableDocs = false;
- enableHaddockProgram = false;
+let
+ iosSupport = system == "x86_64-darwin";
+ androidSupport = lib.elem system [ "x86_64-linux" ];
+
+ xcodeVer = {
+ "13.2" = "11.3.1";
+ }.${iosSdkVersion} or (throw "Unknown iosSdkVersion: ${iosSdkVersion}");
+
+ # Overlay for GHC which supports the external splices plugin
+ splicesEval = self: super: {
+ haskell = super.haskell // {
+ compiler = super.haskell.compiler // {
+ ghcSplices-8_6 = (super.haskell.compiler.ghc865.overrideAttrs (drv: {
+ enableParallelBuilding = false;
+ src = nixpkgs.hackGet ./haskell-overlays/splices-load-save/dep/ghc-8.6;
+ # When building from the ghc git repo, ./boot must be run before configuring, whereas
+ # in the distribution tarball on the haskell.org downloads page, ./boot has already been
+ # run.
+ preConfigure = ''
+ echo ${drv.version} >VERSION
+ ./boot
+ '' + drv.preConfigure or "";
+ patches = [
+ # nixpkgs-21.05 ships with a version of autoreconf that is incompatible with ghc 8.6.5,
+ # Cf. https://gitlab.haskell.org/ghc/ghc/-/commit/ad2ef3a13f1eb000eab8e3d64592373b91a52806
+ ./haskell-overlays/splices-load-save/ghc-8.6-autoreconf.patch
+ ];
+ })).override {
+ bootPkgs = super.haskell.packages.ghc865Binary // {
+ happy = super.haskell.packages.ghc865Binary.happy_1_19_12;
};
- ghcSplices-8_10 = (super.haskell.compiler.ghc8107.override {
- # New option for GHC 8.10. Explicitly enable profiling builds
- enableProfiledLibs = true;
- #enableShared = self.stdenv.hostPlatform == self.stdenv.targetPlatform;
- #enableShared = false;
- bootPkgs = super.haskell.packages.ghc865Binary // {
- happy = super.haskell.packages.ghc865Binary.happy_1_19_12;
- };
- }).overrideAttrs (drv: {
- src = nixpkgs.hackGet ./haskell-overlays/splices-load-save/dep/ghc-8.10;
- # When building from the ghc git repo, ./boot must be run before configuring, whereas
- # in the distribution tarball on the haskell.org downloads page, ./boot has already been
- # run.
- prePatch = ''
- echo ${drv.version} >VERSION
- patchShebangs boot
- ./boot
- '' + drv.preConfigure or "";
- });
+ useLdGold = !(self.stdenv.targetPlatform.isAarch32) && self.stdenv.hostPlatform.useAndroidPrebuilt;
+ enableDocs = false;
+ enableHaddockProgram = false;
};
- packages = super.haskell.packages // {
- ghcSplices-8_6 = super.haskell.packages.ghc865.override {
- buildHaskellPackages = self.buildPackages.haskell.packages.ghcSplices-8_6;
- ghc = self.buildPackages.haskell.compiler.ghcSplices-8_6;
- };
- ghcSplices-8_10 = super.haskell.packages.ghc8107.override {
- buildHaskellPackages = self.buildPackages.haskell.packages.ghcSplices-8_10;
- ghc = self.buildPackages.haskell.compiler.ghcSplices-8_10;
+ ghcSplices-8_10 = (super.haskell.compiler.ghc8107.override {
+ # New option for GHC 8.10. Explicitly enable profiling builds
+ enableProfiledLibs = true;
+ #enableShared = self.stdenv.hostPlatform == self.stdenv.targetPlatform;
+ #enableShared = false;
+ bootPkgs = super.haskell.packages.ghc865Binary // {
+ happy = super.haskell.packages.ghc865Binary.happy_1_19_12;
};
+ }).overrideAttrs (drv: {
+ src = nixpkgs.hackGet ./haskell-overlays/splices-load-save/dep/ghc-8.10;
+ # When building from the ghc git repo, ./boot must be run before configuring, whereas
+ # in the distribution tarball on the haskell.org downloads page, ./boot has already been
+ # run.
+ prePatch = ''
+ echo ${drv.version} >VERSION
+ patchShebangs boot
+ ./boot
+ '' + drv.preConfigure or "";
+ });
+ };
+ packages = super.haskell.packages // {
+ ghcSplices-8_6 = super.haskell.packages.ghc865.override {
+ buildHaskellPackages = self.buildPackages.haskell.packages.ghcSplices-8_6;
+ ghc = self.buildPackages.haskell.compiler.ghcSplices-8_6;
+ };
+ ghcSplices-8_10 = super.haskell.packages.ghc8107.override {
+ buildHaskellPackages = self.buildPackages.haskell.packages.ghcSplices-8_10;
+ ghc = self.buildPackages.haskell.compiler.ghcSplices-8_10;
};
};
};
+ };
- hackGetOverlay = self: super:
- import ./nixpkgs-overlays/hack-get { inherit lib; } self;
-
- bindHaskellOverlays = self: super: {
- haskell = super.haskell // {
- overlays = super.haskell.overlays or {} // import ./haskell-overlays {
- nixpkgs = self;
- inherit (self) lib;
- haskellLib = self.haskell.lib;
- inherit
- useFastWeak useReflexOptimizer enableLibraryProfiling enableTraceReflexEvents
- useTextJSString enableExposeAllUnfoldings __useTemplateHaskell
- haskellOverlaysPre
- haskellOverlaysPost;
- inherit ghcSavedSplices-8_6 ghcSavedSplices-8_10;
- };
+ hackGetOverlay = self: super:
+ import ./nixpkgs-overlays/hack-get { inherit lib; } self;
+
+ bindHaskellOverlays = self: super: {
+ haskell = super.haskell // {
+ overlays = super.haskell.overlays or { } // import ./haskell-overlays {
+ nixpkgs = self;
+ inherit (self) lib;
+ haskellLib = self.haskell.lib;
+ inherit
+ useFastWeak useReflexOptimizer enableLibraryProfiling enableTraceReflexEvents
+ useTextJSString enableExposeAllUnfoldings __useTemplateHaskell
+ haskellOverlaysPre
+ haskellOverlaysPost;
+ inherit ghcSavedSplices-8_6 ghcSavedSplices-8_10;
};
};
+ };
- forceStaticLibs = self: super: {
- darwin = super.darwin // {
- libiconv = super.darwin.libiconv.overrideAttrs (_:
- lib.optionalAttrs (self.stdenv.hostPlatform != self.stdenv.buildPlatform) {
- postInstall = "rm $out/include/libcharset.h $out/include/localcharset.h";
- configureFlags = ["--disable-shared" "--enable-static"];
- });
- };
- zlib = super.zlib.override (lib.optionalAttrs
- (self.stdenv.hostPlatform != self.stdenv.buildPlatform)
- { static = true; shared = false; });
- };
+ forceStaticLibs = self: super: {
+ darwin = super.darwin // {
+ libiconv = super.darwin.libiconv.overrideAttrs (_:
+ lib.optionalAttrs (self.stdenv.hostPlatform != self.stdenv.buildPlatform) {
+ postInstall = "rm $out/include/libcharset.h $out/include/localcharset.h";
+ configureFlags = [ "--disable-shared" "--enable-static" ];
+ });
+ };
+ zlib = super.zlib.override (lib.optionalAttrs
+ (self.stdenv.hostPlatform != self.stdenv.buildPlatform)
+ { static = true; shared = false; });
+ };
- mobileGhcOverlay = import ./nixpkgs-overlays/mobile-ghc { inherit lib; };
+ mobileGhcOverlay = import ./nixpkgs-overlays/mobile-ghc { inherit lib; };
- allCabalHashesOverlay = import ./nixpkgs-overlays/all-cabal-hashes;
+ allCabalHashesOverlay = import ./nixpkgs-overlays/all-cabal-hashes;
- nixpkgsArgs = {
- inherit system;
- overlays = [
- hackGetOverlay
- bindHaskellOverlays
- forceStaticLibs
- splicesEval
- mobileGhcOverlay
- allCabalHashesOverlay
- (self: super: {
+ nixpkgsArgs = {
+ inherit system;
+ overlays = [
+ hackGetOverlay
+ bindHaskellOverlays
+ forceStaticLibs
+ splicesEval
+ mobileGhcOverlay
+ allCabalHashesOverlay
+ (self: super: {
- #NOTE(Dylan): If you ever hit this "null" you've done something terribly wrong :^)
- runtimeShellPackage = if self.stdenv.hostPlatform.isGhcjs then null else super.runtimeShellPackage;
+ #NOTE(Dylan): If you ever hit this "null" you've done something terribly wrong :^)
+ runtimeShellPackage = if self.stdenv.hostPlatform.isGhcjs then null else super.runtimeShellPackage;
- polkit = super.polkit.override {
- gobject-introspection = super.gobject-introspection-unwrapped;
- };
- openjdk16-bootstrap = super.openjdk16-bootstrap.override {
- gtkSupport = false;
- };
- adoptopenjdk-hotspot-bin-16 = super.adoptopenjdk-hotspot-bin-16.override {
- gtkSupport = false;
- };
+ polkit = super.polkit.override {
+ gobject-introspection = super.gobject-introspection-unwrapped;
+ };
+ openjdk16-bootstrap = super.openjdk16-bootstrap.override {
+ gtkSupport = false;
+ };
+ adoptopenjdk-hotspot-bin-16 = super.adoptopenjdk-hotspot-bin-16.override {
+ gtkSupport = false;
+ };
- sqlite = super.sqlite.overrideAttrs (old: lib.optionalAttrs (self.stdenv.hostPlatform.useAndroidPrebuilt or false) {
- postBuild = ''
- mkdir -p $debug
- '';
- });
-
- libiconv = super.libiconv.overrideAttrs (old: lib.optionalAttrs (self.stdenv.hostPlatform.useAndroidPrebuilt or false) {
- configureFlags = [ "--disable-shared" "--enable-static" ];
- });
-
- libffi = if (self.stdenv.hostPlatform.useAndroidPrebuilt or false) then super.libffi_3_3 else super.libffi;
- })
- (import ./nixpkgs-overlays/ghc.nix { inherit lib; })
- ] ++ nixpkgsOverlays;
- config = config // {
- permittedInsecurePackages = (config.permittedInsecurePackages or []) ++ [
- "webkitgtk-2.4.11"
- ];
+ sqlite = super.sqlite.overrideAttrs (old: lib.optionalAttrs (self.stdenv.hostPlatform.useAndroidPrebuilt or false) {
+ postBuild = ''
+ mkdir -p $debug
+ '';
+ });
- # XCode needed for native macOS app
- # Obelisk needs it to for some reason
- allowUnfree = true;
- };
+ libiconv = super.libiconv.overrideAttrs (old: lib.optionalAttrs (self.stdenv.hostPlatform.useAndroidPrebuilt or false) {
+ configureFlags = [ "--disable-shared" "--enable-static" ];
+ });
+
+ libffi = if (self.stdenv.hostPlatform.useAndroidPrebuilt or false) then super.libffi_3_3 else super.libffi;
+ })
+ (import ./nixpkgs-overlays/ghc.nix { inherit lib; })
+ ] ++ nixpkgsOverlays;
+ config = config // {
+ permittedInsecurePackages = (config.permittedInsecurePackages or [ ]) ++ [
+ "webkitgtk-2.4.11"
+ ];
+
+ # XCode needed for native macOS app
+ # Obelisk needs it to for some reason
+ allowUnfree = true;
};
+ };
- nixpkgs = nixpkgsFunc nixpkgsArgs;
-
- inherit (nixpkgs) lib fetchurl fetchgit fetchgitPrivate fetchFromGitHub fetchFromBitbucket;
-
- wasmCross = nixpkgs.hackGet ./wasm-cross;
- webGhcSrc = (import (wasmCross + /webghc.nix) { inherit fetchgit; }).ghc8107SplicesSrc;
- nixpkgsCross = {
- # NOTE(Dylan Green):
- # sdkVer 30 is the minimum for android, else we have to use libffi 3.3
- # bionic doesn't support/expose memfd_create before sdk30
- # https://android.googlesource.com/platform/bionic/+/refs/heads/master/docs/status.md
- # Look for "new libc functions in R (API Level 30):", memfd_create will be one of the functions /
- # symbols we need to build newer libffi
- # This means we'll drop all SDKs pre-30
-
- # NOTE(Dylan Green):
- # We don't want to use "isStatic" here as we still rely on shared-objects
- # adding "isStatic" completely disables generating most SOs, and we still need them
- # for libffi (at the very least). Currently the big issues are caused by the linker attempting (and failing)
- # to link against a dynamic crtbegin.o (crtbegin.c) bionic does provide a static crtbegin, although the linker
- # defaults to a dynamic version
-
- # TODO(Dylan Green):
- # Look into making this a proper static build up into "reflex-todomvc"
- android = lib.mapAttrs (_: args: nixpkgsFunc (nixpkgsArgs // args)) rec {
- aarch64 = {
- crossSystem = lib.systems.examples.aarch64-android-prebuilt // {
- #isStatic = true;
- sdkVer = "30";
- };
+ nixpkgs = nixpkgsFunc nixpkgsArgs;
+
+ inherit (nixpkgs) lib fetchurl fetchgit fetchgitPrivate fetchFromGitHub fetchFromBitbucket;
+
+ wasmCross = nixpkgs.hackGet ./wasm-cross;
+ webGhcSrc = (import (wasmCross + /webghc.nix) { inherit fetchgit; }).ghc8107SplicesSrc;
+ nixpkgsCross = {
+ # NOTE(Dylan Green):
+ # sdkVer 30 is the minimum for android, else we have to use libffi 3.3
+ # bionic doesn't support/expose memfd_create before sdk30
+ # https://android.googlesource.com/platform/bionic/+/refs/heads/master/docs/status.md
+ # Look for "new libc functions in R (API Level 30):", memfd_create will be one of the functions /
+ # symbols we need to build newer libffi
+ # This means we'll drop all SDKs pre-30
+
+ # NOTE(Dylan Green):
+ # We don't want to use "isStatic" here as we still rely on shared-objects
+ # adding "isStatic" completely disables generating most SOs, and we still need them
+ # for libffi (at the very least). Currently the big issues are caused by the linker attempting (and failing)
+ # to link against a dynamic crtbegin.o (crtbegin.c) bionic does provide a static crtbegin, although the linker
+ # defaults to a dynamic version
+
+ # TODO(Dylan Green):
+ # Look into making this a proper static build up into "reflex-todomvc"
+ android = lib.mapAttrs (_: args: nixpkgsFunc (nixpkgsArgs // args)) rec {
+ aarch64 = {
+ crossSystem = lib.systems.examples.aarch64-android-prebuilt // {
+ #isStatic = true;
+ sdkVer = "30";
};
- aarch32 = {
- crossSystem = lib.systems.examples.armv7a-android-prebuilt // {
- #isStatic = true;
- sdkVer = "30";
- };
+ };
+ aarch32 = {
+ crossSystem = lib.systems.examples.armv7a-android-prebuilt // {
+ #isStatic = true;
+ sdkVer = "30";
};
};
- ios = lib.mapAttrs (_: args: nixpkgsFunc (nixpkgsArgs // args)) rec {
- simulator64 = {
- crossSystem = lib.systems.examples.iphone64-simulator // {
- sdkVer = iosSdkVersion;
- inherit xcodeVer;
- };
+ };
+ ios = lib.mapAttrs (_: args: nixpkgsFunc (nixpkgsArgs // args)) rec {
+ simulator64 = {
+ crossSystem = lib.systems.examples.iphone64-simulator // {
+ sdkVer = iosSdkVersion;
+ inherit xcodeVer;
};
- aarch64 = {
- crossSystem = lib.systems.examples.iphone64 // {
- isStatic = true;
- sdkVer = iosSdkVersion;
- inherit xcodeVer;
- };
+ };
+ aarch64 = {
+ crossSystem = lib.systems.examples.iphone64 // {
+ isStatic = true;
+ sdkVer = iosSdkVersion;
+ inherit xcodeVer;
};
- aarch32 = {
- crossSystem = lib.systems.examples.iphone32 // {
- isStatic = true;
- sdkVer = iosSdkVersion;
- inherit xcodeVer;
- };
+ };
+ aarch32 = {
+ crossSystem = lib.systems.examples.iphone32 // {
+ isStatic = true;
+ sdkVer = iosSdkVersion;
+ inherit xcodeVer;
};
- # Back compat
- arm64 = lib.warn "nixpkgsCross.ios.arm64 has been deprecated, using nixpkgsCross.ios.aarch64 instead." aarch64;
};
- ghcjs = nixpkgsFunc (nixpkgsArgs // {
- crossSystem = lib.systems.examples.ghcjs;
- });
- wasm = nixpkgsFunc (nixpkgsArgs //
- (import wasmCross { inherit nixpkgsFunc; }).nixpkgsCrossArgs webGhcSrc "8.6.5"
- );
+ # Back compat
+ arm64 = lib.warn "nixpkgsCross.ios.arm64 has been deprecated, using nixpkgsCross.ios.aarch64 instead." aarch64;
};
+ ghcjs = nixpkgsFunc (nixpkgsArgs // {
+ crossSystem = lib.systems.examples.ghcjs;
+ });
+ wasm = nixpkgsFunc (nixpkgsArgs //
+ (import wasmCross { inherit nixpkgsFunc; }).nixpkgsCrossArgs webGhcSrc "8.6.5"
+ );
+ };
- haskellLib = nixpkgs.haskell.lib;
+ haskellLib = nixpkgs.haskell.lib;
- overrideCabal = pkg: f: if pkg == null then null else haskellLib.overrideCabal pkg f;
+ overrideCabal = pkg: f: if pkg == null then null else haskellLib.overrideCabal pkg f;
- combineOverrides = old: new: old // new // lib.optionalAttrs (old ? overrides && new ? overrides) {
- overrides = lib.composeExtensions old.overrides new.overrides;
- };
+ combineOverrides = old: new: old // new // lib.optionalAttrs (old ? overrides && new ? overrides) {
+ overrides = lib.composeExtensions old.overrides new.overrides;
+ };
- # Makes sure that old `overrides` from a previous call to `override` are not
- # forgotten, but composed. Do this by overriding `override` and passing a
- # function which takes the old argument set and combining it. What a tongue
- # twister!
- makeRecursivelyOverridable = x: x // {
- override = new: makeRecursivelyOverridable (x.override (old: (combineOverrides old new)));
- };
+ # Makes sure that old `overrides` from a previous call to `override` are not
+ # forgotten, but composed. Do this by overriding `override` and passing a
+ # function which takes the old argument set and combining it. What a tongue
+ # twister!
+ makeRecursivelyOverridable = x: x // {
+ override = new: makeRecursivelyOverridable (x.override (old: (combineOverrides old new)));
+ };
- cabal2nixResult = src: builtins.trace "cabal2nixResult is deprecated; use ghc.haskellSrc2nix or ghc.callCabal2nix instead" (ghc.haskellSrc2nix {
- name = "for-unknown-package";
- src = "file://${src}";
- sha256 = null;
- });
+ cabal2nixResult = src: builtins.trace "cabal2nixResult is deprecated; use ghc.haskellSrc2nix or ghc.callCabal2nix instead" (ghc.haskellSrc2nix {
+ name = "for-unknown-package";
+ src = "file://${src}";
+ sha256 = null;
+ });
ghcSavedSplices = if __useNewerCompiler then ghcSavedSplices-8_10 else ghcSavedSplices-8_6;
ghcSavedSplices-8_6 = (makeRecursivelyOverridable nixpkgs.haskell.packages.integer-simple.ghcSplices-8_6).override {
- overrides = lib.foldr lib.composeExtensions (_: _: {}) (let
- haskellOverlays = nixpkgs.haskell.overlays;
- in [
- haskellOverlays.combined
- (haskellOverlays.saveSplices "8.6")
- (self: super: with haskellLib; {
- blaze-textual = enableCabalFlag super.blaze-textual "integer-simple";
- cryptonite = disableCabalFlag super.cryptonite "integer-gmp";
- integer-logarithms = disableCabalFlag super.integer-logarithms "integer-gmp";
- scientific = enableCabalFlag super.scientific "integer-simple";
- dependent-sum-template = dontCheck super.dependent-sum-template;
- generic-deriving = dontCheck super.generic-deriving;
- })
- ]);
+ overrides = lib.foldr lib.composeExtensions (_: _: { }) (
+ let
+ haskellOverlays = nixpkgs.haskell.overlays;
+ in
+ [
+ haskellOverlays.combined
+ (haskellOverlays.saveSplices "8.6")
+ (self: super: with haskellLib; {
+ blaze-textual = enableCabalFlag super.blaze-textual "integer-simple";
+ cryptonite = disableCabalFlag super.cryptonite "integer-gmp";
+ integer-logarithms = disableCabalFlag super.integer-logarithms "integer-gmp";
+ scientific = enableCabalFlag super.scientific "integer-simple";
+ dependent-sum-template = dontCheck super.dependent-sum-template;
+ generic-deriving = dontCheck super.generic-deriving;
+ })
+ ]
+ );
};
ghcSavedSplices-8_10 = (makeRecursivelyOverridable nixpkgs.haskell.packages.integer-simple.ghcSplices-8_10).override {
- overrides = lib.foldr lib.composeExtensions (_: _: {}) (let
- haskellOverlays = nixpkgs.haskell.overlays;
- in [
- haskellOverlays.combined
- (haskellOverlays.saveSplices "8.10")
- (self: super: with haskellLib; {
- blaze-textual = enableCabalFlag super.blaze-textual "integer-simple";
- cryptonite = disableCabalFlag super.cryptonite "integer-gmp";
- integer-logarithms = disableCabalFlag super.integer-logarithms "integer-gmp";
- scientific = enableCabalFlag super.scientific "integer-simple";
- })
- ]);
+ overrides = lib.foldr lib.composeExtensions (_: _: { }) (
+ let
+ haskellOverlays = nixpkgs.haskell.overlays;
+ in
+ [
+ haskellOverlays.combined
+ (haskellOverlays.saveSplices "8.10")
+ (self: super: with haskellLib; {
+ blaze-textual = enableCabalFlag super.blaze-textual "integer-simple";
+ cryptonite = disableCabalFlag super.cryptonite "integer-gmp";
+ integer-logarithms = disableCabalFlag super.integer-logarithms "integer-gmp";
+ scientific = enableCabalFlag super.scientific "integer-simple";
+ })
+ ]
+ );
};
ghcjs = if __useNewerCompiler then ghcjs8_10 else ghcjs8_6;
ghcjs8_6 = (makeRecursivelyOverridable (nixpkgsCross.ghcjs.haskell.packages.ghcjs86.override (old: {
@@ -410,98 +417,101 @@ let iosSupport = system == "x86_64-darwin";
buildApp = nixpkgs.lib.makeOverridable (import ./ios { inherit nixpkgs ghc; });
};
-in let this = rec {
- inherit (nixpkgs)
- filterGit
- hackGet
- thunkSet
- ;
- inherit nixpkgs
- nixpkgsCross
- overrideCabal
- ghc
- ghcHEAD
- ghc8_6
- ghc8_10
- ghcIosSimulator64
- ghcIosAarch64
- ghcIosAarch64-8_6
- ghcIosAarch64-8_10
- ghcIosAarch32
- ghcIosAarch32-8_6
- ghcIosAarch32-8_10
- ghcAndroidAarch64
- ghcAndroidAarch64-8_6
- ghcAndroidAarch64-8_10
- ghcAndroidAarch32
- ghcAndroidAarch32-8_6
- ghcAndroidAarch32-8_10
- ghcjs
- ghcjs8_6
- ghcjs8_10
- ghcSavedSplices
- ghcSavedSplices-8_6
- ghcSavedSplices-8_10
- android
- androidWithHaskellPackages
- iosAarch32
- iosAarch64
- iosSimulator
- iosWithHaskellPackages
- wasm
- wasmCross
- ;
-
- # Back compat
- ios = iosAarch64;
- ghcAndroidArm64 = lib.warn "ghcAndroidArm64 has been deprecated, using ghcAndroidAarch64 instead." ghcAndroidAarch64;
- ghcAndroidArmv7a = lib.warn "ghcAndroidArmv7a has been deprecated, using ghcAndroidAarch32 instead." ghcAndroidAarch32;
- ghcIosArm64 = lib.warn "ghcIosArm64 has been deprecated, using ghcIosAarch64 instead." ghcIosAarch64;
-
- androidReflexTodomvc = android.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- applicationId = "org.reflexfrp.todomvc";
- displayName = "Reflex TodoMVC";
- };
- androidReflexTodomvc-8_6 = android-8_6.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- applicationId = "org.reflexfrp.todomvc.via_8_6";
- displayName = "Reflex TodoMVC via GHC 8.6";
- };
- androidReflexTodomvc-8_10 = android-8_10.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- applicationId = "org.reflexfrp.todomvc.via_8_10";
- displayName = "Reflex TodoMVC via GHC 8.10";
- };
- iosReflexTodomvc = ios.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- bundleIdentifier = "org.reflexfrp.todomvc";
- bundleName = "Reflex TodoMVC";
- };
- iosReflexTodomvc-8_6 = iosAarch64-8_6.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- bundleIdentifier = "org.reflexfrp.todomvc.via_8_6";
- bundleName = "Reflex TodoMVC via GHC 8.6";
- };
- iosReflexTodomvc-8_10 = iosAarch64-8_10.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- bundleIdentifier = "org.reflexfrp.todomvc.via_8_10";
- bundleName = "Reflex TodoMVC via GHC 8.10";
- };
- iosSimulatorReflexTodomvc = iosSimulator.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- bundleIdentifier = "org.reflexfrp.todomvc";
- bundleName = "Reflex TodoMVC";
- };
- setGhcLibdir = ghcLibdir: inputGhcjs:
- let libDir = "$out/lib/ghcjs-${inputGhcjs.version}";
+in
+let
+ this = rec {
+ inherit (nixpkgs)
+ filterGit
+ hackGet
+ thunkSet
+ ;
+ inherit nixpkgs
+ nixpkgsCross
+ overrideCabal
+ ghc
+ ghcHEAD
+ ghc8_6
+ ghc8_10
+ ghcIosSimulator64
+ ghcIosAarch64
+ ghcIosAarch64-8_6
+ ghcIosAarch64-8_10
+ ghcIosAarch32
+ ghcIosAarch32-8_6
+ ghcIosAarch32-8_10
+ ghcAndroidAarch64
+ ghcAndroidAarch64-8_6
+ ghcAndroidAarch64-8_10
+ ghcAndroidAarch32
+ ghcAndroidAarch32-8_6
+ ghcAndroidAarch32-8_10
+ ghcjs
+ ghcjs8_6
+ ghcjs8_10
+ ghcSavedSplices
+ ghcSavedSplices-8_6
+ ghcSavedSplices-8_10
+ android
+ androidWithHaskellPackages
+ iosAarch32
+ iosAarch64
+ iosSimulator
+ iosWithHaskellPackages
+ wasm
+ wasmCross
+ ;
+
+ # Back compat
+ ios = iosAarch64;
+ ghcAndroidArm64 = lib.warn "ghcAndroidArm64 has been deprecated, using ghcAndroidAarch64 instead." ghcAndroidAarch64;
+ ghcAndroidArmv7a = lib.warn "ghcAndroidArmv7a has been deprecated, using ghcAndroidAarch32 instead." ghcAndroidAarch32;
+ ghcIosArm64 = lib.warn "ghcIosArm64 has been deprecated, using ghcIosAarch64 instead." ghcIosAarch64;
+
+ androidReflexTodomvc = android.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ applicationId = "org.reflexfrp.todomvc";
+ displayName = "Reflex TodoMVC";
+ };
+ androidReflexTodomvc-8_6 = android-8_6.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ applicationId = "org.reflexfrp.todomvc.via_8_6";
+ displayName = "Reflex TodoMVC via GHC 8.6";
+ };
+ androidReflexTodomvc-8_10 = android-8_10.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ applicationId = "org.reflexfrp.todomvc.via_8_10";
+ displayName = "Reflex TodoMVC via GHC 8.10";
+ };
+ iosReflexTodomvc = ios.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ bundleIdentifier = "org.reflexfrp.todomvc";
+ bundleName = "Reflex TodoMVC";
+ };
+ iosReflexTodomvc-8_6 = iosAarch64-8_6.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ bundleIdentifier = "org.reflexfrp.todomvc.via_8_6";
+ bundleName = "Reflex TodoMVC via GHC 8.6";
+ };
+ iosReflexTodomvc-8_10 = iosAarch64-8_10.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ bundleIdentifier = "org.reflexfrp.todomvc.via_8_10";
+ bundleName = "Reflex TodoMVC via GHC 8.10";
+ };
+ iosSimulatorReflexTodomvc = iosSimulator.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ bundleIdentifier = "org.reflexfrp.todomvc";
+ bundleName = "Reflex TodoMVC";
+ };
+ setGhcLibdir = ghcLibdir: inputGhcjs:
+ let
+ libDir = "$out/lib/ghcjs-${inputGhcjs.version}";
ghcLibdirLink = nixpkgs.stdenv.mkDerivation {
name = "ghc_libdir";
inherit ghcLibdir;
@@ -510,144 +520,153 @@ in let this = rec {
echo "$ghcLibdir" > ${libDir}/ghc_libdir_override
'';
};
- in inputGhcjs // {
- outPath = nixpkgs.buildEnv {
- inherit (inputGhcjs) name;
- paths = [ inputGhcjs ghcLibdirLink ];
- postBuild = ''
- mv ${libDir}/ghc_libdir_override ${libDir}/ghc_libdir
- '';
- };
- };
-
- platforms = [
- "ghcjs"
- "ghc"
- ];
-
- androidDevTools = [
- ghc.haven
- nixpkgs.maven
- nixpkgs.androidsdk_9_0
- ];
-
- # Tools that are useful for development under both ghc and ghcjs
- generalDevTools' = { nativeHaskellPackages ? ghc }: {
- inherit (nativeHaskellPackages)
- Cabal
- cabal-install
- ghcid
- hasktags
- hlint
- stylish-haskell # Recent stylish-haskell only builds with AMP in place
- reflex-ghci
- ;
- inherit (nixpkgs)
- cabal2nix
- curl
- nix-prefetch-scripts
- nodejs
- pkgconfig
- closurecompiler
- ;
- };
+ in
+ inputGhcjs // {
+ outPath = nixpkgs.buildEnv {
+ inherit (inputGhcjs) name;
+ paths = [ inputGhcjs ghcLibdirLink ];
+ postBuild = ''
+ mv ${libDir}/ghc_libdir_override ${libDir}/ghc_libdir
+ '';
+ };
+ };
- workOn = haskellPackages: package: (overrideCabal package (drv: {
- buildTools = (drv.buildTools or []) ++ builtins.attrValues (generalDevTools' {});
- })).env;
-
- # A minimal wrapper around the build-wasm-app from wasm-cross
- # Useful in building simple cabal projects like reflex-todomvc
- build-wasm-app-wrapper =
- ename: # Name of the executable, usually same as cabal project name
- pkgPath : # Path of cabal package
- args: # Others options to pass to build-wasm-app
- let
- pkg = wasm.callPackage pkgPath {};
- webabi = nixpkgs.callPackage (wasmCross + /webabi) {};
- build-wasm-app = nixpkgs.callPackage (wasmCross + /build-wasm-app.nix) ({ inherit webabi; } // args);
- in build-wasm-app {
- inherit pkg ename;
- };
+ platforms = [
+ "ghcjs"
+ "ghc"
+ ];
+
+ androidDevTools = [
+ ghc.haven
+ nixpkgs.maven
+ nixpkgs.androidsdk_9_0
+ ];
+
+ # Tools that are useful for development under both ghc and ghcjs
+ generalDevTools' = { nativeHaskellPackages ? ghc }: {
+ inherit (nativeHaskellPackages)
+ Cabal
+ cabal-install
+ ghcid
+ hasktags
+ hlint
+ stylish-haskell# Recent stylish-haskell only builds with AMP in place
+ reflex-ghci
+ ;
+ inherit (nixpkgs)
+ cabal2nix
+ curl
+ nix-prefetch-scripts
+ nodejs
+ pkgconfig
+ closurecompiler
+ ;
+ };
- # A simple derivation that just creates a file with the names of all
- # of its inputs. If built, it will have a runtime dependency on all
- # of the given build inputs.
- pinBuildInputs = name: buildInputs: (nixpkgs.releaseTools.aggregate {
- inherit name;
- constituents = buildInputs;
- }).overrideAttrs (old: {
- buildCommand = old.buildCommand + ''
- echo "$propagatedBuildInputs $buildInputs $nativeBuildInputs $propagatedNativeBuildInputs" > "$out/deps"
- '';
- inherit buildInputs;
- });
+ workOn = haskellPackages: package: (overrideCabal package (drv: {
+ buildTools = (drv.buildTools or [ ]) ++ builtins.attrValues (generalDevTools' { });
+ })).env;
+
+ # A minimal wrapper around the build-wasm-app from wasm-cross
+ # Useful in building simple cabal projects like reflex-todomvc
+ build-wasm-app-wrapper =
+ ename: # Name of the executable, usually same as cabal project name
+ pkgPath: # Path of cabal package
+ args: # Others options to pass to build-wasm-app
+ let
+ pkg = wasm.callPackage pkgPath { };
+ webabi = nixpkgs.callPackage (wasmCross + /webabi) { };
+ build-wasm-app = nixpkgs.callPackage (wasmCross + /build-wasm-app.nix) ({ inherit webabi; } // args);
+ in
+ build-wasm-app {
+ inherit pkg ename;
+ };
- reflexEnv = platform:
- let haskellPackages = builtins.getAttr platform this;
- ghcWithStuff = if platform == "ghc"
- then haskellPackages.ghcWithPackages
- else haskellPackages.ghcWithPackages;
- in ghcWithStuff (p: import ./packages.nix {
- haskellPackages = p;
- inherit platform;
+ # A simple derivation that just creates a file with the names of all
+ # of its inputs. If built, it will have a runtime dependency on all
+ # of the given build inputs.
+ pinBuildInputs = name: buildInputs: (nixpkgs.releaseTools.aggregate {
+ inherit name;
+ constituents = buildInputs;
+ }).overrideAttrs (old: {
+ buildCommand = old.buildCommand + ''
+ echo "$propagatedBuildInputs $buildInputs $nativeBuildInputs $propagatedNativeBuildInputs" > "$out/deps"
+ '';
+ inherit buildInputs;
});
- tryReflexPackages = builtins.attrValues (generalDevTools' {})
- ++ builtins.map reflexEnv platforms;
+ reflexEnv = platform:
+ let
+ haskellPackages = builtins.getAttr platform this;
+ ghcWithStuff =
+ if platform == "ghc"
+ then haskellPackages.ghcWithPackages
+ else haskellPackages.ghcWithPackages;
+ in
+ ghcWithStuff (p: import ./packages.nix {
+ haskellPackages = p;
+ inherit platform;
+ });
+
+ tryReflexPackages = builtins.attrValues (generalDevTools' { })
+ ++ builtins.map reflexEnv platforms;
- cachePackages =
- let otherPlatforms = lib.optionals androidSupport [
+ cachePackages =
+ let
+ otherPlatforms = lib.optionals androidSupport [
(if __useNewerCompiler then "ghcAndroidAarch64-8_10" else "ghcAndroidAarch64")
(if __useNewerCompiler then "ghcAndroidAarch32-8_10" else "ghcAndroidAarch32")
] ++ lib.optionals iosSupport [
(if __useNewerCompiler then "ghcIosAarch64-8_10" else "ghcIosAarch64")
(if __useNewerCompiler then "ghcIosSimulator64-8_10" else "ghcIosSimulator64")
];
- in tryReflexPackages
+ in
+ tryReflexPackages
++ builtins.map reflexEnv otherPlatforms
++ lib.optionals androidSupport [
androidDevTools
androidReflexTodomvc
] ++ lib.optionals iosSupport [
- iosReflexTodomvc iosSimulatorReflexTodomvc
+ iosReflexTodomvc
+ iosSimulatorReflexTodomvc
];
- inherit cabal2nixResult system androidSupport iosSupport;
- project = args: import ./project this (args ({ pkgs = nixpkgs; } // this));
- tryReflexShell = pinBuildInputs ("shell-" + system) tryReflexPackages;
- ghcjsExternsJs = ./ghcjs.externs.js;
-};
-
-# Deprecated reexports. These were made for `./scripts/*`, but are reexported
-# here for backwards compatability.
-legacy = {
- # Added 2019-12, will be removed 2020-06.
- inherit
- (import ./nix-utils/hackage { reflex-platform = this; })
- attrsToList
- mapSet
- mkSdist
- sdists
- mkHackageDocs
- hackageDocs
- mkReleaseCandidate
- releaseCandidates
- ;
- generalDevTools = _: builtins.attrValues (this.generalDevTools' {});
- generalDevToolsAttrs = _: this.generalDevTools' {};
- nativeHaskellPackages = haskellPackages:
- if haskellPackages.isGhcjs or false
- then haskellPackages.ghc
- else haskellPackages;
- workOnMulti' = { env, packageNames }:
- (import ./nix-utils/work-on-multi {}).workOnMulti {
- envFunc = _: env;
- inherit packageNames;
- };
- workOnMulti = env: packageNames: legacy.workOnMulti' { inherit env packageNames; };
-};
+ inherit cabal2nixResult system androidSupport iosSupport;
+ project = args: import ./project this (args ({ pkgs = nixpkgs; } // this));
+ tryReflexShell = pinBuildInputs ("shell-" + system) tryReflexPackages;
+ ghcjsExternsJs = ./ghcjs.externs.js;
+ };
+
+ # Deprecated reexports. These were made for `./scripts/*`, but are reexported
+ # here for backwards compatability.
+ legacy = {
+ # Added 2019-12, will be removed 2020-06.
+ inherit
+ (import ./nix-utils/hackage { reflex-platform = this; })
+ attrsToList
+ mapSet
+ mkSdist
+ sdists
+ mkHackageDocs
+ hackageDocs
+ mkReleaseCandidate
+ releaseCandidates
+ ;
+ generalDevTools = _: builtins.attrValues (this.generalDevTools' { });
+ generalDevToolsAttrs = _: this.generalDevTools' { };
+ nativeHaskellPackages = haskellPackages:
+ if haskellPackages.isGhcjs or false
+ then haskellPackages.ghc
+ else haskellPackages;
+ workOnMulti' = { env, packageNames }:
+ (import ./nix-utils/work-on-multi { }).workOnMulti {
+ envFunc = _: env;
+ inherit packageNames;
+ };
+ workOnMulti = env: packageNames: legacy.workOnMulti' { inherit env packageNames; };
+ };
-in this // lib.optionalAttrs
+in
+this // lib.optionalAttrs
(!hideDeprecated)
(lib.mapAttrs (attrName: builtins.trace "The attribute \"${attrName}\" is deprecated. See reflex-platform's root default.nix.") legacy)
diff --git a/examples/project/default.nix b/examples/project/default.nix
index a6869a118..501ffa3ef 100644
--- a/examples/project/default.nix
+++ b/examples/project/default.nix
@@ -1,7 +1,9 @@
{ system ? builtins.currentSystem
-, config ? {}
+, config ? { }
}:
-let reflex-platform = import ../../. { inherit system config; };
- projSrc = reflex-platform.hackGet ./reflex-project-skeleton;
- proj = import projSrc { inherit reflex-platform; };
-in proj
+let
+ reflex-platform = import ../../. { inherit system config; };
+ projSrc = reflex-platform.hackGet ./reflex-project-skeleton;
+ proj = import projSrc { inherit reflex-platform; };
+in
+proj
diff --git a/examples/project/reflex-project-skeleton/default.nix b/examples/project/reflex-project-skeleton/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/examples/project/reflex-project-skeleton/default.nix
+++ b/examples/project/reflex-project-skeleton/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/examples/project/reflex-project-skeleton/thunk.nix b/examples/project/reflex-project-skeleton/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/examples/project/reflex-project-skeleton/thunk.nix
+++ b/examples/project/reflex-project-skeleton/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/android/default.nix b/haskell-overlays/android/default.nix
index e99b37901..203a3127f 100644
--- a/haskell-overlays/android/default.nix
+++ b/haskell-overlays/android/default.nix
@@ -9,31 +9,35 @@ let
});
in
self: super: {
- _dep = super._dep or {} // thunkSet ./dep;
+ _dep = super._dep or { } // thunkSet ./dep;
+
+ android-activity = haskellLib.overrideCabal
+ (self.callCabal2nix "android-activity" (self._dep.android-activity + "/") {
+ log = nixpkgs.androidndkPkgs_24.libraries;
+ })
+ (drv:
+ let
+ jdk-fixed = (nixpkgs.buildPackages.jdk17.override {
+ headless = true;
+ enableGnome2 = false;
+ enableJavaFX = false;
+ openjdk17-bootstrap = nixpkgs.buildPackages.openjdk17-bootstrap.override {
+ gtkSupport = false;
+ };
+ });
+ in
+ {
+ librarySystemDepends = (drv.librarySystemDepends or [ ]) ++ [ jdk-fixed ];
+ enableSharedExecutables = true;
+ enableSharedLibraries = true;
+ enableStaticLibraries = false;
+ buildTools = (drv.buildTools or [ ]) ++ [ ];
+ configureFlags = (drv.configureFlags or [ ]) ++ [
+ "--enable-shared"
+ #"-v3"
+ ];
+ });
- android-activity = haskellLib.overrideCabal (self.callCabal2nix "android-activity" (self._dep.android-activity + "/") {
- log = nixpkgs.androidndkPkgs_24.libraries;
- }) (drv: let
- jdk-fixed = (nixpkgs.buildPackages.jdk17.override {
- headless = true;
- enableGnome2 = false;
- enableJavaFX = false;
- openjdk17-bootstrap = nixpkgs.buildPackages.openjdk17-bootstrap.override {
- gtkSupport = false;
- };
- });
- in {
- librarySystemDepends = (drv.librarySystemDepends or []) ++ [ jdk-fixed ];
- enableSharedExecutables = true;
- enableSharedLibraries = true;
- enableStaticLibraries = false;
- buildTools = (drv.buildTools or []) ++ [ ];
- configureFlags = (drv.configureFlags or []) ++ [
- "--enable-shared"
- #"-v3"
- ];
- });
-
syb = haskellLib.overrideCabal super.syb (drv: { jailbreak = true; });
cabal-doctest = null;
@@ -44,9 +48,9 @@ self: super: {
blaze-textual = haskellLib.enableCabalFlag super.blaze-textual "integer-simple";
cryptonite = haskellLib.disableCabalFlag super.cryptonite "integer-gmp";
-
+
OneTuple = haskellLib.overrideCabal super.OneTuple (drv: {
- libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [
+ libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [
self.hashable
];
});
diff --git a/haskell-overlays/android/dep/android-activity/default.nix b/haskell-overlays/android/dep/android-activity/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/android/dep/android-activity/default.nix
+++ b/haskell-overlays/android/dep/android-activity/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/android/dep/android-activity/thunk.nix b/haskell-overlays/android/dep/android-activity/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/android/dep/android-activity/thunk.nix
+++ b/haskell-overlays/android/dep/android-activity/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/any-8.nix b/haskell-overlays/any-8.nix
index 9a5432d68..8fe34ad37 100644
--- a/haskell-overlays/any-8.nix
+++ b/haskell-overlays/any-8.nix
@@ -1,4 +1,3 @@
{ lib, haskellLib, getGhcVersion }:
with haskellLib;
-self: super: lib.optionalAttrs (lib.versionOlder (getGhcVersion super.ghc) "8.6.0") {
-}
+self: super: lib.optionalAttrs (lib.versionOlder (getGhcVersion super.ghc) "8.6.0") { }
diff --git a/haskell-overlays/any-head.nix b/haskell-overlays/any-head.nix
index 386f382b5..713338859 100644
--- a/haskell-overlays/any-head.nix
+++ b/haskell-overlays/any-head.nix
@@ -31,8 +31,8 @@ self: super: {
aeson = super.aeson_1_4_0_0;
- tagged = self.callHackage "tagged" "0.8.6" {};
- contravariant = self.callHackage "contravariant" "1.5" {};
+ tagged = self.callHackage "tagged" "0.8.6" { };
+ contravariant = self.callHackage "contravariant" "1.5" { };
stm = haskellLib.overrideCabal super.stm (drv: {
src = fetchFromGitHub {
@@ -43,6 +43,6 @@ self: super: {
};
});
- entropy = self.callHackage "entropy" "0.4.1.4" {};
+ entropy = self.callHackage "entropy" "0.4.1.4" { };
}
diff --git a/haskell-overlays/default.nix b/haskell-overlays/default.nix
index 7c159f473..8e01ff947 100644
--- a/haskell-overlays/default.nix
+++ b/haskell-overlays/default.nix
@@ -67,7 +67,7 @@ rec {
# arm* needs the same linker options, x86* -> arm* does not
(optionalExtension (super.ghc.stdenv.targetPlatform.isAndroid or false) (self: super:
- {
+ {
mkDerivation = drv: super.mkDerivation (drv // {
buildFlags = [
"--ld-option=-fPIE"
@@ -142,7 +142,7 @@ rec {
(optionalExtension useFastWeak ghcjs-fast-weak_8_10)
(self: super: rec {
mkDerivation = drv: super.mkDerivation (drv // {
- setupHaskellDepends = (drv.setupHaskellDepends or []) ++ [
+ setupHaskellDepends = (drv.setupHaskellDepends or [ ]) ++ [
nixpkgs.buildPackages.stdenv.cc
];
# This is ugly
diff --git a/haskell-overlays/expose-all-unfoldings.nix b/haskell-overlays/expose-all-unfoldings.nix
index 630ae8a0b..3fbd54363 100644
--- a/haskell-overlays/expose-all-unfoldings.nix
+++ b/haskell-overlays/expose-all-unfoldings.nix
@@ -2,11 +2,11 @@
# reflex-dom, at the very least; I suspect it's important for a lot
# more stuff, as well.
-{ }:
+{}:
self: super: {
mkDerivation = drv: super.mkDerivation (drv // {
- configureFlags = (drv.configureFlags or []) ++ [
+ configureFlags = (drv.configureFlags or [ ]) ++ [
"--${if self.ghc.isGhcjs or false then "ghcjs" else "ghc"}-options=-fexpose-all-unfoldings"
];
});
diff --git a/haskell-overlays/ghcjs-8.10-fast-weak/default.nix b/haskell-overlays/ghcjs-8.10-fast-weak/default.nix
index 1424b560b..33a6c4417 100644
--- a/haskell-overlays/ghcjs-8.10-fast-weak/default.nix
+++ b/haskell-overlays/ghcjs-8.10-fast-weak/default.nix
@@ -4,7 +4,7 @@ self: super:
{
ghc = super.ghc.overrideAttrs (drv: {
- patches = (drv.patches or []) ++ [ ./fast-weak.patch ];
+ patches = (drv.patches or [ ]) ++ [ ./fast-weak.patch ];
phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
});
}
diff --git a/haskell-overlays/ghcjs-8.6-fast-weak/default.nix b/haskell-overlays/ghcjs-8.6-fast-weak/default.nix
index 1424b560b..33a6c4417 100644
--- a/haskell-overlays/ghcjs-8.6-fast-weak/default.nix
+++ b/haskell-overlays/ghcjs-8.6-fast-weak/default.nix
@@ -4,7 +4,7 @@ self: super:
{
ghc = super.ghc.overrideAttrs (drv: {
- patches = (drv.patches or []) ++ [ ./fast-weak.patch ];
+ patches = (drv.patches or [ ]) ++ [ ./fast-weak.patch ];
phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
});
}
diff --git a/haskell-overlays/ghcjs-8.6/cabal-install.nix b/haskell-overlays/ghcjs-8.6/cabal-install.nix
index 4e21d8467..3359587fe 100644
--- a/haskell-overlays/ghcjs-8.6/cabal-install.nix
+++ b/haskell-overlays/ghcjs-8.6/cabal-install.nix
@@ -1,11 +1,11 @@
# The build of ghcjs8.6 uses cabal v1 commands, including v1-sdist, so we need an older cabal-install
{ nixpkgs }:
-(nixpkgs.haskell.packages.ghc865.callHackage "cabal-install" "2.4.1.0" {}).overrideScope
+(nixpkgs.haskell.packages.ghc865.callHackage "cabal-install" "2.4.1.0" { }).overrideScope
(self: super: {
Cabal = self.Cabal_2_4_1_0;
base16-bytestring = self.base16-bytestring_0_1_1_7;
- random = self.callHackage "random" "1.1" {};
+ random = self.callHackage "random" "1.1" { };
hackage-security = nixpkgs.haskell.lib.dontCheck
(nixpkgs.haskell.lib.doJailbreak
- (self.callHackage "hackage-security" "0.5.3.0" {}));
+ (self.callHackage "hackage-security" "0.5.3.0" { }));
})
diff --git a/haskell-overlays/ghcjs-8.6/default.nix b/haskell-overlays/ghcjs-8.6/default.nix
index 5bb190b3d..6d998d29e 100644
--- a/haskell-overlays/ghcjs-8.6/default.nix
+++ b/haskell-overlays/ghcjs-8.6/default.nix
@@ -1,4 +1,8 @@
-{ lib, haskellLib, nixpkgs, fetchgit, fetchFromGitHub
+{ lib
+, haskellLib
+, nixpkgs
+, fetchgit
+, fetchFromGitHub
, useReflexOptimizer
, useTextJSString
, enableLibraryProfiling
@@ -15,17 +19,19 @@ self: super: rec {
broken = drv.broken or false || enableLibraryProfiling;
});
- ghcWithPackages = nixpkgs.buildPackages.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/with-packages-wrapper.nix") {
- haskellPackages = self;
- hoogleWithPackages = super.hoogleWithPackages;
- } // lib.optionalAttrs (useReflexOptimizer) {
+ ghcWithPackages = nixpkgs.buildPackages.callPackage (nixpkgs.path + "/pkgs/development/haskell-modules/with-packages-wrapper.nix")
+ {
+ haskellPackages = self;
+ hoogleWithPackages = super.hoogleWithPackages;
+ } // lib.optionalAttrs (useReflexOptimizer) {
ghcLibdir = lib.optionalString useReflexOptimizer "${self.ghc.bootPkgs.ghcWithPackages (p: [ p.reflex ])}/lib/${self.ghc.bootPkgs.ghc.name}";
};
- ghc = if !(lib.versionAtLeast super.ghc.ghcVersion "8.2") then super.ghc else super.ghc.overrideAttrs (_: {
- # TODO: I don't think this is needed except for maybe the fast-weak patch, but doing this to preserve hashes.
- phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
- }) // {
+ ghc = if !(lib.versionAtLeast super.ghc.ghcVersion "8.2") then super.ghc else super.ghc.overrideAttrs
+ (_: {
+ # TODO: I don't think this is needed except for maybe the fast-weak patch, but doing this to preserve hashes.
+ phases = [ "unpackPhase" "patchPhase" "buildPhase" ];
+ }) // {
withPackages = self.ghcWithPackages;
};
@@ -35,10 +41,10 @@ self: super: rec {
network = haskellLib.overrideCabal super.network (drv: {
revision = null;
editedCabalFile = null;
- patches = (drv.patches or []) ++ [ ./ghcjs-network.patch ];
+ patches = (drv.patches or [ ]) ++ [ ./ghcjs-network.patch ];
});
- attoparsec = self.callHackage "attoparsec" "0.13.2.2" {};
+ attoparsec = self.callHackage "attoparsec" "0.13.2.2" { };
# These packages require doctest
comonad = dontCheck super.comonad;
@@ -50,7 +56,7 @@ self: super: rec {
these = dontCheck super.these;
email-validate = dontCheck super.email-validate;
OneTuple = overrideCabal super.OneTuple (drv: {
- libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [
+ libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [
self.hashable
];
});
@@ -78,6 +84,6 @@ self: super: rec {
patch = dontHaddock super.patch;
# When we don't use text-jsstring, we hit cabal version too new issue.
# NOTE(Dylan Green): We need to have an "updated" version of ghcjs-base, although the patch is still needed
- _ghcjsbase = self.callHackage "ghcjs-base" "0.2.0.3" {};
+ _ghcjsbase = self.callHackage "ghcjs-base" "0.2.0.3" { };
ghcjs-base = if useTextJSString then self._ghcjsbase else appendPatch (self._ghcjsbase) ./ghcjs-base-cabal-version.patch;
}
diff --git a/haskell-overlays/ghcjs-8.6/src.nix b/haskell-overlays/ghcjs-8.6/src.nix
index 4d54c7d76..d375ee152 100644
--- a/haskell-overlays/ghcjs-8.6/src.nix
+++ b/haskell-overlays/ghcjs-8.6/src.nix
@@ -19,4 +19,5 @@ let
'';
dontInstall = true;
};
-in patchedSrc
+in
+patchedSrc
diff --git a/haskell-overlays/ghcjs-text-jsstring-8.10/default.nix b/haskell-overlays/ghcjs-text-jsstring-8.10/default.nix
index ca5d6daf0..9095d6dfc 100644
--- a/haskell-overlays/ghcjs-text-jsstring-8.10/default.nix
+++ b/haskell-overlays/ghcjs-text-jsstring-8.10/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchgit }:
self: super: {
- _dep = super._dep or {} // {
+ _dep = super._dep or { } // {
textSrc = fetchgit {
url = "https://github.com/dfordivam/text.git";
rev = "126174753ea8e5f45df8fcbba609e3f1c453bf27";
diff --git a/haskell-overlays/ghcjs-text-jsstring-8.6/default.nix b/haskell-overlays/ghcjs-text-jsstring-8.6/default.nix
index 8e5f0c84b..43374756c 100644
--- a/haskell-overlays/ghcjs-text-jsstring-8.6/default.nix
+++ b/haskell-overlays/ghcjs-text-jsstring-8.6/default.nix
@@ -1,7 +1,7 @@
{ lib, fetchgit }:
self: super: {
- _dep = super._dep or {} // {
+ _dep = super._dep or { } // {
textSrc = fetchgit {
url = "https://github.com/obsidiansystems/text.git";
rev = "50076be0262203f0d2afdd0b190a341878a08e21";
diff --git a/haskell-overlays/hnix/hnix-store/default.nix b/haskell-overlays/hnix/hnix-store/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/hnix/hnix-store/default.nix
+++ b/haskell-overlays/hnix/hnix-store/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/hnix/hnix-store/thunk.nix b/haskell-overlays/hnix/hnix-store/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/hnix/hnix-store/thunk.nix
+++ b/haskell-overlays/hnix/hnix-store/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/hnix/hnix/default.nix b/haskell-overlays/hnix/hnix/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/hnix/hnix/default.nix
+++ b/haskell-overlays/hnix/hnix/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/hnix/hnix/thunk.nix b/haskell-overlays/hnix/hnix/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/hnix/hnix/thunk.nix
+++ b/haskell-overlays/hnix/hnix/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/default.nix b/haskell-overlays/reflex-packages/default.nix
index 1fc013723..a2fcdcdb6 100644
--- a/haskell-overlays/reflex-packages/default.nix
+++ b/haskell-overlays/reflex-packages/default.nix
@@ -1,7 +1,15 @@
{ haskellLib
-, lib, nixpkgs
-, thunkSet, fetchFromGitHub, fetchFromBitbucket, hackGet
-, useFastWeak, useReflexOptimizer, enableTraceReflexEvents, enableLibraryProfiling, __useTemplateHaskell
+, lib
+, nixpkgs
+, thunkSet
+, fetchFromGitHub
+, fetchFromBitbucket
+, hackGet
+, useFastWeak
+, useReflexOptimizer
+, enableTraceReflexEvents
+, enableLibraryProfiling
+, __useTemplateHaskell
}:
with haskellLib;
@@ -22,199 +30,213 @@ let
# Older chromium for reflex-dom-core test suite
nixpkgs_oldChromium = import ../../nixpkgs-old-chromium {
inherit (nixpkgs.stdenv.buildPlatform) system;
- overlays = [ (self: super: {
- # Disable tests for p11-kit, a dependency of chromium
- # They fail on non-NixOS systems
- # https://github.com/NixOS/nixpkgs/issues/96715
- p11-kit = super.p11-kit.overrideAttrs (oldAttrs: {
- doCheck = false;
- });
- })];
+ overlays = [
+ (self: super: {
+ # Disable tests for p11-kit, a dependency of chromium
+ # They fail on non-NixOS systems
+ # https://github.com/NixOS/nixpkgs/issues/96715
+ p11-kit = super.p11-kit.overrideAttrs (oldAttrs: {
+ doCheck = false;
+ });
+ })
+ ];
};
in
{
- _dep = super._dep or {} // thunkSet ./dep;
+ _dep = super._dep or { } // thunkSet ./dep;
##
## Reflex family
##
- reflex = self.callCabal2nixWithOptions "reflex" self._dep.reflex (lib.concatStringsSep " " (lib.concatLists [
- (lib.optional enableTraceReflexEvents "-fdebug-trace-events")
- reflexOptimizerFlag
- useTemplateHaskellFlag
- (lib.optional useFastWeak "-ffast-weak")
- ])) {};
-
- reflex-todomvc = haskellLib.doJailbreak (self.callPackage self._dep.reflex-todomvc {});
- reflex-aeson-orphans = self.callCabal2nix "reflex-aeson-orphans" self._dep.reflex-aeson-orphans {};
-
- # The tests for reflex-dom-core are not deterministic, disable them, and run them manually
- reflex-dom-core = let
- inherit (self) ghc;
- noGcTest = stdenv.hostPlatform.system != "x86_64-linux"
- || stdenv.hostPlatform != stdenv.buildPlatform
- || (ghc.isGhcjs or false);
- in haskellLib.overrideCabal
- (self.callCabal2nixWithOptions "reflex-dom-core" (reflexDomRepo + "/reflex-dom-core") (lib.concatStringsSep " " (lib.concatLists [
+ reflex = self.callCabal2nixWithOptions "reflex" self._dep.reflex
+ (lib.concatStringsSep " " (lib.concatLists [
+ (lib.optional enableTraceReflexEvents "-fdebug-trace-events")
reflexOptimizerFlag
useTemplateHaskellFlag
- (lib.optional enableLibraryProfiling "-fprofile-reflex")
- [ "-f-hydration-tests" ]
- [ "-f-gc-tests" ]
- ])) {})
- (drv: {
- # TODO: Get hlint working for cross-compilation
- #doCheck = stdenv.hostPlatform == stdenv.buildPlatform && !(ghc.isGhcjs or false);
- doCheck = false;
- # The headless browser run as part of the tests will exit without this
- preBuild = (drv.preBuild or "") + ''
- export HOME="$PWD"
- '';
+ (lib.optional useFastWeak "-ffast-weak")
+ ]))
+ { };
- # Show some output while running tests, so we might notice what's wrong
- testTarget = "--show-details=streaming";
-
- testHaskellDepends = with self; (drv.testHaskellDepends or []) ++ lib.optionals (!noGcTest) [
- temporary
- jsaddle-warp
- process
- chrome-test-utils
- ];
-
- testSystemDepends = with nixpkgs; (drv.testSystemDepends or []) ++ lib.optionals (nixpkgs.stdenv.hostPlatform.isLinux) [
- nixpkgs_oldChromium.selenium-server-standalone
- nixpkgs_oldChromium.chromium
- which
- ] ++ lib.optionals (!noGcTest) [
- nixpkgs.iproute
- ];
- } // lib.optionalAttrs (!noGcTest) {
- # The headless browser run as part of gc tests would hang/crash without this
- preCheck = ''
- export FONTCONFIG_PATH=${nixpkgs.fontconfig.out}/etc/fonts
- '' + (drv.preCheck or "");
- });
+ reflex-todomvc = haskellLib.doJailbreak (self.callPackage self._dep.reflex-todomvc { });
+ reflex-aeson-orphans = self.callCabal2nix "reflex-aeson-orphans" self._dep.reflex-aeson-orphans { };
- reflex-dom = haskellLib.doJailbreak (haskellLib.overrideCabal (self.callCabal2nixWithOptions "reflex-dom" (reflexDomRepo + "/reflex-dom") (lib.concatStringsSep " " (lib.concatLists [
- reflexOptimizerFlag
- useTemplateHaskellFlag
- ])) { }) (drv: {
+ # The tests for reflex-dom-core are not deterministic, disable them, and run them manually
+ reflex-dom-core =
+ let
+ inherit (self) ghc;
+ noGcTest = stdenv.hostPlatform.system != "x86_64-linux"
+ || stdenv.hostPlatform != stdenv.buildPlatform
+ || (ghc.isGhcjs or false);
+ in
+ haskellLib.overrideCabal
+ (self.callCabal2nixWithOptions "reflex-dom-core" (reflexDomRepo + "/reflex-dom-core")
+ (lib.concatStringsSep " " (lib.concatLists [
+ reflexOptimizerFlag
+ useTemplateHaskellFlag
+ (lib.optional enableLibraryProfiling "-fprofile-reflex")
+ [ "-f-hydration-tests" ]
+ [ "-f-gc-tests" ]
+ ]))
+ { })
+ (drv: {
+ # TODO: Get hlint working for cross-compilation
+ #doCheck = stdenv.hostPlatform == stdenv.buildPlatform && !(ghc.isGhcjs or false);
+ doCheck = false;
+ # The headless browser run as part of the tests will exit without this
+ preBuild = (drv.preBuild or "") + ''
+ export HOME="$PWD"
+ '';
+
+ # Show some output while running tests, so we might notice what's wrong
+ testTarget = "--show-details=streaming";
+
+ testHaskellDepends = with self; (drv.testHaskellDepends or [ ]) ++ lib.optionals (!noGcTest) [
+ temporary
+ jsaddle-warp
+ process
+ chrome-test-utils
+ ];
+
+ testSystemDepends = with nixpkgs; (drv.testSystemDepends or [ ]) ++ lib.optionals (nixpkgs.stdenv.hostPlatform.isLinux) [
+ nixpkgs_oldChromium.selenium-server-standalone
+ nixpkgs_oldChromium.chromium
+ which
+ ] ++ lib.optionals (!noGcTest) [
+ nixpkgs.iproute
+ ];
+ } // lib.optionalAttrs (!noGcTest) {
+ # The headless browser run as part of gc tests would hang/crash without this
+ preCheck = ''
+ export FONTCONFIG_PATH=${nixpkgs.fontconfig.out}/etc/fonts
+ '' + (drv.preCheck or "");
+ });
+
+ reflex-dom = haskellLib.doJailbreak (haskellLib.overrideCabal
+ (self.callCabal2nixWithOptions "reflex-dom" (reflexDomRepo + "/reflex-dom")
+ (lib.concatStringsSep " " (lib.concatLists [
+ reflexOptimizerFlag
+ useTemplateHaskellFlag
+ ]))
+ { })
+ (drv: {
preConfigure = (drv.preConfigure or "") + ''
sed -i 's|aeson >=1.4 && <1.6|aeson -any|g' *.cabal
'';
- libraryHaskellDepends = [
- self.reflex
- self.reflex-dom-core
- self.jsaddle-webkit2gtk
+ libraryHaskellDepends = [
+ self.reflex
+ self.reflex-dom-core
+ self.jsaddle-webkit2gtk
self.aeson
] ++ lib.optional (nixpkgs.stdenv.hostPlatform.useAndroidPrebuilt or false) self.android-activity;
}));
- chrome-test-utils = self.callCabal2nix "chrome-test-utils" (reflexDomRepo + "/chrome-test-utils") {};
+ chrome-test-utils = self.callCabal2nix "chrome-test-utils" (reflexDomRepo + "/chrome-test-utils") { };
##
## Terminal / Conventional OS
##
- reflex-vty = haskellLib.doJailbreak (self.callCabal2nix "reflex-vty" self._dep.reflex-vty {});
- reflex-process = self.callCabal2nix "reflex-process" self._dep.reflex-process {};
- reflex-fsnotify = self.callHackage "reflex-fsnotify" "0.2.1.2" {};
+ reflex-vty = haskellLib.doJailbreak (self.callCabal2nix "reflex-vty" self._dep.reflex-vty { });
+ reflex-process = self.callCabal2nix "reflex-process" self._dep.reflex-process { };
+ reflex-fsnotify = self.callHackage "reflex-fsnotify" "0.2.1.2" { };
##
## Tooling
##
- reflex-ghci = self.callCabal2nix "reflex-ghci" self._dep.reflex-ghci {};
+ reflex-ghci = self.callCabal2nix "reflex-ghci" self._dep.reflex-ghci { };
##
## GHCJS and JSaddle
##
- jsaddle = self.callCabal2nix "jsaddle" (jsaddleSrc + "/jsaddle") {};
- jsaddle-clib = self.callCabal2nix "jsaddle-clib" (jsaddleSrc + "/jsaddle-clib") {};
- jsaddle-webkit2gtk = self.callCabal2nix "jsaddle-webkit2gtk" (jsaddleSrc + "/jsaddle-webkit2gtk") {};
- jsaddle-webkitgtk = self.callCabal2nix "jsaddle-webkitgtk" (jsaddleSrc + "/jsaddle-webkitgtk") {};
- jsaddle-wkwebview = overrideCabal (self.callCabal2nix "jsaddle-wkwebview" (jsaddleSrc + "/jsaddle-wkwebview") {}) (drv: {
- libraryFrameworkDepends = (drv.libraryFrameworkDepends or []) ++
+ jsaddle = self.callCabal2nix "jsaddle" (jsaddleSrc + "/jsaddle") { };
+ jsaddle-clib = self.callCabal2nix "jsaddle-clib" (jsaddleSrc + "/jsaddle-clib") { };
+ jsaddle-webkit2gtk = self.callCabal2nix "jsaddle-webkit2gtk" (jsaddleSrc + "/jsaddle-webkit2gtk") { };
+ jsaddle-webkitgtk = self.callCabal2nix "jsaddle-webkitgtk" (jsaddleSrc + "/jsaddle-webkitgtk") { };
+ jsaddle-wkwebview = overrideCabal (self.callCabal2nix "jsaddle-wkwebview" (jsaddleSrc + "/jsaddle-wkwebview") { }) (drv: {
+ libraryFrameworkDepends = (drv.libraryFrameworkDepends or [ ]) ++
(if nixpkgs.stdenv.hostPlatform.useiOSPrebuilt then [
- "${nixpkgs.buildPackages.darwin.xcode}/Contents/Developer/Platforms/${nixpkgs.stdenv.hostPlatform.xcodePlatform}.platform/Developer/SDKs/${nixpkgs.stdenv.hostPlatform.xcodePlatform}.sdk/System"
- ] else (with nixpkgs.buildPackages.darwin.apple_sdk.frameworks; [ Cocoa WebKit ]));
+ "${nixpkgs.buildPackages.darwin.xcode}/Contents/Developer/Platforms/${nixpkgs.stdenv.hostPlatform.xcodePlatform}.platform/Developer/SDKs/${nixpkgs.stdenv.hostPlatform.xcodePlatform}.sdk/System"
+ ] else (with nixpkgs.buildPackages.darwin.apple_sdk.frameworks; [ Cocoa WebKit ]));
buildDepends = lib.optional (!nixpkgs.stdenv.hostPlatform.useiOSPrebuilt) [ nixpkgs.buildPackages.darwin.cf-private ];
});
# another broken test
# phantomjs has issues with finding the right port
# jsaddle-warp = dontCheck (addTestToolDepend (self.callCabal2nix "jsaddle-warp" "${jsaddleSrc}/jsaddle-warp" {}));
- jsaddle-warp = dontCheck (self.callCabal2nix "jsaddle-warp" (jsaddleSrc + "/jsaddle-warp") {});
+ jsaddle-warp = dontCheck (self.callCabal2nix "jsaddle-warp" (jsaddleSrc + "/jsaddle-warp") { });
- jsaddle-dom = doJailbreak (self.callCabal2nix "jsaddle-dom" self._dep.jsaddle-dom {});
- jsaddle-wasm = self.callCabal2nix "jsaddle-wasm" (hackGet (wasmCross + "/jsaddle-wasm")) {};
- ghcjs-dom = self.callCabal2nix "ghcjs-dom" (self._dep.ghcjs-dom + "/ghcjs-dom") {};
- ghcjs-dom-jsaddle = self.callCabal2nix "ghcjs-dom-jsaddle" (self._dep.ghcjs-dom + "/ghcjs-dom-jsaddle") {};
- ghcjs-dom-jsffi = self.callCabal2nix "ghcjs-dom-jsffi" (self._dep.ghcjs-dom + "/ghcjs-dom-jsffi") {};
+ jsaddle-dom = doJailbreak (self.callCabal2nix "jsaddle-dom" self._dep.jsaddle-dom { });
+ jsaddle-wasm = self.callCabal2nix "jsaddle-wasm" (hackGet (wasmCross + "/jsaddle-wasm")) { };
+ ghcjs-dom = self.callCabal2nix "ghcjs-dom" (self._dep.ghcjs-dom + "/ghcjs-dom") { };
+ ghcjs-dom-jsaddle = self.callCabal2nix "ghcjs-dom-jsaddle" (self._dep.ghcjs-dom + "/ghcjs-dom-jsaddle") { };
+ ghcjs-dom-jsffi = self.callCabal2nix "ghcjs-dom-jsffi" (self._dep.ghcjs-dom + "/ghcjs-dom-jsffi") { };
##
## Gargoyle and dependencies
##
- gargoyle = self.callCabal2nixWithOptions "gargoyle" gargoyleSrc "--subpath gargoyle" {};
+ gargoyle = self.callCabal2nixWithOptions "gargoyle" gargoyleSrc "--subpath gargoyle" { };
gargoyle-postgresql = haskellLib.overrideCabal
- (self.callCabal2nixWithOptions "gargoyle-postgresql" gargoyleSrc "--subpath gargoyle-postgresql" {})
+ (self.callCabal2nixWithOptions "gargoyle-postgresql" gargoyleSrc "--subpath gargoyle-postgresql" { })
(drv: {
- testSystemDepends = (drv.testSystemDepends or []) ++ [ nixpkgs.postgresql_10 ];
+ testSystemDepends = (drv.testSystemDepends or [ ]) ++ [ nixpkgs.postgresql_10 ];
});
gargoyle-postgresql-nix = haskellLib.overrideCabal
- (self.callCabal2nixWithOptions "gargoyle-postgresql-nix" gargoyleSrc "--subpath gargoyle-postgresql-nix" {})
+ (self.callCabal2nixWithOptions "gargoyle-postgresql-nix" gargoyleSrc "--subpath gargoyle-postgresql-nix" { })
(drv: {
- librarySystemDepends = (drv.librarySystemDepends or []) ++ [ nixpkgs.postgresql_10 ];
+ librarySystemDepends = (drv.librarySystemDepends or [ ]) ++ [ nixpkgs.postgresql_10 ];
});
- gargoyle-postgresql-connect = self.callCabal2nixWithOptions "gargoyle-postgresql-connect" gargoyleSrc "--subpath gargoyle-postgresql-connect" {};
- which = self.callHackage "which" "0.2" {};
+ gargoyle-postgresql-connect = self.callCabal2nixWithOptions "gargoyle-postgresql-connect" gargoyleSrc "--subpath gargoyle-postgresql-connect" { };
+ which = self.callHackage "which" "0.2" { };
##
## Misc other dependencies
##
- haskell-gi-overloading = dontHaddock (self.callHackage "haskell-gi-overloading" "0.0" {});
- monoidal-containers = self.callHackage "monoidal-containers" "0.6.2.0" {};
- patch = self.callCabal2nix "patch" self._dep.patch {};
- commutative-semigroups = self.callCabal2nix "commutative-semigroups" self._dep.commutative-semigroups {};
- witherable = self.callHackage "witherable" "0.4.2" {};
+ haskell-gi-overloading = dontHaddock (self.callHackage "haskell-gi-overloading" "0.0" { });
+ monoidal-containers = self.callHackage "monoidal-containers" "0.6.2.0" { };
+ patch = self.callCabal2nix "patch" self._dep.patch { };
+ commutative-semigroups = self.callCabal2nix "commutative-semigroups" self._dep.commutative-semigroups { };
+ witherable = self.callHackage "witherable" "0.4.2" { };
- webdriver = markUnbroken (self.callHackage "webdriver" "0.9.0.1" {});
+ webdriver = markUnbroken (self.callHackage "webdriver" "0.9.0.1" { });
# Not on Hackage yet
# Version 1.2.1 not on Hackage yet
- hspec-webdriver = self.callCabal2nix "hspec-webdriver" (fetchFromGitHub {
- owner = "dfordivam";
- repo = "hspec-webdriver-clone";
- rev = "0d748b7bb7cd74dce0a55a1ec86b01dbb8a71cd8";
- sha256 = "1criynifhvmnqwhrshmzylikqkvlgq98xf72w9cdd2zpjw539qf0";
- }) {};
-
- constraints-extras = self.callHackage "constraints-extras" "0.3.2.1" {};
- some = self.callHackage "some" "1.0.2" {};
- prim-uniq = self.callHackage "prim-uniq" "0.2" {};
- aeson-gadt-th = self.callHackage "aeson-gadt-th" "0.2.4" {};
- dependent-map = self.callHackage "dependent-map" "0.4.0.0" {};
- dependent-monoidal-map = self.callCabal2nix "dependent-monoidal-map" self._dep.dependent-monoidal-map {};
- dependent-sum = self.callHackage "dependent-sum" "0.7.1.0" {};
- dependent-sum-template = self.callHackage "dependent-sum-template" "0.1.1.0" {};
- dependent-sum-universe-orphans = self.callCabal2nix "dependent-sum-universe-orphans" self._dep.dependent-sum-universe-orphans {};
- dependent-sum-aeson-orphans = self.callHackage "dependent-sum-aeson-orphans" "0.3.0.0" {};
+ hspec-webdriver = self.callCabal2nix "hspec-webdriver"
+ (fetchFromGitHub {
+ owner = "dfordivam";
+ repo = "hspec-webdriver-clone";
+ rev = "0d748b7bb7cd74dce0a55a1ec86b01dbb8a71cd8";
+ sha256 = "1criynifhvmnqwhrshmzylikqkvlgq98xf72w9cdd2zpjw539qf0";
+ })
+ { };
+
+ constraints-extras = self.callHackage "constraints-extras" "0.3.2.1" { };
+ some = self.callHackage "some" "1.0.2" { };
+ prim-uniq = self.callHackage "prim-uniq" "0.2" { };
+ aeson-gadt-th = self.callHackage "aeson-gadt-th" "0.2.4" { };
+ dependent-map = self.callHackage "dependent-map" "0.4.0.0" { };
+ dependent-monoidal-map = self.callCabal2nix "dependent-monoidal-map" self._dep.dependent-monoidal-map { };
+ dependent-sum = self.callHackage "dependent-sum" "0.7.1.0" { };
+ dependent-sum-template = self.callHackage "dependent-sum-template" "0.1.1.0" { };
+ dependent-sum-universe-orphans = self.callCabal2nix "dependent-sum-universe-orphans" self._dep.dependent-sum-universe-orphans { };
+ dependent-sum-aeson-orphans = self.callHackage "dependent-sum-aeson-orphans" "0.3.0.0" { };
# Need to use `--subpath` because LICENSE in each dir is a symlink to the repo root.
- universe = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe" {};
- universe-base = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-base" {};
- universe-dependent-sum = nixpkgs.haskell.lib.doJailbreak (self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-dependent-sum" {});
- universe-instances-extended = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-instances-extended" {};
- universe-reverse-instances = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-reverse-instances" {};
- universe-instances-base = self.callCabal2nixWithOptions "universe" universeRepo "--subpath deprecated/universe-instances-base" {};
+ universe = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe" { };
+ universe-base = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-base" { };
+ universe-dependent-sum = nixpkgs.haskell.lib.doJailbreak (self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-dependent-sum" { });
+ universe-instances-extended = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-instances-extended" { };
+ universe-reverse-instances = self.callCabal2nixWithOptions "universe" universeRepo "--subpath universe-reverse-instances" { };
+ universe-instances-base = self.callCabal2nixWithOptions "universe" universeRepo "--subpath deprecated/universe-instances-base" { };
- th-abstraction = self.callHackage "th-abstraction" "0.4.3.0" {};
+ th-abstraction = self.callHackage "th-abstraction" "0.4.3.0" { };
# Slightly newer version to fix
# https://github.com/danfran/cabal-macosx/issues/13
- cabal-macosx = self.callHackage "cabal-macosx" "0.2.4.2" {};
+ cabal-macosx = self.callHackage "cabal-macosx" "0.2.4.2" { };
}
diff --git a/haskell-overlays/reflex-packages/dep/commutative-semigroups/default.nix b/haskell-overlays/reflex-packages/dep/commutative-semigroups/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/commutative-semigroups/default.nix
+++ b/haskell-overlays/reflex-packages/dep/commutative-semigroups/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/commutative-semigroups/thunk.nix b/haskell-overlays/reflex-packages/dep/commutative-semigroups/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/commutative-semigroups/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/commutative-semigroups/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/default.nix b/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/default.nix
+++ b/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/thunk.nix b/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/dependent-monoidal-map/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/gargoyle/default.nix b/haskell-overlays/reflex-packages/dep/gargoyle/default.nix
index d42886c4e..24386688b 100644
--- a/haskell-overlays/reflex-packages/dep/gargoyle/default.nix
+++ b/haskell-overlays/reflex-packages/dep/gargoyle/default.nix
@@ -1 +1 @@
-import ((import {}).fetchFromGitHub (builtins.fromJSON (builtins.readFile ./github.json)))
+import ((import { }).fetchFromGitHub (builtins.fromJSON (builtins.readFile ./github.json)))
diff --git a/haskell-overlays/reflex-packages/dep/jsaddle-dom/default.nix b/haskell-overlays/reflex-packages/dep/jsaddle-dom/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/jsaddle-dom/default.nix
+++ b/haskell-overlays/reflex-packages/dep/jsaddle-dom/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/jsaddle-dom/thunk.nix b/haskell-overlays/reflex-packages/dep/jsaddle-dom/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/jsaddle-dom/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/jsaddle-dom/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/jsaddle/default.nix b/haskell-overlays/reflex-packages/dep/jsaddle/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/jsaddle/default.nix
+++ b/haskell-overlays/reflex-packages/dep/jsaddle/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/jsaddle/thunk.nix b/haskell-overlays/reflex-packages/dep/jsaddle/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/jsaddle/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/jsaddle/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/patch/default.nix b/haskell-overlays/reflex-packages/dep/patch/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/patch/default.nix
+++ b/haskell-overlays/reflex-packages/dep/patch/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/patch/thunk.nix b/haskell-overlays/reflex-packages/dep/patch/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/patch/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/patch/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/reflex-dom/default.nix b/haskell-overlays/reflex-packages/dep/reflex-dom/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-dom/default.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-dom/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/reflex-dom/thunk.nix b/haskell-overlays/reflex-packages/dep/reflex-dom/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-dom/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-dom/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/reflex-ghci/default.nix b/haskell-overlays/reflex-packages/dep/reflex-ghci/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-ghci/default.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-ghci/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/reflex-ghci/thunk.nix b/haskell-overlays/reflex-packages/dep/reflex-ghci/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-ghci/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-ghci/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/reflex-process/default.nix b/haskell-overlays/reflex-packages/dep/reflex-process/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-process/default.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-process/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/reflex-process/thunk.nix b/haskell-overlays/reflex-packages/dep/reflex-process/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-process/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-process/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/reflex-vty/default.nix b/haskell-overlays/reflex-packages/dep/reflex-vty/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-vty/default.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-vty/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/reflex-vty/thunk.nix b/haskell-overlays/reflex-packages/dep/reflex-vty/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/reflex-vty/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex-vty/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/reflex/default.nix b/haskell-overlays/reflex-packages/dep/reflex/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/reflex-packages/dep/reflex/default.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/reflex-packages/dep/reflex/thunk.nix b/haskell-overlays/reflex-packages/dep/reflex/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/reflex-packages/dep/reflex/thunk.nix
+++ b/haskell-overlays/reflex-packages/dep/reflex/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/reflex-packages/dep/universe/default.nix b/haskell-overlays/reflex-packages/dep/universe/default.nix
index 7a0477867..8ef43d546 100644
--- a/haskell-overlays/reflex-packages/dep/universe/default.nix
+++ b/haskell-overlays/reflex-packages/dep/universe/default.nix
@@ -1,7 +1,8 @@
# DO NOT HAND-EDIT THIS FILE
-import ((import {}).fetchFromGitHub (
+import ((import { }).fetchFromGitHub (
let json = builtins.fromJSON (builtins.readFile ./github.json);
- in { inherit (json) owner repo rev sha256;
- private = json.private or false;
- }
+ in {
+ inherit (json) owner repo rev sha256;
+ private = json.private or false;
+ }
))
diff --git a/haskell-overlays/splices-load-save/dep/ghc-8.10/default.nix b/haskell-overlays/splices-load-save/dep/ghc-8.10/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/splices-load-save/dep/ghc-8.10/default.nix
+++ b/haskell-overlays/splices-load-save/dep/ghc-8.10/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/splices-load-save/dep/ghc-8.10/thunk.nix b/haskell-overlays/splices-load-save/dep/ghc-8.10/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/splices-load-save/dep/ghc-8.10/thunk.nix
+++ b/haskell-overlays/splices-load-save/dep/ghc-8.10/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/splices-load-save/dep/ghc-8.6/default.nix b/haskell-overlays/splices-load-save/dep/ghc-8.6/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/splices-load-save/dep/ghc-8.6/default.nix
+++ b/haskell-overlays/splices-load-save/dep/ghc-8.6/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/splices-load-save/dep/ghc-8.6/thunk.nix b/haskell-overlays/splices-load-save/dep/ghc-8.6/thunk.nix
index e3b8c830d..6e6c9ff2b 100644
--- a/haskell-overlays/splices-load-save/dep/ghc-8.6/thunk.nix
+++ b/haskell-overlays/splices-load-save/dep/ghc-8.6/thunk.nix
@@ -1,14 +1,21 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = {url, rev, branch ? null, sha256 ? null, fetchSubmodules ? false, private ? false, ...}:
- let realUrl = let firstChar = builtins.substring 0 1 url; in
- if firstChar == "/" then /. + url
- else if firstChar == "." then ./. + url
- else url;
- in if !fetchSubmodules && private then builtins.fetchGit {
- url = realUrl; inherit rev;
- ${if branch == null then null else "ref"} = branch;
- } else (import {}).fetchgit {
- url = realUrl; inherit rev sha256;
- };
+let
+ fetch = { url, rev, branch ? null, sha256 ? null, fetchSubmodules ? false, private ? false, ... }:
+ let
+ realUrl = let firstChar = builtins.substring 0 1 url; in
+ if firstChar == "/" then /. + url
+ else if firstChar == "." then ./. + url
+ else url;
+ in
+ if !fetchSubmodules && private then
+ builtins.fetchGit
+ {
+ url = realUrl; inherit rev;
+ ${if branch == null then null else "ref"} = branch;
+ } else
+ (import { }).fetchgit {
+ url = realUrl; inherit rev sha256;
+ };
json = builtins.fromJSON (builtins.readFile ./git.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/splices-load-save/load-splices.nix b/haskell-overlays/splices-load-save/load-splices.nix
index bd8a6879d..178ddc9f0 100644
--- a/haskell-overlays/splices-load-save/load-splices.nix
+++ b/haskell-overlays/splices-load-save/load-splices.nix
@@ -2,56 +2,59 @@
self: super:
-let splicedPkg = drv:
- if builtins.hasAttr drv.pname self.buildHaskellPackages
- then builtins.getAttr drv.pname self.buildHaskellPackages
- else if builtins.hasAttr (attrName drv) self.buildHaskellPackages
- then builtins.getAttr (attrName drv) self.buildHaskellPackages
- else throw "no spliced pkg for: ${drv.name}";
-
- hasSplicedPkg = drv:
- (builtins.hasAttr drv.pname self.buildHaskellPackages ||
- builtins.hasAttr (attrName drv) self.buildHaskellPackages) &&
- !(builtins.elem drv.pname nonHsPkgs);
-
- # splicedPkg returns null for those
- nonHsPkgs = [ "android-activity" ];
-
- attrName = drv:
- "${drv.pname}_${lib.replaceStrings ["."] ["_"] drv.version}";
-
- spliceDir = drv: let splicedDrv = splicedPkg drv; in
- if splicedDrv == null
- then throw "splicedDrv == null for drv = ${drv.pname}"
- else if splicedDrv.compiler == null
- then throw "spliceDrv.compiler == null"
- else "${splicedDrv}/lib/${splicedDrv.compiler.name}/${splicedDrv.name}";
-
- # Base steps for every preBuild phase
- preBuildBaseAttrs = drv:
- {
- preBuild = ''
- ${drv.preBuild or ""}
- echo "!!! has splices: ${if hasSplicedPkg drv then "yes" else "no"}"
- echo "!!! splices at: ${if hasSplicedPkg drv then spliceDir drv else "N/A"} !!!"
- '';
- };
- # Additional preBuilds steps if the compiler supports external plugins
- # E.g. GHC version > 8.6
- preBuildExternalPluginAttrs = drv: lib.optionalAttrs (hasSplicedPkg drv && isExternalPlugin)
- {
- preBuild = ''
- export EXTERNAL_SPLICES_LOAD=${spliceDir drv}
- '';
- };
-in {
+let
+ splicedPkg = drv:
+ if builtins.hasAttr drv.pname self.buildHaskellPackages
+ then builtins.getAttr drv.pname self.buildHaskellPackages
+ else if builtins.hasAttr (attrName drv) self.buildHaskellPackages
+ then builtins.getAttr (attrName drv) self.buildHaskellPackages
+ else throw "no spliced pkg for: ${drv.name}";
+
+ hasSplicedPkg = drv:
+ (builtins.hasAttr drv.pname self.buildHaskellPackages ||
+ builtins.hasAttr (attrName drv) self.buildHaskellPackages) &&
+ !(builtins.elem drv.pname nonHsPkgs);
+
+ # splicedPkg returns null for those
+ nonHsPkgs = [ "android-activity" ];
+
+ attrName = drv:
+ "${drv.pname}_${lib.replaceStrings ["."] ["_"] drv.version}";
+
+ spliceDir = drv:
+ let splicedDrv = splicedPkg drv; in
+ if splicedDrv == null
+ then throw "splicedDrv == null for drv = ${drv.pname}"
+ else if splicedDrv.compiler == null
+ then throw "spliceDrv.compiler == null"
+ else "${splicedDrv}/lib/${splicedDrv.compiler.name}/${splicedDrv.name}";
+
+ # Base steps for every preBuild phase
+ preBuildBaseAttrs = drv:
+ {
+ preBuild = ''
+ ${drv.preBuild or ""}
+ echo "!!! has splices: ${if hasSplicedPkg drv then "yes" else "no"}"
+ echo "!!! splices at: ${if hasSplicedPkg drv then spliceDir drv else "N/A"} !!!"
+ '';
+ };
+ # Additional preBuilds steps if the compiler supports external plugins
+ # E.g. GHC version > 8.6
+ preBuildExternalPluginAttrs = drv: lib.optionalAttrs (hasSplicedPkg drv && isExternalPlugin)
+ {
+ preBuild = ''
+ export EXTERNAL_SPLICES_LOAD=${spliceDir drv}
+ '';
+ };
+in
+{
buildHaskellPackages = splicedHaskellPackages;
# Add some flags to load splices from nativeHaskellPackages
mkDerivation = drv: super.mkDerivation (drv //
{
buildFlags = lib.optional (hasSplicedPkg drv && !isExternalPlugin) "--ghc-option=-load-splices=${spliceDir drv}"
- ++ (drv.buildFlags or []);
+ ++ (drv.buildFlags or [ ]);
preBuild = (preBuildBaseAttrs drv).preBuild + ((preBuildExternalPluginAttrs drv).preBuild or "");
});
}
diff --git a/haskell-overlays/splices-load-save/save-splices.nix b/haskell-overlays/splices-load-save/save-splices.nix
index 573eb86d3..4e4d64da0 100644
--- a/haskell-overlays/splices-load-save/save-splices.nix
+++ b/haskell-overlays/splices-load-save/save-splices.nix
@@ -21,13 +21,16 @@ let
export EXTERNAL_SPLICES_SAVE=$out$SPLICE_DIR
'';
};
-in self: super: {
- mkDerivation = attrs: let
- drv = super.mkDerivation (attrs // preConfigureAttrs attrs // preBuildAttrs attrs);
+in
+self: super: {
+ mkDerivation = attrs:
+ let
+ drv = super.mkDerivation (attrs // preConfigureAttrs attrs // preBuildAttrs attrs);
- SPLICE_DIR = "/lib/${drv.compiler.name}/${drv.name}";
+ SPLICE_DIR = "/lib/${drv.compiler.name}/${drv.name}";
- in ((drv.overrideAttrs (_: { inherit SPLICE_DIR; })) // { inherit SPLICE_DIR; });
+ in
+ ((drv.overrideAttrs (_: { inherit SPLICE_DIR; })) // { inherit SPLICE_DIR; });
vector-th-unbox = haskellLib.dontCheck super.vector-th-unbox;
lens = haskellLib.dontCheck super.lens;
diff --git a/haskell-overlays/text-jsstring-8.10/default.nix b/haskell-overlays/text-jsstring-8.10/default.nix
index 2c5b24144..c264f73c0 100644
--- a/haskell-overlays/text-jsstring-8.10/default.nix
+++ b/haskell-overlays/text-jsstring-8.10/default.nix
@@ -4,11 +4,10 @@ with lib;
with haskellLib;
self: super: {
- _dep = super._dep or {} // thunkSet ./dep // {
- };
+ _dep = super._dep or { } // thunkSet ./dep // { };
- attoparsec = dontCheck (self.callCabal2nix "attoparsec" self._dep.attoparsec {});
+ attoparsec = dontCheck (self.callCabal2nix "attoparsec" self._dep.attoparsec { });
buffer-builder = appendPatch super.buffer-builder ./buffer-builder-text-jsstring.patch;
- conduit-extra = (appendPatch super.conduit-extra ./conduit-extra-text-jsstring.patch);
+ conduit-extra = (appendPatch super.conduit-extra ./conduit-extra-text-jsstring.patch);
double-conversion = appendPatch super.double-conversion ./double-conversion-Add-text-jsstring.patch;
}
diff --git a/haskell-overlays/text-jsstring-8.10/dep/attoparsec/default.nix b/haskell-overlays/text-jsstring-8.10/dep/attoparsec/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/text-jsstring-8.10/dep/attoparsec/default.nix
+++ b/haskell-overlays/text-jsstring-8.10/dep/attoparsec/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/text-jsstring-8.10/dep/attoparsec/thunk.nix b/haskell-overlays/text-jsstring-8.10/dep/attoparsec/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/text-jsstring-8.10/dep/attoparsec/thunk.nix
+++ b/haskell-overlays/text-jsstring-8.10/dep/attoparsec/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/text-jsstring-8.6/default.nix b/haskell-overlays/text-jsstring-8.6/default.nix
index c38e4531e..58c6dc13f 100644
--- a/haskell-overlays/text-jsstring-8.6/default.nix
+++ b/haskell-overlays/text-jsstring-8.6/default.nix
@@ -4,10 +4,9 @@ with lib;
with haskellLib;
self: super: {
- _dep = super._dep or {} // thunkSet ./dep // {
- };
+ _dep = super._dep or { } // thunkSet ./dep // { };
- attoparsec = dontCheck (self.callCabal2nix "attoparsec" self._dep.attoparsec {});
+ attoparsec = dontCheck (self.callCabal2nix "attoparsec" self._dep.attoparsec { });
buffer-builder = overrideCabal super.buffer-builder (drv: {
doCheck = false;
src = fetchFromGitHub {
diff --git a/haskell-overlays/text-jsstring/default.nix b/haskell-overlays/text-jsstring/default.nix
index 747b40829..839f928a8 100644
--- a/haskell-overlays/text-jsstring/default.nix
+++ b/haskell-overlays/text-jsstring/default.nix
@@ -4,35 +4,34 @@ with lib;
with haskellLib;
self: super: {
- _dep = super._dep or {} // thunkSet ./dep // {
- };
+ _dep = super._dep or { } // thunkSet ./dep // { };
jsaddle = overrideCabal super.jsaddle (drv: {
- buildDepends = (drv.buildDepends or []) ++ [
+ buildDepends = (drv.buildDepends or [ ]) ++ [
self.ghcjs-base
self.ghcjs-prim
];
});
- aeson = dontCheck (self.callCabal2nix "aeson" self._dep.aeson {});
- attoparsec = dontCheck (self.callCabal2nix "attoparsec" self._dep.attoparsec {});
- hashable = overrideCabal (self.callCabal2nix "hashable" self._dep.hashable {}) (drv: {
+ aeson = dontCheck (self.callCabal2nix "aeson" self._dep.aeson { });
+ attoparsec = dontCheck (self.callCabal2nix "attoparsec" self._dep.attoparsec { });
+ hashable = overrideCabal (self.callCabal2nix "hashable" self._dep.hashable { }) (drv: {
revision = null;
editedCabalFile = null;
jailbreak = true;
doCheck = false;
- libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [
+ libraryHaskellDepends = (drv.libraryHaskellDepends or [ ]) ++ [
self.text
];
- patches = (drv.patches or []) ++ [
+ patches = (drv.patches or [ ]) ++ [
./hashable.patch
];
});
say = overrideCabal super.say (drv: {
- patches = (drv.patches or []) ++ [
+ patches = (drv.patches or [ ]) ++ [
./say.patch
];
- buildDepends = (drv.buildDepends or []) ++ [
+ buildDepends = (drv.buildDepends or [ ]) ++ [
self.ghcjs-base
];
});
diff --git a/haskell-overlays/text-jsstring/dep/aeson/default.nix b/haskell-overlays/text-jsstring/dep/aeson/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/text-jsstring/dep/aeson/default.nix
+++ b/haskell-overlays/text-jsstring/dep/aeson/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/text-jsstring/dep/aeson/thunk.nix b/haskell-overlays/text-jsstring/dep/aeson/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/text-jsstring/dep/aeson/thunk.nix
+++ b/haskell-overlays/text-jsstring/dep/aeson/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/text-jsstring/dep/hashable/default.nix b/haskell-overlays/text-jsstring/dep/hashable/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/haskell-overlays/text-jsstring/dep/hashable/default.nix
+++ b/haskell-overlays/text-jsstring/dep/hashable/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/haskell-overlays/text-jsstring/dep/hashable/thunk.nix b/haskell-overlays/text-jsstring/dep/hashable/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/haskell-overlays/text-jsstring/dep/hashable/thunk.nix
+++ b/haskell-overlays/text-jsstring/dep/hashable/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/haskell-overlays/untriaged.nix b/haskell-overlays/untriaged.nix
index 64deece4a..ae9936a4d 100644
--- a/haskell-overlays/untriaged.nix
+++ b/haskell-overlays/untriaged.nix
@@ -8,7 +8,7 @@ with haskellLib;
self: super: {
# Need an older version for GHC 8.6
- haddock-api = dontHaddock (doJailbreak (self.callHackage "haddock-api" "2.22.0" {}));
+ haddock-api = dontHaddock (doJailbreak (self.callHackage "haddock-api" "2.22.0" { }));
# TODO this conflicts with the pandoc version
# haddock-library = doJailbreak (self.callHackage "haddock-library" "1.7.0" {});
@@ -21,40 +21,40 @@ self: super: {
scientific = dontCheck super.scientific;
# pandoc 2.16 and dependencies
- pandoc = self.callHackage "pandoc" "2.16.2" {};
- citeproc = self.callHackage "citeproc" "0.6" {};
- hslua-marshalling = self.callHackage "hslua-marshalling" "2.0.1" {};
- hslua-module-path = self.callHackage "hslua-module-path" "1.0.0" {};
- hslua-module-version = self.callHackage "hslua-module-version" "1.0.0" {};
- lpeg = self.callHackage "lpeg" "1.0.1" {};
- tasty-bench = self.callHackage "tasty-bench" "0.3.1" {};
- unicode-collation = self.callHackage "unicode-collation" "0.1.3.1" {};
+ pandoc = self.callHackage "pandoc" "2.16.2" { };
+ citeproc = self.callHackage "citeproc" "0.6" { };
+ hslua-marshalling = self.callHackage "hslua-marshalling" "2.0.1" { };
+ hslua-module-path = self.callHackage "hslua-module-path" "1.0.0" { };
+ hslua-module-version = self.callHackage "hslua-module-version" "1.0.0" { };
+ lpeg = self.callHackage "lpeg" "1.0.1" { };
+ tasty-bench = self.callHackage "tasty-bench" "0.3.1" { };
+ unicode-collation = self.callHackage "unicode-collation" "0.1.3.1" { };
# beam packages
- beam-core = self.callHackage "beam-core" "0.9.1.0" {};
- beam-migrate = self.callHackage "beam-migrate" "0.5.1.0" {};
- beam-postgres = haskellLib.dontCheck (self.callHackage "beam-postgres" "0.5.1.0" {});
- beam-automigrate = self.callHackage "beam-automigrate" "0.1.2.0" {};
+ beam-core = self.callHackage "beam-core" "0.9.1.0" { };
+ beam-migrate = self.callHackage "beam-migrate" "0.5.1.0" { };
+ beam-postgres = haskellLib.dontCheck (self.callHackage "beam-postgres" "0.5.1.0" { });
+ beam-automigrate = self.callHackage "beam-automigrate" "0.1.2.0" { };
# hnix 0.12 and dependencies
hnix = dontCheck
- (overrideCabal (self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix) {}) (drv: {
- librarySystemDepends = (drv.librarySystemDepends or []) ++ [ nixpkgs.nix ];
- testHaskellDepends = (drv.testHaskellDepends or []) ++ [ nixpkgs.nix super.criterion ];
+ (overrideCabal (self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix) { }) (drv: {
+ librarySystemDepends = (drv.librarySystemDepends or [ ]) ++ [ nixpkgs.nix ];
+ testHaskellDepends = (drv.testHaskellDepends or [ ]) ++ [ nixpkgs.nix super.criterion ];
}));
hnix-store-core =
- self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix-store + "/hnix-store-core") {};
+ self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix-store + "/hnix-store-core") { };
hnix-store-remote =
- self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix-store + "/hnix-store-remote") {};
- # data-fix = self.callHackage "data-fix" "0.3.0" {};
- neat-interpolation = self.callHackage "neat-interpolation" "0.4" {};
- prettyprinter = self.callHackage "prettyprinter" "1.7.0" {};
+ self.callCabal2nix "hnix" (nixpkgs.hackGet ./hnix/hnix-store + "/hnix-store-remote") { };
+ # data-fix = self.callHackage "data-fix" "0.3.0" {};
+ neat-interpolation = self.callHackage "neat-interpolation" "0.4" { };
+ prettyprinter = self.callHackage "prettyprinter" "1.7.0" { };
cryptohash-sha512 = doJailbreak super.cryptohash-sha512;
- ListLike = self.callHackage "ListLike" "4.7.3" {};
+ ListLike = self.callHackage "ListLike" "4.7.3" { };
# ghcjs-promise is marked broken in nixpkgs
- ghcjs-promise = self.callHackage "ghcjs-promise" "0.1.0.3" {};
+ ghcjs-promise = self.callHackage "ghcjs-promise" "0.1.0.3" { };
- utf8-string = self.callHackage "utf8-string" "1.0.1.1" {};
+ utf8-string = self.callHackage "utf8-string" "1.0.1.1" { };
}
diff --git a/ios/default.nix b/ios/default.nix
index 60d5777c3..8bf20b775 100644
--- a/ios/default.nix
+++ b/ios/default.nix
@@ -1,6 +1,7 @@
{ nixpkgs, ghc, withSimulator ? false }:
-{ #TODO
+{
+ #TODO
bundleName
, #TODO
@@ -32,14 +33,14 @@
#
# Requires the associated domains application service to be enabled for this
# App ID in your Apple developer account.
- hosts ? []
+ hosts ? [ ]
-# Function taking set of plist keys-value pairs and returns a new set with changes applied.
-#
-# For example: (super: super // { AnotherKey: "value"; })
+ # Function taking set of plist keys-value pairs and returns a new set with changes applied.
+ #
+ # For example: (super: super // { AnotherKey: "value"; })
, overrideInfoPlist ? (super: super)
-# REMOVED
+ # REMOVED
, extraInfoPlistContent ? null
}:
let
@@ -101,265 +102,270 @@ let
NSCameraUsageDescription = "Allow access to camera.";
};
- infoPlistData = if extraInfoPlistContent == null
+ infoPlistData =
+ if extraInfoPlistContent == null
then overrideInfoPlist defaultInfoPlist
- else abort ''
- `extraInfoPlistContent` has been removed. Instead use `overrideInfoPlist` to provide an override function that modifies the default info.plist data as a nix attrset. For example: `(x: x // {NSCameraUsageDescription = "We need your camera.";})`
- '';
+ else
+ abort ''
+ `extraInfoPlistContent` has been removed. Instead use `overrideInfoPlist` to provide an override function that modifies the default info.plist data as a nix attrset. For example: `(x: x // {NSCameraUsageDescription = "We need your camera.";})`
+ '';
exePath = package ghc;
in
-nixpkgs.runCommand "${executableName}-app" (rec {
- infoPlist = builtins.toFile "Info.plist" (nixpkgs.lib.generators.toPlist {} infoPlistData);
- indexHtml = builtins.toFile "index.html" ''
-
-
-
-
-
-
- '';
- xcent = builtins.toFile "xcent" (nixpkgs.lib.generators.toPlist {} {
- application-identifier = ".${bundleIdentifier}";
- "com.apple.developer.team-identifier" = "";
- get-task-allow = true;
- keychain-access-groups = [ ".${bundleIdentifier}" ];
- aps-environment = apsEnv;
- "com.apple.developer.associated-domains" =
- if hosts == [] then null else map (host: "applinks:${host}") hosts;
- });
- deployScript = nixpkgs.writeText "deploy" ''
- #!/usr/bin/env bash
- set -eo pipefail
-
- if [ "$#" -ne 1 ]; then
- echo "Usage: $0 [TEAM_ID]" >&2
- exit 1
- fi
-
- TEAM_ID=$1
- shift
-
- set -euo pipefail
-
- function cleanup {
- if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
- echo "Cleaning up tmpdir" >&2
- chmod -R +w $tmpdir
- rm -fR $tmpdir
+nixpkgs.runCommand "${executableName}-app"
+ (rec {
+ infoPlist = builtins.toFile "Info.plist" (nixpkgs.lib.generators.toPlist { } infoPlistData);
+ indexHtml = builtins.toFile "index.html" ''
+
+
+
+
+
+
+ '';
+ xcent = builtins.toFile "xcent" (nixpkgs.lib.generators.toPlist { } {
+ application-identifier = ".${bundleIdentifier}";
+ "com.apple.developer.team-identifier" = "";
+ get-task-allow = true;
+ keychain-access-groups = [ ".${bundleIdentifier}" ];
+ aps-environment = apsEnv;
+ "com.apple.developer.associated-domains" =
+ if hosts == [ ] then null else map (host: "applinks:${host}") hosts;
+ });
+ deployScript = nixpkgs.writeText "deploy" ''
+ #!/usr/bin/env bash
+ set -eo pipefail
+
+ if [ "$#" -ne 1 ]; then
+ echo "Usage: $0 [TEAM_ID]" >&2
+ exit 1
fi
- }
-
- trap cleanup EXIT
-
- tmpdir=$(mktemp -d)
- # Find the signer given the OU
- signer=$({ security find-certificate -c 'iPhone Developer' -a; security find-certificate -c 'Apple Development' -a; } \
- | grep '^ "alis"="' \
- | sed 's| "alis"="\(.*\)"$|\1|' \
- | while read c; do \
- security find-certificate -c "$c" -p \
- | ${nixpkgs.libressl}/bin/openssl x509 -subject -noout; \
- done \
- | grep "OU[[:space:]]\?=[[:space:]]\?$TEAM_ID" \
- | sed 's|subject= /UID=[^/]*/CN=\([^/]*\).*|\1|' \
- | head -n 1 || true)
-
- if [ -z "$signer" ]; then
- echo "Error: No iPhone Developer certificate found for team id $TEAM_ID" >&2
- exit 1
- fi
-
- mkdir -p $tmpdir
- cp -LR "$(dirname $0)/../${executableName}.app" $tmpdir
- chmod -R +w "$tmpdir/${executableName}.app"
- mkdir -p "$tmpdir/${executableName}.app/config"
- sed "s||$TEAM_ID|" < "${xcent}" > $tmpdir/xcent
- /usr/bin/codesign --force --sign "$signer" --entitlements $tmpdir/xcent --timestamp=none "$tmpdir/${executableName}.app"
-
- deploy="''${IOS_DEPLOY:-${nixpkgs.darwin.ios-deploy}/bin/ios-deploy}"
- $deploy -W -b "$tmpdir/${executableName}.app" "$@"
- '';
- packageScript = nixpkgs.writeText "package" ''
- #!/usr/bin/env bash
- set -eo pipefail
-
- if [ "$#" -lt 3 ]; then
- echo "Usage: $0 [TEAM_ID] [IPA_DESTINATION] [EMBEDDED_PROVISIONING_PROFILE]" >&2
- exit 1
- fi
-
- TEAM_ID=$1
- shift
- IPA_DESTINATION=$1
- shift
- EMBEDDED_PROVISIONING_PROFILE=$1
- shift
-
- set -euo pipefail
-
- function cleanup {
- if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
- echo "Cleaning up tmpdir" >&2
- chmod -R +w $tmpdir
- rm -fR $tmpdir
+
+ TEAM_ID=$1
+ shift
+
+ set -euo pipefail
+
+ function cleanup {
+ if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
+ echo "Cleaning up tmpdir" >&2
+ chmod -R +w $tmpdir
+ rm -fR $tmpdir
+ fi
+ }
+
+ trap cleanup EXIT
+
+ tmpdir=$(mktemp -d)
+ # Find the signer given the OU
+ signer=$({ security find-certificate -c 'iPhone Developer' -a; security find-certificate -c 'Apple Development' -a; } \
+ | grep '^ "alis"="' \
+ | sed 's| "alis"="\(.*\)"$|\1|' \
+ | while read c; do \
+ security find-certificate -c "$c" -p \
+ | ${nixpkgs.libressl}/bin/openssl x509 -subject -noout; \
+ done \
+ | grep "OU[[:space:]]\?=[[:space:]]\?$TEAM_ID" \
+ | sed 's|subject= /UID=[^/]*/CN=\([^/]*\).*|\1|' \
+ | head -n 1 || true)
+
+ if [ -z "$signer" ]; then
+ echo "Error: No iPhone Developer certificate found for team id $TEAM_ID" >&2
+ exit 1
fi
- }
-
- trap cleanup EXIT
-
- tmpdir=$(mktemp -d)
- # Find the signer given the OU
- signer=$(security find-certificate -c "iPhone Distribution" -a \
- | grep '^ "alis"="' \
- | sed 's| "alis"="\(.*\)"$|\1|' \
- | while read c; do \
- security find-certificate -c "$c" -p \
- | ${nixpkgs.libressl}/bin/openssl x509 -subject -noout; \
- done \
- | grep "OU[[:space:]]\?=[[:space:]]\?$TEAM_ID" \
- | sed 's|subject= /UID=[^/]*/CN=\([^/]*\).*|\1|' \
- | head -n 1)
-
- if [ -z "$signer" ]; then
- echo "Error: No iPhone Distribution certificate found for team id $TEAM_ID" >&2
- exit 1
- fi
-
- mkdir -p $tmpdir
- cp -LR "$(dirname $0)/../${executableName}.app" $tmpdir
- chmod -R +w "$tmpdir/${executableName}.app"
- strip "$tmpdir/${executableName}.app/${executableName}"
- mkdir -p "$tmpdir/${executableName}.app/config"
- sed "s||$TEAM_ID|" < "${xcent}" > $tmpdir/xcent
- /usr/bin/codesign --force --sign "$signer" --entitlements $tmpdir/xcent --timestamp=none "$tmpdir/${executableName}.app"
-
- /usr/bin/xcrun -sdk iphoneos ${./PackageApplication} -v "$tmpdir/${executableName}.app" -o "$IPA_DESTINATION" --sign "$signer" --embed "$EMBEDDED_PROVISIONING_PROFILE"
-
- altool=/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool
-
- if ! [ -x "$altool" ]; then
- altool=/Applications/Xcode.app/Contents/Developer/usr/bin/altool
- fi
-
- "$altool" --validate-app -f "$IPA_DESTINATION" -t ios "$@"
- '';
- runInSim = builtins.toFile "run-in-sim" ''
- #!/usr/bin/env bash
-
- if [ "$#" -ne 0 ]; then
- echo "Usage: $0" >&2
- exit 1
- fi
-
- set -euo pipefail
-
- function cleanup {
- if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
- echo "Cleaning up tmpdir" >&2
- chmod -R +w $tmpdir
- rm -fR $tmpdir
+
+ mkdir -p $tmpdir
+ cp -LR "$(dirname $0)/../${executableName}.app" $tmpdir
+ chmod -R +w "$tmpdir/${executableName}.app"
+ mkdir -p "$tmpdir/${executableName}.app/config"
+ sed "s||$TEAM_ID|" < "${xcent}" > $tmpdir/xcent
+ /usr/bin/codesign --force --sign "$signer" --entitlements $tmpdir/xcent --timestamp=none "$tmpdir/${executableName}.app"
+
+ deploy="''${IOS_DEPLOY:-${nixpkgs.darwin.ios-deploy}/bin/ios-deploy}"
+ $deploy -W -b "$tmpdir/${executableName}.app" "$@"
+ '';
+ packageScript = nixpkgs.writeText "package" ''
+ #!/usr/bin/env bash
+ set -eo pipefail
+
+ if [ "$#" -lt 3 ]; then
+ echo "Usage: $0 [TEAM_ID] [IPA_DESTINATION] [EMBEDDED_PROVISIONING_PROFILE]" >&2
+ exit 1
fi
- }
- trap cleanup EXIT
+ TEAM_ID=$1
+ shift
+ IPA_DESTINATION=$1
+ shift
+ EMBEDDED_PROVISIONING_PROFILE=$1
+ shift
+
+ set -euo pipefail
+
+ function cleanup {
+ if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
+ echo "Cleaning up tmpdir" >&2
+ chmod -R +w $tmpdir
+ rm -fR $tmpdir
+ fi
+ }
+
+ trap cleanup EXIT
+
+ tmpdir=$(mktemp -d)
+ # Find the signer given the OU
+ signer=$(security find-certificate -c "iPhone Distribution" -a \
+ | grep '^ "alis"="' \
+ | sed 's| "alis"="\(.*\)"$|\1|' \
+ | while read c; do \
+ security find-certificate -c "$c" -p \
+ | ${nixpkgs.libressl}/bin/openssl x509 -subject -noout; \
+ done \
+ | grep "OU[[:space:]]\?=[[:space:]]\?$TEAM_ID" \
+ | sed 's|subject= /UID=[^/]*/CN=\([^/]*\).*|\1|' \
+ | head -n 1)
+
+ if [ -z "$signer" ]; then
+ echo "Error: No iPhone Distribution certificate found for team id $TEAM_ID" >&2
+ exit 1
+ fi
- tmpdir=$(mktemp -d)
+ mkdir -p $tmpdir
+ cp -LR "$(dirname $0)/../${executableName}.app" $tmpdir
+ chmod -R +w "$tmpdir/${executableName}.app"
+ strip "$tmpdir/${executableName}.app/${executableName}"
+ mkdir -p "$tmpdir/${executableName}.app/config"
+ sed "s||$TEAM_ID|" < "${xcent}" > $tmpdir/xcent
+ /usr/bin/codesign --force --sign "$signer" --entitlements $tmpdir/xcent --timestamp=none "$tmpdir/${executableName}.app"
- mkdir -p $tmpdir
- cp -LR "$(dirname $0)/../${executableName}.app" $tmpdir
- chmod -R +w "$tmpdir/${executableName}.app"
- mkdir -p "$tmpdir/${executableName}.app/config"
- ${../scripts/run-in-ios-sim} "$tmpdir/${executableName}.app" "${bundleIdentifier}"
- '';
- portableDeployScript = nixpkgs.writeText "make-portable-deploy" ''
- #!/usr/bin/env bash
- set -eo pipefail
+ /usr/bin/xcrun -sdk iphoneos ${./PackageApplication} -v "$tmpdir/${executableName}.app" -o "$IPA_DESTINATION" --sign "$signer" --embed "$EMBEDDED_PROVISIONING_PROFILE"
- if [ "$#" -ne 1 ]; then
- echo "Usage: $0 [TEAM_ID]" >&2
- exit 1
- fi
+ altool=/Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool
- TEAM_ID=$1
- shift
+ if ! [ -x "$altool" ]; then
+ altool=/Applications/Xcode.app/Contents/Developer/usr/bin/altool
+ fi
- set -euo pipefail
+ "$altool" --validate-app -f "$IPA_DESTINATION" -t ios "$@"
+ '';
+ runInSim = builtins.toFile "run-in-sim" ''
+ #!/usr/bin/env bash
- function cleanup {
- if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
- echo "Cleaning up tmpdir" >&2
- chmod -R +w $tmpdir
- rm -fR $tmpdir
+ if [ "$#" -ne 0 ]; then
+ echo "Usage: $0" >&2
+ exit 1
fi
- }
-
- trap cleanup EXIT
-
- tmpdir=$(mktemp -d)
- # Find the signer given the OU
- signer=$({ security find-certificate -c 'iPhone Developer' -a; security find-certificate -c 'Apple Development' -a; } \
- | grep '^ "alis"="' \
- | sed 's| "alis"="\(.*\)"$|\1|' \
- | while read c; do \
- security find-certificate -c "$c" -p \
- | ${nixpkgs.libressl}/bin/openssl x509 -subject -noout; \
- done \
- | grep "OU[[:space:]]\?=[[:space:]]\?$TEAM_ID" \
- | sed 's|subject= /UID=[^/]*/CN=\([^/]*\).*|\1|' \
- | head -n 1 || true)
-
- if [ -z "$signer" ]; then
- echo "Error: No iPhone Developer certificate found for team id $TEAM_ID" >&2
- exit 1
- fi
-
- dir="$tmpdir/${executableName}-${bundleVersion}"
- mkdir $dir
-
- cp -LR "$(dirname $0)/../${executableName}.app" $dir
- chmod -R +w "$dir/${executableName}.app"
- mkdir -p "$dir/${executableName}.app/config"
- sed "s||$TEAM_ID|" < "${xcent}" > $dir/xcent
- /usr/bin/codesign --force --sign "$signer" --entitlements $dir/xcent --timestamp=none "$dir/${executableName}.app"
-
- # unsure if we can sign with same key as for iOS app, may need special permissions
- cp ${nixpkgs.darwin.ios-deploy}/bin/ios-deploy $dir/ios-deploy
- /usr/bin/codesign --force --sign "$signer" --timestamp=none "$dir/ios-deploy"
-
- cat >$dir/deploy <<'EOF'
-#!/usr/bin/env bash
-DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-"$DIR/ios-deploy" -W -b "$DIR/${executableName}.app" "$@"
-EOF
- chmod +x $dir/deploy
-
- dest=$PWD/${executableName}-${bundleVersion}.tar.gz
- (cd $tmpdir && tar cfz $dest ${executableName}-${bundleVersion}/)
-
- echo Created $dest.
- '';}) (''
- set -x
- mkdir -p "$out/${executableName}.app"
- ln -s "$infoPlist" "$out/${executableName}.app/Info.plist"
- ln -s "$indexHtml" "$out/${executableName}.app/index.html"
- mkdir -p "$out/bin"
- cp --no-preserve=mode "$deployScript" "$out/bin/deploy"
- chmod +x "$out/bin/deploy"
- cp --no-preserve=mode "$packageScript" "$out/bin/package"
- chmod +x "$out/bin/package"
-'' + nixpkgs.lib.optionalString withSimulator ''
- cp --no-preserve=mode "$runInSim" "$out/bin/run-in-sim"
- chmod +x "$out/bin/run-in-sim"
-'' + ''
- cp --no-preserve=mode "$portableDeployScript" "$out/bin/make-portable-deploy"
- chmod +x "$out/bin/make-portable-deploy"
- cp "${exePath}/bin/${executableName}" "$out/${executableName}.app/"
- cp -RL '${staticSrc}'/* "$out/${executableName}.app/"
- for icon in '${staticSrc}'/assets/Icon*.png '${staticSrc}'/assets/AppIcon*.png; do
- cp -RL "$icon" "$out/${executableName}.app/"
- done
- for splash in '${staticSrc}'/assets/Default*.png; do
- cp -RL "$splash" "$out/${executableName}.app/"
- done
- set +x
-'')
+
+ set -euo pipefail
+
+ function cleanup {
+ if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
+ echo "Cleaning up tmpdir" >&2
+ chmod -R +w $tmpdir
+ rm -fR $tmpdir
+ fi
+ }
+
+ trap cleanup EXIT
+
+ tmpdir=$(mktemp -d)
+
+ mkdir -p $tmpdir
+ cp -LR "$(dirname $0)/../${executableName}.app" $tmpdir
+ chmod -R +w "$tmpdir/${executableName}.app"
+ mkdir -p "$tmpdir/${executableName}.app/config"
+ ${../scripts/run-in-ios-sim} "$tmpdir/${executableName}.app" "${bundleIdentifier}"
+ '';
+ portableDeployScript = nixpkgs.writeText "make-portable-deploy" ''
+ #!/usr/bin/env bash
+ set -eo pipefail
+
+ if [ "$#" -ne 1 ]; then
+ echo "Usage: $0 [TEAM_ID]" >&2
+ exit 1
+ fi
+
+ TEAM_ID=$1
+ shift
+
+ set -euo pipefail
+
+ function cleanup {
+ if [ -n "$tmpdir" -a -d "$tmpdir" ]; then
+ echo "Cleaning up tmpdir" >&2
+ chmod -R +w $tmpdir
+ rm -fR $tmpdir
+ fi
+ }
+
+ trap cleanup EXIT
+
+ tmpdir=$(mktemp -d)
+ # Find the signer given the OU
+ signer=$({ security find-certificate -c 'iPhone Developer' -a; security find-certificate -c 'Apple Development' -a; } \
+ | grep '^ "alis"="' \
+ | sed 's| "alis"="\(.*\)"$|\1|' \
+ | while read c; do \
+ security find-certificate -c "$c" -p \
+ | ${nixpkgs.libressl}/bin/openssl x509 -subject -noout; \
+ done \
+ | grep "OU[[:space:]]\?=[[:space:]]\?$TEAM_ID" \
+ | sed 's|subject= /UID=[^/]*/CN=\([^/]*\).*|\1|' \
+ | head -n 1 || true)
+
+ if [ -z "$signer" ]; then
+ echo "Error: No iPhone Developer certificate found for team id $TEAM_ID" >&2
+ exit 1
+ fi
+
+ dir="$tmpdir/${executableName}-${bundleVersion}"
+ mkdir $dir
+
+ cp -LR "$(dirname $0)/../${executableName}.app" $dir
+ chmod -R +w "$dir/${executableName}.app"
+ mkdir -p "$dir/${executableName}.app/config"
+ sed "s||$TEAM_ID|" < "${xcent}" > $dir/xcent
+ /usr/bin/codesign --force --sign "$signer" --entitlements $dir/xcent --timestamp=none "$dir/${executableName}.app"
+
+ # unsure if we can sign with same key as for iOS app, may need special permissions
+ cp ${nixpkgs.darwin.ios-deploy}/bin/ios-deploy $dir/ios-deploy
+ /usr/bin/codesign --force --sign "$signer" --timestamp=none "$dir/ios-deploy"
+
+ cat >$dir/deploy <<'EOF'
+ #!/usr/bin/env bash
+ DIR="$( cd "$( dirname "''${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+ "$DIR/ios-deploy" -W -b "$DIR/${executableName}.app" "$@"
+ EOF
+ chmod +x $dir/deploy
+
+ dest=$PWD/${executableName}-${bundleVersion}.tar.gz
+ (cd $tmpdir && tar cfz $dest ${executableName}-${bundleVersion}/)
+
+ echo Created $dest.
+ '';
+ })
+ (''
+ set -x
+ mkdir -p "$out/${executableName}.app"
+ ln -s "$infoPlist" "$out/${executableName}.app/Info.plist"
+ ln -s "$indexHtml" "$out/${executableName}.app/index.html"
+ mkdir -p "$out/bin"
+ cp --no-preserve=mode "$deployScript" "$out/bin/deploy"
+ chmod +x "$out/bin/deploy"
+ cp --no-preserve=mode "$packageScript" "$out/bin/package"
+ chmod +x "$out/bin/package"
+ '' + nixpkgs.lib.optionalString withSimulator ''
+ cp --no-preserve=mode "$runInSim" "$out/bin/run-in-sim"
+ chmod +x "$out/bin/run-in-sim"
+ '' + ''
+ cp --no-preserve=mode "$portableDeployScript" "$out/bin/make-portable-deploy"
+ chmod +x "$out/bin/make-portable-deploy"
+ cp "${exePath}/bin/${executableName}" "$out/${executableName}.app/"
+ cp -RL '${staticSrc}'/* "$out/${executableName}.app/"
+ for icon in '${staticSrc}'/assets/Icon*.png '${staticSrc}'/assets/AppIcon*.png; do
+ cp -RL "$icon" "$out/${executableName}.app/"
+ done
+ for splash in '${staticSrc}'/assets/Default*.png; do
+ cp -RL "$splash" "$out/${executableName}.app/"
+ done
+ set +x
+ '')
diff --git a/nix-utils/benchmark/default.nix b/nix-utils/benchmark/default.nix
index b6e689183..9b6cd8d99 100644
--- a/nix-utils/benchmark/default.nix
+++ b/nix-utils/benchmark/default.nix
@@ -1,84 +1,86 @@
{ reflex-platform ? import ../.. { hideDeprecated = true; } }:
-let pkgs = reflex-platform.nixpkgs;
- inherit (pkgs) nodejs;
- shellHook = linkNodeModulesHook + ''
- export PATH=node_modules/.bin:$PATH
- '';
- inherit (pkgs) fetchzip fetchFromGitHub;
- dep = reflex-platform.thunkSet ./dep;
- yarn2nix = import (dep.yarn2nix) { inherit pkgs; };
- inherit (yarn2nix) mkYarnPackage linkNodeModulesHook defaultYarnFlags;
- nodePkgs = {
- webdriver-ts = mkYarnPackage {
- name = "webdriver-ts";
- src = dep.js-framework-benchmark + /webdriver-ts;
- preInstall = "yarn --offline run build-prod";
- inherit shellHook;
- };
- webdriver-ts-results = mkYarnPackage {
- name = "webdriver-ts-results";
- src = dep.js-framework-benchmark + /webdriver-ts-results;
- preInstall = "yarn --offline run build-prod";
- inherit shellHook;
- };
- js-framework-benchmark = mkYarnPackage {
- name = "js-framework-benchmark";
- src = dep.js-framework-benchmark;
- inherit shellHook;
- };
+let
+ pkgs = reflex-platform.nixpkgs;
+ inherit (pkgs) nodejs;
+ shellHook = linkNodeModulesHook + ''
+ export PATH=node_modules/.bin:$PATH
+ '';
+ inherit (pkgs) fetchzip fetchFromGitHub;
+ dep = reflex-platform.thunkSet ./dep;
+ yarn2nix = import (dep.yarn2nix) { inherit pkgs; };
+ inherit (yarn2nix) mkYarnPackage linkNodeModulesHook defaultYarnFlags;
+ nodePkgs = {
+ webdriver-ts = mkYarnPackage {
+ name = "webdriver-ts";
+ src = dep.js-framework-benchmark + /webdriver-ts;
+ preInstall = "yarn --offline run build-prod";
+ inherit shellHook;
};
- bin = pkgs.writeScript "benchmark.sh" ''
-#!/usr/bin/env bash
-set -euo pipefail
+ webdriver-ts-results = mkYarnPackage {
+ name = "webdriver-ts-results";
+ src = dep.js-framework-benchmark + /webdriver-ts-results;
+ preInstall = "yarn --offline run build-prod";
+ inherit shellHook;
+ };
+ js-framework-benchmark = mkYarnPackage {
+ name = "js-framework-benchmark";
+ src = dep.js-framework-benchmark;
+ inherit shellHook;
+ };
+ };
+ bin = pkgs.writeScript "benchmark.sh" ''
+ #!/usr/bin/env bash
+ set -euo pipefail
-exec 3>&1
-exec 1>&2
+ exec 3>&1
+ exec 1>&2
-PATH="${pkgs.yarn}/bin:${nodejs}/bin:${pkgs.chromedriver}/bin:${pkgs.chromium}/bin:${pkgs.coreutils}/bin:${pkgs.gnugrep}/bin:${pkgs.gnused}/bin"
-CHROME_BINARY="${if reflex-platform.system == "x86_64-darwin"
- then ""
- else ''--chromeBinary "${pkgs.chromium}/bin/chromium"''
-}"
-CHROMEDRIVER="${if reflex-platform.system == "x86_64-darwin"
- then ""
- else ''--chromeDriver "${pkgs.chromedriver}/bin/chromedriver"''
-}"
+ PATH="${pkgs.yarn}/bin:${nodejs}/bin:${pkgs.chromedriver}/bin:${pkgs.chromium}/bin:${pkgs.coreutils}/bin:${pkgs.gnugrep}/bin:${pkgs.gnused}/bin"
+ CHROME_BINARY="${if reflex-platform.system == "x86_64-darwin"
+ then ""
+ else ''--chromeBinary "${pkgs.chromium}/bin/chromium"''
+ }"
+ CHROMEDRIVER="${if reflex-platform.system == "x86_64-darwin"
+ then ""
+ else ''--chromeDriver "${pkgs.chromedriver}/bin/chromedriver"''
+ }"
-CLEAN=$(mktemp -d 2>/dev/null || mktemp -d -t 'clean') # This crazy workaround ensures that it will work on both Mac OS and Linux; see https://unix.stackexchange.com/questions/30091/fix-or-alternative-for-mktemp-in-os-x
-trap "rm -rf \"$CLEAN\"" EXIT
+ CLEAN=$(mktemp -d 2>/dev/null || mktemp -d -t 'clean') # This crazy workaround ensures that it will work on both Mac OS and Linux; see https://unix.stackexchange.com/questions/30091/fix-or-alternative-for-mktemp-in-os-x
+ trap "rm -rf \"$CLEAN\"" EXIT
-cd "$CLEAN"
+ cd "$CLEAN"
-cp -a "${dep.js-framework-benchmark}/"* .
-chmod -R +w .
+ cp -a "${dep.js-framework-benchmark}/"* .
+ chmod -R +w .
-ln -s ${nodePkgs.js-framework-benchmark.node_modules} .
-rm -r yarn.lock frameworks/keyed/vanillajs webdriver-ts-results
-ln -s ${nodePkgs.webdriver-ts-results}/node_modules/webdriver-ts-results .
+ ln -s ${nodePkgs.js-framework-benchmark.node_modules} .
+ rm -r yarn.lock frameworks/keyed/vanillajs webdriver-ts-results
+ ln -s ${nodePkgs.webdriver-ts-results}/node_modules/webdriver-ts-results .
-REFLEX_DOM_DIST=frameworks/keyed/reflex-dom/bundled-dist
-mkdir -p "$REFLEX_DOM_DIST"
-cp -a "${reflex-platform.ghcjs.reflex-dom}/bin/krausest.jsexe/"* "$REFLEX_DOM_DIST"
+ REFLEX_DOM_DIST=frameworks/keyed/reflex-dom/bundled-dist
+ mkdir -p "$REFLEX_DOM_DIST"
+ cp -a "${reflex-platform.ghcjs.reflex-dom}/bin/krausest.jsexe/"* "$REFLEX_DOM_DIST"
-yarn run start > server.out &
-SERVER_PID=$!
+ yarn run start > server.out &
+ SERVER_PID=$!
-# ensures that grep will block execution but tail won't
-# https://superuser.com/questions/270529/monitoring-a-file-until-a-string-is-found/900134#900134
-SERVER_PORT="$((tail -f -n0 server.out & ) | grep -m 1 '127.0.0.1' | sed -e 's/.*127.0.0.1://')"
+ # ensures that grep will block execution but tail won't
+ # https://superuser.com/questions/270529/monitoring-a-file-until-a-string-is-found/900134#900134
+ SERVER_PORT="$((tail -f -n0 server.out & ) | grep -m 1 '127.0.0.1' | sed -e 's/.*127.0.0.1://')"
-cd webdriver-ts
-ln -s "${nodePkgs.webdriver-ts.node_modules}" .
-ln -s "${nodePkgs.webdriver-ts}/node_modules/webdriver-ts/dist" .
+ cd webdriver-ts
+ ln -s "${nodePkgs.webdriver-ts.node_modules}" .
+ ln -s "${nodePkgs.webdriver-ts}/node_modules/webdriver-ts/dist" .
-yarn run selenium --framework reflex-dom-v0.4-keyed --count 1 --headless $CHROME_BINARY $CHROMEDRIVER --port $SERVER_PORT
+ yarn run selenium --framework reflex-dom-v0.4-keyed --count 1 --headless $CHROME_BINARY $CHROMEDRIVER --port $SERVER_PORT
-kill "$SERVER_PID"
+ kill "$SERVER_PID"
-exec 1>&3
+ exec 1>&3
-echo "[";
-paste -d ',' results/*;
-echo "]";
-'';
-in { inherit bin dep nodePkgs; }
+ echo "[";
+ paste -d ',' results/*;
+ echo "]";
+ '';
+in
+{ inherit bin dep nodePkgs; }
diff --git a/nix-utils/benchmark/dep/yarn2nix/default.nix b/nix-utils/benchmark/dep/yarn2nix/default.nix
index 7a0477867..8ef43d546 100644
--- a/nix-utils/benchmark/dep/yarn2nix/default.nix
+++ b/nix-utils/benchmark/dep/yarn2nix/default.nix
@@ -1,7 +1,8 @@
# DO NOT HAND-EDIT THIS FILE
-import ((import {}).fetchFromGitHub (
+import ((import { }).fetchFromGitHub (
let json = builtins.fromJSON (builtins.readFile ./github.json);
- in { inherit (json) owner repo rev sha256;
- private = json.private or false;
- }
+ in {
+ inherit (json) owner repo rev sha256;
+ private = json.private or false;
+ }
))
diff --git a/nix-utils/hackage/default.nix b/nix-utils/hackage/default.nix
index 01252b500..1335d1f19 100644
--- a/nix-utils/hackage/default.nix
+++ b/nix-utils/hackage/default.nix
@@ -6,10 +6,12 @@
rec {
attrsToList = s: map (name: { inherit name; value = builtins.getAttr name s; }) (builtins.attrNames s);
- mapSet = f: s: builtins.listToAttrs (map ({name, value}: {
- inherit name;
- value = f value;
- }) (attrsToList s));
+ mapSet = f: s: builtins.listToAttrs (map
+ ({ name, value }: {
+ inherit name;
+ value = f value;
+ })
+ (attrsToList s));
mkSdist = pkg: pkg.override (oldArgs: {
mkDerivation = drv: oldArgs.mkDerivation (drv // {
pname = drv.pname + "-sdist";
diff --git a/nix-utils/work-on-multi/default.nix b/nix-utils/work-on-multi/default.nix
index 4b796cc05..a58c9e12c 100644
--- a/nix-utils/work-on-multi/default.nix
+++ b/nix-utils/work-on-multi/default.nix
@@ -10,79 +10,80 @@ let
inherit (nixpkgs) lib;
in
-{ envFunc, packageNames, tools ? _: [], shellToolOverrides ? _: _: {} }:
+{ envFunc, packageNames, tools ? _: [ ], shellToolOverrides ? _: _: { } }:
let
inherit (builtins) listToAttrs filter attrValues all concatLists;
- combinableAttrs = p: [
- "buildDepends"
- "buildTools"
- "executableFrameworkDepends"
- "executableHaskellDepends"
- "executablePkgconfigDepends"
- "executableSystemDepends"
- "executableToolDepends"
- "extraLibraries"
- "libraryFrameworkDepends"
- "libraryHaskellDepends"
- "libraryPkgconfigDepends"
- "librarySystemDepends"
- "libraryToolDepends"
- "pkgconfigDepends"
- "setupHaskellDepends"
- ] ++ lib.optionals (p.doCheck or true) [
- "testDepends"
- "testFrameworkDepends"
- "testHaskellDepends"
- "testPkgconfigDepends"
- "testSystemDepends"
- "testToolDepends"
- ] ++ lib.optionals (p.doBenchmark or false) [
- "benchmarkDepends"
- "benchmarkFrameworkDepends"
- "benchmarkHaskellDepends"
- "benchmarkPkgconfigDepends"
- "benchmarkSystemDepends"
- "benchmarkToolDepends"
- ];
+ combinableAttrs = p: [
+ "buildDepends"
+ "buildTools"
+ "executableFrameworkDepends"
+ "executableHaskellDepends"
+ "executablePkgconfigDepends"
+ "executableSystemDepends"
+ "executableToolDepends"
+ "extraLibraries"
+ "libraryFrameworkDepends"
+ "libraryHaskellDepends"
+ "libraryPkgconfigDepends"
+ "librarySystemDepends"
+ "libraryToolDepends"
+ "pkgconfigDepends"
+ "setupHaskellDepends"
+ ] ++ lib.optionals (p.doCheck or true) [
+ "testDepends"
+ "testFrameworkDepends"
+ "testHaskellDepends"
+ "testPkgconfigDepends"
+ "testSystemDepends"
+ "testToolDepends"
+ ] ++ lib.optionals (p.doBenchmark or false) [
+ "benchmarkDepends"
+ "benchmarkFrameworkDepends"
+ "benchmarkHaskellDepends"
+ "benchmarkPkgconfigDepends"
+ "benchmarkSystemDepends"
+ "benchmarkToolDepends"
+ ];
- concatCombinableAttrs = haskellConfigs: lib.filterAttrs
- (n: v: v != [])
- (lib.zipAttrsWith (_: concatLists) (map
- (haskellConfig: lib.listToAttrs (map
- (name: {
- inherit name;
- value = haskellConfig.${name} or [];
- })
- (combinableAttrs haskellConfig)))
- haskellConfigs
- ));
+ concatCombinableAttrs = haskellConfigs: lib.filterAttrs
+ (n: v: v != [ ])
+ (lib.zipAttrsWith (_: concatLists) (map
+ (haskellConfig: lib.listToAttrs (map
+ (name: {
+ inherit name;
+ value = haskellConfig.${name} or [ ];
+ })
+ (combinableAttrs haskellConfig)))
+ haskellConfigs
+ ));
- getHaskellConfig = p: (overrideCabal p (args: {
- passthru = (args.passthru or {}) // {
- out = args;
- };
- })).out;
- notInTargetPackageSet = p: all (pname: (p.pname or "") != pname) packageNames;
- baseTools = generalDevTools' {};
- env = envFunc reflex-platform;
- overriddenTools = baseTools // shellToolOverrides env baseTools;
- depAttrs = lib.mapAttrs (_: v: filter notInTargetPackageSet v) (concatCombinableAttrs (concatLists [
- (map getHaskellConfig (lib.attrVals packageNames env))
- [{
- buildTools = [
- (nixpkgs.buildEnv {
- name = "build-tools-wrapper";
- paths = attrValues overriddenTools ++ tools env;
- pathsToLink = [ "/bin" ];
- extraOutputsToInstall = [ "bin" ];
- })
- overriddenTools.Cabal
- ];
- }]
- ]));
+ getHaskellConfig = p: (overrideCabal p (args: {
+ passthru = (args.passthru or { }) // {
+ out = args;
+ };
+ })).out;
+ notInTargetPackageSet = p: all (pname: (p.pname or "") != pname) packageNames;
+ baseTools = generalDevTools' { };
+ env = envFunc reflex-platform;
+ overriddenTools = baseTools // shellToolOverrides env baseTools;
+ depAttrs = lib.mapAttrs (_: v: filter notInTargetPackageSet v) (concatCombinableAttrs (concatLists [
+ (map getHaskellConfig (lib.attrVals packageNames env))
+ [{
+ buildTools = [
+ (nixpkgs.buildEnv {
+ name = "build-tools-wrapper";
+ paths = attrValues overriddenTools ++ tools env;
+ pathsToLink = [ "/bin" ];
+ extraOutputsToInstall = [ "bin" ];
+ })
+ overriddenTools.Cabal
+ ];
+ }]
+ ]));
-in (env.mkDerivation (depAttrs // {
+in
+(env.mkDerivation (depAttrs // {
pname = "work-on-multi--combined-pkg";
version = "0";
license = null;
diff --git a/nixpkgs-old-chromium/default.nix b/nixpkgs-old-chromium/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/nixpkgs-old-chromium/default.nix
+++ b/nixpkgs-old-chromium/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/nixpkgs-old-chromium/thunk.nix b/nixpkgs-old-chromium/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/nixpkgs-old-chromium/thunk.nix
+++ b/nixpkgs-old-chromium/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/nixpkgs-overlays/ghc.nix b/nixpkgs-overlays/ghc.nix
index 6816255ab..f1461b78e 100644
--- a/nixpkgs-overlays/ghc.nix
+++ b/nixpkgs-overlays/ghc.nix
@@ -2,6 +2,5 @@
self: super: {
# Apply custom patches to Haskell compilers
- haskell = super.haskell // {
- };
+ haskell = super.haskell // { };
}
diff --git a/nixpkgs-overlays/hack-get/default.nix b/nixpkgs-overlays/hack-get/default.nix
index ef0f0748c..49671ed8e 100644
--- a/nixpkgs-overlays/hack-get/default.nix
+++ b/nixpkgs-overlays/hack-get/default.nix
@@ -3,7 +3,7 @@
self:
{
- filterGit = builtins.filterSource (path: type: !(builtins.any (x: x == baseNameOf path) [".git" "tags" "TAGS" "dist"]));
+ filterGit = builtins.filterSource (path: type: !(builtins.any (x: x == baseNameOf path) [ ".git" "tags" "TAGS" "dist" ]));
# Retrieve source that is controlled by the hack-* scripts; it may be either a stub or a checked-out git repo
hackGet = p:
@@ -11,7 +11,7 @@ self:
contents = builtins.readDir p;
contentsMatch = { required, optional }:
- (let all = required // optional; in all // contents == all)
+ (let all = required // optional; in all // contents == all)
&& builtins.intersectAttrs required contents == required;
# Newer obelisk thunks include the feature of hackGet with a thunk.nix file in the thunk.
@@ -21,31 +21,35 @@ self:
required = { ${jsonFileName} = "regular"; "default.nix" = "regular"; "thunk.nix" = "regular"; };
optional = { ".attr-cache" = "directory"; };
};
- in builtins.any (n: contentsMatch (packed n)) [ "git.json" "github.json" ];
+ in
+ builtins.any (n: contentsMatch (packed n)) [ "git.json" "github.json" ];
filterArgs = x: removeAttrs x [ "branch" ];
- hasValidThunk = name: if builtins.pathExists (p + ("/" + name))
+ hasValidThunk = name:
+ if builtins.pathExists (p + ("/" + name))
then
- contentsMatch {
- required = { ${name} = "regular"; };
- optional = { "default.nix" = "regular"; ".attr-cache" = "directory"; };
- }
+ contentsMatch
+ {
+ required = { ${name} = "regular"; };
+ optional = { "default.nix" = "regular"; ".attr-cache" = "directory"; };
+ }
|| throw "Thunk at ${toString p} has files in addition to ${name} and optionally default.nix and .attr-cache. Remove either ${name} or those other files to continue (check for leftover .git too)."
else false;
in
- if isObeliskThunkWithThunkNix then import (p + /thunk.nix)
- else if hasValidThunk "git.json" then (
+ if isObeliskThunkWithThunkNix then import (p + /thunk.nix)
+ else if hasValidThunk "git.json" then
+ (
let gitArgs = filterArgs (builtins.fromJSON (builtins.readFile (p + "/git.json")));
in if builtins.elem "@" (lib.stringToCharacters gitArgs.url)
- then self.fetchgitPrivate gitArgs
- else self.fetchgit gitArgs
- )
- else if hasValidThunk "github.json" then
- self.fetchFromGitHub (filterArgs (builtins.fromJSON (builtins.readFile (p + "/github.json"))))
- else {
- name = baseNameOf p;
- outPath = self.filterGit p;
- };
+ then self.fetchgitPrivate gitArgs
+ else self.fetchgit gitArgs
+ )
+ else if hasValidThunk "github.json" then
+ self.fetchFromGitHub (filterArgs (builtins.fromJSON (builtins.readFile (p + "/github.json"))))
+ else {
+ name = baseNameOf p;
+ outPath = self.filterGit p;
+ };
# Make an attribute set of source derivations for a directory containing thunks:
thunkSet = dir: lib.mapAttrs (name: _: self.hackGet (dir + "/${name}")) (lib.filterAttrs (_: type: type == "directory" || type == "symlink") (builtins.readDir dir));
diff --git a/nixpkgs-overlays/mobile-ghc/default.nix b/nixpkgs-overlays/mobile-ghc/default.nix
index 8ce959a6b..d6ab9111d 100644
--- a/nixpkgs-overlays/mobile-ghc/default.nix
+++ b/nixpkgs-overlays/mobile-ghc/default.nix
@@ -1,25 +1,31 @@
{ lib }:
let
- versionWildcard = versionList: let
- versionListInc = lib.init versionList ++ [ (lib.last versionList + 1) ];
- bottom = lib.concatStringsSep "." (map toString versionList);
- top = lib.concatStringsSep "." (map toString versionListInc);
- in version: lib.versionOlder version top && lib.versionAtLeast version bottom;
-in self: super: {
+ versionWildcard = versionList:
+ let
+ versionListInc = lib.init versionList ++ [ (lib.last versionList + 1) ];
+ bottom = lib.concatStringsSep "." (map toString versionList);
+ top = lib.concatStringsSep "." (map toString versionListInc);
+ in
+ version: lib.versionOlder version top && lib.versionAtLeast version bottom;
+in
+self: super: {
haskell = super.haskell // {
- compiler = super.haskell.compiler // lib.mapAttrs (n: v: v.overrideAttrs (drv: {
- patches = let
- isAndroid = self.stdenv.targetPlatform.useAndroidPrebuilt;
- isGhc86x = versionWildcard [ 8 6 ] v.version;
- in
- (drv.patches or []) ++
- lib.optionals isAndroid [
- ./8.6.y/android-patches/force-relocation.patch
- ] ++
- lib.optionals (isAndroid && isGhc86x) [
- ./8.6.y/android-patches/strict-align.patch
- ];
- })) { inherit (super.haskell.compiler) ghc8107 ghcSplices-8_10; };
+ compiler = super.haskell.compiler // lib.mapAttrs
+ (n: v: v.overrideAttrs (drv: {
+ patches =
+ let
+ isAndroid = self.stdenv.targetPlatform.useAndroidPrebuilt;
+ isGhc86x = versionWildcard [ 8 6 ] v.version;
+ in
+ (drv.patches or [ ]) ++
+ lib.optionals isAndroid [
+ ./8.6.y/android-patches/force-relocation.patch
+ ] ++
+ lib.optionals (isAndroid && isGhc86x) [
+ ./8.6.y/android-patches/strict-align.patch
+ ];
+ }))
+ { inherit (super.haskell.compiler) ghc8107 ghcSplices-8_10; };
};
}
diff --git a/nixpkgs/default.nix b/nixpkgs/default.nix
index 2b4d4ab11..9852e4312 100644
--- a/nixpkgs/default.nix
+++ b/nixpkgs/default.nix
@@ -1,2 +1,2 @@
# DO NOT HAND-EDIT THIS FILE
-import (import ./thunk.nix)
\ No newline at end of file
+import (import ./thunk.nix)
diff --git a/nixpkgs/thunk.nix b/nixpkgs/thunk.nix
index bbf2dc18f..b40203471 100644
--- a/nixpkgs/thunk.nix
+++ b/nixpkgs/thunk.nix
@@ -1,9 +1,14 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
json = builtins.fromJSON (builtins.readFile ./github.json);
-in fetch json
\ No newline at end of file
+in
+fetch json
diff --git a/packages.nix b/packages.nix
index f2e19ae0e..756b2764c 100644
--- a/packages.nix
+++ b/packages.nix
@@ -15,10 +15,10 @@ with haskellPackages;
##############################################################################
reflex-todomvc
-] else []) ++ (if platform == "ghc" then [
+] else [ ]) ++ (if platform == "ghc" then [
##############################################################################
# Add ghc-only packages here #
##############################################################################
reflex-todomvc
-] else []) ++ builtins.concatLists (map (x: (x.override { mkDerivation = drv: { out = (drv.buildDepends or []) ++ (drv.libraryHaskellDepends or []) ++ (drv.executableHaskellDepends or []); }; }).out) [ reflex reflex-dom reflex-todomvc ])
+] else [ ]) ++ builtins.concatLists (map (x: (x.override { mkDerivation = drv: { out = (drv.buildDepends or [ ]) ++ (drv.libraryHaskellDepends or [ ]) ++ (drv.executableHaskellDepends or [ ]); }; }).out) [ reflex reflex-dom reflex-todomvc ])
diff --git a/project/default.nix b/project/default.nix
index 26568a801..87446a0b9 100644
--- a/project/default.nix
+++ b/project/default.nix
@@ -8,45 +8,45 @@ let
in
# This function simplifies the definition of Haskell projects that
-# have multiple packages. It provides shells for incrementally working
-# on all your packages at once using `cabal.project` files, using any
-# version of GHC provided by `reflex-platform`, including GHCJS. It
-# also produces individual derivations for each package, which can
-# ease devops or integration with other Nix setups.
-#
-# Example:
-#
-# > default.nix
-#
-# (import ./reflex-platform {}).project ({ pkgs, ... }: {
-# packages = {
-# common = ./common;
-# backend = ./backend;
-# frontend = ./frontend;
-# };
-#
-# shells = {
-# ghc = ["common" "backend" "frontend"];
-# ghcjs = ["common" "frontend"];
-# };
-#
-# android.frontend = {
-# executableName = "frontend";
-# applicationId = "org.example.frontend";
-# displayName = "Example App";
-# };
-# })
-#
-# > example commands
-#
-# $ nix-build
-# $ nix-build -A ghc.backend
-# $ nix-build -A ghcjs.frontend
-# $ nix-build -A android.frontend
-#
-# $ nix-shell -A shells.ghc
-# $ nix-shell -A shells.ghcjs
-#
+ # have multiple packages. It provides shells for incrementally working
+ # on all your packages at once using `cabal.project` files, using any
+ # version of GHC provided by `reflex-platform`, including GHCJS. It
+ # also produces individual derivations for each package, which can
+ # ease devops or integration with other Nix setups.
+ #
+ # Example:
+ #
+ # > default.nix
+ #
+ # (import ./reflex-platform {}).project ({ pkgs, ... }: {
+ # packages = {
+ # common = ./common;
+ # backend = ./backend;
+ # frontend = ./frontend;
+ # };
+ #
+ # shells = {
+ # ghc = ["common" "backend" "frontend"];
+ # ghcjs = ["common" "frontend"];
+ # };
+ #
+ # android.frontend = {
+ # executableName = "frontend";
+ # applicationId = "org.example.frontend";
+ # displayName = "Example App";
+ # };
+ # })
+ #
+ # > example commands
+ #
+ # $ nix-build
+ # $ nix-build -A ghc.backend
+ # $ nix-build -A ghcjs.frontend
+ # $ nix-build -A android.frontend
+ #
+ # $ nix-shell -A shells.ghc
+ # $ nix-shell -A shells.ghcjs
+ #
{ name ? "reflex-project"
# An optional name for your entire project.
@@ -57,7 +57,7 @@ in
# cabal package name and values are the path to the source
# directory.
-, shells ? {}
+, shells ? { }
# :: { :: [PackageName] }
#
# The `shells` field defines which platforms we'd like to develop
@@ -69,7 +69,7 @@ in
# build all three packages in a shared incremental environment, for
# both GHC and GHCJS.
-, overrides ? _: _: {}
+, overrides ? _: _: { }
# :: PackageSet -> PackageSet -> { :: Derivation }
#
# A function for overriding Haskell packages. You can use
@@ -86,7 +86,7 @@ in
# }) {};
# };
-, shellToolOverrides ? _: _: {}
+, shellToolOverrides ? _: _: { }
# A function returning a record of tools to provide in the
# nix-shells.
#
@@ -108,7 +108,7 @@ in
# the same name in your record. They can be disabled by setting them
# to null.
-, tools ? _: []
+, tools ? _: [ ]
# An older, obsolete version of `shellToolOverrides`.
#
# tools = ghc: with ghc; [ hpack pkgs.chromium ];
@@ -120,7 +120,7 @@ in
, useWarp ? false
# Configure `reflex-dom` to use `jsaddle-warp`.
-, android ? {}
+, android ? { }
# ::
# { ::
# { executableName :: String
@@ -136,7 +136,7 @@ in
# argument can be set to use a different Haskell package than the
# one named .
-, ios ? {}
+, ios ? { }
# ::
# { ::
# { executableName :: String
@@ -151,14 +151,15 @@ in
# will be in `ios.`. The `package` argument can be set to
# use a different Haskell package than the one named .
-, passthru ? {}
+, passthru ? { }
}:
let
- overrides' = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: {}) [
- (self: super: mapAttrs (name: path: self.callCabal2nix name path {}) packages)
+ overrides' = nixpkgs.lib.foldr nixpkgs.lib.composeExtensions (_: _: { }) [
+ (self: super: mapAttrs (name: path: self.callCabal2nix name path { }) packages)
(self: super: {
- reflex-dom = if useWarp && (with self.ghc.stdenv; hostPlatform == targetPlatform) && !(self.ghc.isGhcjs or false)
+ reflex-dom =
+ if useWarp && (with self.ghc.stdenv; hostPlatform == targetPlatform) && !(self.ghc.isGhcjs or false)
then nixpkgs.haskell.lib.addBuildDepend (nixpkgs.haskell.lib.enableCabalFlag super.reflex-dom "use-warp") self.jsaddle-warp
else super.reflex-dom;
})
@@ -166,36 +167,50 @@ let
];
mkPkgSet = name: _: this.${name}.override { overrides = overrides'; };
prj = mapAttrs mkPkgSet shells // {
- shells = mapAttrs (name: pnames:
- workOnMulti {
- envFunc = _: prj.${name}.override { overrides = self: super: nixpkgs.lib.optionalAttrs withHoogle {
- ghcWithPackages = (super.ghcWithPackages.override { withHoogle = true; });
- }; };
- packageNames = pnames;
- inherit tools shellToolOverrides;
- }
- ) shells;
-
- android = if this.androidSupport
- then mapAttrs (name: config:
- let
- ghcAndroidAarch64 = this.ghcAndroidAarch64.override { overrides = overrides'; };
- ghcAndroidAarch32 = this.ghcAndroidAarch32.override { overrides = overrides'; };
- in (this.androidWithHaskellPackages { inherit ghcAndroidAarch64 ghcAndroidAarch32; }).buildApp
- ({ package = p: p.${name}; } // config)
- ) android
+ shells = mapAttrs
+ (name: pnames:
+ workOnMulti {
+ envFunc = _: prj.${name}.override {
+ overrides = self: super: nixpkgs.lib.optionalAttrs withHoogle {
+ ghcWithPackages = (super.ghcWithPackages.override { withHoogle = true; });
+ };
+ };
+ packageNames = pnames;
+ inherit tools shellToolOverrides;
+ }
+ )
+ shells;
+
+ android =
+ if this.androidSupport
+ then
+ mapAttrs
+ (name: config:
+ let
+ ghcAndroidAarch64 = this.ghcAndroidAarch64.override { overrides = overrides'; };
+ ghcAndroidAarch32 = this.ghcAndroidAarch32.override { overrides = overrides'; };
+ in
+ (this.androidWithHaskellPackages { inherit ghcAndroidAarch64 ghcAndroidAarch32; }).buildApp
+ ({ package = p: p.${name}; } // config)
+ )
+ android
else throw "Android builds are not supported on this platform.";
- ios = if this.iosSupport
- then mapAttrs (name: config:
- let ghcIosAarch64 = this.ghcIosAarch64.override { overrides = overrides'; };
- in (this.iosWithHaskellPackages ghcIosAarch64).buildApp
- ({ package = p: p.${name}; } // config)
- ) ios
+ ios =
+ if this.iosSupport
+ then
+ mapAttrs
+ (name: config:
+ let ghcIosAarch64 = this.ghcIosAarch64.override { overrides = overrides'; };
+ in (this.iosWithHaskellPackages ghcIosAarch64).buildApp
+ ({ package = p: p.${name}; } // config)
+ )
+ ios
else throw "iOS builds are not supported on this platform.";
reflex = this;
inherit passthru;
};
-in prj
+in
+prj
diff --git a/release.nix b/release.nix
index 670ae7172..c9566a74a 100644
--- a/release.nix
+++ b/release.nix
@@ -19,123 +19,135 @@ let
(crossPkgs: lib.optionals (crossPkgs != null) [
crossPkgs.buildPackages.haskellPackages.cabal2nix
]) [
- reflex-platform.nixpkgsCross.ios.aarch64
- reflex-platform.nixpkgsCross.android.aarch64
- reflex-platform.nixpkgsCross.android.aarch32
- ]
+ reflex-platform.nixpkgsCross.ios.aarch64
+ reflex-platform.nixpkgsCross.android.aarch64
+ reflex-platform.nixpkgsCross.android.aarch32
+ ]
);
drvListToAttrs = drvs:
lib.listToAttrs (map (drv: { inherit (drv) name; value = drv; }) drvs);
- perPlatform = lib.genAttrs cacheBuildSystems (system: let
- getRP = args: import ./. ((self-args // { inherit system; }) // args);
- reflex-platform = getRP {};
- reflex-platform-nojsstring = getRP { useTextJSString = false; };
+ perPlatform = lib.genAttrs cacheBuildSystems (system:
+ let
+ getRP = args: import ./. ((self-args // { inherit system; }) // args);
+ reflex-platform = getRP { };
+ reflex-platform-nojsstring = getRP { useTextJSString = false; };
- jsexeHydra = exe: exe.overrideAttrs (attrs: {
- postInstall = ''
- ${attrs.postInstall or ""}
- mkdir -p $out/nix-support
- echo $out/bin/reflex-todomvc.jsexe >> $out/nix-support/hydra-build-products
- '';
- });
+ jsexeHydra = exe: exe.overrideAttrs (attrs: {
+ postInstall = ''
+ ${attrs.postInstall or ""}
+ mkdir -p $out/nix-support
+ echo $out/bin/reflex-todomvc.jsexe >> $out/nix-support/hydra-build-products
+ '';
+ });
- # These don't work anymore, so they're pretty much disabled
- benchmark = import ./nix-utils/benchmark { inherit reflex-platform; };
- demoVM = import ./nix-utils/demo-vm { inherit reflex-platform; };
+ # These don't work anymore, so they're pretty much disabled
+ benchmark = import ./nix-utils/benchmark { inherit reflex-platform; };
+ demoVM = import ./nix-utils/demo-vm { inherit reflex-platform; };
- # TODO do we still need to do these to ensure srcs (only used at build time)
- # make it to the cache? If not, we can just drop this and all the `_dep`
- # attributes in the overlays.
+ # TODO do we still need to do these to ensure srcs (only used at build time)
+ # make it to the cache? If not, we can just drop this and all the `_dep`
+ # attributes in the overlays.
- dep = {}
- // (lib.optionalAttrs reflex-platform.androidSupport reflex-platform.ghcAndroidAarch64._dep)
- // reflex-platform.ghcjs8_6._dep
- // benchmark.dep
+ dep = { }
+ // (lib.optionalAttrs reflex-platform.androidSupport reflex-platform.ghcAndroidAarch64._dep)
+ // reflex-platform.ghcjs8_6._dep
+ // benchmark.dep
;
- skeleton-test = import ./tests/skeleton.nix { inherit reflex-platform; };
+ skeleton-test = import ./tests/skeleton.nix { inherit reflex-platform; };
- collect = v:
- if lib.isDerivation v then [v]
- else if lib.isAttrs v then lib.concatMap collect (builtins.attrValues v)
- else if lib.isList v then lib.concatMap collect v
- else [];
+ collect = v:
+ if lib.isDerivation v then [ v ]
+ else if lib.isAttrs v then lib.concatMap collect (builtins.attrValues v)
+ else if lib.isList v then lib.concatMap collect v
+ else [ ];
+
+ optDebugVariants = [
+ "unprofiled"
+ "profiled"
+ ];
+ perOptDebugVariant = lib.genAttrs optDebugVariants (variant:
+ let
+ reflex-platform = getRP { enableLibraryProfiling = variant == "profiled"; };
+ skeleton-test = import ./tests/skeleton.nix { inherit reflex-platform; };
+ otherDeps = getOtherDeps reflex-platform;
+ packages = {
+ # TODO uncomment this once GHCJS profiling builds are fixed
+ # tryReflexShell = reflex-platform.tryReflexShell;
+ ghc.ReflexTodomvc = reflex-platform.ghc.reflex-todomvc;
+ ghc8_6.reflexTodomvc = reflex-platform.ghc8_6.reflex-todomvc;
+ ghc8_10.reflexTodomvc = reflex-platform.ghc8_10.reflex-todomvc;
+ ghc.reflex-vty = reflex-platform.ghc.reflex-vty;
+ ghc.reflex-process = reflex-platform.ghc.reflex-process;
+ ghc.reflex-fsnotify = reflex-platform.ghc.reflex-fsnotify;
+ skeleton-test-ghc = skeleton-test.ghc;
+ } // lib.optionalAttrs (reflex-platform.androidSupport) {
+ inherit (reflex-platform) androidReflexTodomvc;
+ inherit (reflex-platform) androidReflexTodomvc-8_6;
+ inherit (reflex-platform) androidReflexTodomvc-8_10;
+ androidReflexTodomvc-release = reflex-platform.android.buildApp {
+ package = p: p.reflex-todomvc;
+ executableName = "reflex-todomvc";
+ applicationId = "org.reflexfrp.todomvc";
+ displayName = "Reflex TodoMVC";
+ isRelease = true;
+ };
+ skeleton-test-project-android = skeleton-test.project.android;
+ } // lib.optionalAttrs (reflex-platform.iosSupport) {
+ inherit (reflex-platform) iosReflexTodomvc;
+ inherit (reflex-platform) iosReflexTodomvc-8_6;
+ inherit (reflex-platform) iosReflexTodomvc-8_10;
+ inherit (reflex-platform) iosSimulatorReflexTodomvc;
+ skeleton-test-project-ios = skeleton-test.project.ios;
+ } // drvListToAttrs otherDeps
+ # TODO uncomment this once GHCJS profiling builds are fixed
+ # // drvListToAttrs (lib.filter lib.isDerivation reflex-platform.cachePackages)
+ ;
+ in
+ packages // {
+ cache = reflex-platform.pinBuildInputs "reflex-platform-${system}-${variant}"
+ (collect packages ++ otherDeps);
+ });
- optDebugVariants = [
- "unprofiled"
- "profiled"
- ];
- perOptDebugVariant = lib.genAttrs optDebugVariants (variant: let
- reflex-platform = getRP { enableLibraryProfiling = variant == "profiled"; };
- skeleton-test = import ./tests/skeleton.nix { inherit reflex-platform; };
- otherDeps = getOtherDeps reflex-platform;
packages = {
- # TODO uncomment this once GHCJS profiling builds are fixed
- # tryReflexShell = reflex-platform.tryReflexShell;
- ghc.ReflexTodomvc = reflex-platform.ghc.reflex-todomvc;
- ghc8_6.reflexTodomvc = reflex-platform.ghc8_6.reflex-todomvc;
- ghc8_10.reflexTodomvc = reflex-platform.ghc8_10.reflex-todomvc;
- ghc.reflex-vty = reflex-platform.ghc.reflex-vty;
- ghc.reflex-process = reflex-platform.ghc.reflex-process;
- ghc.reflex-fsnotify = reflex-platform.ghc.reflex-fsnotify;
- skeleton-test-ghc = skeleton-test.ghc;
- } // lib.optionalAttrs (reflex-platform.androidSupport) {
- inherit (reflex-platform) androidReflexTodomvc;
- inherit (reflex-platform) androidReflexTodomvc-8_6;
- inherit (reflex-platform) androidReflexTodomvc-8_10;
- androidReflexTodomvc-release = reflex-platform.android.buildApp {
- package = p: p.reflex-todomvc;
- executableName = "reflex-todomvc";
- applicationId = "org.reflexfrp.todomvc";
- displayName = "Reflex TodoMVC";
- isRelease = true;
+ inherit dep;
+ tryReflexShell = reflex-platform.tryReflexShell;
+ ghcjs.reflexTodomvc = jsexeHydra reflex-platform.ghcjs.reflex-todomvc;
+ # TODO Doesn't currently build. Removing from CI until fixed.
+ ghcjs8_6.reflexTodomvc = jsexeHydra reflex-platform.ghcjs8_6.reflex-todomvc;
+ ghcjs8_10.reflexTodomvc = jsexeHydra reflex-platform.ghcjs8_10.reflex-todomvc;
+ # TODO move back to `perOptDebugVariant`
+ skeleton-test-ghcjs = skeleton-test.ghcjs;
+ nojsstring = {
+ ghcjs.reflexTodomvc = reflex-platform-nojsstring.ghcjs.reflex-todomvc;
+ ghcjs8_6.reflexTodomvc = reflex-platform-nojsstring.ghcjs8_6.reflex-todomvc;
+ ghcjs8_10.reflexTodomvc = reflex-platform-nojsstring.ghcjs8_10.reflex-todomvc;
};
- skeleton-test-project-android = skeleton-test.project.android;
- } // lib.optionalAttrs (reflex-platform.iosSupport) {
- inherit (reflex-platform) iosReflexTodomvc;
- inherit (reflex-platform) iosReflexTodomvc-8_6;
- inherit (reflex-platform) iosReflexTodomvc-8_10;
- inherit (reflex-platform) iosSimulatorReflexTodomvc;
- skeleton-test-project-ios = skeleton-test.project.ios;
- } // drvListToAttrs otherDeps
- # TODO uncomment this once GHCJS profiling builds are fixed
- # // drvListToAttrs (lib.filter lib.isDerivation reflex-platform.cachePackages)
+ } // lib.optionalAttrs (system == "x86_64-linux") {
+ inherit
+ #benchmark
+ # demoVM # Skip for new due to rotted has in `breeze-icons`
+ ;
+ } # TODO move back to `perOptDebugVariant`
+ // drvListToAttrs (lib.filter lib.isDerivation reflex-platform.cachePackages)
;
- in packages // {
- cache = reflex-platform.pinBuildInputs "reflex-platform-${system}-${variant}"
- (collect packages ++ otherDeps);
+ in
+ packages // perOptDebugVariant // {
+ cache = reflex-platform.pinBuildInputs "reflex-platform-${system}"
+ (collect packages ++ map (a: a.cache) (builtins.attrValues perOptDebugVariant));
});
- packages = {
- inherit dep;
- tryReflexShell = reflex-platform.tryReflexShell;
- ghcjs.reflexTodomvc = jsexeHydra reflex-platform.ghcjs.reflex-todomvc;
- # TODO Doesn't currently build. Removing from CI until fixed.
- ghcjs8_6.reflexTodomvc = jsexeHydra reflex-platform.ghcjs8_6.reflex-todomvc;
- ghcjs8_10.reflexTodomvc = jsexeHydra reflex-platform.ghcjs8_10.reflex-todomvc;
- # TODO move back to `perOptDebugVariant`
- skeleton-test-ghcjs = skeleton-test.ghcjs;
- nojsstring = {
- ghcjs.reflexTodomvc = reflex-platform-nojsstring.ghcjs.reflex-todomvc;
- ghcjs8_6.reflexTodomvc = reflex-platform-nojsstring.ghcjs8_6.reflex-todomvc;
- ghcjs8_10.reflexTodomvc = reflex-platform-nojsstring.ghcjs8_10.reflex-todomvc;
- };
- } // lib.optionalAttrs (system == "x86_64-linux") {
- inherit
- #benchmark
- # demoVM # Skip for new due to rotted has in `breeze-icons`
- ;
- } # TODO move back to `perOptDebugVariant`
- // drvListToAttrs (lib.filter lib.isDerivation reflex-platform.cachePackages)
- ;
- in packages // perOptDebugVariant // {
- cache = reflex-platform.pinBuildInputs "reflex-platform-${system}"
- (collect packages ++ map (a: a.cache) (builtins.attrValues perOptDebugVariant));
- });
-
metaCache = local-self.pinBuildInputs "reflex-platform-everywhere"
(map (a: a.cache) (builtins.attrValues perPlatform));
-in perPlatform // { inherit metaCache; }
+in
+perPlatform // { inherit metaCache; } // {
+ fmt-nix = local-self.nixpkgs.runCommand "fmt-nix"
+ {
+ buildInputs = [ local-self.nixpkgs.nixpkgs-fmt ];
+ } ''
+ nixpkgs-fmt --check ${./.} 2>&1 | tee $out
+ '';
+}
diff --git a/tests/skeleton.nix b/tests/skeleton.nix
index efde6f121..34954ab41 100644
--- a/tests/skeleton.nix
+++ b/tests/skeleton.nix
@@ -18,7 +18,8 @@ let
mv ./dist-newstyle $out
'';
});
-in {
+in
+{
project = skeleton;
ghc = mkCabalProject {
shellDrv = skeleton.shells.ghc;
diff --git a/wasm-cross/default.nix b/wasm-cross/default.nix
index 0cf822e33..6e1de0153 100644
--- a/wasm-cross/default.nix
+++ b/wasm-cross/default.nix
@@ -1,8 +1,13 @@
# DO NOT HAND-EDIT THIS FILE
-let fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
- if !fetchSubmodules && !private then builtins.fetchTarball {
- url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
- } else (import {}).fetchFromGitHub {
- inherit owner repo rev sha256 fetchSubmodules private;
- };
-in import (fetch (builtins.fromJSON (builtins.readFile ./github.json)))
+let
+ fetch = { private ? false, fetchSubmodules ? false, owner, repo, rev, sha256, ... }:
+ if !fetchSubmodules && !private then
+ builtins.fetchTarball
+ {
+ url = "https://github.com/${owner}/${repo}/archive/${rev}.tar.gz"; inherit sha256;
+ } else
+ (import { }).fetchFromGitHub {
+ inherit owner repo rev sha256 fetchSubmodules private;
+ };
+in
+import (fetch (builtins.fromJSON (builtins.readFile ./github.json)))