Merge pull request #246386 from hercules-ci/lib-getExe-dont-make-name-assumption

lib.getExe: Do not make assumptions about the main program

Changed files
+95 -9
lib
nixos
modules
programs
pkgs
applications
audio
espeak-ng
display-managers
greetd
emulators
darling
graphics
openscad
tesseract
networking
browsers
firefox
clash-verge
instant-messengers
discord
irc
thelounge
version-management
gitea
virtualization
kvmtool
window-managers
build-support
writers
desktops
gnome
apps
file-roller
development
interpreters
perl
python
cpython
libraries
xdg-dbus-proxy
python-modules
flake8
tools
continuous-integration
woodpecker
esbuild
geckodriver
misc
selenium
chromedriver
os-specific
linux
below
servers
code-server
consul
dns
acme-dns
ldap
lldap
monitoring
grafana-agent
openvscode-server
pufferpanel
web-apps
kavita
x11
tools
backup
tarsnap
misc
coreboot-utils
direnv
file
nurl
vector
xvfb-run
yt-dlp
networking
clash
clash-meta
sitespeed-io
wgautomesh
package-management
harmonia
nix
system
auto-cpufreq
htop
kanata
+5 -1
lib/meta.nix
···
=> "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache"
*/
getExe = x:
-
"${lib.getBin x}/bin/${x.meta.mainProgram or (lib.getName x)}";
}
···
=> "/nix/store/am9ml4f4ywvivxnkiaqwr0hyxka1xjsf-mustache-go-1.3.0/bin/mustache"
*/
getExe = x:
+
"${lib.getBin x}/bin/${x.meta.mainProgram or (
+
# This could be turned into an error when 23.05 is at end of life
+
lib.warn "getExe: Package ${lib.strings.escapeNixIdentifier x.meta.name or x.pname or x.name} does not have the meta.mainProgram attribute. We'll assume that the main program has the same name for now, but this behavior is deprecated, because it leads to surprising errors when the assumption does not hold. If the package has a main program, please set `meta.mainProgram` in its definition to make this warning go away. Otherwise, if the package does not have a main program, or if you don't control its definition, specify the full path to the program, such as \"\${lib.getBin foo}/bin/bar\"."
+
lib.getName x
+
)}";
}
+6 -1
nixos/modules/programs/oddjobd.nix
···
};
config = lib.mkIf cfg.enable {
systemd.packages = [ cfg.package ];
systemd.services.oddjobd = {
···
serviceConfig = {
Type = "dbus";
BusName = "org.freedesktop.oddjob";
-
ExecStart = "${lib.getExe cfg.package}/bin/oddjobd";
};
};
};
···
};
config = lib.mkIf cfg.enable {
+
assertions = [
+
{ assertion = false;
+
message = "The oddjob service was found to be broken without NixOS test or maintainer. Please take ownership of this service.";
+
}
+
];
systemd.packages = [ cfg.package ];
systemd.services.oddjobd = {
···
serviceConfig = {
Type = "dbus";
BusName = "org.freedesktop.oddjob";
+
ExecStart = "${lib.getBin cfg.package}/bin/oddjobd";
};
};
};
+1
pkgs/applications/audio/espeak-ng/default.nix
···
license = licenses.gpl3Plus;
maintainers = with maintainers; [ aske ];
platforms = platforms.all;
};
}
···
license = licenses.gpl3Plus;
maintainers = with maintainers; [ aske ];
platforms = platforms.all;
+
mainProgram = "espeak-ng";
};
}
+1
pkgs/applications/display-managers/greetd/regreet.nix
···
license = licenses.gpl3Plus;
maintainers = with maintainers; [ fufexan ];
platforms = platforms.linux;
};
}
···
license = licenses.gpl3Plus;
maintainers = with maintainers; [ fufexan ];
platforms = platforms.linux;
+
mainProgram = "regreet";
};
}
+1
pkgs/applications/emulators/darling/default.nix
···
license = licenses.gpl3Plus;
maintainers = with maintainers; [ zhaofengli ];
platforms = [ "x86_64-linux" ];
};
}
···
license = licenses.gpl3Plus;
maintainers = with maintainers; [ zhaofengli ];
platforms = [ "x86_64-linux" ];
+
mainProgram = "darling";
};
}
+1
pkgs/applications/graphics/openscad/default.nix
···
license = lib.licenses.gpl2;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ bjornfor raskin gebner ];
};
}
···
license = lib.licenses.gpl2;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ bjornfor raskin gebner ];
+
mainProgram = "openscad";
};
}
+1
pkgs/applications/graphics/tesseract/tesseract5.nix
···
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ anselmschueler ];
platforms = lib.platforms.unix;
};
}
···
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ anselmschueler ];
platforms = lib.platforms.unix;
+
mainProgram = "tesseract";
};
}
+5
pkgs/applications/networking/browsers/firefox/packages.nix
···
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
};
tests = [ nixosTests.firefox ];
updateScript = callPackage ./update.nix {
···
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
};
tests = [ nixosTests.firefox-beta ];
updateScript = callPackage ./update.nix {
···
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
};
tests = [ nixosTests.firefox-devedition ];
updateScript = callPackage ./update.nix {
···
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
license = lib.licenses.mpl20;
};
tests = [ nixosTests.firefox-esr-102 ];
updateScript = callPackage ./update.nix {
···
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
license = lib.licenses.mpl20;
};
tests = [ nixosTests.firefox-esr-115 ];
updateScript = callPackage ./update.nix {
···
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
+
mainProgram = "firefox";
};
tests = [ nixosTests.firefox ];
updateScript = callPackage ./update.nix {
···
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
+
mainProgram = "firefox";
};
tests = [ nixosTests.firefox-beta ];
updateScript = callPackage ./update.nix {
···
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
maxSilent = 14400; # 4h, double the default of 7200s (c.f. #129212, #129115)
license = lib.licenses.mpl20;
+
mainProgram = "firefox";
};
tests = [ nixosTests.firefox-devedition ];
updateScript = callPackage ./update.nix {
···
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
license = lib.licenses.mpl20;
+
mainProgram = "firefox";
};
tests = [ nixosTests.firefox-esr-102 ];
updateScript = callPackage ./update.nix {
···
broken = stdenv.buildPlatform.is32bit; # since Firefox 60, build on 32-bit platforms fails with "out of memory".
# not in `badPlatforms` because cross-compilation on 64-bit machine might work.
license = lib.licenses.mpl20;
+
mainProgram = "firefox";
};
tests = [ nixosTests.firefox-esr-115 ];
updateScript = callPackage ./update.nix {
+1
pkgs/applications/networking/clash-verge/default.nix
···
license = licenses.gpl3Plus;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ zendo ];
};
}
···
license = licenses.gpl3Plus;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ zendo ];
+
mainProgram = "clash-verge";
};
}
+1
pkgs/applications/networking/instant-messengers/discord/linux.nix
···
{
pythonInterpreter = "${python3.interpreter}";
configDirName = lib.toLower binaryName;
} ''
mkdir -p $out/bin
cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py
···
{
pythonInterpreter = "${python3.interpreter}";
configDirName = lib.toLower binaryName;
+
meta.mainProgram = "disable-breaking-updates.py";
} ''
mkdir -p $out/bin
cp ${./disable-breaking-updates.py} $out/bin/disable-breaking-updates.py
+1
pkgs/applications/networking/irc/thelounge/default.nix
···
maintainers = with maintainers; [ winter raitobezarius ];
license = licenses.mit;
inherit (nodejs.meta) platforms;
};
})
···
maintainers = with maintainers; [ winter raitobezarius ];
license = licenses.mit;
inherit (nodejs.meta) platforms;
+
mainProgram = "thelounge";
};
})
+1
pkgs/applications/version-management/gitea/default.nix
···
license = licenses.mit;
maintainers = with maintainers; [ disassembler kolaente ma27 techknowlogick ];
broken = stdenv.isDarwin;
};
}
···
license = licenses.mit;
maintainers = with maintainers; [ disassembler kolaente ma27 techknowlogick ];
broken = stdenv.isDarwin;
+
mainProgram = "gitea";
};
}
+1
pkgs/applications/virtualization/kvmtool/default.nix
···
license = licenses.gpl2Only;
maintainers = with maintainers; [ astro ];
platforms = [ "x86_64-linux" "aarch64-linux" ];
};
}
···
license = licenses.gpl2Only;
maintainers = with maintainers; [ astro ];
platforms = [ "x86_64-linux" "aarch64-linux" ];
+
mainProgram = "nvramtool";
};
}
+1
pkgs/applications/window-managers/cage/default.nix
···
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos ];
};
}
···
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos ];
+
mainProgram = "cage";
};
}
+17 -7
pkgs/build-support/writers/scripts.nix
···
name = last (builtins.split "/" nameOrPath);
in
-
pkgs.runCommandLocal name (if (types.str.check content) then {
-
inherit content interpreter;
-
passAsFile = [ "content" ];
-
} else {
-
inherit interpreter;
-
contentPath = content;
-
}) ''
# On darwin a script cannot be used as an interpreter in a shebang but
# there doesn't seem to be a limit to the size of shebang and multiple
# arguments to the interpreter are allowed.
···
# https://github.com/NixOS/nixpkgs/issues/154203
# https://github.com/NixOS/nixpkgs/issues/148189
nativeBuildInputs = [ stdenv.cc.bintools ];
}) ''
${compileScript}
${lib.optionalString strip
···
name = last (builtins.split "/" nameOrPath);
in
+
pkgs.runCommandLocal name (
+
lib.optionalAttrs (nameOrPath == "/bin/${name}") {
+
meta.mainProgram = name;
+
}
+
// (
+
if (types.str.check content) then {
+
inherit content interpreter;
+
passAsFile = [ "content" ];
+
} else {
+
inherit interpreter;
+
contentPath = content;
+
}
+
)
+
)
+
''
# On darwin a script cannot be used as an interpreter in a shebang but
# there doesn't seem to be a limit to the size of shebang and multiple
# arguments to the interpreter are allowed.
···
# https://github.com/NixOS/nixpkgs/issues/154203
# https://github.com/NixOS/nixpkgs/issues/148189
nativeBuildInputs = [ stdenv.cc.bintools ];
+
} // lib.optionalAttrs (nameOrPath == "/bin/${name}") {
+
meta.mainProgram = name;
}) ''
${compileScript}
${lib.optionalString strip
+1
pkgs/desktops/gnome/apps/file-roller/default.nix
···
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = teams.gnome.members ++ teams.pantheon.members;
};
}
···
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = teams.gnome.members ++ teams.pantheon.members;
+
mainProgram = "file-roller";
};
}
+1
pkgs/development/interpreters/perl/intepreter.nix
···
maintainers = [ maintainers.eelco ];
platforms = platforms.all;
priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
};
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
crossVersion = "c876045741f5159318085d2737b0090f35a842ca"; # June 5, 2022
···
maintainers = [ maintainers.eelco ];
platforms = platforms.all;
priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
+
mainProgram = "perl";
};
} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
crossVersion = "c876045741f5159318085d2737b0090f35a842ca"; # June 5, 2022
+1
pkgs/development/interpreters/python/cpython/default.nix
···
license = licenses.psfl;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ fridh ];
};
}
···
license = licenses.psfl;
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ fridh ];
+
mainProgram = "python3";
};
}
+1
pkgs/development/libraries/xdg-dbus-proxy/default.nix
···
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
};
}
···
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.linux;
+
mainProgram = "xdg-dbus-proxy";
};
}
+1
pkgs/development/python-modules/flake8/default.nix
···
homepage = "https://github.com/pycqa/flake8";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
};
}
···
homepage = "https://github.com/pycqa/flake8";
license = licenses.mit;
maintainers = with maintainers; [ dotlambda ];
+
mainProgram = "flake8";
};
}
+1
pkgs/development/tools/continuous-integration/woodpecker/agent.nix
···
meta = common.meta // {
description = "Woodpecker Continuous Integration agent";
};
}
···
meta = common.meta // {
description = "Woodpecker Continuous Integration agent";
+
mainProgram = "woodpecker-agent";
};
}
+1
pkgs/development/tools/continuous-integration/woodpecker/server.nix
···
meta = common.meta // {
description = "Woodpecker Continuous Integration server";
};
}
···
meta = common.meta // {
description = "Woodpecker Continuous Integration server";
+
mainProgram = "woodpecker-server";
};
}
+1
pkgs/development/tools/esbuild/default.nix
···
changelog = "https://github.com/evanw/esbuild/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ lucus16 marsam undefined-moe ];
};
}
···
changelog = "https://github.com/evanw/esbuild/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ lucus16 marsam undefined-moe ];
+
mainProgram = "esbuild";
};
}
+1
pkgs/development/tools/esbuild/netlify.nix
···
homepage = "https://github.com/netlify/esbuild";
license = licenses.mit;
maintainers = with maintainers; [ roberth ];
};
}
···
homepage = "https://github.com/netlify/esbuild";
license = licenses.mit;
maintainers = with maintainers; [ roberth ];
+
mainProgram = "esbuild";
};
}
+1
pkgs/development/tools/geckodriver/default.nix
···
homepage = "https://github.com/mozilla/geckodriver";
license = licenses.mpl20;
maintainers = with maintainers; [ jraygauthier ];
};
}
···
homepage = "https://github.com/mozilla/geckodriver";
license = licenses.mpl20;
maintainers = with maintainers; [ jraygauthier ];
+
mainProgram = "geckodriver";
};
}
+2
pkgs/development/tools/misc/libtool/default.nix
···
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
};
}
···
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
+
+
mainProgram = "libtool";
};
}
+1
pkgs/development/tools/misc/libtool/libtool2.nix
···
license = licenses.gpl2Plus;
maintainers = [ ];
platforms = platforms.unix;
};
}
···
license = licenses.gpl2Plus;
maintainers = [ ];
platforms = platforms.unix;
+
mainProgram = "libtool";
};
}
+1
pkgs/development/tools/misc/tokei/default.nix
···
homepage = "https://github.com/XAMPPRocky/tokei";
license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ gebner lilyball ];
};
}
···
homepage = "https://github.com/XAMPPRocky/tokei";
license = with licenses; [ asl20 /* or */ mit ];
maintainers = with maintainers; [ gebner lilyball ];
+
mainProgram = "tokei";
};
}
+1
pkgs/development/tools/selenium/chromedriver/default.nix
···
# Note from primeos: By updating Chromium I also update Google Chrome and
# ChromeDriver.
platforms = attrNames allSpecs;
};
}
···
# Note from primeos: By updating Chromium I also update Google Chrome and
# ChromeDriver.
platforms = attrNames allSpecs;
+
mainProgram = "chromedriver";
};
}
+1
pkgs/os-specific/linux/below/default.nix
···
description = "A time traveling resource monitor for modern Linux systems";
license = licenses.asl20;
homepage = "https://github.com/facebookincubator/below";
};
}
···
description = "A time traveling resource monitor for modern Linux systems";
license = licenses.asl20;
homepage = "https://github.com/facebookincubator/below";
+
mainProgram = "below";
};
}
+1
pkgs/servers/code-server/default.nix
···
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ offline henkery code-asher ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
};
})
···
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ offline henkery code-asher ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+
mainProgram = "code-server";
};
})
+1
pkgs/servers/consul/default.nix
···
platforms = platforms.linux ++ platforms.darwin;
license = licenses.mpl20;
maintainers = with maintainers; [ pradeepchhetri vdemeester nh2 techknowlogick];
};
}
···
platforms = platforms.linux ++ platforms.darwin;
license = licenses.mpl20;
maintainers = with maintainers; [ pradeepchhetri vdemeester nh2 techknowlogick];
+
mainProgram = "consul";
};
}
+1
pkgs/servers/dns/acme-dns/default.nix
···
changelog = "https://github.com/joohoi/acme-dns/releases/tag/${src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ emilylange ];
};
}
···
changelog = "https://github.com/joohoi/acme-dns/releases/tag/${src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ emilylange ];
+
mainProgram = "acme-dns";
};
}
+1
pkgs/servers/ldap/lldap/default.nix
···
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ emilylange bendlas ];
};
})
···
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = with maintainers; [ emilylange bendlas ];
+
mainProgram = "lldap";
};
})
+1
pkgs/servers/monitoring/grafana-agent/default.nix
···
homepage = "https://grafana.com/products/cloud";
changelog = "https://github.com/grafana/agent/blob/${src.rev}/CHANGELOG.md";
maintainers = with lib.maintainers; [ flokli emilylange ];
};
}
···
homepage = "https://grafana.com/products/cloud";
changelog = "https://github.com/grafana/agent/blob/${src.rev}/CHANGELOG.md";
maintainers = with lib.maintainers; [ flokli emilylange ];
+
mainProgram = "grafana-agent";
};
}
+1
pkgs/servers/openvscode-server/default.nix
···
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dguenther ghuntley emilytrau ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
};
})
···
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dguenther ghuntley emilytrau ];
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
+
mainProgram = "openvscode-server";
};
})
+1
pkgs/servers/pufferpanel/default.nix
···
homepage = "https://www.pufferpanel.com/";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ ckie tie ];
};
}
···
homepage = "https://www.pufferpanel.com/";
license = with licenses; [ asl20 ];
maintainers = with maintainers; [ ckie tie ];
+
mainProgram = "pufferpanel";
};
}
+1
pkgs/servers/web-apps/kavita/default.nix
···
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ misterio77 ];
};
})
···
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ misterio77 ];
+
mainProgram = "kavita";
};
})
+10
pkgs/servers/x11/xorg/overrides.nix
···
+ lib.optionalString stdenv.hostPlatform.isStatic ''
export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp"
'';
});
xdm = super.xdm.overrideAttrs (attrs: {
···
--replace '_X_NORETURN' '__attribute__((noreturn))' \
--replace 'n_dirs--;' ""
'';
});
twm = super.twm.overrideAttrs (attrs: {
···
postInstall = ''
rm $out/bin/xkeystone
'';
});
# convert Type1 vector fonts to OpenType fonts
···
+ lib.optionalString stdenv.hostPlatform.isStatic ''
export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp"
'';
+
meta = attrs.meta // {
+
mainProgram = "xdpyinfo";
+
};
});
xdm = super.xdm.overrideAttrs (attrs: {
···
--replace '_X_NORETURN' '__attribute__((noreturn))' \
--replace 'n_dirs--;' ""
'';
+
meta.mainProgram = "lndir";
});
twm = super.twm.overrideAttrs (attrs: {
···
postInstall = ''
rm $out/bin/xkeystone
'';
+
});
+
+
xset = super.xset.overrideAttrs (attrs: {
+
meta = attrs.meta // {
+
mainProgram = "xset";
+
};
});
# convert Type1 vector fonts to OpenType fonts
+1
pkgs/tools/backup/tarsnap/default.nix
···
license = lib.licenses.unfree;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ thoughtpolice roconnor ];
};
}
···
license = lib.licenses.unfree;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ thoughtpolice roconnor ];
+
mainProgram = "tarsnap";
};
}
+1
pkgs/tools/misc/coreboot-utils/default.nix
···
nvramtool = generic {
pname = "nvramtool";
meta.description = "Read and write coreboot parameters and display information from the coreboot table in CMOS/NVRAM";
};
superiotool = generic {
pname = "superiotool";
···
nvramtool = generic {
pname = "nvramtool";
meta.description = "Read and write coreboot parameters and display information from the coreboot table in CMOS/NVRAM";
+
meta.mainProgram = "nvramtool";
};
superiotool = generic {
pname = "superiotool";
+1
pkgs/tools/misc/direnv/default.nix
···
homepage = "https://direnv.net";
license = licenses.mit;
maintainers = teams.numtide.members;
};
}
···
homepage = "https://direnv.net";
license = licenses.mit;
maintainers = teams.numtide.members;
+
mainProgram = "direnv";
};
}
+1
pkgs/tools/misc/file/default.nix
···
maintainers = with maintainers; [ doronbehar ];
license = licenses.bsd2;
platforms = platforms.all;
};
}
···
maintainers = with maintainers; [ doronbehar ];
license = licenses.bsd2;
platforms = platforms.all;
+
mainProgram = "file";
};
}
+1
pkgs/tools/misc/nurl/default.nix
···
changelog = "https://github.com/nix-community/nurl/blob/v${version}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ figsoda ];
};
}
···
changelog = "https://github.com/nix-community/nurl/blob/v${version}/CHANGELOG.md";
license = licenses.mpl20;
maintainers = with maintainers; [ figsoda ];
+
mainProgram = "nurl";
};
}
+1
pkgs/tools/misc/vector/default.nix
···
license = licenses.mpl20;
maintainers = with maintainers; [ thoughtpolice happysalada ];
platforms = with platforms; all;
};
}
···
license = licenses.mpl20;
maintainers = with maintainers; [ thoughtpolice happysalada ];
platforms = with platforms; all;
+
mainProgram = "vector";
};
}
+1
pkgs/tools/misc/xvfb-run/default.nix
···
platforms = platforms.linux;
license = licenses.gpl2;
maintainers = [ maintainers.artturin ];
};
}
···
platforms = platforms.linux;
license = licenses.gpl2;
maintainers = [ maintainers.artturin ];
+
mainProgram = "xvfb-run";
};
}
+1
pkgs/tools/misc/yt-dlp/default.nix
···
'';
license = licenses.unlicense;
maintainers = with maintainers; [ mkg20001 SuperSandro2000 marsam ];
};
}
···
'';
license = licenses.unlicense;
maintainers = with maintainers; [ mkg20001 SuperSandro2000 marsam ];
+
mainProgram = "yt-dlp";
};
}
+1
pkgs/tools/networking/clash-meta/default.nix
···
homepage = "https://github.com/MetaCubeX/Clash.Meta";
license = licenses.gpl3Only;
maintainers = with maintainers; [ oluceps ];
};
}
···
homepage = "https://github.com/MetaCubeX/Clash.Meta";
license = licenses.gpl3Only;
maintainers = with maintainers; [ oluceps ];
+
mainProgram = "clash-meta";
};
}
+1
pkgs/tools/networking/clash/default.nix
···
changelog = "https://github.com/Dreamacro/clash/releases/tag/v${version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ contrun Br1ght0ne ];
};
}
···
changelog = "https://github.com/Dreamacro/clash/releases/tag/v${version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ contrun Br1ght0ne ];
+
mainProgram = "clash";
};
}
+1
pkgs/tools/networking/sitespeed-io/default.nix
···
license = licenses.mit;
maintainers = with maintainers; [ misterio77 ];
platforms = lib.unique (geckodriver.meta.platforms ++ chromedriver.meta.platforms);
};
}
···
license = licenses.mit;
maintainers = with maintainers; [ misterio77 ];
platforms = lib.unique (geckodriver.meta.platforms ++ chromedriver.meta.platforms);
+
mainProgram = "sitespeed-io";
};
}
+1
pkgs/tools/networking/wgautomesh/default.nix
···
homepage = "https://git.deuxfleurs.fr/Deuxfleurs/wgautomesh";
license = licenses.agpl3Only;
maintainers = [ maintainers.lx ];
};
}
···
homepage = "https://git.deuxfleurs.fr/Deuxfleurs/wgautomesh";
license = licenses.agpl3Only;
maintainers = [ maintainers.lx ];
+
mainProgram = "wgautomesh";
};
}
+1
pkgs/tools/package-management/harmonia/default.nix
···
homepage = "https://github.com/nix-community/harmonia";
license = licenses.mit;
maintainers = with maintainers; [ mic92 ];
};
}
···
homepage = "https://github.com/nix-community/harmonia";
license = licenses.mit;
maintainers = with maintainers; [ mic92 ];
+
mainProgram = "harmonia";
};
}
+1
pkgs/tools/package-management/nix/common.nix
···
maintainers = with maintainers; [ eelco lovesegfault artturin ];
platforms = platforms.unix;
outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
};
};
in self
···
maintainers = with maintainers; [ eelco lovesegfault artturin ];
platforms = platforms.unix;
outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
+
mainProgram = "nix";
};
};
in self
+1
pkgs/tools/system/auto-cpufreq/default.nix
···
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.Technical27 ];
};
}
···
license = licenses.lgpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.Technical27 ];
+
mainProgram = "auto-cpufreq";
};
}
+1
pkgs/tools/system/htop/default.nix
···
platforms = platforms.all;
maintainers = with maintainers; [ rob relrod SuperSandro2000 ];
changelog = "https://github.com/htop-dev/htop/blob/${version}/ChangeLog";
};
}
···
platforms = platforms.all;
maintainers = with maintainers; [ rob relrod SuperSandro2000 ];
changelog = "https://github.com/htop-dev/htop/blob/${version}/ChangeLog";
+
mainProgram = "htop";
};
}
+1
pkgs/tools/system/kanata/default.nix
···
license = licenses.lgpl3Only;
maintainers = with maintainers; [ linj ];
platforms = platforms.linux;
};
}
···
license = licenses.lgpl3Only;
maintainers = with maintainers; [ linj ];
platforms = platforms.linux;
+
mainProgram = "kanata";
};
}