mirror of
https://github.com/nix-community/nix-on-droid.git
synced 2025-11-08 19:46:07 +01:00
bootstrap: flakify bootstrap zip ball generation
This commit is contained in:
parent
8e95f76eb6
commit
876e61aae6
8 changed files with 58 additions and 40 deletions
|
|
@ -124,9 +124,10 @@ is probably not interesting for you, just download and use a prebuilt one.
|
|||
If you really want to rebuild it, you can just use Android Studio for that.
|
||||
|
||||
The zipball generation is probably what you are after.
|
||||
Get an x86_64 computer with Nix. Run
|
||||
Get an x86_64 computer with flake-enabled Nix. Run
|
||||
|
||||
```
|
||||
nix build -f ./pkgs --argstr arch aarch64 bootstrapZip
|
||||
nix build .#bootstrapZip --impure
|
||||
```
|
||||
|
||||
Put the zip file from `result` on some HTTP server
|
||||
|
|
|
|||
19
flake.lock
generated
19
flake.lock
generated
|
|
@ -51,11 +51,28 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-for-bootstrap": {
|
||||
"locked": {
|
||||
"lastModified": 1656265786,
|
||||
"narHash": "sha256-A9RkoGrxzsmMm0vily18p92Rasb+MbdDMaSnzmywXKw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cd90e773eae83ba7733d2377b6cdf84d45558780",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "cd90e773eae83ba7733d2377b6cdf84d45558780",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-for-bootstrap": "nixpkgs-for-bootstrap"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
|
|
|
|||
16
flake.nix
16
flake.nix
|
|
@ -3,14 +3,21 @@
|
|||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs";
|
||||
|
||||
# for bootstrap zip ball creation and proot-termux builds, we use a fixed version of nixpkgs to ease maintanence.
|
||||
# head of nixos-22.05 as of 2022-06-27
|
||||
# note: when updating nixpkgs-for-bootstrap, update store paths of proot-termux in modules/environment/login/default.nix
|
||||
nixpkgs-for-bootstrap.url = "github:NixOS/nixpkgs/cd90e773eae83ba7733d2377b6cdf84d45558780";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, flake-utils }:
|
||||
outputs = { self, nixpkgs, nixpkgs-for-bootstrap, home-manager, flake-utils }:
|
||||
let
|
||||
overlay = nixpkgs.lib.composeManyExtensions (import ./overlays);
|
||||
|
||||
|
|
@ -47,7 +54,12 @@
|
|||
nix-on-droid = app;
|
||||
};
|
||||
}
|
||||
// flake-utils.lib.eachDefaultSystem (system: {
|
||||
// flake-utils.lib.eachSystem [ "aarch64-linux" "i686-linux" "x86_64-darwin" "x86_64-linux" ] (system: {
|
||||
formatter = nixpkgs.legacyPackages.${system}.nixpkgs-fmt;
|
||||
|
||||
packages = import ./pkgs {
|
||||
inherit system;
|
||||
nixpkgs = nixpkgs-for-bootstrap;
|
||||
};
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# Copyright (c) 2019-2022, see AUTHORS. Licensed under MIT License, see LICENSE.
|
||||
|
||||
{ config }:
|
||||
{ config, nixpkgs, system }:
|
||||
|
||||
let
|
||||
loadNixpkgs = import ../lib/load-nixpkgs.nix;
|
||||
{
|
||||
inherit system;
|
||||
|
||||
crossSystem = {
|
||||
config = "${config.build.arch}-unknown-linux-android";
|
||||
|
|
@ -13,7 +13,4 @@ let
|
|||
useLLVM = true;
|
||||
isStatic = true;
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
loadNixpkgs { inherit crossSystem; }
|
||||
}
|
||||
|
|
@ -1,12 +1,12 @@
|
|||
# Copyright (c) 2019-2022, see AUTHORS. Licensed under MIT License, see LICENSE.
|
||||
|
||||
{ callPackage, tallocStatic }:
|
||||
{ callPackage, nixpkgs, tallocStatic }:
|
||||
|
||||
let
|
||||
pkgsCross = callPackage ./cross-pkgs.nix { };
|
||||
pkgsCross = import nixpkgs (callPackage ./cross-pkgs-args.nix { });
|
||||
stdenv = pkgsCross.stdenvAdapters.makeStaticBinaries pkgsCross.stdenv;
|
||||
|
||||
in
|
||||
|
||||
pkgsCross.callPackage ../proot-termux {
|
||||
talloc = tallocStatic;
|
||||
inherit stdenv;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# Copyright (c) 2019-2022, see AUTHORS. Licensed under MIT License, see LICENSE.
|
||||
|
||||
{ callPackage
|
||||
, nixpkgs
|
||||
, fetchurl
|
||||
, python3
|
||||
, pkg-config
|
||||
|
|
@ -8,7 +9,7 @@
|
|||
}:
|
||||
|
||||
let
|
||||
pkgsCross = callPackage ./cross-pkgs.nix { };
|
||||
pkgsCross = import nixpkgs (callPackage ./cross-pkgs-args.nix { });
|
||||
in
|
||||
|
||||
pkgsCross.stdenv.mkDerivation rec {
|
||||
|
|
|
|||
|
|
@ -1,22 +1,29 @@
|
|||
# Copyright (c) 2019-2022, see AUTHORS. Licensed under MIT License, see LICENSE.
|
||||
|
||||
{ arch ? "aarch64", nixOnDroidChannelURL ? null, nixpkgsChannelURL ? null }:
|
||||
{ nixpkgs
|
||||
, system
|
||||
, arch ? "aarch64"
|
||||
, nixOnDroidChannelURL ? null
|
||||
, nixpkgsChannelURL ? null
|
||||
}:
|
||||
|
||||
let
|
||||
nixDirectory = callPackage ./nix-directory.nix { };
|
||||
initialPackageInfo = import "${nixDirectory}/nix-support/package-info.nix";
|
||||
|
||||
nixpkgs = import lib/load-nixpkgs.nix { };
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
|
||||
modules = import ../modules {
|
||||
pkgs = nixpkgs;
|
||||
inherit pkgs;
|
||||
|
||||
extraModules = [ ../modules/build/initial-build.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit initialPackageInfo;
|
||||
pkgs = nixpkgs.lib.mkForce nixpkgs; # to override ./modules/nixpkgs/config.nix
|
||||
pkgs = pkgs.lib.mkForce pkgs; # to override ./modules/nixpkgs/config.nix
|
||||
};
|
||||
|
||||
isFlake = true;
|
||||
|
||||
config = {
|
||||
# Fix invoking bash after initial build.
|
||||
user.shell = "${initialPackageInfo.bash}/bin/bash";
|
||||
|
|
@ -24,7 +31,7 @@ let
|
|||
build = {
|
||||
inherit arch;
|
||||
|
||||
channel = with nixpkgs.lib; {
|
||||
channel = with pkgs.lib; {
|
||||
nixpkgs = mkIf (nixpkgsChannelURL != null) nixpkgsChannelURL;
|
||||
nix-on-droid = mkIf (nixOnDroidChannelURL != null) nixOnDroidChannelURL;
|
||||
};
|
||||
|
|
@ -32,8 +39,8 @@ let
|
|||
};
|
||||
};
|
||||
|
||||
callPackage = nixpkgs.lib.callPackageWith (
|
||||
nixpkgs // customPkgs // {
|
||||
callPackage = pkgs.lib.callPackageWith (
|
||||
pkgs // customPkgs // {
|
||||
inherit (modules) config;
|
||||
inherit callPackage nixpkgs nixDirectory initialPackageInfo;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
# Copyright (c) 2019-2022, see AUTHORS. Licensed under MIT License, see LICENSE.
|
||||
|
||||
let
|
||||
defaultNixpkgsArgs = {
|
||||
config = { };
|
||||
overlays = [ ];
|
||||
};
|
||||
|
||||
# head of nixos-22.05 as of 2022-06-27
|
||||
# note: when updating nixpkgs, update store paths of proot-termux in modules/environment/login/default.nix
|
||||
pinnedPkgsSrc = builtins.fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/cd90e773eae83ba7733d2377b6cdf84d45558780.tar.gz";
|
||||
sha256 = "1b2wn1ncx9x4651vfcgyqrm93pd7ghnrgqjbkf6ckkpidah69m03";
|
||||
};
|
||||
in
|
||||
|
||||
args: import pinnedPkgsSrc (args // defaultNixpkgsArgs)
|
||||
Loading…
Add table
Add a link
Reference in a new issue