From a759cc912f7997866e5d1ce966691e0b577b74be Mon Sep 17 00:00:00 2001 From: Raito Bezarius Date: Thu, 5 Sep 2024 16:57:52 +0200 Subject: [PATCH] chore(nix): nixify This does almost everything until the final build and fails there because we are using too modern software with a too old project, I think. Signed-off-by: Raito Bezarius --- {app => android/app}/build.gradle | 0 {app => android/app}/lint.xml | 0 .../app}/src/main/AndroidManifest.xml | 0 .../nl/eventinfra/wifisetup/WifiSetup.java | 0 .../src/main/res/drawable-hdpi/camp19logo.png | Bin .../src/main/res/drawable-hdpi/camp23logo.png | Bin .../main/res/drawable-hdpi/ccc34c3logo.png | Bin .../main/res/drawable-hdpi/ccc35c3logo.png | Bin .../src/main/res/drawable-hdpi/ccc36c3.png | Bin .../main/res/drawable-hdpi/ccc37c3logo.png | Bin .../src/main/res/drawable-hdpi/emflogo.png | Bin .../src/main/res/drawable-hdpi/emfmch2022.png | Bin .../app}/src/main/res/drawable-hdpi/icon.png | Bin .../app}/src/main/res/drawable-hdpi/logo.png | Bin .../src/main/res/drawable-hdpi/shalogo.png | Bin .../app}/src/main/res/drawable-ldpi/icon.png | Bin .../app}/src/main/res/drawable-mdpi/icon.png | Bin .../app}/src/main/res/drawable/rectangle.xml | 0 .../app}/src/main/res/layout/logon.xml | 0 .../app}/src/main/res/menu/options_menu.xml | 0 .../app}/src/main/res/raw/cacert.der | Bin .../app}/src/main/res/values/arrays.xml | 0 .../app}/src/main/res/values/strings.xml | 0 .../app}/src/main/res/xml/userpreferences.xml | 0 android/build.gradle | 29 + .../gradle}/wrapper/gradle-wrapper.jar | Bin .../gradle}/wrapper/gradle-wrapper.properties | 0 gradlew => android/gradlew | 0 .../import-summary.txt | 0 settings.gradle => android/settings.gradle | 0 build.gradle | 17 - nix/build.nix | 39 + nix/default.nix | 32 + nix/deps.json | 1158 +++++++++++++++++ nix/maven-repo.nix | 172 +++ nix/result | 1 + nix/update-locks.nix | 17 + npins/default.nix | 80 ++ npins/sources.json | 23 + wifisetup.iml | 19 - 40 files changed, 1551 insertions(+), 36 deletions(-) rename {app => android/app}/build.gradle (100%) rename {app => android/app}/lint.xml (100%) rename {app => android/app}/src/main/AndroidManifest.xml (100%) rename {app => android/app}/src/main/java/nl/eventinfra/wifisetup/WifiSetup.java (100%) rename {app => android/app}/src/main/res/drawable-hdpi/camp19logo.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/camp23logo.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/ccc34c3logo.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/ccc35c3logo.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/ccc36c3.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/ccc37c3logo.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/emflogo.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/emfmch2022.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/icon.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/logo.png (100%) rename {app => android/app}/src/main/res/drawable-hdpi/shalogo.png (100%) rename {app => android/app}/src/main/res/drawable-ldpi/icon.png (100%) rename {app => android/app}/src/main/res/drawable-mdpi/icon.png (100%) rename {app => android/app}/src/main/res/drawable/rectangle.xml (100%) rename {app => android/app}/src/main/res/layout/logon.xml (100%) rename {app => android/app}/src/main/res/menu/options_menu.xml (100%) rename {app => android/app}/src/main/res/raw/cacert.der (100%) rename {app => android/app}/src/main/res/values/arrays.xml (100%) rename {app => android/app}/src/main/res/values/strings.xml (100%) rename {app => android/app}/src/main/res/xml/userpreferences.xml (100%) create mode 100644 android/build.gradle rename {gradle => android/gradle}/wrapper/gradle-wrapper.jar (100%) rename {gradle => android/gradle}/wrapper/gradle-wrapper.properties (100%) rename gradlew => android/gradlew (100%) rename import-summary.txt => android/import-summary.txt (100%) rename settings.gradle => android/settings.gradle (100%) delete mode 100644 build.gradle create mode 100644 nix/build.nix create mode 100644 nix/default.nix create mode 100644 nix/deps.json create mode 100644 nix/maven-repo.nix create mode 120000 nix/result create mode 100644 nix/update-locks.nix create mode 100644 npins/default.nix create mode 100644 npins/sources.json delete mode 100644 wifisetup.iml diff --git a/app/build.gradle b/android/app/build.gradle similarity index 100% rename from app/build.gradle rename to android/app/build.gradle diff --git a/app/lint.xml b/android/app/lint.xml similarity index 100% rename from app/lint.xml rename to android/app/lint.xml diff --git a/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml similarity index 100% rename from app/src/main/AndroidManifest.xml rename to android/app/src/main/AndroidManifest.xml diff --git a/app/src/main/java/nl/eventinfra/wifisetup/WifiSetup.java b/android/app/src/main/java/nl/eventinfra/wifisetup/WifiSetup.java similarity index 100% rename from app/src/main/java/nl/eventinfra/wifisetup/WifiSetup.java rename to android/app/src/main/java/nl/eventinfra/wifisetup/WifiSetup.java diff --git a/app/src/main/res/drawable-hdpi/camp19logo.png b/android/app/src/main/res/drawable-hdpi/camp19logo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/camp19logo.png rename to android/app/src/main/res/drawable-hdpi/camp19logo.png diff --git a/app/src/main/res/drawable-hdpi/camp23logo.png b/android/app/src/main/res/drawable-hdpi/camp23logo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/camp23logo.png rename to android/app/src/main/res/drawable-hdpi/camp23logo.png diff --git a/app/src/main/res/drawable-hdpi/ccc34c3logo.png b/android/app/src/main/res/drawable-hdpi/ccc34c3logo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ccc34c3logo.png rename to android/app/src/main/res/drawable-hdpi/ccc34c3logo.png diff --git a/app/src/main/res/drawable-hdpi/ccc35c3logo.png b/android/app/src/main/res/drawable-hdpi/ccc35c3logo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ccc35c3logo.png rename to android/app/src/main/res/drawable-hdpi/ccc35c3logo.png diff --git a/app/src/main/res/drawable-hdpi/ccc36c3.png b/android/app/src/main/res/drawable-hdpi/ccc36c3.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ccc36c3.png rename to android/app/src/main/res/drawable-hdpi/ccc36c3.png diff --git a/app/src/main/res/drawable-hdpi/ccc37c3logo.png b/android/app/src/main/res/drawable-hdpi/ccc37c3logo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ccc37c3logo.png rename to android/app/src/main/res/drawable-hdpi/ccc37c3logo.png diff --git a/app/src/main/res/drawable-hdpi/emflogo.png b/android/app/src/main/res/drawable-hdpi/emflogo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/emflogo.png rename to android/app/src/main/res/drawable-hdpi/emflogo.png diff --git a/app/src/main/res/drawable-hdpi/emfmch2022.png b/android/app/src/main/res/drawable-hdpi/emfmch2022.png similarity index 100% rename from app/src/main/res/drawable-hdpi/emfmch2022.png rename to android/app/src/main/res/drawable-hdpi/emfmch2022.png diff --git a/app/src/main/res/drawable-hdpi/icon.png b/android/app/src/main/res/drawable-hdpi/icon.png similarity index 100% rename from app/src/main/res/drawable-hdpi/icon.png rename to android/app/src/main/res/drawable-hdpi/icon.png diff --git a/app/src/main/res/drawable-hdpi/logo.png b/android/app/src/main/res/drawable-hdpi/logo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/logo.png rename to android/app/src/main/res/drawable-hdpi/logo.png diff --git a/app/src/main/res/drawable-hdpi/shalogo.png b/android/app/src/main/res/drawable-hdpi/shalogo.png similarity index 100% rename from app/src/main/res/drawable-hdpi/shalogo.png rename to android/app/src/main/res/drawable-hdpi/shalogo.png diff --git a/app/src/main/res/drawable-ldpi/icon.png b/android/app/src/main/res/drawable-ldpi/icon.png similarity index 100% rename from app/src/main/res/drawable-ldpi/icon.png rename to android/app/src/main/res/drawable-ldpi/icon.png diff --git a/app/src/main/res/drawable-mdpi/icon.png b/android/app/src/main/res/drawable-mdpi/icon.png similarity index 100% rename from app/src/main/res/drawable-mdpi/icon.png rename to android/app/src/main/res/drawable-mdpi/icon.png diff --git a/app/src/main/res/drawable/rectangle.xml b/android/app/src/main/res/drawable/rectangle.xml similarity index 100% rename from app/src/main/res/drawable/rectangle.xml rename to android/app/src/main/res/drawable/rectangle.xml diff --git a/app/src/main/res/layout/logon.xml b/android/app/src/main/res/layout/logon.xml similarity index 100% rename from app/src/main/res/layout/logon.xml rename to android/app/src/main/res/layout/logon.xml diff --git a/app/src/main/res/menu/options_menu.xml b/android/app/src/main/res/menu/options_menu.xml similarity index 100% rename from app/src/main/res/menu/options_menu.xml rename to android/app/src/main/res/menu/options_menu.xml diff --git a/app/src/main/res/raw/cacert.der b/android/app/src/main/res/raw/cacert.der similarity index 100% rename from app/src/main/res/raw/cacert.der rename to android/app/src/main/res/raw/cacert.der diff --git a/app/src/main/res/values/arrays.xml b/android/app/src/main/res/values/arrays.xml similarity index 100% rename from app/src/main/res/values/arrays.xml rename to android/app/src/main/res/values/arrays.xml diff --git a/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml similarity index 100% rename from app/src/main/res/values/strings.xml rename to android/app/src/main/res/values/strings.xml diff --git a/app/src/main/res/xml/userpreferences.xml b/android/app/src/main/res/xml/userpreferences.xml similarity index 100% rename from app/src/main/res/xml/userpreferences.xml rename to android/app/src/main/res/xml/userpreferences.xml diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..0e36acc --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,29 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + if(project.hasProperty("nixMavenRepo")) { + repositories { + maven { url = nixMavenRepo } + } + } else { + repositories { + google() + jcenter() + } + } + dependencies { + classpath 'com.android.tools.build:gradle:3.5.2' + } +} + +allprojects { + if(project.hasProperty("nixMavenRepo")) { + repositories { + maven { url = nixMavenRepo } + } + } else { + repositories { + google() + jcenter() + } + } +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from gradle/wrapper/gradle-wrapper.jar rename to android/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from gradle/wrapper/gradle-wrapper.properties rename to android/gradle/wrapper/gradle-wrapper.properties diff --git a/gradlew b/android/gradlew similarity index 100% rename from gradlew rename to android/gradlew diff --git a/import-summary.txt b/android/import-summary.txt similarity index 100% rename from import-summary.txt rename to android/import-summary.txt diff --git a/settings.gradle b/android/settings.gradle similarity index 100% rename from settings.gradle rename to android/settings.gradle diff --git a/build.gradle b/build.gradle deleted file mode 100644 index c651082..0000000 --- a/build.gradle +++ /dev/null @@ -1,17 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - repositories { - google() - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:3.5.2' - } -} - -allprojects { - repositories { - google() - jcenter() - } -} diff --git a/nix/build.nix b/nix/build.nix new file mode 100644 index 0000000..e196bc8 --- /dev/null +++ b/nix/build.nix @@ -0,0 +1,39 @@ +{ lib +, stdenv +, jdk +, gradle +, mavenRepo +, androidSdk +}: + +stdenv.mkDerivation { + pname = "built-with-gradle"; + version = "0.0"; + + src = ../android; + + nativeBuildInputs = [ gradle ]; + + JDK_HOME = "${jdk.home}"; + ANDROID_SDK_ROOT = "${androidSdk}/share/android-sdk"; + + + buildPhase = '' + runHook preBuild + gradle build \ + --offline --no-daemon --no-build-cache --info --full-stacktrace \ + --warning-mode=all --parallel \ + -PnixMavenRepo=${mavenRepo} \ + -Dorg.gradle.project.android.aapt2FromMavenOverride=$ANDROID_SDK_ROOT/build-tools/30.0.3/aapt2 + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out + cp -r app/build/outputs/* $out + runHook postInstall + ''; + + dontStrip = true; +} diff --git a/nix/default.nix b/nix/default.nix new file mode 100644 index 0000000..5561cd0 --- /dev/null +++ b/nix/default.nix @@ -0,0 +1,32 @@ +{ sources ? import ../npins, pkgs ? import sources.nixpkgs {}, lib ? pkgs.lib, android ? import sources.android {} }: +let + androidSdk = android.sdk (sdkPkgs: with sdkPkgs; [ + cmdline-tools-latest + build-tools-30-0-3 + platform-tools + platforms-android-30 + emulator + ]); + +in lib.makeScope pkgs.newScope (self: with self; { + inherit androidSdk; + + gradle = pkgs.gradle_7; + + updateLocks = callPackage ./update-locks.nix { }; + + buildMavenRepo = callPackage ./maven-repo.nix { }; + + mavenRepo = buildMavenRepo { + name = "nix-maven-repo"; + repos = [ + "https://dl.google.com/dl/android/maven2" + "https://repo1.maven.org/maven2" + "https://maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" + "https://plugins.gradle.org/m2" + ]; + deps = builtins.fromJSON (builtins.readFile ./deps.json); + }; + + builtWithGradle = callPackage ./build.nix { }; +}) diff --git a/nix/deps.json b/nix/deps.json new file mode 100644 index 0000000..de9d933 --- /dev/null +++ b/nix/deps.json @@ -0,0 +1,1158 @@ +[ + { + "group": "androidx.databinding", + "name": "databinding-common", + "version": "3.5.2", + "artifacts": { + "databinding-common-3.5.2.jar": "dd93f1c8e81d39d550629659cb7b7938dab401767053173a74189d1c462f108e", + "databinding-common-3.5.2.pom": "bc37a0228311fb37cf7c90f760dbfbc4bf80be303419b00669fbeae764c37ccc" + } + }, + { + "group": "androidx.databinding", + "name": "databinding-compiler-common", + "version": "3.5.2", + "artifacts": { + "databinding-compiler-common-3.5.2.jar": "8b1ccde96f52e1a5913765b66c88bc43ff7aea3ccd27eecac6494f5a1afe9d5e", + "databinding-compiler-common-3.5.2.pom": "bb7d574cb955f8f74cc91e6165c6a89c35a24b9d6144445a37c96ba6ffff8f36" + } + }, + { + "group": "com.android.databinding", + "name": "baseLibrary", + "version": "3.5.2", + "artifacts": { + "baseLibrary-3.5.2.jar": "37e0e3c8fb2ed7db90513874fc69bd9ca2b33734eb190042fc19007c89bd4554", + "baseLibrary-3.5.2.pom": "05c99b4551fb8e6b0b65b438d66c395b723aaab44e648284a37180319b6cb515" + } + }, + { + "group": "com.android.tools", + "name": "annotations", + "version": "26.5.2", + "artifacts": { + "annotations-26.5.2.jar": "4ae1c1b353344920324c5fff2119700879140fa1028a4221c963e01ba0cb4098", + "annotations-26.5.2.pom": "1235249dd8f2ba32f1de7069231e042d4419f2d3f4b3b2139e8a3a3265797f9a" + } + }, + { + "group": "com.android.tools", + "name": "common", + "version": "26.5.2", + "artifacts": { + "common-26.5.2.jar": "fbc87a0ace8a7700623f9c476638a0a042a612496a9caee5fb6e03089ec89de5", + "common-26.5.2.pom": "0ffc8b4edfc914ebed7aff2cd5a062ed609e6c110bda251a593a986a2ddb50fe" + } + }, + { + "group": "com.android.tools", + "name": "dvlib", + "version": "26.5.2", + "artifacts": { + "dvlib-26.5.2.jar": "a719efc45c71346332b4a5b6ad15bab48908b3f212127b09a474cc878a289a36", + "dvlib-26.5.2.pom": "f6ab8eba29f194fad9eed22e6ddfb9dd5225b620b467e38db7fe5f5b17ae9b48" + } + }, + { + "group": "com.android.tools", + "name": "repository", + "version": "26.5.2", + "artifacts": { + "repository-26.5.2.jar": "ca093e22fb35853e302ac8daabeea8a128d1dfb11f02a72a5875b9febf46ed41", + "repository-26.5.2.pom": "381bd85682cd53a23ea83ee0a1a38af13558749c50bb08e341adbd358e6ba521" + } + }, + { + "group": "com.android.tools", + "name": "sdk-common", + "version": "26.5.2", + "artifacts": { + "sdk-common-26.5.2.jar": "1bb453885b8ac766e07d74c73726b2eba6ae990571031bfc94f52f38eb48ce09", + "sdk-common-26.5.2.pom": "1df18580743e0095c026a24f4bbd9870b2afe4994adea8fc93f0dc0cd639989e" + } + }, + { + "group": "com.android.tools", + "name": "sdklib", + "version": "26.5.2", + "artifacts": { + "sdklib-26.5.2.jar": "1745623c10a186a6a3345dc980be44fdb84b20ca6cbf2b119992799c223f105f", + "sdklib-26.5.2.pom": "b8d1dfe9b5ef599bf144b868018a12eb9d251da4f538509e2eb34d5f5966b38c" + } + }, + { + "group": "com.android.tools.analytics-library", + "name": "crash", + "version": "26.5.2", + "artifacts": { + "crash-26.5.2.jar": "4f7ef1c385b9f132862798ba8a415a49c10d62b4dc181278d6eb88f6097b9ce1", + "crash-26.5.2.pom": "4025020372dda75065cf06fa55083a7c538e9407c658f45e9a942df69ef3120e" + } + }, + { + "group": "com.android.tools.analytics-library", + "name": "protos", + "version": "26.5.2", + "artifacts": { + "protos-26.5.2.jar": "f6040a5eeaf3078b44451eca03f2872cb9b72cc373da2ca62df1f219fa429bfd", + "protos-26.5.2.pom": "5fce9291d0900566d7837e560ede3ff420aaf28121908de66587a49c7d6d3d09" + } + }, + { + "group": "com.android.tools.analytics-library", + "name": "shared", + "version": "26.5.2", + "artifacts": { + "shared-26.5.2.jar": "fdf2963b5ba49cfd55bb4fad7d62b8fef80ec04b7af90d11327c44a3b4fdc433", + "shared-26.5.2.pom": "965e820d7aacf4bbcbdd8844a35d1ab495ccf20ab338dbeab34fbc2053312ef6" + } + }, + { + "group": "com.android.tools.analytics-library", + "name": "tracker", + "version": "26.5.2", + "artifacts": { + "tracker-26.5.2.jar": "1f474cdfa536e99f9641e1891d36647361e4070aeaac001efe0dd0bc1f9dd70d", + "tracker-26.5.2.pom": "ed85396cb0d5c69849d30851dc8ed4f84219fad9dc6e055a29b6fc9f0679f756" + } + }, + { + "group": "com.android.tools.build", + "name": "aapt2-proto", + "version": "0.4.0", + "artifacts": { + "aapt2-proto-0.4.0.jar": "fac0435e08898f89eeeb9ca236bea707155ff816c12205ced285ad53604133ca", + "aapt2-proto-0.4.0.pom": "a24bdd4e8e374fdcd8cef8d77ea723f147ccd0f25dc6de4fbe290039be904339" + } + }, + { + "group": "com.android.tools.build", + "name": "apksig", + "version": "3.5.2", + "artifacts": { + "apksig-3.5.2.jar": "9c0af57dd6ca766ccc7447332b99116ece02a3e0db5cfed52566abd9248da693", + "apksig-3.5.2.pom": "3c845e31a2b95c179e736b90ef5cf7ed1efdde98cc2afe3d88f4f6ee623651ec" + } + }, + { + "group": "com.android.tools.build", + "name": "apkzlib", + "version": "3.5.2", + "artifacts": { + "apkzlib-3.5.2.jar": "30ab5d689cd077a5edd18a771489d2b410103a2a5bde41ba79a925208af21e19", + "apkzlib-3.5.2.pom": "bf156143c61a307e7976528843741e348265358b3dcf8d69429750c5e021cbdc" + } + }, + { + "group": "com.android.tools.build", + "name": "builder", + "version": "3.5.2", + "artifacts": { + "builder-3.5.2.jar": "e33e08e21fcf571d1f0094b460a3fba27c54c2680c708a8047a95e5b02a82540", + "builder-3.5.2.pom": "c179bd571a1f69143ac8d94c44d0c7d3601ec2332a1c9bf6036e3fe505c3c2f7" + } + }, + { + "group": "com.android.tools.build", + "name": "builder-model", + "version": "3.5.2", + "artifacts": { + "builder-model-3.5.2.jar": "d109da900f128e4e8143c02ff4bbebe39bfffa987947274d12187281e54ce821", + "builder-model-3.5.2.pom": "163074be39e62615d7b7ae195e1c540980f80b3df7c098b2258ec5d435fe5fcd" + } + }, + { + "group": "com.android.tools.build", + "name": "builder-test-api", + "version": "3.5.2", + "artifacts": { + "builder-test-api-3.5.2.jar": "f1d9c13d927a99a9b4762328963e17032868644dc9aeddcd8567cae2834440a6", + "builder-test-api-3.5.2.pom": "49aa0a1917f00b6929f47c981c2ad51fab1762d926f4da870a614c574ce9ec23" + } + }, + { + "group": "com.android.tools.build", + "name": "bundletool", + "version": "0.9.0", + "artifacts": { + "bundletool-0.9.0.jar": "50c44557ca75b068e364ac35a648b81eeba7639ab5eb04036e390c727ad2fa3d", + "bundletool-0.9.0.pom": "124e124227803689b71da7440f0dbdff71cbb4c661a18e0f4e2e0d3a80d367c2" + } + }, + { + "group": "com.android.tools.build", + "name": "gradle", + "version": "3.5.2", + "artifacts": { + "gradle-3.5.2.jar": "5b3feca4a449550b17130c2a7f191e081d032e18115756c4272e62c80942eb83", + "gradle-3.5.2.pom": "48b3438df6b298293d20d0ca9fd0114f571fffeacd3f2ebd1c77e31d45c8c93e" + } + }, + { + "group": "com.android.tools.build", + "name": "gradle-api", + "version": "3.5.2", + "artifacts": { + "gradle-api-3.5.2.jar": "23f55cb5b9527183636d0439c45ba3d8acbb3c142e7af9b1cdea10510dcfe375", + "gradle-api-3.5.2.pom": "5f95851e23bb40d7b59ffd191a393fe47e42daff23e41c7a8f1f6adb6ac0717a" + } + }, + { + "group": "com.android.tools.build", + "name": "manifest-merger", + "version": "26.5.2", + "artifacts": { + "manifest-merger-26.5.2.jar": "4ea417418b8a8b9af3557798b32326ee208388b25bc2f1016477bbd060d88db8", + "manifest-merger-26.5.2.pom": "04575745fa9df89b6ea8018a14cfdbfc80c0187d4b6090264af15ea117d60004" + } + }, + { + "group": "com.android.tools.build", + "name": "transform-api", + "version": "2.0.0-deprecated-use-gradle-api", + "artifacts": { + "transform-api-2.0.0-deprecated-use-gradle-api.jar": "4de4a3d05e1c534c2db9e4588bf34082bb2bd232d8abb9727c430290ce225740", + "transform-api-2.0.0-deprecated-use-gradle-api.pom": "7c62f3856e8abca1d79257925f26c12668693f5d95904056bbac88605cfd8575" + } + }, + { + "group": "com.android.tools.build.jetifier", + "name": "jetifier-core", + "version": "1.0.0-beta04", + "artifacts": { + "jetifier-core-1.0.0-beta04.jar": "c9f8b016144cfb31c5aee92d47f34de23289167cac5e8ef68365b2dd05766f11", + "jetifier-core-1.0.0-beta04.pom": "db025ad1bbc6896edf0f67cda1222ba9b7ec9a0187df7f4fd0a318475c758e4e" + } + }, + { + "group": "com.android.tools.build.jetifier", + "name": "jetifier-processor", + "version": "1.0.0-beta04", + "artifacts": { + "jetifier-processor-1.0.0-beta04.jar": "1dd481e7606ccb30868908d9ae80f27d1c5ba882f792532bd91ed731c54f4efb", + "jetifier-processor-1.0.0-beta04.pom": "4973a6c6d7f89297a1cfea56c623cea72b3db3b4a49992afa00dd77ac052b89f" + } + }, + { + "group": "com.android.tools.ddms", + "name": "ddmlib", + "version": "26.5.2", + "artifacts": { + "ddmlib-26.5.2.jar": "5a1eed6a3629488227d8b237df11329bbbc4322b2c9fd7f8dc7a10f3f9fc65fb", + "ddmlib-26.5.2.pom": "54165fe9a9ad4a97d8094c72fd328682dd127fd11d3a764d17d660f759fa79a1" + } + }, + { + "group": "com.android.tools.external.com-intellij", + "name": "intellij-core", + "version": "26.5.2", + "artifacts": { + "intellij-core-26.5.2.jar": "d784f2991c46ffd324e33350f191baee3955f15f6523d143b579023c7fc35ae5", + "intellij-core-26.5.2.pom": "2c09e48f35d4f8f574c1c521bd237df5a96691874a36611ea375d9dd31dfab81" + } + }, + { + "group": "com.android.tools.external.com-intellij", + "name": "kotlin-compiler", + "version": "26.5.2", + "artifacts": { + "kotlin-compiler-26.5.2.jar": "c679280a6f4d8e5f147c023e5bd1d8035704670e7d070cddda873d77cdb8ce08", + "kotlin-compiler-26.5.2.pom": "0160f143a937e16de37a8d7e4ff4b8d7983dd097c5b3514120cb9cf120c2d5d5" + } + }, + { + "group": "com.android.tools.external.org-jetbrains", + "name": "uast", + "version": "26.5.2", + "artifacts": { + "uast-26.5.2.jar": "04c9e7f17105bf3b9f2062fec56e3fe2b477aa061b3b510ff5deeb32c5b29848", + "uast-26.5.2.pom": "dcade7a3df688974bd7067ee68a5f3aa6990d982a53f94491c780c5e946948b5" + } + }, + { + "group": "com.android.tools.layoutlib", + "name": "layoutlib-api", + "version": "26.5.2", + "artifacts": { + "layoutlib-api-26.5.2.jar": "c3744a9bfbe61958efe7ddfd7bd3b3a706e563a471bcc6430eeac6f701404254", + "layoutlib-api-26.5.2.pom": "cdaf338f678daa18533aaa08aa94bf9f3ee581ca6587b930ecb8b89f5cfd595b" + } + }, + { + "group": "com.android.tools.lint", + "name": "lint", + "version": "26.5.2", + "artifacts": { + "lint-26.5.2.jar": "0c33bd984054defae42552e0849edd92b03e209662c3de2a3497387b1b022e34", + "lint-26.5.2.pom": "c338f401ecd5e37a7ad703ad4b92ab0c5f55b1894c7e5635fdba3c4f525a2958" + } + }, + { + "group": "com.android.tools.lint", + "name": "lint-api", + "version": "26.5.2", + "artifacts": { + "lint-api-26.5.2.jar": "7137a8d33d9ca2571abe553f2a9fe26e3b9f905fbf29065d75276e216330a804", + "lint-api-26.5.2.pom": "fc70d537e742516a84955c9b873ff7a5b5bee3e5708653bed4663bc7390d9d8f" + } + }, + { + "group": "com.android.tools.lint", + "name": "lint-checks", + "version": "26.5.2", + "artifacts": { + "lint-checks-26.5.2.jar": "77910fa35c790fc4d51c01bb9956b9ed654cf034cd67cfb326fcc708401854a5", + "lint-checks-26.5.2.pom": "e74c83c1ef213d802ad6236aaf6c2b2b9670c0d06c8a359fc5f6cc47eddeabdd" + } + }, + { + "group": "com.android.tools.lint", + "name": "lint-gradle", + "version": "26.5.2", + "artifacts": { + "lint-gradle-26.5.2.jar": "dfdd0506eec25deea7fe8dd3a591183614a72558d4e8462f1287c108dbffa882", + "lint-gradle-26.5.2.pom": "909960cb48bf4c37bc979f1508945a11de0d90fee1b5fb27bf40d775f8b41104" + } + }, + { + "group": "com.android.tools.lint", + "name": "lint-gradle-api", + "version": "26.5.2", + "artifacts": { + "lint-gradle-api-26.5.2.jar": "3530ef38a0768e506ad1c4afef4ca01cffa4ee9ac3d0e862ad84371b1c3931b7", + "lint-gradle-api-26.5.2.pom": "ee17a03da34a395169e548459361ae45294ef9582209286e3f7ec504a6dd6f2a" + } + }, + { + "group": "com.google", + "name": "google", + "version": "1", + "artifacts": { + "google-1.pom": "cd6db17a11a31ede794ccbd1df0e4d9750f640234731f21cff885a9997277e81" + } + }, + { + "group": "com.google.auto", + "name": "auto-parent", + "version": "3", + "artifacts": { + "auto-parent-3.pom": "c98f1b0978cfd24712c27388e040c50ce0692252b3aa9448603d9efa05ebe8a8" + } + }, + { + "group": "com.google.auto.value", + "name": "auto-value", + "version": "1.5.2", + "artifacts": { + "auto-value-1.5.2.jar": "6cac9421439b39b9f4aa76738ced039462a69911c410f2c372c196b0f4b7f4cf", + "auto-value-1.5.2.pom": "901fb1440a0ef8e0c0553a7bb44c0b89647bf53c8822642eea0b57173c7c688d" + } + }, + { + "group": "com.google.code.findbugs", + "name": "jsr305", + "version": "1.3.9", + "artifacts": { + "jsr305-1.3.9.pom": "feab9191311c3d7aeef2b66d6064afc80d3d1d52d980fb07ae43c78c987ba93a" + } + }, + { + "group": "com.google.code.findbugs", + "name": "jsr305", + "version": "3.0.2", + "artifacts": { + "jsr305-3.0.2.jar": "766ad2a0783f2687962c8ad74ceecc38a28b9f72a2d085ee438b7813e928d0c7", + "jsr305-3.0.2.pom": "19889dbdf1b254b2601a5ee645b8147a974644882297684c798afe5d63d78dfe" + } + }, + { + "group": "com.google.code.gson", + "name": "gson", + "version": "2.8.5", + "artifacts": { + "gson-2.8.5.jar": "233a0149fc365c9f6edbd683cfe266b19bdc773be98eabdaf6b3c924b48e7d81", + "gson-2.8.5.pom": "b8308557a7fccc92d9fe7c8cd0599258b361285d2ecde7689eda98843255a092" + } + }, + { + "group": "com.google.code.gson", + "name": "gson-parent", + "version": "2.8.5", + "artifacts": { + "gson-parent-2.8.5.pom": "8f1fec72b91a71ea39ec39f5f778c4d1124b6b097c6d55b3a50b554a52237b27" + } + }, + { + "group": "com.google.errorprone", + "name": "error_prone_annotations", + "version": "2.2.0", + "artifacts": { + "error_prone_annotations-2.2.0.jar": "6ebd22ca1b9d8ec06d41de8d64e0596981d9607b42035f9ed374f9de271a481a", + "error_prone_annotations-2.2.0.pom": "5e0258ea1ba4e51a133742680bc22448f7ab214be4073e8619f645ef1be42dd5" + } + }, + { + "group": "com.google.errorprone", + "name": "error_prone_annotations", + "version": "2.3.1", + "artifacts": { + "error_prone_annotations-2.3.1.jar": "10a5949aa0f95c8de4fd47edfe20534d2acefd8c224f8afea1f607e112816120", + "error_prone_annotations-2.3.1.pom": "3edce6b711ba368efe16b9b7aacb0214fbd648414cb9b965953a2e7ed89a819a" + } + }, + { + "group": "com.google.errorprone", + "name": "error_prone_parent", + "version": "2.2.0", + "artifacts": { + "error_prone_parent-2.2.0.pom": "c460902ddf5ece68832c6b271ce52a0928b05cf3a6ac81a8f548c73cbd541138" + } + }, + { + "group": "com.google.errorprone", + "name": "error_prone_parent", + "version": "2.3.1", + "artifacts": { + "error_prone_parent-2.3.1.pom": "767525d9a81129cd081968382980336327be4162b1e2251a182911daa733c123" + } + }, + { + "group": "com.google.guava", + "name": "failureaccess", + "version": "1.0.1", + "artifacts": { + "failureaccess-1.0.1.jar": "a171ee4c734dd2da837e4b16be9df4661afab72a41adaf31eb84dfdaf936ca26", + "failureaccess-1.0.1.pom": "e96042ce78fecba0da2be964522947c87b40a291b5fd3cd672a434924103c4b9" + } + }, + { + "group": "com.google.guava", + "name": "guava", + "version": "27.0.1-jre", + "artifacts": { + "guava-27.0.1-jre.jar": "e1c814fd04492a27c38e0317eabeaa1b3e950ec8010239e400fe90ad6c9107b4", + "guava-27.0.1-jre.pom": "6a8dd041f23a6bb14a86e440fccb993537b62271357a0dac0a3cb0ff39158f36" + } + }, + { + "group": "com.google.guava", + "name": "guava-parent", + "version": "26.0-android", + "artifacts": { + "guava-parent-26.0-android.pom": "f8698ab46ca996ce889c1afc8ca4f25eb8ac6b034dc898d4583742360016cc04" + } + }, + { + "group": "com.google.guava", + "name": "guava-parent", + "version": "27.0.1-jre", + "artifacts": { + "guava-parent-27.0.1-jre.pom": "317e88291262e0cf2805e956c18850f1d4565c85c2e1112f5d9d08ab1732e696" + } + }, + { + "group": "com.google.guava", + "name": "listenablefuture", + "version": "9999.0-empty-to-avoid-conflict-with-guava", + "artifacts": { + "listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar": "b372a037d4230aa57fbeffdef30fd6123f9c0c2db85d0aced00c91b974f33f99", + "listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom": "18d4b1db26153d4e55079ce1f76bb1fe05cdb862ef9954a88cbcc4ff38b8679b" + } + }, + { + "group": "com.google.j2objc", + "name": "j2objc-annotations", + "version": "1.1", + "artifacts": { + "j2objc-annotations-1.1.jar": "2994a7eb78f2710bd3d3bfb639b2c94e219cedac0d4d084d516e78c16dddecf6", + "j2objc-annotations-1.1.pom": "f0c98c571e93a7cb4dd18df0fa308f0963e7a0620ac2d4244e61e709d03ad6be" + } + }, + { + "group": "com.google.jimfs", + "name": "jimfs", + "version": "1.1", + "artifacts": { + "jimfs-1.1.jar": "c4828e28d7c0a930af9387510b3bada7daa5c04d7c25a75c7b8b081f1c257ddd", + "jimfs-1.1.pom": "efa86e5cd922f17b472fdfcae57234d8d4ac3e148b6250737dfce454af7a7a44" + } + }, + { + "group": "com.google.jimfs", + "name": "jimfs-parent", + "version": "1.1", + "artifacts": { + "jimfs-parent-1.1.pom": "c71555751e57e0ef912870e8ac9625ae782502a6a5b9c19ccf83b2a97d8b26bd" + } + }, + { + "group": "com.google.protobuf", + "name": "protobuf-java", + "version": "3.4.0", + "artifacts": { + "protobuf-java-3.4.0.jar": "dce7e66b32456a1b1198da0caff3a8acb71548658391e798c79369241e6490a4", + "protobuf-java-3.4.0.pom": "83f17ba86c5fa1a15a3a3c8030d4ce42ef21c1d39b65db6cc004a8eeb2c59406" + } + }, + { + "group": "com.google.protobuf", + "name": "protobuf-java-util", + "version": "3.4.0", + "artifacts": { + "protobuf-java-util-3.4.0.jar": "4189e0be5ab15cf2330f70b24fbdc75ca37514f188388fce8580ce16a9a68052", + "protobuf-java-util-3.4.0.pom": "89c43073e7eaa0eaba72a4a36ae1b6bfdfe5d81bb9d0e156aee05e4a72de3cb8" + } + }, + { + "group": "com.google.protobuf", + "name": "protobuf-parent", + "version": "3.4.0", + "artifacts": { + "protobuf-parent-3.4.0.pom": "24909c552842c0eb7a4c769d631a43cbef5a9a10c1640f2bdbd1ea149c573a47" + } + }, + { + "group": "com.googlecode.json-simple", + "name": "json-simple", + "version": "1.1", + "artifacts": { + "json-simple-1.1.jar": "2d9484f4c649f708f47f9a479465fc729770ee65617dca3011836602264f6439", + "json-simple-1.1.pom": "47a89be0fa0fedd476db5fd2c83487654d2a119c391f83a142be876667cf7dab" + } + }, + { + "group": "com.googlecode.juniversalchardet", + "name": "juniversalchardet", + "version": "1.0.3", + "artifacts": { + "juniversalchardet-1.0.3.jar": "757bfe906193b8b651e79dc26cd67d6b55d0770a2cdfb0381591504f779d4a76", + "juniversalchardet-1.0.3.pom": "7846399b35c7cd642a9b3a000c3e2d62d04eb37a4547b6933cc8b18bcc2f086b" + } + }, + { + "group": "com.squareup", + "name": "javapoet", + "version": "1.8.0", + "artifacts": { + "javapoet-1.8.0.jar": "8e108c92027bb428196f10fa11cffbe589f7648a6af2016d652279385fdfd789", + "javapoet-1.8.0.pom": "b3760f40f19e735b2cd418f7656335d926d1d9413e10982a1c9695b64edbb647" + } + }, + { + "group": "com.squareup", + "name": "javawriter", + "version": "2.5.0", + "artifacts": { + "javawriter-2.5.0.jar": "fcfb09fb0ea0aa97d3cfe7ea792398081348e468f126b3603cb3803f240197f0", + "javawriter-2.5.0.pom": "e1abd7f1116cf5e0c59947693e2189208ec94296b2a3394c959e3511d399a7b0" + } + }, + { + "group": "com.sun.activation", + "name": "all", + "version": "1.2.0", + "artifacts": { + "all-1.2.0.pom": "1d8518e3ac7532a104e4f7be77def37c982e530723c6bdb3d67708cce2b0c2c4" + } + }, + { + "group": "com.sun.activation", + "name": "javax.activation", + "version": "1.2.0", + "artifacts": { + "javax.activation-1.2.0.jar": "993302b16cd7056f21e779cc577d175a810bb4900ef73cd8fbf2b50f928ba9ce", + "javax.activation-1.2.0.pom": "f879b6e945854c6900b0dbee1c8384d7ab3de7e157fd7ac84937405c416d2a5e" + } + }, + { + "group": "com.sun.istack", + "name": "istack-commons", + "version": "2.21", + "artifacts": { + "istack-commons-2.21.pom": "c3071277f89b162982606b4e65c92077212efb6cbf1bdc365c51bd0b57ac818c" + } + }, + { + "group": "com.sun.istack", + "name": "istack-commons-runtime", + "version": "2.21", + "artifacts": { + "istack-commons-runtime-2.21.jar": "c33e67a0807095f02a0e2da139412dd7c4f9cc1a4c054b3e434f96831ba950f4", + "istack-commons-runtime-2.21.pom": "ebe7137b5fbfd050545f9a7f3f339ae55beb0b53755071b4fd62aa024c626d1c" + } + }, + { + "group": "com.sun.xml.bind", + "name": "jaxb-bom-ext", + "version": "2.2.11", + "artifacts": { + "jaxb-bom-ext-2.2.11.pom": "b25e0693de21cb92b039a2e4608f396590fb8773108f10d6dc9f1465f03b5be9" + } + }, + { + "group": "com.sun.xml.bind.mvn", + "name": "jaxb-parent", + "version": "2.2.11", + "artifacts": { + "jaxb-parent-2.2.11.pom": "b5301b711c01547e571b615f9a0832ee525d34a4ce3372f53907a87cf20b0480" + } + }, + { + "group": "com.sun.xml.bind.mvn", + "name": "jaxb-runtime-parent", + "version": "2.2.11", + "artifacts": { + "jaxb-runtime-parent-2.2.11.pom": "21918cb8e4eda67f24251e909a5d81672201d93604c4ffbf33522ad836a58e90" + } + }, + { + "group": "com.sun.xml.bind.mvn", + "name": "jaxb-txw-parent", + "version": "2.2.11", + "artifacts": { + "jaxb-txw-parent-2.2.11.pom": "9a398c699a5d3f3b56f1056c68890ede25d94a12d98eabc2a473733e6ab2362c" + } + }, + { + "group": "com.sun.xml.fastinfoset", + "name": "FastInfoset", + "version": "1.2.13", + "artifacts": { + "FastInfoset-1.2.13.jar": "27a77db909f3c2833c0b1a37c55af1db06045118ad2eed96ce567b6632bce038", + "FastInfoset-1.2.13.pom": "b7505e0ecf7d495b4daa3e6569f71611d1a789dc531cbd92a2025922ff2655d3" + } + }, + { + "group": "com.sun.xml.fastinfoset", + "name": "fastinfoset-project", + "version": "1.2.13", + "artifacts": { + "fastinfoset-project-1.2.13.pom": "fd0857899f1067e0287c2ffd91e38f967a26bd405b83a34650c2742cee9fc261" + } + }, + { + "group": "commons-codec", + "name": "commons-codec", + "version": "1.10", + "artifacts": { + "commons-codec-1.10.jar": "4241dfa94e711d435f29a4604a3e2de5c4aa3c165e23bd066be6fc1fc4309569", + "commons-codec-1.10.pom": "bdb8db7012d112a6e3ea8fdb7c510b300d99eff0819d27dddba9c43397ea4cfb" + } + }, + { + "group": "commons-io", + "name": "commons-io", + "version": "2.4", + "artifacts": { + "commons-io-2.4.jar": "cc6a41dc3eaacc9e440a6bd0d2890b20d36b4ee408fe2d67122f328bb6e01581", + "commons-io-2.4.pom": "b2b5dd46cf998fa626eb6f8a1c114f6167c8d392694164e62533e5898e9b31f2" + } + }, + { + "group": "commons-logging", + "name": "commons-logging", + "version": "1.2", + "artifacts": { + "commons-logging-1.2.jar": "daddea1ea0be0f56978ab3006b8ac92834afeefbd9b7e4e6316fca57df0fa636", + "commons-logging-1.2.pom": "c91ab5aa570d86f6fd07cc158ec6bc2c50080402972ee9179fe24100739fbb20" + } + }, + { + "group": "it.unimi.dsi", + "name": "fastutil", + "version": "7.2.0", + "artifacts": { + "fastutil-7.2.0.jar": "74fa208043740642f7e6eb09faba15965218ad2f50ce3020efb100136e4b591c", + "fastutil-7.2.0.pom": "953b116521a73575eee990e3f2c36a892fb088bb2d9a3027c82193cb7a013ef7" + } + }, + { + "group": "javax.inject", + "name": "javax.inject", + "version": "1", + "artifacts": { + "javax.inject-1.jar": "91c77044a50c481636c32d916fd89c9118a72195390452c81065080f957de7ff", + "javax.inject-1.pom": "943e12b100627804638fa285805a0ab788a680266531e650921ebfe4621a8bfa" + } + }, + { + "group": "javax.xml.bind", + "name": "jaxb-api", + "version": "2.2.12-b140109.1041", + "artifacts": { + "jaxb-api-2.2.12-b140109.1041.jar": "b5e60cd8b7b5ff01ce4a74c5dd008f4fbd14ced3495d0b47b85cfedc182211f2", + "jaxb-api-2.2.12-b140109.1041.pom": "2092a7d8d9bc5698c59b094bdea46622915c48c83ae66d5b5ad549c7bf16155b" + } + }, + { + "group": "net.java", + "name": "jvnet-parent", + "version": "1", + "artifacts": { + "jvnet-parent-1.pom": "281440811268e65d9e266b3cc898297e214e04f09740d0386ceeb4a8923d63bf" + } + }, + { + "group": "net.java", + "name": "jvnet-parent", + "version": "3", + "artifacts": { + "jvnet-parent-3.pom": "30f5789efa39ddbf96095aada3fc1260c4561faf2f714686717cb2dc5049475a" + } + }, + { + "group": "net.java", + "name": "jvnet-parent", + "version": "4", + "artifacts": { + "jvnet-parent-4.pom": "471395735549495297c8ff939b9a32e08b91302020ff773586d27e497abb8fbb" + } + }, + { + "group": "net.sf.jopt-simple", + "name": "jopt-simple", + "version": "4.9", + "artifacts": { + "jopt-simple-4.9.jar": "26c5856e954b5f864db76f13b86919b59c6eecf9fd930b96baa8884626baf2f5", + "jopt-simple-4.9.pom": "7af7e2d8b24b4798f04c2b7da24c9fbd1b7557b4e017c2054481565916079092" + } + }, + { + "group": "net.sf.kxml", + "name": "kxml2", + "version": "2.3.0", + "artifacts": { + "kxml2-2.3.0.jar": "f264dd9f79a1fde10ce5ecc53221eff24be4c9331c830b7d52f2f08a7b633de2", + "kxml2-2.3.0.pom": "31ce606f4e9518936299bb0d27c978fa61e185fd1de7c9874fe959a53e34a685" + } + }, + { + "group": "net.sf.proguard", + "name": "proguard-base", + "version": "6.0.3", + "artifacts": { + "proguard-base-6.0.3.jar": "75bc89695fa66e75374ecda439b802406f0ab1d826dd386eed0a23b1f0a9d264", + "proguard-base-6.0.3.pom": "2a823d79f2675582a988d539466d1b175e939782efbe0f6e61f06cb165ed4907" + } + }, + { + "group": "net.sf.proguard", + "name": "proguard-gradle", + "version": "6.0.3", + "artifacts": { + "proguard-gradle-6.0.3.jar": "cc12b1168e521491dd0e687cfebec11a4af874b22af70e10cf2a05b47ca00c8f", + "proguard-gradle-6.0.3.pom": "5a5c7317d68ce80d1d40c9d8bd4e38814d42d1b16c265146e333634833a35a57" + } + }, + { + "group": "net.sf.proguard", + "name": "proguard-parent", + "version": "6.0.3", + "artifacts": { + "proguard-parent-6.0.3.pom": "d87266bfd2312c3b036c4ac709310afa35c448ceb18027c3b87a33d03c6de0a0" + } + }, + { + "group": "org.antlr", + "name": "antlr4", + "version": "4.5.3", + "artifacts": { + "antlr4-4.5.3.jar": "a32de739cfdf515774e696f91aa9697d2e7731e5cb5045ca8a4b657f8b1b4fb4", + "antlr4-4.5.3.pom": "8a4e4b32eedaa72976a757e12cf1dfe742725db0b7311bf176dd937ba4236384" + } + }, + { + "group": "org.antlr", + "name": "antlr4-master", + "version": "4.5.3", + "artifacts": { + "antlr4-master-4.5.3.pom": "401877d5e70ad599e9b6cff18434ea0332f637b51f8ec68352646c836f9bb2a4" + } + }, + { + "group": "org.apache", + "name": "apache", + "version": "13", + "artifacts": { + "apache-13.pom": "ff513db0361fd41237bef4784968bc15aae478d4ec0a9496f811072ccaf3841d" + } + }, + { + "group": "org.apache", + "name": "apache", + "version": "15", + "artifacts": { + "apache-15.pom": "36c2f2f979ac67b450c0cb480e4e9baf6b40f3a681f22ba9692287d1139ad494" + } + }, + { + "group": "org.apache", + "name": "apache", + "version": "16", + "artifacts": { + "apache-16.pom": "9f85ff2fd7d6cb3097aa47fb419ee7f0ebe869109f98aba9f4eca3f49e74a40e" + } + }, + { + "group": "org.apache", + "name": "apache", + "version": "18", + "artifacts": { + "apache-18.pom": "7831307285fd475bbc36b20ae38e7882f11c3153b1d5930f852d44eda8f33c17" + } + }, + { + "group": "org.apache", + "name": "apache", + "version": "9", + "artifacts": { + "apache-9.pom": "4946e60a547c8eda69f3bc23c5b6f0dadcf8469ea49b1d1da7de34aecfcf18dd" + } + }, + { + "group": "org.apache.commons", + "name": "commons-compress", + "version": "1.12", + "artifacts": { + "commons-compress-1.12.jar": "2c1542faf343185b7cab9c3d55c8ae5471d6d095d3887a4adefdbdf2984dc0b6", + "commons-compress-1.12.pom": "b787d574c851505e76212968b9ae1641ea79804aef7f5a2cee2a01cd4055213a" + } + }, + { + "group": "org.apache.commons", + "name": "commons-parent", + "version": "25", + "artifacts": { + "commons-parent-25.pom": "467ae650442e876867379094e7518dfdd67d22c5352ebd39808c84259e9790ba" + } + }, + { + "group": "org.apache.commons", + "name": "commons-parent", + "version": "34", + "artifacts": { + "commons-parent-34.pom": "3a2e69d06d641d1f3b293126dc9e2e4ea6563bf8c36c87e0ab6fa4292d04b79c" + } + }, + { + "group": "org.apache.commons", + "name": "commons-parent", + "version": "35", + "artifacts": { + "commons-parent-35.pom": "7098a1ab8336ecd4c9dc21cbbcac869f82c66f64b8ac4f7988d41b4fcb44e49a" + } + }, + { + "group": "org.apache.commons", + "name": "commons-parent", + "version": "39", + "artifacts": { + "commons-parent-39.pom": "87cd27e1a02a5c3eb6d85059ce98696bb1b44c2b8b650f0567c86df60fa61da7" + } + }, + { + "group": "org.apache.httpcomponents", + "name": "httpclient", + "version": "4.5.6", + "artifacts": { + "httpclient-4.5.6.jar": "c03f813195e7a80e3608d0ddd8da80b21696a4c92a6a2298865bf149071551c7", + "httpclient-4.5.6.pom": "7efc1241e73e7fbb268bfd33242d11ebd3ca07061d7d85f2962dc32a0f0b8855" + } + }, + { + "group": "org.apache.httpcomponents", + "name": "httpcomponents-client", + "version": "4.5.6", + "artifacts": { + "httpcomponents-client-4.5.6.pom": "b042b41f2391edb00d35f7f4e509aed2123648c1d246ce58d0f7b905c9fe1f73" + } + }, + { + "group": "org.apache.httpcomponents", + "name": "httpcomponents-core", + "version": "4.4.10", + "artifacts": { + "httpcomponents-core-4.4.10.pom": "61e9427d4be326c307a7f16ba828d1cb3b14713c9b04fc8ba992a58f376c3136" + } + }, + { + "group": "org.apache.httpcomponents", + "name": "httpcomponents-parent", + "version": "10", + "artifacts": { + "httpcomponents-parent-10.pom": "caaf967d94afb21753f36082c6086206bd1f48825ff596932cceba72b65d39fa" + } + }, + { + "group": "org.apache.httpcomponents", + "name": "httpcore", + "version": "4.4.10", + "artifacts": { + "httpcore-4.4.10.jar": "78ba1096561957db1b55200a159b648876430342d15d461277e62360da19f6fd", + "httpcore-4.4.10.pom": "c5c12066df2b3b88a89a2c8602b81ea9a61627e976e5129eea1899ebbaea392b" + } + }, + { + "group": "org.apache.httpcomponents", + "name": "httpmime", + "version": "4.5.6", + "artifacts": { + "httpmime-4.5.6.jar": "0b2b1102c18d3c7e05a77214b9b7501a6f6056174ae5604e0e256776eda7553e", + "httpmime-4.5.6.pom": "dfbfd6ffe2a784ca9817c46365aa7f8a578320b805bde39d6f55a0b09d8aa8ca" + } + }, + { + "group": "org.bouncycastle", + "name": "bcpkix-jdk15on", + "version": "1.56", + "artifacts": { + "bcpkix-jdk15on-1.56.jar": "7043dee4e9e7175e93e0b36f45b1ec1ecb893c5f755667e8b916eb8dd201c6ca", + "bcpkix-jdk15on-1.56.pom": "321668fc474a73140eb9cc73c779f1ebb9f60948aade3beddee082ecefcf0259" + } + }, + { + "group": "org.bouncycastle", + "name": "bcprov-jdk15on", + "version": "1.56", + "artifacts": { + "bcprov-jdk15on-1.56.jar": "963e1ee14f808ffb99897d848ddcdb28fa91ddda867eb18d303e82728f878349", + "bcprov-jdk15on-1.56.pom": "8fdc3336e7b01873193ba9c48b87de7d788dc0954d1eb45c322492627a4b5c6e" + } + }, + { + "group": "org.checkerframework", + "name": "checker-qual", + "version": "2.5.2", + "artifacts": { + "checker-qual-2.5.2.jar": "64b02691c8b9d4e7700f8ee2e742dce7ea2c6e81e662b7522c9ee3bf568c040a", + "checker-qual-2.5.2.pom": "dc4cd438a36462d013c2338c8e206d102a322a00f33729e8955ee219859c9ede" + } + }, + { + "group": "org.codehaus.groovy", + "name": "groovy-all", + "version": "2.4.15", + "artifacts": { + "groovy-all-2.4.15.jar": "51d6c4e71782e85674239189499854359d380fb75e1a703756e3aaa5b98a5af0", + "groovy-all-2.4.15.pom": "fc0d535d7bdb7ca90562321c2e8e2a35c377f113c6dd0b2062282e1f4676367a" + } + }, + { + "group": "org.codehaus.mojo", + "name": "animal-sniffer-annotations", + "version": "1.17", + "artifacts": { + "animal-sniffer-annotations-1.17.jar": "92654f493ecfec52082e76354f0ebf87648dc3d5cec2e3c3cdb947c016747a53", + "animal-sniffer-annotations-1.17.pom": "e956ab5d2eb48fabae12300d0cd2d3294d4a2a41abc2068c23cb4d60ad76cbe5" + } + }, + { + "group": "org.codehaus.mojo", + "name": "animal-sniffer-parent", + "version": "1.17", + "artifacts": { + "animal-sniffer-parent-1.17.pom": "18a03df16e2a184c582db7b125633c15fb7714027a84c1b532d72933dc08b81f" + } + }, + { + "group": "org.codehaus.mojo", + "name": "mojo-parent", + "version": "40", + "artifacts": { + "mojo-parent-40.pom": "fc648dcdc404f8bf66e0583914ecf980176618201227bea114fae85043cb755e" + } + }, + { + "group": "org.glassfish.jaxb", + "name": "jaxb-bom", + "version": "2.2.11", + "artifacts": { + "jaxb-bom-2.2.11.pom": "a52e6850f070dc9f7a2a51d0b25dfaafd49b0b9bf8196db6c0b3c5b7c94d8d38" + } + }, + { + "group": "org.glassfish.jaxb", + "name": "jaxb-core", + "version": "2.2.11", + "artifacts": { + "jaxb-core-2.2.11.jar": "37bcaee8ebb04362c8352a5bf6221b86967ecdab5164c696b10b9a2bb587b2aa", + "jaxb-core-2.2.11.pom": "ec31409f203bcabf99534f59231ec0576d875d4d4b7349b09566a7a8c8179b24" + } + }, + { + "group": "org.glassfish.jaxb", + "name": "jaxb-runtime", + "version": "2.2.11", + "artifacts": { + "jaxb-runtime-2.2.11.jar": "a874f2351cfba8e2946be3002d10c18a6da8f21b52ba2acf52f2b85d5520ed70", + "jaxb-runtime-2.2.11.pom": "e5327b31b595ab8143e97836d5ccdf85feb91e7ff5666f7b26913632facca4aa" + } + }, + { + "group": "org.glassfish.jaxb", + "name": "txw2", + "version": "2.2.11", + "artifacts": { + "txw2-2.2.11.jar": "272a3ccad45a4511351920cd2a8633c53cab8d5220c7a92954da5526bb5eafea", + "txw2-2.2.11.pom": "8514cb724b4fca59a5cf272b632e539bd0a0f3cacf1844082d0a173a86406bd8" + } + }, + { + "group": "org.jdom", + "name": "jdom2", + "version": "2.0.6", + "artifacts": { + "jdom2-2.0.6.jar": "1345f11ba606d15603d6740551a8c21947c0215640770ec67271fe78bea97cf5", + "jdom2-2.0.6.pom": "47b23a79fe336b741b82434c6e049d68165256e405e75c10921fd72fa8a65d8d" + } + }, + { + "group": "org.jetbrains", + "name": "annotations", + "version": "13.0", + "artifacts": { + "annotations-13.0.jar": "ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478", + "annotations-13.0.pom": "965aeb2bedff369819bdde1bf7a0b3b89b8247dd69c88b86375d76163bb8c397" + } + }, + { + "group": "org.jetbrains.kotlin", + "name": "kotlin-reflect", + "version": "1.3.50", + "artifacts": { + "kotlin-reflect-1.3.50.jar": "64583199ea5a54aefd1bd1595288925f784226ee562d1dd279011c6075b3d7a4", + "kotlin-reflect-1.3.50.pom": "8745181e5a3e0bafefd46309c6b810df7253f379feb985131eaf8d4d9c302635" + } + }, + { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib", + "version": "1.3.50", + "artifacts": { + "kotlin-stdlib-1.3.50.jar": "e6f05746ee0366d0b52825a090fac474dcf44082c9083bbb205bd16976488d6c", + "kotlin-stdlib-1.3.50.pom": "704fd78960ae046428f69bcd5b951c122e4c180c9400238a866e12cb18494a61" + } + }, + { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-common", + "version": "1.3.50", + "artifacts": { + "kotlin-stdlib-common-1.3.50.jar": "8ce678e88e4ba018b66dacecf952471e4d7dfee156a8a819760a5a5ff29d323c", + "kotlin-stdlib-common-1.3.50.pom": "b6396fe802d7bc76a381485e266cb975f3b2f2d3dd9bf7213aab6ca27a561fc1" + } + }, + { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk7", + "version": "1.3.50", + "artifacts": { + "kotlin-stdlib-jdk7-1.3.50.jar": "9a026639e76212f8d57b86d55b075394c2e009f1979110751d34c05c5f75d57b", + "kotlin-stdlib-jdk7-1.3.50.pom": "a3aef46388ee96e975110db51df3ab794c87d892bdbc6d5a49bf926e4779438b" + } + }, + { + "group": "org.jetbrains.kotlin", + "name": "kotlin-stdlib-jdk8", + "version": "1.3.50", + "artifacts": { + "kotlin-stdlib-jdk8-1.3.50.jar": "1b351fb6e09c14b55525c74c1f4cf48942eae43c348b7bc764a5e6e423d4da0c", + "kotlin-stdlib-jdk8-1.3.50.pom": "8674b002f66a2948981c4f6cb5987ec62ff3d54b6a2799a6d2cd23afb83f2ad3" + } + }, + { + "group": "org.jetbrains.trove4j", + "name": "trove4j", + "version": "20160824", + "artifacts": { + "trove4j-20160824.jar": "1917871c8deb468307a584680c87a44572f5a8b0b98c6d397fc0f5f86596dbe7", + "trove4j-20160824.pom": "c94b0b73790c70c709bcd445a01247908888211e38cc59e946ff6fe900785ae9" + } + }, + { + "group": "org.jvnet.staxex", + "name": "stax-ex", + "version": "1.7.7", + "artifacts": { + "stax-ex-1.7.7.jar": "a31ff7d77163c0deb09e7fee59ad35ae44c2cee2cc8552a116ccd1583d813fb4", + "stax-ex-1.7.7.pom": "27cb450b6c367a00bd8362519907f84defac7b12086c64d4d6e97e33ab873ead" + } + }, + { + "group": "org.ow2", + "name": "ow2", + "version": "1.3", + "artifacts": { + "ow2-1.3.pom": "51215c67d2c068d8b7d2f6f80f51372a098075deccc448d4bdd7b987ba8328fb" + } + }, + { + "group": "org.ow2.asm", + "name": "asm", + "version": "6.0", + "artifacts": { + "asm-6.0.jar": "dd8971c74a4e697899a8e95caae4ea8760ea6c486dc6b97b1795e75760420461", + "asm-6.0.pom": "c2bc497e197112e699085426bbb45b1ab0be8002da68267a3b1f450a0312c32e" + } + }, + { + "group": "org.ow2.asm", + "name": "asm-analysis", + "version": "6.0", + "artifacts": { + "asm-analysis-6.0.jar": "2f1a6387219c3a6cc4856481f221b03bd9f2408a326d416af09af5d6f608c1f4", + "asm-analysis-6.0.pom": "d3aaf42e40e3e24aabda53b5de4de5e17cb78e06549bf37312dca6c77e251054" + } + }, + { + "group": "org.ow2.asm", + "name": "asm-commons", + "version": "6.0", + "artifacts": { + "asm-commons-6.0.jar": "f1bce5c648a96a017bdcd01fe5d59af9845297fd7b79b81c015a6fbbd9719abf", + "asm-commons-6.0.pom": "90f4f29473afb957229016eb5741954976cc1b67bc049b3981c0d1e653ad5cdd" + } + }, + { + "group": "org.ow2.asm", + "name": "asm-parent", + "version": "6.0", + "artifacts": { + "asm-parent-6.0.pom": "791d064bb9ecc9a46d43bc9efecd74c91464dfc451f321b802d2261e2ccd7d14" + } + }, + { + "group": "org.ow2.asm", + "name": "asm-tree", + "version": "6.0", + "artifacts": { + "asm-tree-6.0.jar": "887998fb69727c8759e4d253f856822801e33f9fd4caa566b3ac58ee92106215", + "asm-tree-6.0.pom": "36887e0d7fdb185a92378a38ea45e596a97f10f385c5d050eb6252454ee701b4" + } + }, + { + "group": "org.ow2.asm", + "name": "asm-util", + "version": "6.0", + "artifacts": { + "asm-util-6.0.jar": "356afebdb0f870175262e5188f8709a3b17aa2a5a6a4b0340b04d4b449bca5f6", + "asm-util-6.0.pom": "3cdfc61f988d167b97503419da82a5808b20f4205aeb46c394e6e7ffd3211f12" + } + }, + { + "group": "org.sonatype.oss", + "name": "oss-parent", + "version": "7", + "artifacts": { + "oss-parent-7.pom": "b51f8867c92b6a722499557fc3a1fdea77bdf9ef574722fe90ce436a29559454" + } + }, + { + "group": "org.sonatype.oss", + "name": "oss-parent", + "version": "9", + "artifacts": { + "oss-parent-9.pom": "fb40265f982548212ff82e362e59732b2187ec6f0d80182885c14ef1f982827a" + } + } +] diff --git a/nix/maven-repo.nix b/nix/maven-repo.nix new file mode 100644 index 0000000..9b276cf --- /dev/null +++ b/nix/maven-repo.nix @@ -0,0 +1,172 @@ +{ lib +, stdenv +, buildEnv +, fetchurl +, writeTextDir +}: + +{ name ? "maven-deps" +, repos ? [ ] +, deps ? [ ] +, extraPaths ? [ ] +}: + +with lib; + +let + mavenize = sep: replaceStrings ["."] [sep]; + + fetch = + { group + , name + , version + , file + , sha256 + }: + fetchurl { + name = file; + urls = map (repo: "${repo}/${mavenize "/" group}/${name}/${version}/${file}") repos; + inherit sha256; + meta.platforms = platforms.all; + }; + + fetchDependency = + { group + , name + , version + , artifacts + }: + let + fetchArtifact = file: sha256: + fetch { inherit group name version file sha256; }; + + # Each artifact uses the filename in the Gradle cache, which doesn't + # correspond to the filename in the Maven repo. The mapping of name to URL + # is provided by Gradle module metadata, so we fetch that first. See + # https://github.com/gradle/gradle/blob/master/subprojects/docs/src/docs/design/gradle-module-metadata-latest-specification.md + # for the file format. + isModule = hasSuffix ".module"; + moduleArtifacts = filterAttrs (file: _: isModule file) artifacts; + otherArtifacts = filterAttrs (file: _: !isModule file) artifacts; + + modules = mapAttrsToList fetchArtifact moduleArtifacts; + + replacements = listToAttrs (flatten (map (module: + let + json = builtins.fromJSON (builtins.readFile module); + variants = json.variants or [ ]; + files = flatten (map (v: v.files or [ ]) variants); + in + map ({ name, url, ... }: nameValuePair name url) files + ) modules)); + + replaced = mapAttrs' (file: sha256: + nameValuePair (replacements.${file} or file) sha256 + ) otherArtifacts; + in + if moduleArtifacts == { } + then mapAttrsToList fetchArtifact artifacts + else modules ++ (mapAttrsToList fetchArtifact replaced); + + mkDep = + { group + , name + , version + , artifacts + }@dep: + stdenv.mkDerivation { + pname = "${mavenize "-" group}-${name}"; + inherit version; + + srcs = fetchDependency dep; + + sourceRoot = "."; + + phases = "installPhase"; + + enableParallelBuilding = true; + preferLocalBuild = true; + + installPhase = '' + dest=$out/${mavenize "/" group}/${name}/${version} + mkdir -p $dest + for src in $srcs; do + cp $src $dest/$(stripHash $src) + done + ''; + }; + + mkMetadata = deps: + let + modules = groupBy' + (meta: { group, name, version, ... }: + let + isNewer = versionOlder meta.latest version; + isNewerRelease = versionOlder meta.release version; + in { + groupId = group; + artifactId = name; + latest = if isNewer then version else meta.latest; + release = if isNewerRelease then version else meta.release; + versions = meta.versions ++ [ version ]; + } + ) + { + latest = ""; + release = ""; + versions = [ ]; + } + ({ group, name, ... }: "${mavenize "/" group}/${name}/maven-metadata.xml") + deps; + in + attrValues (mapAttrs (path: { groupId, artifactId, latest, release, versions }: + let + versions' = sort versionOlder (unique versions); + in + writeTextDir path '' + + + ${groupId} + ${artifactId} + + ${optionalString (latest != "") "${latest}"} + ${optionalString (release != "") "${release}"} + + ${concatMapStringsSep "\n " (v: "${v}") versions'} + + + + '' + ) modules); + + mkGradleRedirectionPoms = deps: + let + depsMissingPoms = filter ({ artifacts, ... }@dep: + any (f: hasSuffix ".module" f) (attrNames artifacts) && + !(any (f: hasSuffix ".pom" f) (attrNames artifacts)) + ) deps; + in + map ({ group, name, version, ... }: + writeTextDir "${mavenize "/" group}/${name}/${version}/${name}-${version}.pom" '' + + + + + + + 4.0.0 + ${group} + ${name} + ${version} + + '' + ) depsMissingPoms; + +in +buildEnv { + inherit name; + paths = map mkDep deps ++ mkMetadata deps ++ mkGradleRedirectionPoms deps ++ extraPaths; +} \ No newline at end of file diff --git a/nix/result b/nix/result new file mode 120000 index 0000000..ceb4005 --- /dev/null +++ b/nix/result @@ -0,0 +1 @@ +/nix/store/ya607qgczf0zbsldarb88qqw3cq2yslp-nix-maven-repo \ No newline at end of file diff --git a/nix/update-locks.nix b/nix/update-locks.nix new file mode 100644 index 0000000..560f7ba --- /dev/null +++ b/nix/update-locks.nix @@ -0,0 +1,17 @@ +{ lib +, writeShellScriptBin +, gradle +, jq +, yq-go +}: + +writeShellScriptBin "update-locks" '' + set -eu -o pipefail + set -x + ${gradle}/bin/gradle dependencies --write-locks + ${gradle}/bin/gradle --write-verification-metadata sha256 dependencies + ${yq-go}/bin/yq -p=xml -o=json gradle/verification-metadata.xml \ + | ${jq}/bin/jq '."verification-metadata".components.component' \ + | ${jq}/bin/jq '[ .[] | { group: ."+@group", name: ."+@name", version: ."+@version", artifacts: [([.artifact] | flatten | .[] | {(."+@name"): .sha256."+@value"})] | add } ]' > deps.json + rm gradle/verification-metadata.xml +'' diff --git a/npins/default.nix b/npins/default.nix new file mode 100644 index 0000000..fb04b70 --- /dev/null +++ b/npins/default.nix @@ -0,0 +1,80 @@ +# Generated by npins. Do not modify; will be overwritten regularly +let + data = builtins.fromJSON (builtins.readFile ./sources.json); + version = data.version; + + mkSource = + spec: + assert spec ? type; + let + path = + if spec.type == "Git" then + mkGitSource spec + else if spec.type == "GitRelease" then + mkGitSource spec + else if spec.type == "PyPi" then + mkPyPiSource spec + else if spec.type == "Channel" then + mkChannelSource spec + else + builtins.throw "Unknown source type ${spec.type}"; + in + spec // { outPath = path; }; + + mkGitSource = + { + repository, + revision, + url ? null, + hash, + branch ? null, + ... + }: + assert repository ? type; + # At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository + # In the latter case, there we will always be an url to the tarball + if url != null then + (builtins.fetchTarball { + inherit url; + sha256 = hash; + }) + else + assert repository.type == "Git"; + let + urlToName = + url: rev: + let + matched = builtins.match "^.*/([^/]*)(\\.git)?$" repository.url; + + short = builtins.substring 0 7 rev; + + appendShort = if (builtins.match "[a-f0-9]*" rev) != null then "-${short}" else ""; + in + "${if matched == null then "source" else builtins.head matched}${appendShort}"; + name = urlToName repository.url revision; + in + builtins.fetchGit { + url = repository.url; + rev = revision; + inherit name; + narHash = hash; + }; + + mkPyPiSource = + { url, hash, ... }: + builtins.fetchurl { + inherit url; + sha256 = hash; + }; + + mkChannelSource = + { url, hash, ... }: + builtins.fetchTarball { + inherit url; + sha256 = hash; + }; +in +if version == 4 then + builtins.mapAttrs (_: mkSource) data.pins +else + throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`" diff --git a/npins/sources.json b/npins/sources.json new file mode 100644 index 0000000..e5d4a77 --- /dev/null +++ b/npins/sources.json @@ -0,0 +1,23 @@ +{ + "pins": { + "android": { + "type": "Git", + "repository": { + "type": "GitHub", + "owner": "tadfisher", + "repo": "android-nixpkgs" + }, + "branch": "main", + "revision": "5a052c62cdb51b210bc0717177d5bd014cba3df1", + "url": "https://github.com/tadfisher/android-nixpkgs/archive/5a052c62cdb51b210bc0717177d5bd014cba3df1.tar.gz", + "hash": "0w4psgbg4ld937zsycd90d5072bliqq1d3g140s9ln609g3ij3cx" + }, + "nixpkgs": { + "type": "Channel", + "name": "nixpkgs-unstable", + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-24.11pre674705.b833ff01a0d6/nixexprs.tar.xz", + "hash": "12cda9rvpgjcsxykbcg5cxjaayhibjjabv6svacjc5n5kpcbx5sf" + } + }, + "version": 4 +} \ No newline at end of file diff --git a/wifisetup.iml b/wifisetup.iml deleted file mode 100644 index dd0e8d0..0000000 --- a/wifisetup.iml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file