Skip to content

Commit

Permalink
Revert "nix: refactor android sdk package"
Browse files Browse the repository at this point in the history
This reverts commit 68b9b18.
  • Loading branch information
jakubgs committed Apr 24, 2020
1 parent 3fce002 commit c305b24
Show file tree
Hide file tree
Showing 18 changed files with 135 additions and 163 deletions.
61 changes: 61 additions & 0 deletions nix/mobile/android/android-env.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#
# This Nix expression centralizes the configuration for the Android development environment
#

{ stdenv, config, callPackage, androidenv, openjdk, mkShell }:

let
androidComposition = androidenv.composeAndroidPackages {
toolsVersion = "26.1.1";
platformToolsVersion = "29.0.6";
buildToolsVersions = [ "29.0.2" ];
includeEmulator = false;
platformVersions = [ "29" ];
includeSources = false;
includeDocs = false;
includeSystemImages = false;
systemImageTypes = [ "default" ];
lldbVersions = [ "3.1.4508709" ];
cmakeVersions = [ "3.10.2" ];
includeNDK = true;
ndkVersion = "21.0.6113669";
useGoogleAPIs = false;
useGoogleTVAddOns = false;
includeExtras = [ "extras;android;m2repository" "extras;google;m2repository" ];
};
licensedAndroidEnv = stdenv.mkDerivation rec {
name = "licensed-android-sdk";
version = "licensed";
phases = [ "installPhase" "licensePhase" ];
installPhase = ''
mkdir -p $out/libexec/android-sdk
ln -s "${androidComposition.androidsdk}/bin" $out/bin
for d in ${androidComposition.androidsdk}/libexec/android-sdk/*; do
ln -s $d $out/$(basename $d)
done
'';
licensePhase = stdenv.lib.optionalString config.android_sdk.accept_license ''
mkdir -p $out/licenses
echo -e "\n601085b94cd77f0b54ff86406957099ebe79c4d6" > "$out/licenses/android-googletv-license"
echo -e "\n24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$out/licenses/android-sdk-license"
echo -e "\n84831b9409646a918e30573bab4c9c91346d8abd" > "$out/licenses/android-sdk-preview-license"
echo -e "\nd975f751698a77b662f1254ddbeed3901e976f5a" > "$out/licenses/intel-android-extra-license"
echo -e "\n33b6a2b64607f11b759f320ef9dff4ae5c47d97a" > "$out/licenses/google-gdk-license"
'';
};
shell = mkShell {
shellHook = ''
export JAVA_HOME="${openjdk}"
export ANDROID_HOME="${licensedAndroidEnv}"
export ANDROID_SDK_ROOT="$ANDROID_HOME"
export ANDROID_NDK_ROOT="${androidComposition.androidsdk}/libexec/android-sdk/ndk-bundle"
export ANDROID_NDK_HOME="$ANDROID_NDK_ROOT"
export ANDROID_NDK="$ANDROID_NDK_ROOT"
export PATH="$ANDROID_HOME/bin:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/build-tools:$PATH"
'';
};

in {
drv = licensedAndroidEnv;
inherit androidComposition shell;
}
18 changes: 11 additions & 7 deletions nix/mobile/android/default.nix
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
{ config, lib, callPackage, mkShell, mergeSh, flock, lsof, openjdk, gradle_5,
status-go, localMavenRepoBuilder, projectNodePackage, androidPkgs, androidShell }:
{ config, lib, callPackage, mkShell, mergeSh, androidenv, flock, lsof, openjdk, gradle_5,
status-go, localMavenRepoBuilder, projectNodePackage }:

let
gradle = gradle_5; # Currently 5.6.4
androidEnv = callPackage ./android-env.nix { };
leinProjectDeps = import ../../lein/lein-project-deps.nix { };

# Import a jsbundle compiled out of clojure codebase
Expand All @@ -21,10 +22,12 @@ let
# TARGETS
release = callPackage ./targets/release-android.nix {
inherit config gradle mavenAndNpmDeps jsbundle status-go watchmanFactory;
androidEnvShellHook = androidEnv.shell.shellHook;
};

generate-maven-and-npm-deps-shell = callPackage ./maven-and-npm-deps/maven/shell.nix {
inherit gradle projectNodePackage status-go;
androidEnvShellHook = androidEnv.shell.shellHook;
};

buildInputs = [
Expand All @@ -36,23 +39,24 @@ let
in {
# TARGETS
inherit release jsbundle generate-maven-and-npm-deps-shell buildInputs;
inherit (androidEnv) androidComposition;

shell = mergeSh
(mkShell {
inherit buildInputs;
inputsFrom = [ release gradle ];
shellHook = ''
export ANDROID_SDK_ROOT="${androidPkgs}"
export ANDROID_NDK_ROOT="${androidPkgs}/ndk-bundle"
# check if node modules changed and if so install them
$STATUS_REACT_HOME/nix/mobile/reset-node_modules.sh \
"${mavenAndNpmDeps.drv}/project"
'';
})
(lib.catAttrs "shell" [ status-go mavenAndNpmDeps androidShell ]);
(lib.catAttrs "shell" [ status-go mavenAndNpmDeps androidEnv ]);

env = {
shell = androidShell;
shell = mkShell {
buildInputs = [ androidEnv.drv ];
inherit (androidEnv.shell) shellHook;
};
};
}
19 changes: 13 additions & 6 deletions nix/mobile/android/maven-and-npm-deps/maven/shell.nix
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
{ mergeSh, mkShell, curl, flock, git, gradle, jq, maven, nodejs,
projectNodePackage, androidShell, status-go }:
{ mkShell, curl, flock, git, gradle, jq, maven, nodejs,
projectNodePackage, androidEnvShellHook, status-go }:

mergeSh (mkShell {
mkShell {
buildInputs = [
curl flock # used in reset-node_modules.sh
git gradle jq maven nodejs
curl
flock # used in reset-node_modules.sh
git
gradle
jq
maven
nodejs
projectNodePackage
];
shellHook = ''
${androidEnvShellHook}
${status-go.shell.shellHook}
$STATUS_REACT_HOME/nix/mobile/reset-node_modules.sh "${projectNodePackage}"
'';
}) [ status-go.shell androidShell ]
}
14 changes: 0 additions & 14 deletions nix/mobile/android/sdk/default.nix

This file was deleted.

26 changes: 0 additions & 26 deletions nix/mobile/android/sdk/licensed.nix

This file was deleted.

28 changes: 0 additions & 28 deletions nix/mobile/android/sdk/pkgs.nix

This file was deleted.

21 changes: 0 additions & 21 deletions nix/mobile/android/sdk/shell.nix

This file was deleted.

6 changes: 2 additions & 4 deletions nix/mobile/android/targets/release-android.nix
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{ stdenv, lib, config, callPackage,
mkFilter, bash, file, gnumake, watchmanFactory, gradle,
androidPkgs, mavenAndNpmDeps,
androidEnvShellHook, mavenAndNpmDeps,
nodejs, openjdk, jsbundle, status-go, unzip, zlib }:

{ secrets-file ? "", # Path to the file containing secret environment variables
Expand Down Expand Up @@ -111,15 +111,13 @@ in stdenv.mkDerivation {
adhocEnvVars = optionalString stdenv.isLinux "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${makeLibraryPath [ zlib ]}";
capitalizedBuildType = toUpper (substring 0 1 buildType) + substring 1 (-1) buildType;
in ''
export ANDROID_SDK_ROOT="${androidPkgs}"
export ANDROID_NDK_ROOT="${androidPkgs}/ndk-bundle"
export STATUS_REACT_HOME=$PWD
export HOME=$sourceRoot
${exportEnvVars}
${if secrets-file != "" then "source ${secrets-file}" else ""}
${androidEnvShellHook}
${concatStrings (catAttrs "shellHook" [ mavenAndNpmDeps.shell status-go.shell ])}
# fix permissions so gradle can create directories
Expand Down
33 changes: 18 additions & 15 deletions nix/mobile/default.nix
Original file line number Diff line number Diff line change
@@ -1,38 +1,41 @@
{ config, lib, stdenvNoCC, callPackage, mkShell,
status-go, mergeSh, xcodeWrapper }:
{ config, lib, stdenvNoCC, callPackage, status-go,
localMavenRepoBuilder, composeXcodeWrapper, mkShell, mergeSh }:

let
inherit (lib) catAttrs concatStrings optional unique;

projectNodePackage = callPackage ./node-package.nix { };

localMavenRepoBuilder = callPackage ../tools/maven/maven-repo-builder.nix { };

xcodewrapperArgs = {
version = "11.4.1";
};
xcodeWrapper = composeXcodeWrapper xcodewrapperArgs;
fastlane = callPackage ./fastlane { };

android = callPackage ./android {
androidPlatform = callPackage ./android {
inherit localMavenRepoBuilder projectNodePackage;
status-go = status-go.android;
};

ios = callPackage ./ios {
iosPlatform = callPackage ./ios {
inherit xcodeWrapper projectNodePackage fastlane;
status-go = status-go.ios;
};

selectedSources = [
fastlane
status-go.android
status-go.ios
fastlane
android
ios
androidPlatform
iosPlatform
];

projectNodePackage = callPackage ./node-package.nix { inherit (lib) importJSON; };

in {
buildInputs = unique (catAttrs "buildInputs" selectedSources);

shell = mergeSh (mkShell {}) (catAttrs "shell" selectedSources);

# CHILD DERIVATIONS
android = androidPlatform;
ios = iosPlatform;

# TARGETS
inherit android ios fastlane;
inherit fastlane xcodeWrapper;
}
4 changes: 2 additions & 2 deletions nix/mobile/node-package.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ lib, fetchFromGitHub, pkgs, nodejs, yarn }:
{ importJSON, fetchFromGitHub, pkgs, nodejs, yarn }:

let
yarn2nix = import (fetchFromGitHub {
Expand All @@ -10,7 +10,7 @@ let
}) { inherit pkgs nodejs yarn; };
yarnLock = ../../mobile/js_files/yarn.lock;
packageJSON = ../../mobile/js_files/package.json;
packageJSONContent = lib.importJSON packageJSON;
packageJSONContent = importJSON packageJSON;

# Create a yarn package for our project that contains all the dependecies, so that we have a
# known good node_modules folder that we can use later on
Expand Down
16 changes: 4 additions & 12 deletions nix/pkgs.nix
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,16 @@ let
permittedInsecurePackages = [ "openssl-1.0.2u" ];
# Override some package versions
packageOverrides = pkgs: rec {
inherit (pkgs) callPackage stdenv stdenvNoCC xcodeenv;

# utilities
mkFilter = import ./tools/mkFilter.nix { inherit (stdenv) lib; };
mkShell = import ./tools/mkShell.nix { inherit pkgs; stdenv = stdenvNoCC; };
mergeSh = import ./tools/mergeSh.nix { inherit (stdenv) lib; };

# android environement
androidEnvCustom = callPackage ./mobile/android/sdk { };
androidPkgs = androidEnvCustom.licensedPkgs;
androidShell = androidEnvCustom.shell;
mkFilter = import ./tools/mkFilter.nix { inherit (pkgs.stdenv) lib; };
mkShell = import ./tools/mkShell.nix { inherit pkgs; stdenv = pkgs.stdenvNoCC; };
mergeSh = import ./tools/mergeSh.nix { inherit (pkgs.stdenv) lib; };

# custom packages
xcodeWrapper = xcodeenv.composeXcodeWrapper { version = "11.4.1"; };
openjdk = pkgs.openjdk8_headless;
nodejs = pkgs.nodejs-12_x;
yarn = pkgs.yarn.override { inherit nodejs; };
go = callPackage ./patched-go { baseGo = pkgs.go_1_14; };
go = pkgs.callPackage ./patched-go { baseGo = pkgs.go_1_14; };

# custom builders
buildGoPackage = pkgs.buildGo114Package.override { inherit go; };
Expand Down
4 changes: 1 addition & 3 deletions nix/scripts/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,7 @@ function cleanup() {
fi
}

if [[ -z "${_NIX_NO_CLEAN}" ]]; then
trap cleanup EXIT ERR INT QUIT
fi
trap cleanup EXIT ERR INT QUIT

# build output will end up under /nix, we have to extract it
function extractResults() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
hostSystem } @ args':

let
buildStatusGo = callPackage ../build.nix {
buildStatusGo = callPackage ./build-status-go.nix {
inherit buildGoPackage go xcodeWrapper utils;
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
let
inherit (stdenv.lib) concatStringsSep makeBinPath optional optionals;

buildStatusGo = callPackage ../build.nix {
buildStatusGo = callPackage ./build-status-go.nix {
inherit buildGoPackage go xcodeWrapper utils;
};

Expand Down
File renamed without changes.
Loading

0 comments on commit c305b24

Please sign in to comment.