···928928929929- `buildNimSbom` was added as an alternative to `buildNimPackage`. `buildNimSbom` uses [SBOMs](https://cyclonedx.org/) to generate packages whereas `buildNimPackage` uses a custom JSON lockfile format.930930931931+- The default version of `z3` has been updated from 4.8 to 4.13. There are still a few packages that need specific 4.8 versions; those will continue to be maintained.932932+931933## Detailed Migration Information {#sec-release-24.11-migration}932934933935### `sound` options removal {#sec-release-24.11-migration-sound}
+10
nixos/modules/services/web-apps/wakapi.nix
···2626 options.services.wakapi = {2727 enable = mkEnableOption "Wakapi";2828 package = mkPackageOption pkgs "wakapi" { };2929+ stateDir = mkOption {3030+ type = types.path;3131+ default = "/var/lib/wakapi";3232+ description = ''3333+ The state directory where data is stored. Will also be used as the3434+ working directory for the wakapi service.3535+ '';3636+ };29373038 settings = mkOption {3139 inherit (settingsFormat) type;···174166 RestrictNamespaces = true;175167 RestrictRealtime = true;176168 RestrictSUIDSGID = true;169169+ WorkingDirectory = cfg.stateDir;170170+ RuntimeDirectory = "wakapi";177171 StateDirectory = "wakapi";178172 StateDirectoryMode = "0700";179173 Restart = "always";
+47-20
nixos/tests/wakapi.nix
···33 {44 name = "Wakapi";5566- nodes.machine = {77- services.wakapi = {88- enable = true;99- settings = {1010- server.port = 3000; # upstream default, set explicitly in case upstream changes it1111-1212- db = {1313- dialect = "postgres"; # `createLocally` only supports postgres1414- host = "/run/postgresql";1515- port = 5432; # service will fail if port is not set1616- name = "wakapi";1717- user = "wakapi";66+ nodes = {77+ wakapiPsql = {88+ services.wakapi = {99+ enable = true;1010+ settings = {1111+ server.port = 3000; # upstream default, set explicitly in case upstream changes it1212+ db = {1313+ dialect = "postgres"; # `createLocally` only supports postgres1414+ host = "/run/postgresql";1515+ port = 5432; # service will fail if port is not set1616+ name = "wakapi";1717+ user = "wakapi";1818+ };1819 };2020+2121+ # Automatically create our database2222+ database.createLocally = true; # only works with Postgresql for now2323+2424+ # Created with `cat /dev/urandom | LC_ALL=C tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1`2525+ # Prefer passwordSaltFile in production.2626+ passwordSalt = "NpqCY7eY7fMoIWYmPx5mAgr6YoSlXSuI";1927 };2828+ };20292121- database.createLocally = true;3030+ wakapiSqlite = {3131+ services.wakapi = {3232+ enable = true;3333+ settings = {3434+ server.port = 3001;3535+ db = {3636+ dialect = "sqlite3";3737+ name = "wakapi";3838+ user = "wakapi";3939+ };4040+ };22412323- # Created with `cat /dev/urandom | LC_ALL=C tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1`2424- # Prefer passwordSaltFile in production.2525- passwordSalt = "NpqCY7eY7fMoIWYmPx5mAgr6YoSlXSuI";4242+ passwordSalt = "NpqCY7eY7fMoIWYmPx5mAgr6YoSlXSuI";4343+ };2644 };2745 };28462929- # Test that the service is running and that it is reachable.4747+ # Test that service works under both postgresql and sqlite34848+ # by starting all machines, and curling the default address.3049 # This is not very comprehensive for a test, but it should3150 # catch very basic mistakes in the module.3251 testScript = ''3333- machine.wait_for_unit("wakapi.service")3434- machine.wait_for_open_port(3000)3535- machine.succeed("curl --fail http://localhost:3000")5252+ with subtest("Test Wakapi with postgresql backend"):5353+ wakapiPsql.start()5454+ wakapiPsql.wait_for_unit("wakapi.service")5555+ wakapiPsql.wait_for_open_port(3000)5656+ wakapiPsql.succeed("curl --fail http://localhost:3000")5757+5858+ with subtest("Test Wakapi with sqlite3 backend"):5959+ wakapiSqlite.start()6060+ wakapiSqlite.wait_for_unit("wakapi.service")6161+ wakapiSqlite.wait_for_open_port(3001)6262+ wakapiSqlite.succeed("curl --fail http://localhost:3001")3663 '';37643865 meta.maintainers = [ lib.maintainers.NotAShelf ];
+3-3
pkgs/README.md
···73737474 - GNU Hello: [`pkgs/by-name/he/hello/package.nix`](./by-name/he/hello/package.nix). Trivial package, which specifies some `meta` attributes which is good practice.75757676- - GNU cpio: [`pkgs/tools/archivers/cpio/default.nix`](tools/archivers/cpio/default.nix). Also a simple package. The generic builder in `stdenv` does everything for you. It has no dependencies beyond `stdenv`.7676+ - GNU cpio: [`pkgs/by-name/cp/cpio/package.nix`](./by-name/cp/cpio/package.nix). Also a simple package. The generic builder in `stdenv` does everything for you. It has no dependencies beyond `stdenv`.77777878 - GNU Multiple Precision arithmetic library (GMP): [`pkgs/development/libraries/gmp`](development/libraries/gmp). Also done by the generic builder, but has a dependency on `m4`.79798080- - Pan, a GTK-based newsreader: [`pkgs/applications/networking/newsreaders/pan/default.nix`](applications/networking/newsreaders/pan/default.nix). Has an optional dependency on `gtkspell`, which is only built if `spellCheck` is `true`.8080+ - Pan, a GTK-based newsreader: [`pkgs/by-name/pa/pan/package.nix`](./by-name/pa/pan/package.nix). Has an optional dependency on `gtkspell`, which is only built if `spellCheck` is `true`.81818282 - Apache HTTPD: [`pkgs/servers/http/apache-httpd/2.4.nix`](servers/http/apache-httpd/2.4.nix). A bunch of optional features, variable substitutions in the configure flags, a post-install hook, and miscellaneous hackery.83838484 - buildMozillaMach: [`pkgs/applications/networking/browser/firefox/common.nix`](applications/networking/browsers/firefox/common.nix). A reusable build function for Firefox, Thunderbird and Librewolf.85858686- - JDiskReport, a Java utility: [`pkgs/tools/misc/jdiskreport/default.nix`](tools/misc/jdiskreport/default.nix). Nixpkgs doesn’t have a decent `stdenv` for Java yet so this is pretty ad-hoc.8686+ - JDiskReport, a Java utility: [`pkgs/by-name/jd/jdiskreport/package.nix`](./by-name/jd/jdiskreport/package.nix). Nixpkgs doesn’t have a decent `stdenv` for Java yet so this is pretty ad-hoc.87878888 - XML::Simple, a Perl module: [`pkgs/top-level/perl-packages.nix`](top-level/perl-packages.nix) (search for the `XMLSimple` attribute). Most Perl modules are so simple to build that they are defined directly in `perl-packages.nix`; no need to make a separate file for them.8989
···11{22 lib,33 fetchFromGitHub,44- fluidsynth,54 libGL,65 libGLU,77- libjpeg,88- libvorbis,66+ which,77+ zip,98 mkLibretroCore,109}:1010+let1111+ # https://github.com/libretro/scummvm/blob/master/backends/platform/libretro/dependencies.mk#L8-L141212+ libretro-common-src = fetchFromGitHub {1313+ owner = "libretro";1414+ repo = "libretro-common";1515+ rev = "70ed90c42ddea828f53dd1b984c6443ddb39dbd6";1616+ hash = "sha256-ItsUNbJCK/m/3VprK/zHD2UF5MhPC8b7jM3qS/oHU2A=";1717+ };1818+1919+ libretro-deps-src = fetchFromGitHub {2020+ owner = "libretro";2121+ repo = "libretro-deps";2222+ rev = "abf5246b016569759e7d1b0ea91bb98c2e34d160";2323+ hash = "sha256-tdGytbSNMCfMuXIAUunOSVw9qFq2rRaruELhZwEmhWE=";2424+ };2525+in1126mkLibretroCore {1227 core = "scummvm";1313- version = "0-unstable-2022-04-06";2828+ version = "0-unstable-2024-12-03";14291515- # This is the old source code before they upstreamed the source code,1616- # so now the libretro related code lives in the scummvm/scummvm repository.1717- # However this broke the old way we were doing builds, so for now point1818- # to a mirror with the old source code until this issue is fixed.1919- # TODO: switch to libretro/scummvm since this is more up-to-date2030 src = fetchFromGitHub {2121- owner = "libretro-mirrors";3131+ owner = "libretro";2232 repo = "scummvm";2323- rev = "2fb2e4c551c9c1510c56f6e890ee0300b7b3fca3";2424- hash = "sha256-wrlFqu+ONbYH4xMFDByOgySobGrkhVc7kYWI4JzA4ew=";3333+ rev = "7310d4e9f5d11553c6c5499911bd2f9b8ff3db3b";3434+ hash = "sha256-h+tnwayBhzBQrg5x1rxIJASAS43SP8emTATDG2N3ePk=";2535 };26362737 extraBuildInputs = [2828- fluidsynth2929- libjpeg3030- libvorbis3131- libGLU3238 libGL3939+ libGLU4040+ zip3341 ];4242+4343+ extraNativeBuildInputs = [ which ];4444+4545+ preConfigure = "cd backends/platform/libretro";4646+4747+ preBuild = ''4848+ mkdir -p deps/libretro-{common,deps}4949+ cp -a ${libretro-common-src}/* deps/libretro-common5050+ cp -a ${libretro-deps-src}/* deps/libretro-deps5151+ chmod -R u+w deps/5252+5353+ patchShebangs ./scripts/*5454+ '';5555+3456 makefile = "Makefile";3535- preConfigure = "cd backends/platform/libretro/build";36573758 meta = {3859 description = "Libretro port of ScummVM";3939- homepage = "https://github.com/libretro-mirrors/scummvm";6060+ homepage = "https://github.com/libretro/scummvm";4061 license = lib.licenses.gpl2Only;4162 };4263}
···13131414 modRoot = "wireguard-go-rs/libwg";1515 proxyVendor = true;1616- vendorHash = "sha256-uyAzY1hoCtS7da3wtjxTGx5wBb9c9m749TzihVr94rc=";1616+ vendorHash = "sha256-j1lopBV/b1qSZPtEUVFyW0auLtaWSE5ss1a0pprcqOk=";17171818 # XXX: hack to make the ar archive go to the correct place1919 # This is necessary because passing `-o ...` to `ldflags` does not work
···4343 else if fetchzip ? override then fetchzip.override { withUnzip = false; }4444 else fetchzip;4545 privateAttrs = lib.optionalAttrs private {4646- netrcPhase = ''4747- if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then4848- echo "Error: Private fetchFromGitHub requires the nix building process (nix-daemon in multi user mode) to have the ${varBase}USERNAME and ${varBase}PASSWORD env vars set." >&24949- exit 15050- fi5151- cat > netrc <<EOF5252- machine ${githubBase}5353- login ''$${varBase}USERNAME5454- password ''$${varBase}PASSWORD5555- EOF5656- '';4646+ netrcPhase =4747+ let machineName = if githubBase == "github.com" then "api.github.com" else githubBase;4848+ in ''4949+ if [ -z "''$${varBase}USERNAME" -o -z "''$${varBase}PASSWORD" ]; then5050+ echo "Error: Private fetchFromGitHub requires the nix building process (nix-daemon in multi user mode) to have the ${varBase}USERNAME and ${varBase}PASSWORD env vars set." >&25151+ exit 15252+ fi5353+ cat > netrc <<EOF5454+ machine ${machineName}5555+ login ''$${varBase}USERNAME5656+ password ''$${varBase}PASSWORD5757+ EOF5858+ '';5759 netrcImpureEnvVars = [ "${varBase}USERNAME" "${varBase}PASSWORD" ];5860 };5961···6866 inherit tag rev deepClone fetchSubmodules sparseCheckout fetchLFS; url = gitRepoUrl;6967 } // lib.optionalAttrs (leaveDotGit != null) { inherit leaveDotGit; }7068 else {7171- url = "${baseUrl}/archive/${revWithTag}.tar.gz";6969+ # Use the API endpoint for private repos, as the archive URI doesn't7070+ # support access with GitHub's fine-grained access tokens.7171+ #7272+ # Use the archive URI for non-private repos, as the API endpoint has7373+ # relatively restrictive rate limits for unauthenticated users.7474+ url =7575+ if private then7676+ let7777+ endpoint = "/repos/${owner}/${repo}/tarball/${revWithTag}";7878+ in7979+ if githubBase == "github.com" then8080+ "https://api.github.com${endpoint}"8181+ else8282+ "https://${githubBase}/api/v3${endpoint}"8383+ else8484+ "${baseUrl}/archive/${revWithTag}.tar.gz";8585+ extension = "tar.gz";72867387 passthru = {7488 inherit gitRepoUrl;
···3737 nativeBuildInputs = [3838 pkg-config3939 autoreconfHook4040+ libxml2 # xml2-config (only checked for, not used)4141+ ];4242+4343+ # set *-config for cross builds4444+ configureFlags = [4545+ "FREETYPECONFIG=${lib.getExe' (lib.getDev freetype) "freetype-config"}"4646+ "XML2_CONFIG=${lib.getExe' (lib.getDev libxml2) "xml2-config"}"4047 ];41484249 meta = with lib; {4350 description = "Tools for generating DVD files to be played on standalone DVD players";4444- homepage = "https://dvdauthor.sourceforge.net/";5151+ homepage = "https://dvdauthor.sourceforge.net/"; # or https://github.com/ldo/dvdauthor4552 license = licenses.gpl2;4653 platforms = platforms.linux ++ platforms.darwin;4754 };
···66 mkNugetDeps,77 nix,88 cacert,99- nuget-to-nix,1010- nixfmt-rfc-style,99+ nuget-to-json,1010+ jq,1111 dotnetCorePackages,1212 xmlstarlet,1313 patchNupkgs,···7777 buildFlags =7878 old.buildFlags7979 ++ lib.optionals (lib.versionAtLeast old.version "9") [8080- # We need to set this as long as we have something in deps.nix. Currently8080+ # We need to set this as long as we have something in deps.json. Currently8181 # that's the portable ilasm/ildasm which aren't in the centos sourcebuilt8282 # artifacts.8383 "-p:SkipErrorOnPrebuilts=true"···9595 nativeBuildInputs = old.nativeBuildInputs ++ [9696 nix9797 cacert9898- nuget-to-nix9999- nixfmt-rfc-style9898+ nuget-to-json9999+ jq100100 ];101101 postPatch =102102 old.postPatch or ""···135135 configurePhase ''${preBuildPhases[*]:-} buildPhase checkPhase" \136136 genericBuild137137138138- depsFiles=(./src/*/deps.nix)138138+ depsFiles=(./src/*/deps.json)139139140140- cat $(nix-build ${toString ./combine-deps.nix} \140140+ jq . $(nix-build ${toString ./combine-deps.nix} \141141 --arg list "[ ''${depsFiles[*]} ]" \142142 --argstr baseRid ${targetRid} \143143 --arg otherRids '${lib.generators.toPretty { multiline = false; } otherRids}' \144144- ) > deps.nix145145- nixfmt deps.nix144144+ ) > deps.json146145147147- mv deps.nix "${toString prebuiltPackages.sourceFile}"146146+ mv deps.json "${toString prebuiltPackages.sourceFile}"148147 EOF149148 '';150149 };
+16-9
pkgs/development/compilers/dotnet/update.nix
···40404141 drv = builtins.unsafeDiscardOutputDependency pkg.drvPath;42424343+ toOutputPath =4444+ path:4545+ let4646+ root = ../../../..;4747+ in4848+ lib.path.removePrefix root path;4949+4350in4451writeScript "update-dotnet-vmr.sh" ''4552 #! ${nix}/bin/nix-shell···10598 curl -fsSL "$releaseUrl" -o release.json10699107100 if [[ -z $tag && "$tagName" == "${tag}" ]]; then108108- >&2 echo "release is already $release"101101+ >&2 echo "release is already $tagName"109102 exit110103 fi111104···142135143136 sdkVersion=$(jq -r .tools.dotnet global.json)144137138138+ # below needs to be run in nixpkgs because toOutputPath uses relative paths139139+ cd -140140+141141+ cp "$tmp"/release.json "${toOutputPath releaseManifestFile}"142142+145143 jq --null-input \146144 --arg _0 "$tarballHash" \147145 --arg _1 "$artifactsUrl" \···155143 "tarballHash": $_0,156144 "artifactsUrl": $_1,157145 "artifactsHash": $_2,158158- }' > "${toString releaseInfoFile}"146146+ }' > "${toOutputPath releaseInfoFile}"159147160160- cp release.json "${toString releaseManifestFile}"161161-162162- cd -163163-164164- # needs to be run in nixpkgs165165- ${lib.escapeShellArg (toString ./update.sh)} \166166- -o ${lib.escapeShellArg (toString bootstrapSdkFile)} --sdk "$sdkVersion"148148+ ${lib.escapeShellArg (toOutputPath ./update.sh)} \149149+ -o ${lib.escapeShellArg (toOutputPath bootstrapSdkFile)} --sdk "$sdkVersion"167150168151 $(nix-build -A $UPDATE_NIX_ATTR_PATH.fetch-deps --no-out-link)169152 )
···148148 ]149149 ++ lib.optionals (lib.versionOlder version "9") [150150 ./fix-aspnetcore-portable-build.patch151151- ./fix-clang19-build.patch152151 ];153152154153 postPatch =···365366 postConfigure = lib.optionalString (lib.versionAtLeast version "9") ''366367 # see patch-npm-packages.proj367368 typeset -f isScript patchShebangs > src/aspnetcore/patch-shebangs.sh368368-369369- # fix nuget-to-nix failure on package sources which return 401370370- for source in dotnet{7,8,9}-internal{,-transport}; do371371- ./.dotnet/dotnet nuget disable source --configfile src/aspnetcore/NuGet.config $source372372- done373369 '';374370375371 dontConfigureNuget = true; # NUGET_PACKAGES breaks the build
+1
pkgs/development/compilers/gerbil/glow-lang.nix
···5252 license = licenses.asl20;5353 platforms = platforms.unix;5454 maintainers = with maintainers; [ fare ];5555+ broken = true; # Broken for all platforms since 2023-10-135556 };5657}
+4-8
pkgs/development/coq-modules/ITree/default.nix
···1414 defaultVersion =1515 with lib.versions;1616 lib.switch coq.version [1717- {1818- case = range "8.13" "8.20";1919- out = "5.2.0";2020- }2121- {2222- case = range "8.10" "8.16";2323- out = "4.0.0";2424- }1717+ { case = range "8.13" "8.20"; out = "5.2.0+20241009"; }1818+ { case = range "8.10" "8.16"; out = "4.0.0"; }2519 ] null;2020+ release."5.2.0+20241009".sha256 = "sha256-eg47YgnIonCq7XOUgh9uzoKsuFCvsOSTZhgFLNNcPD0=";2121+ release."5.2.0+20241009".rev = "abd1c7d3935cf03f02bf90e028e6cd3d3dce7713";2622 release."5.2.0".sha256 = "sha256-rKLz7ekZf/9xcQefBRsAdULmk81olzQ1W28y61vCDsY=";2723 release."5.1.2".sha256 = "sha256-uKJIjNXGWl0YS0WH52Rnr9Jz98Eo2k0X0qWB9hUYJMk=";2824 release."5.1.1".sha256 = "sha256-VlmPNwaGkdWrH7Z6DGXRosGtjuuQ+FBiGcadN2Hg5pY=";
+6-20
pkgs/development/coq-modules/paco/default.nix
···1313 defaultVersion =1414 with lib.versions;1515 lib.switch coq.coq-version [1616- {1717- case = range "8.13" "8.20";1818- out = "4.2.0";1919- }2020- {2121- case = range "8.12" "8.17";2222- out = "4.1.2";2323- }2424- {2525- case = range "8.9" "8.13";2626- out = "4.1.1";2727- }2828- {2929- case = range "8.6" "8.13";3030- out = "4.0.2";3131- }3232- {3333- case = isEq "8.5";3434- out = "1.2.8";3535- }1616+ { case = range "8.13" "8.20"; out = "4.2.2"; }1717+ { case = range "8.12" "8.17"; out = "4.1.2"; }1818+ { case = range "8.9" "8.13"; out = "4.1.1"; }1919+ { case = range "8.6" "8.13"; out = "4.0.2"; }2020+ { case = isEq "8.5"; out = "1.2.8"; }3621 ] null;2222+ release."4.2.2".sha256 = "sha256-qr6o45Q90FK+kkBUJ+W7QhiA0YQRb1RUwwXUpTTFt8A=";3723 release."4.2.0".sha256 = "sha256-YHYtiz9hium96n3owL/C99AjJAFTlTCmmb2+ttevgMY=";3824 release."4.1.2".sha256 = "sha256:1l8mwakqp4wnppsldl8wp2j24h1jvadnvrsgf35xnvdyygypjp2v";3925 release."4.1.1".sha256 = "1qap8cyv649lr1s11r7h5jzdjd4hsna8kph15qy5fw24h5nx6byy";
···33 fetchFromGitHub,44 buildPythonPackage,55 python,66+ pytestCheckHook,67 # deps78 /*89 ntlm-auth is in the requirements.txt, however nixpkgs tells me···5150 --replace-fail 'shutil.copytree(os.path.abspath(os.getcwd()), os.path.join(env_dir, "dirsearch"))' ""5251 '';53525353+ pyproject = true;5454+ build-system = [ setuptools ];5555+5456 dependencies = [5557 # maybe needed, see above5658 #pyspnego···8884 cp -r $src/db $dirsearchpath/dirsearch8985 '';90868787+ # tests8888+ nativeCheckInputs = [8989+ pytestCheckHook9090+ ];9191+ disabledTestPaths = [9292+ # needs network?9393+ "tests/reports/test_reports.py"9494+ ];9595+ disabledTests = [9696+ # failing for unknown reason9797+ "test_detect_scheme"9898+ ];9999+ pythonRemoveDeps = [100100+ # not available, see above101101+ "ntlm-auth"102102+ ];103103+ pythonRelaxDeps = [104104+ # version checker doesn't recognize 0.8.0.rc2 as >=0.7.0105105+ "defusedxml"106106+ # probably not but we don't have old charset-normalizer versions in nixpkgs107107+ # and requests also depends on it so we can't just override it with an108108+ # older version due to package duplication109109+ "charset-normalizer"110110+ ];111111+91112 meta = {92113 changelog = "https://github.com/maurosoria/dirsearch/releases/tag/${version}";9393- description = "command-line tool for brute-forcing directories and files in webservers, AKA a web path scanner";114114+ description = "Command-line tool for brute-forcing directories and files in webservers, AKA a web path scanner";94115 homepage = "https://github.com/maurosoria/dirsearch";95116 license = lib.licenses.gpl2Only;96117 mainProgram = "dirsearch";
···14141515buildPythonPackage rec {1616 pname = "ipyniivue";1717- version = "2.0.1";1717+ version = "2.1.0";1818 pyproject = true;19192020 disabled = pythonOlder "3.7";···2323 owner = "niivue";2424 repo = "ipyniivue";2525 rev = "v${version}";2626- hash = "sha256-6DZmHVVxJspjUhJ9pzTmTvwAnQfvTp8OL2xZONz2XbU=";2626+ hash = "sha256-rgScBBJ0Jqr5REZ+YFJcKwWcV33RzJ/sn6RqTL/limo=";2727 };28282929 npmDeps = fetchNpmDeps {3030 name = "${pname}-${version}-npm-deps";3131 inherit src;3232- hash = "sha256-ZJRBGMNn5clxMavimfl6Jwqf7M2pRo+WLne0gUWOiJ8=";3232+ hash = "sha256-3IR2d4/i/e1dRlvKN21XnadUfx2lP5SuToQJ9tMhzp4=";3333 };34343535 # We do not need the build hooks, because we do not need to
···2121 buildHashes = builtins.fromJSON (builtins.readFile ./hashes.json);22222323 # the version of infisical2424- version = "0.32.0";2424+ version = "0.33.1";25252626 # the platform-specific, statically linked binary2727 src =
···9191 else pkgs.netbsd.getent;9292 darwin = pkgs.netbsd.getent;9393 freebsd = pkgs.freebsd.getent;9494+ openbsd = pkgs.openbsd.getent;9495 };9596 getopt = {9697 linux = pkgs.util-linux;···114113 linux = pkgs.nettools;115114 darwin = pkgs.darwin.shell_cmds;116115 freebsd = pkgs.freebsd.bin;116116+ openbsd = pkgs.openbsd.hostname;117117 };118118 ifconfig = {119119 linux = pkgs.nettools;120120 darwin = pkgs.darwin.network_cmds;121121 freebsd = pkgs.freebsd.ifconfig;122122+ openbsd = pkgs.openbsd.ifconfig;122123 };123124 killall = {124125 linux = pkgs.psmisc;···147144 linux = pkgs.util-linux;148145 darwin = pkgs.darwin.diskdev_cmds;149146 freebsd = freebsd.mount;147147+ openbsd = pkgs.openbsd.mount;150148 # technically just targeting the darwin version; binlore already151149 # ids the util-linux copy as 'cannot'152150 # no obvious exec in manpage args; I think binlore flags 'can'···170166 linux = pkgs.procps;171167 darwin = pkgs.darwin.ps;172168 freebsd = pkgs.freebsd.bin;169169+ openbsd = pkgs.openbsd.ps;173170 # technically just targeting procps ps (which ids as can)174171 # but I don't see obvious exec in args; have yet to look175172 # for underlying cause in source···186181 linux = pkgs.nettools;187182 darwin = pkgs.darwin.network_cmds;188183 freebsd = pkgs.freebsd.route;184184+ openbsd = pkgs.openbsd.route;189185 };190186 script = {191187 linux = pkgs.util-linux;···196190 linux = pkgs.procps;197191 darwin = pkgs.darwin.system_cmds;198192 freebsd = pkgs.freebsd.sysctl;193193+ openbsd = pkgs.openbsd.sysctl;199194 };200195 top = {201196 linux = pkgs.procps;202197 darwin = pkgs.darwin.top;203198 freebsd = pkgs.freebsd.top;199199+ openbsd = pkgs.openbsd.top;204200 # technically just targeting procps top; haven't needed this in205201 # any scripts so far, but overriding it for consistency with ps206202 # override above and in procps. (procps also overrides 'free',···229221 # Darwin/FreeBSD. Unfortunately no other implementations exist currently!230222 darwin = pkgs.callPackage ../os-specific/linux/procps-ng {};231223 freebsd = pkgs.callPackage ../os-specific/linux/procps-ng {};224224+ openbsd = pkgs.callPackage ../os-specific/linux/procps-ng {};232225 };233226 write = {234227 linux = pkgs.util-linux;