hscloud/shell.nix
Serge Bazanski d9567b3b99 java: use JDK 11
This is needed for newer versions of the gerrit owners plugin.

We also need to add zlib to our shell, as binary builds of JDK11 used by
Bazel require it.

Change-Id: Idbbc5e0d88cac13daf2e5f201be6032412bf1a5d
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1641
Reviewed-by: implr <implr@hackerspace.pl>
2023-10-09 19:02:12 +00:00

78 lines
2 KiB
Nix

# Shell for being able to use bazel on NixOS (or on any operating system with Nix installed).
let
hscloud = import ./default.nix {};
in with hscloud.pkgs; let
fontconfig = pkgs.writeText "fc-00-nixos-cache.conf" ''
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<include>/etc/fonts/fonts.conf</include>
<dir>${pkgs.roboto}</dir>
</fontconfig>
'';
wrapper = pkgs.writeScript "wrapper.sh"
''
export NIX_SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
export SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt"
export FONTCONFIG_FILE="${fontconfig}"
source ${toString ./.}/env.sh
# FIXME: //tools:install runs in a different PATH which thrashes our cache
# and causes massive rebuilds on every launch... This next line is the only
# important part off tools/install.sh
# bazel run //tools:install
#bazel build //tools/... //cluster/tools/...
# Fancy colorful PS1 to make people notice easily they're in hscloud.
PS1='\[\033]0;\u/hscloud:\w\007\]'
if type -P dircolors >/dev/null ; then
PS1+='\[\033[01;35m\]\u/hscloud\[\033[01;34m\] \w \$\[\033[00m\] '
fi
export PS1
exec bash --noprofile --norc "$@"
'';
in (pkgs.buildFHSUserEnv {
name = "hscloud-build";
targetPkgs = pkgs: with pkgs; [
bazel_5
postgresql
python310
openjdk11
openldap.dev cyrus_sasl.dev # for python-ldap
# No wkhtmltopdf as it got yoten from the hydra build set, and building it
# takes ages. Run locally in docker container instead.
#wkhtmltopdf
gcc binutils clang
libxcrypt-legacy
pwgen
tmate
git
which
gnupg
nettools
file
curl
netcat
nix
vim
openssh
libxcrypt
zlib
];
multiPkgs = pkgs: [
(pkgs.runCommand "protocols" {}
''
mkdir -p $out/etc
ln -s ${pkgs.iana-etc}/etc/protocols $out/etc/protocols
'')
];
runScript = wrapper;
}).env