{ pkgs, lib, myLib, requireInstallDir ? false, licenseInterface ? "", ... }: let bypassNetwork = licenseInterface == true || (licenseInterface != ""); imperativeInterface = licenseInterface == true; declarativeInterface = bypassNetwork && !imperativeInterface; in pkgs.buildFHSEnv { multiPkgs = pkgs: with pkgs; [ coreutils fontconfig expat libgcc libjpeg libselinux gamin glib stdenv.cc.cc.lib zlib libpng freetype tcl-8_5 alsa-lib nss nspr nsss sqlite ncurses5 gmp libthai pixman cups.lib avahi audit libtiff dbus.lib gnutls keyutils.lib cairo pango krb5 libgcrypt libgpg-error libtasn1 gtk2 jasper (perl.withPackages (ps: [ ps.XMLRegExp ps.XMLParser ])) xorg.libXext xorg.libXtst xorg.libXft xorg.libX11 xorg.libXrender xorg.libXi xorg.libXft xorg.libXrandr xorg.libXfixes xorg.libXdamage xorg.libXcomposite xorg.libXinerama xorg.libICE xorg.libSM libGL ]; name = "diamond"; multiArch = true; unshareNet = bypassNetwork; extraBwrapArgs = lib.lists.optionals bypassNetwork [ "--cap-add CAP_NET_ADMIN" ]; runScript = '' ${myLib.runScriptPrefix "diamond" requireInstallDir} if [[ ! -z $INSTALL_DIR ]]; then export PATH=$INSTALL_DIR/bin/lin64:$PATH export LD_LIBRARY_PATH=$INSTALL_DIR/bin/lin64:$LD_LIBRARY_PATH fi export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH '' + (lib.optionalString imperativeInterface '' if [[ -z $LICENSE_INTERFACE ]]; then echo "nix-diamond-error: LICENSE_INTERFACE is not set, but imperative license interface setup has been chosen. Continuing, but expect issues with license." else ip link add eth0 type dummy ip link set dev eth0 address $LICENSE_INTERFACE fi '') + (lib.optionalString declarativeInterface '' ip link add eth0 type dummy ip link set dev eth0 address ${licenseInterface} '') + '' exec "$@" ''; meta.mainProgram = "diamond"; }