mirror of
https://github.com/linuxboot/heads.git
synced 2025-03-10 22:43:57 +00:00
127 lines
2.9 KiB
Nix
127 lines
2.9 KiB
Nix
|
{
|
||
|
description = "heads flake, mostly for devshell for now";
|
||
|
|
||
|
inputs = {
|
||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||
|
flake-utils.url = "github:numtide/flake-utils";
|
||
|
};
|
||
|
|
||
|
outputs = {
|
||
|
self,
|
||
|
flake-utils,
|
||
|
nixpkgs,
|
||
|
...
|
||
|
}:
|
||
|
flake-utils.lib.eachDefaultSystem (system: let
|
||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||
|
lib = pkgs.lib;
|
||
|
deps = with pkgs;
|
||
|
[
|
||
|
autoconf
|
||
|
automake
|
||
|
bashInteractive
|
||
|
coreutils
|
||
|
bc
|
||
|
bison # Generate flashmap descriptor parser
|
||
|
bzip2
|
||
|
cacert
|
||
|
ccache
|
||
|
cmake
|
||
|
cpio
|
||
|
curl
|
||
|
diffutils
|
||
|
dtc
|
||
|
e2fsprogs
|
||
|
elfutils
|
||
|
findutils
|
||
|
flex
|
||
|
gawk
|
||
|
git
|
||
|
gnat
|
||
|
gnugrep
|
||
|
gnumake
|
||
|
gnused
|
||
|
gnutar
|
||
|
gzip
|
||
|
imagemagick
|
||
|
innoextract
|
||
|
libtool
|
||
|
m4
|
||
|
ncurses5 # make menuconfig and slang
|
||
|
parted
|
||
|
patch
|
||
|
perl
|
||
|
pkg-config
|
||
|
python3
|
||
|
rsync
|
||
|
sharutils
|
||
|
texinfo
|
||
|
unzip
|
||
|
wget
|
||
|
which
|
||
|
xz
|
||
|
zip
|
||
|
zlib
|
||
|
zlib.dev
|
||
|
]
|
||
|
++ [
|
||
|
# blobs/xx30/vbios_[tw]530.sh
|
||
|
bundler
|
||
|
p7zip
|
||
|
ruby
|
||
|
sudo # ( °-° )
|
||
|
upx
|
||
|
]
|
||
|
++ [
|
||
|
# debugging/fixing/testing
|
||
|
qemu
|
||
|
vim
|
||
|
];
|
||
|
in {
|
||
|
devShell = pkgs.mkShellNoCC {
|
||
|
buildInputs = deps;
|
||
|
};
|
||
|
packages.myDevShell =
|
||
|
pkgs.runCommand "my-dev-shell" {}
|
||
|
#bash
|
||
|
''
|
||
|
grep \
|
||
|
-e CMAKE_PREFIX_PATH \
|
||
|
-e NIX_CC_WRAPPER_TARGET_TARGET \
|
||
|
-e NIX_CFLAGS_COMPILE_FOR_TARGET \
|
||
|
-e NIX_LDFLAGS_FOR_TARGET \
|
||
|
-e PKG_CONFIG_PATH_FOR_TARGET \
|
||
|
${self.devShell.${system}} >$out
|
||
|
'';
|
||
|
packages.dockerImage = pkgs.dockerTools.buildLayeredImage {
|
||
|
name = "linuxboot/heads";
|
||
|
tag = "dev-env";
|
||
|
config.Entrypoint = ["bash" "-c" ''source /devenv.sh; if (( $# == 0 )); then exec bash; else exec "$0" "$@"; fi''];
|
||
|
contents =
|
||
|
deps
|
||
|
++ [
|
||
|
pkgs.dockerTools.binSh
|
||
|
pkgs.dockerTools.caCertificates
|
||
|
pkgs.dockerTools.usrBinEnv
|
||
|
];
|
||
|
enableFakechroot = true;
|
||
|
fakeRootCommands =
|
||
|
#bash
|
||
|
''
|
||
|
set -e
|
||
|
|
||
|
grep \
|
||
|
-e NIX_CC_WRAPPER_TARGET_TARGET \
|
||
|
-e NIX_CFLAGS_COMPILE_FOR_TARGET \
|
||
|
-e NIX_LDFLAGS_FOR_TARGET \
|
||
|
-e NIX_PKG_CONFIG_WRAPPER_TARGET \
|
||
|
-e PKG_CONFIG_PATH_FOR_TARGET \
|
||
|
${self.devShell.${system}} >/devenv.sh
|
||
|
|
||
|
printf '[safe]\n\tdirectory = *\n' >/.gitconfig
|
||
|
mkdir /tmp;
|
||
|
'';
|
||
|
};
|
||
|
});
|
||
|
}
|