summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorMalo Bourgon <mbourgon@gmail.com>2022-04-01 12:34:55 -0700
committerMalo Bourgon <mbourgon@gmail.com>2022-04-14 10:24:01 -0700
commit0e802eafad4b61b70f92534039fc3759d284db7b (patch)
tree1f388a7de5cb68d27d4ee6ee29e3c97c93821990 /pkgs
parent0c1bb90ec545b0ef4531fe7f26eb9eb5eaa32792 (diff)
downloadnixpkgs-0e802eafad4b61b70f92534039fc3759d284db7b.tar
nixpkgs-0e802eafad4b61b70f92534039fc3759d284db7b.tar.gz
nixpkgs-0e802eafad4b61b70f92534039fc3759d284db7b.tar.bz2
nixpkgs-0e802eafad4b61b70f92534039fc3759d284db7b.tar.lz
nixpkgs-0e802eafad4b61b70f92534039fc3759d284db7b.tar.xz
nixpkgs-0e802eafad4b61b70f92534039fc3759d284db7b.tar.zst
nixpkgs-0e802eafad4b61b70f92534039fc3759d284db7b.zip
treewide: add meta.mainProgram to many packages
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/bespokesynth/default.nix1
-rw-r--r--pkgs/applications/audio/spotify-tui/default.nix1
-rw-r--r--pkgs/applications/emulators/proton-caller/default.nix1
-rw-r--r--pkgs/applications/misc/autospotting/default.nix1
-rw-r--r--pkgs/applications/misc/catclock/default.nix1
-rw-r--r--pkgs/applications/misc/globe-cli/default.nix1
-rw-r--r--pkgs/applications/misc/rm-improved/default.nix1
-rw-r--r--pkgs/applications/misc/terminal-typeracer/default.nix1
-rw-r--r--pkgs/applications/misc/timewarrior/default.nix1
-rw-r--r--pkgs/applications/misc/tty-solitaire/default.nix1
-rw-r--r--pkgs/applications/networking/browsers/links2/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kube3d/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/kuttl/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pachyderm/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pgo-client/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/tektoncd-cli/default.nix1
-rw-r--r--pkgs/applications/networking/pjsip/default.nix1
-rw-r--r--pkgs/applications/networking/seaweedfs/default.nix1
-rw-r--r--pkgs/applications/radio/flex-ncat/default.nix1
-rw-r--r--pkgs/applications/radio/rtl-ais/default.nix1
-rw-r--r--pkgs/applications/science/astronomy/astrolabe-generator/default.nix1
-rw-r--r--pkgs/applications/science/biology/bayescan/default.nix1
-rw-r--r--pkgs/applications/science/biology/clustal-omega/default.nix1
-rw-r--r--pkgs/applications/science/biology/picard-tools/default.nix1
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix1
-rw-r--r--pkgs/applications/science/machine-learning/finalfusion-utils/default.nix1
-rw-r--r--pkgs/applications/version-management/commit-formatter/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix1
-rw-r--r--pkgs/applications/version-management/jujutsu/default.nix1
-rw-r--r--pkgs/applications/virtualization/ecs-agent/default.nix1
-rw-r--r--pkgs/data/misc/shared-mime-info/default.nix1
-rw-r--r--pkgs/development/beam-modules/elvis-erlang/default.nix1
-rw-r--r--pkgs/development/compilers/algol68g/default.nix1
-rw-r--r--pkgs/development/interpreters/duktape/default.nix1
-rw-r--r--pkgs/development/interpreters/lolcode/default.nix1
-rw-r--r--pkgs/development/interpreters/trealla/default.nix1
-rw-r--r--pkgs/development/interpreters/yex-lang/default.nix1
-rw-r--r--pkgs/development/nim-packages/tempfile/default.nix1
-rw-r--r--pkgs/development/python-modules/flatbuffers/default.nix1
-rw-r--r--pkgs/development/tools/bazel-gazelle/default.nix1
-rw-r--r--pkgs/development/tools/bazel-kazel/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/build2/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/go-mk/default.nix1
-rw-r--r--pkgs/development/tools/clog-cli/default.nix1
-rw-r--r--pkgs/development/tools/compile-daemon/default.nix1
-rw-r--r--pkgs/development/tools/continuous-integration/buildkite-cli/default.nix1
-rw-r--r--pkgs/development/tools/database/pg_checksums/default.nix1
-rw-r--r--pkgs/development/tools/database/termdbms/default.nix1
-rw-r--r--pkgs/development/tools/global-platform-pro/default.nix1
-rw-r--r--pkgs/development/tools/go-minimock/default.nix1
-rw-r--r--pkgs/development/tools/go-mockery/default.nix1
-rw-r--r--pkgs/development/tools/go-swagger/default.nix1
-rw-r--r--pkgs/development/tools/hjson-go/default.nix1
-rw-r--r--pkgs/development/tools/jsonnet-bundler/default.nix1
-rw-r--r--pkgs/development/tools/metal-cli/default.nix1
-rw-r--r--pkgs/development/tools/misc/go-license-detector/default.nix1
-rw-r--r--pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix1
-rw-r--r--pkgs/development/tools/misc/semver-tool/default.nix1
-rw-r--r--pkgs/development/tools/nsis/default.nix1
-rw-r--r--pkgs/development/tools/omnisharp-roslyn/default.nix1
-rw-r--r--pkgs/development/tools/packet-sd/default.nix1
-rw-r--r--pkgs/development/tools/quicktemplate/default.nix1
-rw-r--r--pkgs/development/tools/rust/duckscript/default.nix1
-rw-r--r--pkgs/development/tools/toluapp/default.nix1
-rw-r--r--pkgs/development/tools/udis86/default.nix1
-rw-r--r--pkgs/development/web/kcgi/default.nix1
-rw-r--r--pkgs/games/liberal-crime-squad/default.nix1
-rw-r--r--pkgs/games/papermc/default.nix1
-rw-r--r--pkgs/games/purpur/default.nix1
-rw-r--r--pkgs/games/quakespasm/default.nix1
-rw-r--r--pkgs/games/tintin/default.nix1
-rw-r--r--pkgs/misc/lguf-brightness/default.nix1
-rw-r--r--pkgs/misc/scimark/default.nix1
-rw-r--r--pkgs/os-specific/darwin/kwm/default.nix1
-rw-r--r--pkgs/os-specific/linux/pam_u2f/default.nix1
-rw-r--r--pkgs/servers/documize-community/default.nix1
-rw-r--r--pkgs/servers/http/micro-httpd/default.nix1
-rw-r--r--pkgs/servers/http/webfs/default.nix1
-rw-r--r--pkgs/servers/irker/default.nix1
-rw-r--r--pkgs/servers/kapowbang/default.nix1
-rw-r--r--pkgs/servers/mail/clamsmtp/default.nix1
-rw-r--r--pkgs/servers/mail/system-sendmail/default.nix1
-rw-r--r--pkgs/servers/matrix-corporal/default.nix1
-rw-r--r--pkgs/servers/monitoring/zipkin/default.nix1
-rw-r--r--pkgs/servers/ps3netsrv/default.nix1
-rw-r--r--pkgs/servers/trezord/default.nix1
-rw-r--r--pkgs/servers/udpt/default.nix1
-rw-r--r--pkgs/shells/fish/oh-my-fish/default.nix1
-rw-r--r--pkgs/shells/powershell/default.nix1
-rw-r--r--pkgs/tools/X11/runningx/default.nix1
-rw-r--r--pkgs/tools/X11/screen-message/default.nix1
-rw-r--r--pkgs/tools/X11/xmagnify/default.nix1
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix1
-rw-r--r--pkgs/tools/admin/amazon-ecr-credential-helper/default.nix1
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix1
-rw-r--r--pkgs/tools/admin/trinsic-cli/default.nix1
-rw-r--r--pkgs/tools/backup/zfsbackup/default.nix1
-rw-r--r--pkgs/tools/compression/gzrt/default.nix1
-rw-r--r--pkgs/tools/compression/lhasa/default.nix1
-rw-r--r--pkgs/tools/filesystems/idsk/default.nix1
-rw-r--r--pkgs/tools/graphics/imageworsener/default.nix1
-rw-r--r--pkgs/tools/misc/asdf-vm/default.nix1
-rw-r--r--pkgs/tools/misc/gotify-cli/default.nix1
-rw-r--r--pkgs/tools/misc/heatseeker/default.nix1
-rw-r--r--pkgs/tools/misc/hiksink/default.nix1
-rw-r--r--pkgs/tools/misc/intermodal/default.nix1
-rw-r--r--pkgs/tools/misc/lokalise2-cli/default.nix1
-rw-r--r--pkgs/tools/misc/oppai-ng/default.nix1
-rw-r--r--pkgs/tools/misc/unclutter-xfixes/default.nix1
-rw-r--r--pkgs/tools/networking/changetower/default.nix1
-rw-r--r--pkgs/tools/networking/dnscrypt-proxy2/default.nix1
-rw-r--r--pkgs/tools/networking/minio-client/default.nix1
-rw-r--r--pkgs/tools/networking/rustcat/default.nix1
-rw-r--r--pkgs/tools/networking/s3gof3r/default.nix1
-rw-r--r--pkgs/tools/networking/shadowfox/default.nix1
-rw-r--r--pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix1
-rw-r--r--pkgs/tools/networking/tdns-cli/default.nix1
-rw-r--r--pkgs/tools/networking/telepresence2/default.nix1
-rw-r--r--pkgs/tools/networking/webwormhole/default.nix1
-rw-r--r--pkgs/tools/networking/wg-friendly-peer-names/default.nix1
-rw-r--r--pkgs/tools/security/fulcio/default.nix1
-rw-r--r--pkgs/tools/security/go365/default.nix1
-rw-r--r--pkgs/tools/security/gosh/default.nix1
-rw-r--r--pkgs/tools/security/jwt-cli/default.nix1
-rw-r--r--pkgs/tools/security/minio-certgen/default.nix1
-rw-r--r--pkgs/tools/security/phrasendrescher/default.nix1
-rw-r--r--pkgs/tools/security/sheesy-cli/default.nix1
-rw-r--r--pkgs/tools/security/snowcrash/default.nix1
-rw-r--r--pkgs/tools/security/solo2-cli/default.nix1
-rw-r--r--pkgs/tools/system/natscli/default.nix1
-rw-r--r--pkgs/tools/system/plan9port/default.nix1
-rw-r--r--pkgs/tools/system/tre-command/default.nix1
-rw-r--r--pkgs/tools/text/angle-grinder/default.nix1
-rw-r--r--pkgs/tools/text/html-tidy/default.nix1
-rw-r--r--pkgs/tools/text/igrep/default.nix1
-rw-r--r--pkgs/tools/text/miller/default.nix1
-rw-r--r--pkgs/tools/video/atomicparsley/default.nix1
-rw-r--r--pkgs/tools/virtualization/cloudmonkey/default.nix1
143 files changed, 143 insertions, 0 deletions
diff --git a/pkgs/applications/audio/bespokesynth/default.nix b/pkgs/applications/audio/bespokesynth/default.nix
index a5ef585969e..6c48c756ab2 100644
--- a/pkgs/applications/audio/bespokesynth/default.nix
+++ b/pkgs/applications/audio/bespokesynth/default.nix
@@ -142,6 +142,7 @@ stdenv.mkDerivation rec {
       gpl3Plus
     ] ++ lib.optional enableVST2 unfree;
     maintainers = with maintainers; [ astro tobiasBora OPNA2608 ];
+    mainProgram = "BespokeSynth";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
index 7395ca85d9f..055034df4ce 100644
--- a/pkgs/applications/audio/spotify-tui/default.nix
+++ b/pkgs/applications/audio/spotify-tui/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Rigellute/spotify-tui/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jwijenbergh ];
+    mainProgram = "spt";
   };
 }
diff --git a/pkgs/applications/emulators/proton-caller/default.nix b/pkgs/applications/emulators/proton-caller/default.nix
index 14c5b7be731..22bc7054da3 100644
--- a/pkgs/applications/emulators/proton-caller/default.nix
+++ b/pkgs/applications/emulators/proton-caller/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/caverym/proton-caller";
     license = licenses.mit;
     maintainers = with maintainers; [ kho-dialga ];
+    mainProgram = "proton-call";
   };
 }
diff --git a/pkgs/applications/misc/autospotting/default.nix b/pkgs/applications/misc/autospotting/default.nix
index ac929bfa5b1..47cf2e6b07e 100644
--- a/pkgs/applications/misc/autospotting/default.nix
+++ b/pkgs/applications/misc/autospotting/default.nix
@@ -22,6 +22,7 @@ buildGoPackage {
     description = "Automatically convert your existing AutoScaling groups to up to 90% cheaper spot instances with minimal configuration changes";
     license = licenses.free;
     maintainers = [ maintainers.costrouc ];
+    mainProgram = "AutoSpotting";
     platforms = platforms.unix;
   };
 
diff --git a/pkgs/applications/misc/catclock/default.nix b/pkgs/applications/misc/catclock/default.nix
index 768eb7b308e..fff8101e55a 100644
--- a/pkgs/applications/misc/catclock/default.nix
+++ b/pkgs/applications/misc/catclock/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation {
     homepage = "http://codefromabove.com/2014/05/catclock/";
     license = with licenses; mit;
     maintainers = with maintainers; [ ramkromberg ];
+    mainProgram = "xclock";
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/applications/misc/globe-cli/default.nix b/pkgs/applications/misc/globe-cli/default.nix
index e7ec63f9784..9d2a5bbc786 100644
--- a/pkgs/applications/misc/globe-cli/default.nix
+++ b/pkgs/applications/misc/globe-cli/default.nix
@@ -16,5 +16,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/adamsky/globe";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "globe";
   };
 }
diff --git a/pkgs/applications/misc/rm-improved/default.nix b/pkgs/applications/misc/rm-improved/default.nix
index 0a1d38f5f7f..c35fa3dc887 100644
--- a/pkgs/applications/misc/rm-improved/default.nix
+++ b/pkgs/applications/misc/rm-improved/default.nix
@@ -19,6 +19,7 @@ rustPlatform.buildRustPackage rec {
     description = "Replacement for rm with focus on safety, ergonomics and performance";
     homepage = "https://github.com/nivekuil/rip";
     maintainers = with maintainers; [ nils-degroot ];
+    mainProgram = "rip";
     license = licenses.gpl3Plus;
   };
 }
diff --git a/pkgs/applications/misc/terminal-typeracer/default.nix b/pkgs/applications/misc/terminal-typeracer/default.nix
index c6a700753f3..9840da035e5 100644
--- a/pkgs/applications/misc/terminal-typeracer/default.nix
+++ b/pkgs/applications/misc/terminal-typeracer/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/ttyperacer/terminal-typeracer";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ yoctocell ];
+    mainProgram = "typeracer";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/timewarrior/default.nix b/pkgs/applications/misc/timewarrior/default.nix
index adff6741d31..819df21ebe1 100644
--- a/pkgs/applications/misc/timewarrior/default.nix
+++ b/pkgs/applications/misc/timewarrior/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "https://timewarrior.net";
     license = licenses.mit;
     maintainers = with maintainers; [ matthiasbeyer mrVanDalo ];
+    mainProgram = "timew";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/misc/tty-solitaire/default.nix b/pkgs/applications/misc/tty-solitaire/default.nix
index b390c7bf9d1..137e5653d74 100644
--- a/pkgs/applications/misc/tty-solitaire/default.nix
+++ b/pkgs/applications/misc/tty-solitaire/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mpereira/tty-solitaire";
     platforms = ncurses.meta.platforms;
     maintainers = [ maintainers.AndersonTorres ];
+    mainProgram = "ttysolitaire";
   };
 }
diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix
index 3a5b31e98e9..02b3f88d1e1 100644
--- a/pkgs/applications/networking/browsers/links2/default.nix
+++ b/pkgs/applications/networking/browsers/links2/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://links.twibright.com/";
     description = "A small browser with some graphics support";
     maintainers = with maintainers; [ raskin ];
+    mainProgram = "links";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index 4667b130e8d..ec9f45a8388 100644
--- a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -39,6 +39,7 @@ buildGoModule rec {
     description = "The official command line client for Cloud Foundry";
     homepage = "https://github.com/cloudfoundry/cli";
     maintainers = with maintainers; [ ris ];
+    mainProgram = "cf";
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index ebcb3bda738..21469e57a75 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -50,6 +50,7 @@ buildGoModule rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle jk ricochet ];
+    mainProgram = "k3d";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/networking/cluster/kuttl/default.nix b/pkgs/applications/networking/cluster/kuttl/default.nix
index 64f13ad6b60..13a16c6c50c 100644
--- a/pkgs/applications/networking/cluster/kuttl/default.nix
+++ b/pkgs/applications/networking/cluster/kuttl/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/kudobuilder/kuttl";
     license = licenses.asl20;
     maintainers = with maintainers; [ diegolelis ];
+    mainProgram = "kubectl-kuttl";
   };
 }
diff --git a/pkgs/applications/networking/cluster/pachyderm/default.nix b/pkgs/applications/networking/cluster/pachyderm/default.nix
index 65a4a193843..570481f49b2 100644
--- a/pkgs/applications/networking/cluster/pachyderm/default.nix
+++ b/pkgs/applications/networking/cluster/pachyderm/default.nix
@@ -20,5 +20,6 @@ buildGoPackage rec {
     homepage = "https://github.com/pachyderm/pachyderm";
     license = licenses.asl20;
     maintainers = with maintainers; [offline];
+    mainProgram = "pachctl";
   };
 }
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
index 33dbb47d11c..fc7110a89ae 100644
--- a/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     changelog = "https://github.com/CrunchyData/postgres-operator/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.bryanasdev000 ];
+    mainProgram = "pgo";
   };
 }
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 0d21e440031..0c9776f9f79 100644
--- a/pkgs/applications/networking/cluster/tanka/default.nix
+++ b/pkgs/applications/networking/cluster/tanka/default.nix
@@ -31,6 +31,7 @@ buildGoModule rec {
     homepage = "https://tanka.dev";
     license = licenses.asl20;
     maintainers = with maintainers; [ mikefaille ];
+    mainProgram = "tk";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
index 673a8c9a8f0..bf5dc60d88b 100644
--- a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
+++ b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix
@@ -61,5 +61,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ jk mstrangfeld vdemeester ];
+    mainProgram = "tkn";
   };
 }
diff --git a/pkgs/applications/networking/pjsip/default.nix b/pkgs/applications/networking/pjsip/default.nix
index 8b0fad83b96..175f9b48080 100644
--- a/pkgs/applications/networking/pjsip/default.nix
+++ b/pkgs/applications/networking/pjsip/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     homepage = "https://pjsip.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ olynch ];
+    mainProgram = "pjsua";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/networking/seaweedfs/default.nix b/pkgs/applications/networking/seaweedfs/default.nix
index 257d6c52689..cbabc6b10c7 100644
--- a/pkgs/applications/networking/seaweedfs/default.nix
+++ b/pkgs/applications/networking/seaweedfs/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
     description = "Simple and highly scalable distributed file system";
     homepage = "https://github.com/chrislusf/seaweedfs";
     maintainers = with maintainers; [ cmacrae raboof ];
+    mainProgram = "weed";
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/applications/radio/flex-ncat/default.nix b/pkgs/applications/radio/flex-ncat/default.nix
index dee9f29da73..95c61dabf78 100644
--- a/pkgs/applications/radio/flex-ncat/default.nix
+++ b/pkgs/applications/radio/flex-ncat/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "FlexRadio remote control (CAT) via hamlib/rigctl protocol";
     license = licenses.mit;
     maintainers = with maintainers; [ mvs ];
+    mainProgram = "nCAT";
   };
 }
diff --git a/pkgs/applications/radio/rtl-ais/default.nix b/pkgs/applications/radio/rtl-ais/default.nix
index 243d3126b5f..c244868f65d 100644
--- a/pkgs/applications/radio/rtl-ais/default.nix
+++ b/pkgs/applications/radio/rtl-ais/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation {
     homepage = "https://github.com/dgiardini/rtl-ais";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ mgdm ];
+    mainProgram = "rtl_ais";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/astronomy/astrolabe-generator/default.nix b/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
index 3802f2bada8..3364cbf6f0c 100644
--- a/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
+++ b/pkgs/applications/science/astronomy/astrolabe-generator/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     description = "A Java-based tool for generating EPS files for constructing astrolabes and related tools";
     license = licenses.gpl3;
     maintainers = [ ];
+    mainProgram = "AstrolabeGenerator";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/biology/bayescan/default.nix b/pkgs/applications/science/biology/bayescan/default.nix
index 043ee3ca52d..656e59a55ba 100644
--- a/pkgs/applications/science/biology/bayescan/default.nix
+++ b/pkgs/applications/science/biology/bayescan/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://cmpg.unibe.ch/software/BayeScan";
     license = licenses.gpl3;
     maintainers = [ maintainers.bzizou ];
+    mainProgram = "bayescan_${version}";
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/science/biology/clustal-omega/default.nix b/pkgs/applications/science/biology/clustal-omega/default.nix
index 6377e1fce85..6a39a889f55 100644
--- a/pkgs/applications/science/biology/clustal-omega/default.nix
+++ b/pkgs/applications/science/biology/clustal-omega/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.clustal.org/omega/";
     license = licenses.gpl2;
     maintainers = [ maintainers.bzizou ];
+    mainProgram = "clustalo";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/science/biology/picard-tools/default.nix b/pkgs/applications/science/biology/picard-tools/default.nix
index 526a5b3ed33..ace2eea8930 100644
--- a/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/pkgs/applications/science/biology/picard-tools/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     homepage = "https://broadinstitute.github.io/picard/";
     maintainers = with maintainers; [ jbedo ];
+    mainProgram = "picard";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index b9bf480f7e6..ffc61ed1d03 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation {
     homepage    = "https://symbiyosys.readthedocs.io/";
     license     = lib.licenses.isc;
     maintainers = with lib.maintainers; [ thoughtpolice emily ];
+    mainProgram = "sby";
     platforms   = lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
index dbb187dc35e..0df8a0525be 100644
--- a/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
+++ b/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -50,5 +50,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/finalfusion/finalfusion-utils/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
+    mainProgram = "finalfusion";
   };
 }
diff --git a/pkgs/applications/version-management/commit-formatter/default.nix b/pkgs/applications/version-management/commit-formatter/default.nix
index eb475dca78a..03eead59a6b 100644
--- a/pkgs/applications/version-management/commit-formatter/default.nix
+++ b/pkgs/applications/version-management/commit-formatter/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Eliot00/commit-formatter";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ elliot ];
+    mainProgram = "git-cf";
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
index 7de53c7c541..ca47942a3f9 100644
--- a/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/bfg-repo-cleaner/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3;
     maintainers = [ maintainers.changlinli ];
+    mainProgram = "bfg";
     platforms = platforms.unix;
     downloadPage = "https://mvnrepository.com/artifact/com.madgag/bfg/${version}";
   };
diff --git a/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix b/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
index 695250a5cc4..ecbe064826c 100644
--- a/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/bitbucket-server-cli/default.nix
@@ -16,6 +16,7 @@ bundlerEnv rec {
     homepage    = "https://bitbucket.org/atlassian/bitbucket-server-cli";
     license     = licenses.mit;
     maintainers = with maintainers; [ jgertm nicknovitski ];
+    mainProgram = "stash";
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix b/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
index 0ba747d7235..07af33951df 100644
--- a/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-annex-utils/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "http://git-annex.mysteryvortex.com/git-annex-utils.html";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ woffs ];
+    mainProgram = "gadu";
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
index 91f6f203983..2f999ec3d87 100644
--- a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/MitMaro/git-interactive-rebase-tool/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ masaeedu SuperSandro2000 zowoq ];
+    mainProgram = "interactive-rebase-tool";
   };
 }
diff --git a/pkgs/applications/version-management/jujutsu/default.nix b/pkgs/applications/version-management/jujutsu/default.nix
index fbf800363ab..30ea7e1524a 100644
--- a/pkgs/applications/version-management/jujutsu/default.nix
+++ b/pkgs/applications/version-management/jujutsu/default.nix
@@ -56,5 +56,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/martinvonz/jj/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "jj";
   };
 }
diff --git a/pkgs/applications/virtualization/ecs-agent/default.nix b/pkgs/applications/virtualization/ecs-agent/default.nix
index 390f3049c02..1890f29c52a 100644
--- a/pkgs/applications/virtualization/ecs-agent/default.nix
+++ b/pkgs/applications/virtualization/ecs-agent/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
     license     = licenses.asl20;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ copumpkin ];
+    mainProgram = "agent";
   };
 }
 
diff --git a/pkgs/data/misc/shared-mime-info/default.nix b/pkgs/data/misc/shared-mime-info/default.nix
index 2feb5e2f5a4..a2d2849bac1 100644
--- a/pkgs/data/misc/shared-mime-info/default.nix
+++ b/pkgs/data/misc/shared-mime-info/default.nix
@@ -51,5 +51,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = teams.freedesktop.members ++ [ maintainers.mimame ];
+    mainProgram = "update-mime-database";
   };
 }
diff --git a/pkgs/development/beam-modules/elvis-erlang/default.nix b/pkgs/development/beam-modules/elvis-erlang/default.nix
index 810486e2bc4..c4dda478c4a 100644
--- a/pkgs/development/beam-modules/elvis-erlang/default.nix
+++ b/pkgs/development/beam-modules/elvis-erlang/default.nix
@@ -42,5 +42,6 @@ in rebar3Relx rec {
     platforms = platforms.unix;
     license = licenses.asl20;
     maintainers = with lib.maintainers; [ dlesl ];
+    mainProgram = "elvis";
   };
 }
diff --git a/pkgs/development/compilers/algol68g/default.nix b/pkgs/development/compilers/algol68g/default.nix
index 88210ca5b72..6bbd51717a5 100644
--- a/pkgs/development/compilers/algol68g/default.nix
+++ b/pkgs/development/compilers/algol68g/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "a68g";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/interpreters/duktape/default.nix b/pkgs/development/interpreters/duktape/default.nix
index 912fc691dd9..3d52eda7660 100644
--- a/pkgs/development/interpreters/duktape/default.nix
+++ b/pkgs/development/interpreters/duktape/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://duktape.org/download.html";
     license = licenses.mit;
     maintainers = [ maintainers.fgaz ];
+    mainProgram = "duk";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/lolcode/default.nix b/pkgs/development/interpreters/lolcode/default.nix
index 0bb95ed6ea5..23a77596e1d 100644
--- a/pkgs/development/interpreters/lolcode/default.nix
+++ b/pkgs/development/interpreters/lolcode/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3;
     maintainers = [ maintainers.AndersonTorres ];
+    mainProgram = "lolcode-lci";
     platforms = lib.platforms.unix;
   };
 
diff --git a/pkgs/development/interpreters/trealla/default.nix b/pkgs/development/interpreters/trealla/default.nix
index d6dc01348a1..45e63d98bda 100644
--- a/pkgs/development/interpreters/trealla/default.nix
+++ b/pkgs/development/interpreters/trealla/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/infradig/trealla";
     license = licenses.mit;
     maintainers = with maintainers; [ siraben ];
+    mainProgram = "tpl";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/interpreters/yex-lang/default.nix b/pkgs/development/interpreters/yex-lang/default.nix
index 738b73d8e4c..7223b7aca78 100644
--- a/pkgs/development/interpreters/yex-lang/default.nix
+++ b/pkgs/development/interpreters/yex-lang/default.nix
@@ -18,6 +18,7 @@ rustPlatform.buildRustPackage rec {
     description = "A cool functional scripting language written in rust";
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "yex";
     platforms = platforms.unix;
     broken = stdenv.isAarch64 && stdenv.isLinux;
   };
diff --git a/pkgs/development/nim-packages/tempfile/default.nix b/pkgs/development/nim-packages/tempfile/default.nix
index 2d151bad8e8..d23ea05cb32 100644
--- a/pkgs/development/nim-packages/tempfile/default.nix
+++ b/pkgs/development/nim-packages/tempfile/default.nix
@@ -15,5 +15,6 @@ buildNimPackage rec {
       description = "Temporary files and folders";
       license = [ lib.licenses.mit ];
       maintainers = [ maintainers.ehmry ];
+      mainProgram = "tempfile_seeder";
     };
 }
diff --git a/pkgs/development/python-modules/flatbuffers/default.nix b/pkgs/development/python-modules/flatbuffers/default.nix
index f697f7b8ae0..3575f1c3613 100644
--- a/pkgs/development/python-modules/flatbuffers/default.nix
+++ b/pkgs/development/python-modules/flatbuffers/default.nix
@@ -17,5 +17,6 @@ buildPythonPackage rec {
   meta = flatbuffers.meta // {
     description = "Python runtime library for use with the Flatbuffers serialization format";
     maintainers = with lib.maintainers; [ wulfsta ];
+    mainProgram = "flatc";
   };
 }
diff --git a/pkgs/development/tools/bazel-gazelle/default.nix b/pkgs/development/tools/bazel-gazelle/default.nix
index 3d46a77108c..0a6796185fb 100644
--- a/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/pkgs/development/tools/bazel-gazelle/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "gazelle";
   };
 }
diff --git a/pkgs/development/tools/bazel-kazel/default.nix b/pkgs/development/tools/bazel-kazel/default.nix
index b3f58262b1d..9f51a44fbb8 100644
--- a/pkgs/development/tools/bazel-kazel/default.nix
+++ b/pkgs/development/tools/bazel-kazel/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/kubernetes/repo-infra";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "kazel";
   };
 }
diff --git a/pkgs/development/tools/build-managers/build2/default.nix b/pkgs/development/tools/build-managers/build2/default.nix
index 7af0089117a..7b64c14e2ec 100644
--- a/pkgs/development/tools/build-managers/build2/default.nix
+++ b/pkgs/development/tools/build-managers/build2/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
     changelog = "https://git.build2.org/cgit/build2/tree/NEWS";
     platforms = platforms.all;
     maintainers = with maintainers; [ hiro98 r-burns ];
+    mainProgram = "b";
   };
 }
diff --git a/pkgs/development/tools/build-managers/go-mk/default.nix b/pkgs/development/tools/build-managers/go-mk/default.nix
index f543d60da95..2fff2f67edb 100644
--- a/pkgs/development/tools/build-managers/go-mk/default.nix
+++ b/pkgs/development/tools/build-managers/go-mk/default.nix
@@ -26,6 +26,7 @@ buildGoPackage rec {
     '';
     license = licenses.bsd2;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "mk";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/tools/clog-cli/default.nix b/pkgs/development/tools/clog-cli/default.nix
index 395cd7979d6..feedbd2ab26 100644
--- a/pkgs/development/tools/clog-cli/default.nix
+++ b/pkgs/development/tools/clog-cli/default.nix
@@ -21,5 +21,6 @@ buildRustPackage rec {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = [lib.maintainers.nthorne];
+    mainProgram = "clog";
   };
 }
diff --git a/pkgs/development/tools/compile-daemon/default.nix b/pkgs/development/tools/compile-daemon/default.nix
index a12fb4424e8..79f5a447888 100644
--- a/pkgs/development/tools/compile-daemon/default.nix
+++ b/pkgs/development/tools/compile-daemon/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
     description = "Very simple compile daemon for Go";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
+    mainProgram = "CompileDaemon";
     inherit (src.meta) homepage;
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
index 4604cca7cfc..0b51be5d672 100644
--- a/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
+++ b/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/buildkite/cli";
     license = licenses.mit;
     maintainers = with maintainers; [ groodt ];
+    mainProgram = "bk";
   };
 }
diff --git a/pkgs/development/tools/database/pg_checksums/default.nix b/pkgs/development/tools/database/pg_checksums/default.nix
index b7883bd1bf0..b2d8b3fc05b 100644
--- a/pkgs/development/tools/database/pg_checksums/default.nix
+++ b/pkgs/development/tools/database/pg_checksums/default.nix
@@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
     description = "Activate/deactivate/verify checksums in offline PostgreSQL clusters";
     homepage = "https://github.com/credativ/pg_checksums";
     maintainers = [ maintainers.marsam ];
+    mainProgram = "pg_checksums_ext";
     platforms = postgresql.meta.platforms;
     license = licenses.postgresql;
   };
diff --git a/pkgs/development/tools/database/termdbms/default.nix b/pkgs/development/tools/database/termdbms/default.nix
index b045669ef90..a8c56c51dbc 100644
--- a/pkgs/development/tools/database/termdbms/default.nix
+++ b/pkgs/development/tools/database/termdbms/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "A TUI for viewing and editing database files";
     license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "sqlite3-viewer";
   };
 }
diff --git a/pkgs/development/tools/global-platform-pro/default.nix b/pkgs/development/tools/global-platform-pro/default.nix
index 4d80010f71e..97748e9e78e 100644
--- a/pkgs/development/tools/global-platform-pro/default.nix
+++ b/pkgs/development/tools/global-platform-pro/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/martinpaljak/GlobalPlatformPro";
     license = with licenses; [ lgpl3 ];
     maintainers = with maintainers; [ ekleog ];
+    mainProgram = "gp";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/go-minimock/default.nix b/pkgs/development/tools/go-minimock/default.nix
index e2146eb5769..230840807a0 100644
--- a/pkgs/development/tools/go-minimock/default.nix
+++ b/pkgs/development/tools/go-minimock/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     description = "A golang mock generator from interfaces";
     license = licenses.mit;
     maintainers = with maintainers; [ svrana ];
+    mainProgram = "minimock";
   };
 }
diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix
index 7563146afa9..b1673ecfe1e 100644
--- a/pkgs/development/tools/go-mockery/default.nix
+++ b/pkgs/development/tools/go-mockery/default.nix
@@ -17,6 +17,7 @@ buildGoModule rec {
     homepage = "https://github.com/vektra/mockery";
     description = "A mock code autogenerator for Golang";
     maintainers = with maintainers; [ fbrs ];
+    mainProgram = "mockery";
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/tools/go-swagger/default.nix b/pkgs/development/tools/go-swagger/default.nix
index f9668332244..f438584a292 100644
--- a/pkgs/development/tools/go-swagger/default.nix
+++ b/pkgs/development/tools/go-swagger/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/go-swagger/go-swagger";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "swagger";
   };
 }
diff --git a/pkgs/development/tools/hjson-go/default.nix b/pkgs/development/tools/hjson-go/default.nix
index ce6da30d3b5..3b2dc501521 100644
--- a/pkgs/development/tools/hjson-go/default.nix
+++ b/pkgs/development/tools/hjson-go/default.nix
@@ -17,6 +17,7 @@ buildGoPackage rec {
     src.meta // {
       description = "Utility to convert JSON to and from HJSON";
       maintainers = with maintainers; [ ehmry ];
+      mainProgram = "hjson-cli";
       license = licenses.mit;
     };
 }
diff --git a/pkgs/development/tools/jsonnet-bundler/default.nix b/pkgs/development/tools/jsonnet-bundler/default.nix
index 87da63f0f35..813c936cba3 100644
--- a/pkgs/development/tools/jsonnet-bundler/default.nix
+++ b/pkgs/development/tools/jsonnet-bundler/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/jsonnet-bundler/jsonnet-bundler";
     license = licenses.asl20;
     maintainers = with maintainers; [ preisschild ];
+    mainProgram = "jb";
   };
 }
diff --git a/pkgs/development/tools/metal-cli/default.nix b/pkgs/development/tools/metal-cli/default.nix
index a52a2a141c3..83ba07b07a8 100644
--- a/pkgs/development/tools/metal-cli/default.nix
+++ b/pkgs/development/tools/metal-cli/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/equinix/metal-cli/";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne nshalman ];
+    mainProgram = "metal";
   };
 }
diff --git a/pkgs/development/tools/misc/go-license-detector/default.nix b/pkgs/development/tools/misc/go-license-detector/default.nix
index 91c6518bc26..fc69d8cdd12 100644
--- a/pkgs/development/tools/misc/go-license-detector/default.nix
+++ b/pkgs/development/tools/misc/go-license-detector/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/src-d/go-license-detector";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "license-detector";
   };
 }
diff --git a/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix b/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
index 63f42ffe07c..9041d1f8c58 100644
--- a/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
+++ b/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/NXPmicro/mfgtools";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bmilanov jraygauthier ];
+    mainProgram = "uuu";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/misc/semver-tool/default.nix b/pkgs/development/tools/misc/semver-tool/default.nix
index 407185a474b..434fba18c59 100644
--- a/pkgs/development/tools/misc/semver-tool/default.nix
+++ b/pkgs/development/tools/misc/semver-tool/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = [ maintainers.qyliss ];
+    mainProgram = "semver";
   };
 }
diff --git a/pkgs/development/tools/nsis/default.nix b/pkgs/development/tools/nsis/default.nix
index 4820d8bb4b7..48651435d37 100644
--- a/pkgs/development/tools/nsis/default.nix
+++ b/pkgs/development/tools/nsis/default.nix
@@ -70,5 +70,6 @@ stdenv.mkDerivation rec {
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pombeirp ];
+    mainProgram = "makensis";
   };
 }
diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix
index a3f3c7ce440..ba61553594e 100644
--- a/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -106,6 +106,7 @@ in stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.mit;
     maintainers = with maintainers; [ tesq0 ericdallo corngood ];
+    mainProgram = "omnisharp";
   };
 
 }
diff --git a/pkgs/development/tools/packet-sd/default.nix b/pkgs/development/tools/packet-sd/default.nix
index f01d87be6e4..f8caeb7f684 100644
--- a/pkgs/development/tools/packet-sd/default.nix
+++ b/pkgs/development/tools/packet-sd/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = [ ];
+    mainProgram = "prometheus-packet-sd";
   };
 }
diff --git a/pkgs/development/tools/quicktemplate/default.nix b/pkgs/development/tools/quicktemplate/default.nix
index 4fe51d3e046..747a82740f4 100644
--- a/pkgs/development/tools/quicktemplate/default.nix
+++ b/pkgs/development/tools/quicktemplate/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "Fast, powerful, yet easy to use template engine for Go";
     license = licenses.mit;
     maintainers = with maintainers; [ chiiruno ];
+    mainProgram = "qtc";
   };
 }
diff --git a/pkgs/development/tools/rust/duckscript/default.nix b/pkgs/development/tools/rust/duckscript/default.nix
index aabb8b94c81..d8bae34c9c3 100644
--- a/pkgs/development/tools/rust/duckscript/default.nix
+++ b/pkgs/development/tools/rust/duckscript/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sagiegurari/duckscript";
     license = licenses.asl20;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "duck";
   };
 }
diff --git a/pkgs/development/tools/toluapp/default.nix b/pkgs/development/tools/toluapp/default.nix
index 5f938547cdd..c21fc474fe2 100644
--- a/pkgs/development/tools/toluapp/default.nix
+++ b/pkgs/development/tools/toluapp/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.codenix.com/~tolua/";
     license = licenses.mit;
     maintainers = with maintainers; [ vrthra ];
+    mainProgram = "tolua++";
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/tools/udis86/default.nix b/pkgs/development/tools/udis86/default.nix
index aec41c7c97a..37408035ff9 100644
--- a/pkgs/development/tools/udis86/default.nix
+++ b/pkgs/development/tools/udis86/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
     homepage = "http://udis86.sourceforge.net";
     license = licenses.bsd2;
     maintainers = with maintainers; [ timor ];
+    mainProgram = "udcli";
     description = ''
       Easy-to-use, minimalistic x86 disassembler library (libudis86)
     '';
diff --git a/pkgs/development/web/kcgi/default.nix b/pkgs/development/web/kcgi/default.nix
index 95765be46fd..f00d40044d0 100644
--- a/pkgs/development/web/kcgi/default.nix
+++ b/pkgs/development/web/kcgi/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = [ maintainers.leenaars ];
+    mainProgram = "kfcgi";
   };
 }
diff --git a/pkgs/games/liberal-crime-squad/default.nix b/pkgs/games/liberal-crime-squad/default.nix
index d8048b01d21..f46bd3b50a3 100644
--- a/pkgs/games/liberal-crime-squad/default.nix
+++ b/pkgs/games/liberal-crime-squad/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation {
     '';
     homepage = "https://github.com/Kamal-Sadek/Liberal-Crime-Squad";
     maintainers = [ maintainers.rardiol ];
+    mainProgram = "crimesquad";
     license = licenses.gpl2;
     platforms = platforms.all;
   };
diff --git a/pkgs/games/papermc/default.nix b/pkgs/games/papermc/default.nix
index 09dbfb6c3c8..52bd5c00d43 100644
--- a/pkgs/games/papermc/default.nix
+++ b/pkgs/games/papermc/default.nix
@@ -32,5 +32,6 @@ in stdenv.mkDerivation {
     license     = lib.licenses.gpl3Only;
     platforms   = lib.platforms.unix;
     maintainers = with lib.maintainers; [ aaronjanse neonfuz ];
+    mainProgram = "minecraft-server";
   };
 }
diff --git a/pkgs/games/purpur/default.nix b/pkgs/games/purpur/default.nix
index b12c54449a4..4f08010b455 100644
--- a/pkgs/games/purpur/default.nix
+++ b/pkgs/games/purpur/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jyooru ];
+    mainProgram = "minecraft-server";
   };
 }
diff --git a/pkgs/games/quakespasm/default.nix b/pkgs/games/quakespasm/default.nix
index 137b86f57b6..e67363fdc3c 100644
--- a/pkgs/games/quakespasm/default.nix
+++ b/pkgs/games/quakespasm/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
 
     platforms = platforms.unix;
     maintainers = with maintainers; [ mikroskeem m3tti ];
+    mainProgram = "quake";
   };
 }
diff --git a/pkgs/games/tintin/default.nix b/pkgs/games/tintin/default.nix
index 2388158a36a..aac7cf8f6ab 100644
--- a/pkgs/games/tintin/default.nix
+++ b/pkgs/games/tintin/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     homepage    = "http://tintin.sourceforge.net";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
+    mainProgram = "tt++";
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/misc/lguf-brightness/default.nix b/pkgs/misc/lguf-brightness/default.nix
index efdc8e15148..0bb288c2176 100644
--- a/pkgs/misc/lguf-brightness/default.nix
+++ b/pkgs/misc/lguf-brightness/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/periklis/lguf-brightness";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ periklis ];
+    mainProgram = "lguf_brightness";
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/misc/scimark/default.nix b/pkgs/misc/scimark/default.nix
index 7558c676ba5..5726556e687 100644
--- a/pkgs/misc/scimark/default.nix
+++ b/pkgs/misc/scimark/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     description = "Scientific and numerical computing benchmark (ANSI C version)";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "scimark4";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/os-specific/darwin/kwm/default.nix b/pkgs/os-specific/darwin/kwm/default.nix
index 273ea7345d9..c210f9e8c65 100644
--- a/pkgs/os-specific/darwin/kwm/default.nix
+++ b/pkgs/os-specific/darwin/kwm/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://github.com/koekeishiya/kwm/releases";
     platforms = platforms.darwin;
     maintainers = with maintainers; [ lnl7 ];
+    mainProgram = "kwmc";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/os-specific/linux/pam_u2f/default.nix b/pkgs/os-specific/linux/pam_u2f/default.nix
index 5e4b190c7a3..1b95067bab5 100644
--- a/pkgs/os-specific/linux/pam_u2f/default.nix
+++ b/pkgs/os-specific/linux/pam_u2f/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ philandstuff ];
+    mainProgram = "pamu2fcfg";
   };
 }
diff --git a/pkgs/servers/documize-community/default.nix b/pkgs/servers/documize-community/default.nix
index 036ea5fbee7..66ba25f8bf4 100644
--- a/pkgs/servers/documize-community/default.nix
+++ b/pkgs/servers/documize-community/default.nix
@@ -34,6 +34,7 @@ buildGoModule rec {
     description = "Open source Confluence alternative for internal & external docs built with Golang + EmberJS";
     license = licenses.agpl3;
     maintainers = with maintainers; [ ma27 elseym ];
+    mainProgram = "documize";
     homepage = "https://www.documize.com/";
   };
 }
diff --git a/pkgs/servers/http/micro-httpd/default.nix b/pkgs/servers/http/micro-httpd/default.nix
index 01ff91ebda6..b4a55591054 100644
--- a/pkgs/servers/http/micro-httpd/default.nix
+++ b/pkgs/servers/http/micro-httpd/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation {
     license     = licenses.bsd2;
     platforms   = platforms.unix;
     maintainers = with maintainers; [ copumpkin ];
+    mainProgram = "micro_httpd";
   };
 }
 
diff --git a/pkgs/servers/http/webfs/default.nix b/pkgs/servers/http/webfs/default.nix
index 1281dee22be..812f5a0d00f 100644
--- a/pkgs/servers/http/webfs/default.nix
+++ b/pkgs/servers/http/webfs/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl2;
     platforms   = platforms.all;
     maintainers = with maintainers; [ zimbatm ];
+    mainProgram = "webfsd";
   };
 }
diff --git a/pkgs/servers/irker/default.nix b/pkgs/servers/irker/default.nix
index 0aac945ad00..28f6b60cf76 100644
--- a/pkgs/servers/irker/default.nix
+++ b/pkgs/servers/irker/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation {
     homepage = "https://gitlab.com/esr/irker";
     license = licenses.bsd2;
     maintainers = with maintainers; [ dtzWill ];
+    mainProgram = "irkerd";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/kapowbang/default.nix b/pkgs/servers/kapowbang/default.nix
index efd2b17d7e5..81536ab143a 100644
--- a/pkgs/servers/kapowbang/default.nix
+++ b/pkgs/servers/kapowbang/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     description = "Expose command-line tools over HTTP";
     license = licenses.asl20;
     maintainers = with maintainers; [ nilp0inter ];
+    mainProgram = "kapow";
   };
 }
diff --git a/pkgs/servers/mail/clamsmtp/default.nix b/pkgs/servers/mail/clamsmtp/default.nix
index 1972e7d86a8..b3f825f7148 100644
--- a/pkgs/servers/mail/clamsmtp/default.nix
+++ b/pkgs/servers/mail/clamsmtp/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     homepage = "http://thewalter.net/stef/software/clamsmtp/";
     license = licenses.bsd3;
     maintainers = [ maintainers.ekleog ];
+    mainProgram = "clamsmtpd";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/servers/mail/system-sendmail/default.nix b/pkgs/servers/mail/system-sendmail/default.nix
index 76b92299409..c3574c8f17f 100644
--- a/pkgs/servers/mail/system-sendmail/default.nix
+++ b/pkgs/servers/mail/system-sendmail/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     '';
     platforms = platforms.unix;
     maintainers = with maintainers; [ ekleog ];
+    mainProgram = "sendmail";
   };
 }
diff --git a/pkgs/servers/matrix-corporal/default.nix b/pkgs/servers/matrix-corporal/default.nix
index ad92a1b8dba..6451352af76 100644
--- a/pkgs/servers/matrix-corporal/default.nix
+++ b/pkgs/servers/matrix-corporal/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
     homepage = "https://github.com/devture/matrix-corporal";
     description = "Reconciliator and gateway for a managed Matrix server";
     maintainers = with maintainers; [ dandellion ];
+    mainProgram = "devture-matrix-corporal";
     license = licenses.agpl3Only;
   };
 }
diff --git a/pkgs/servers/monitoring/zipkin/default.nix b/pkgs/servers/monitoring/zipkin/default.nix
index 9395c3c61c1..37e43aeb3d9 100644
--- a/pkgs/servers/monitoring/zipkin/default.nix
+++ b/pkgs/servers/monitoring/zipkin/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     platforms = platforms.unix;
     maintainers = [ maintainers.hectorj ];
+    mainProgram = "zipkin-server";
   };
 }
diff --git a/pkgs/servers/ps3netsrv/default.nix b/pkgs/servers/ps3netsrv/default.nix
index 12c4e2545a5..91f24a42927 100644
--- a/pkgs/servers/ps3netsrv/default.nix
+++ b/pkgs/servers/ps3netsrv/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ makefu ];
+    mainProgram = "ps3netsrv++";
   };
 }
diff --git a/pkgs/servers/trezord/default.nix b/pkgs/servers/trezord/default.nix
index 040ae21c223..29cd2766bd8 100644
--- a/pkgs/servers/trezord/default.nix
+++ b/pkgs/servers/trezord/default.nix
@@ -27,6 +27,7 @@ buildGoModule rec {
     homepage = "https://trezor.io";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ canndrew jb55 prusnak mmahut _1000101 ];
+    mainProgram = "trezord-go";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/servers/udpt/default.nix b/pkgs/servers/udpt/default.nix
index 8f59d9e02a8..6d5b0bb9099 100644
--- a/pkgs/servers/udpt/default.nix
+++ b/pkgs/servers/udpt/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = lib.licenses.gpl3;
     platforms = lib.platforms.all;
     maintainers = with lib.maintainers; [ makefu ];
+    mainProgram = "udpt-rs";
   };
 }
diff --git a/pkgs/shells/fish/oh-my-fish/default.nix b/pkgs/shells/fish/oh-my-fish/default.nix
index e0dca9419eb..3ec4e3b12d7 100644
--- a/pkgs/shells/fish/oh-my-fish/default.nix
+++ b/pkgs/shells/fish/oh-my-fish/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ AndersonTorres ];
+    mainProgram = "omf-install";
     platforms = fish.meta.platforms;
   };
 }
diff --git a/pkgs/shells/powershell/default.nix b/pkgs/shells/powershell/default.nix
index 6dbb9fa7625..a2fe61c3323 100644
--- a/pkgs/shells/powershell/default.nix
+++ b/pkgs/shells/powershell/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
     description = "Powerful cross-platform (Windows, Linux, and macOS) shell and scripting language based on .NET";
     homepage = "https://github.com/PowerShell/PowerShell";
     maintainers = with maintainers; [ yrashk srgom p3psi ];
+    mainProgram = "pwsh";
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
     license = with licenses; [ mit ];
   };
diff --git a/pkgs/tools/X11/runningx/default.nix b/pkgs/tools/X11/runningx/default.nix
index b3b5233564a..bc7e6f39570 100644
--- a/pkgs/tools/X11/runningx/default.nix
+++ b/pkgs/tools/X11/runningx/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation {
     license = lib.licenses.free;
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.romildo ];
+    mainProgram = "RunningX";
   };
 }
diff --git a/pkgs/tools/X11/screen-message/default.nix b/pkgs/tools/X11/screen-message/default.nix
index 58bac8702b7..3701684af8d 100644
--- a/pkgs/tools/X11/screen-message/default.nix
+++ b/pkgs/tools/X11/screen-message/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     description = "Displays a short text fullscreen in an X11 window";
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.fpletz ];
+    mainProgram = "sm";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/tools/X11/xmagnify/default.nix b/pkgs/tools/X11/xmagnify/default.nix
index a9cb715be39..38450c745ee 100644
--- a/pkgs/tools/X11/xmagnify/default.nix
+++ b/pkgs/tools/X11/xmagnify/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.com/amiloradovsky/magnify";
     license = licenses.mit;  # or GPL2+, optionally
     maintainers = with maintainers; [ amiloradovsky ];
+    mainProgram = "magnify";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index 0f431e5e40c..69900238c5e 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/aliyun/aliyun-cli/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ ornxka ];
+    mainProgram = "aliyun";
   };
 }
diff --git a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
index b70ddb76fc1..ee083003ae7 100644
--- a/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
+++ b/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
@@ -18,6 +18,7 @@ buildGoPackage rec {
     homepage = "https://github.com/awslabs/amazon-ecr-credential-helper";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
+    mainProgram = "docker-credential-ecr-login";
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index e5282bf96da..b05f3380426 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -29,5 +29,6 @@ buildGoPackage rec {
     homepage    = "https://github.com/exoscale/cli";
     license     = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ dramaturg ];
+    mainProgram = "exo";
   };
 }
diff --git a/pkgs/tools/admin/trinsic-cli/default.nix b/pkgs/tools/admin/trinsic-cli/default.nix
index d280fac0733..d6e6d6f100c 100644
--- a/pkgs/tools/admin/trinsic-cli/default.nix
+++ b/pkgs/tools/admin/trinsic-cli/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://trinsic.id/";
     license = licenses.asl20;
     maintainers = with maintainers; [ tmarkovski ];
+    mainProgram = "trinsic";
   };
 }
diff --git a/pkgs/tools/backup/zfsbackup/default.nix b/pkgs/tools/backup/zfsbackup/default.nix
index 5cdb39c3ecb..ff47ce47ede 100644
--- a/pkgs/tools/backup/zfsbackup/default.nix
+++ b/pkgs/tools/backup/zfsbackup/default.nix
@@ -21,5 +21,6 @@ buildGoPackage rec {
     homepage = "https://github.com/someone1/zfsbackup-go";
     license = licenses.mit;
     maintainers = [ maintainers.xfix ];
+    mainProgram = "zfsbackup-go";
   };
 }
diff --git a/pkgs/tools/compression/gzrt/default.nix b/pkgs/tools/compression/gzrt/default.nix
index 664c1eb7856..59d87cf4f34 100644
--- a/pkgs/tools/compression/gzrt/default.nix
+++ b/pkgs/tools/compression/gzrt/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.urbanophile.com/arenn/hacking/gzrt/";
     description = "The gzip Recovery Toolkit";
     maintainers = with maintainers; [ ];
+    mainProgram = "gzrecover";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/tools/compression/lhasa/default.nix b/pkgs/tools/compression/lhasa/default.nix
index 4f1ba702831..a58f186129e 100644
--- a/pkgs/tools/compression/lhasa/default.nix
+++ b/pkgs/tools/compression/lhasa/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     homepage = "http://fragglet.github.io/lhasa";
     maintainers = [ maintainers.sander ];
+    mainProgram = "lha";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/filesystems/idsk/default.nix b/pkgs/tools/filesystems/idsk/default.nix
index 0b7ae339053..39052ecba93 100644
--- a/pkgs/tools/filesystems/idsk/default.nix
+++ b/pkgs/tools/filesystems/idsk/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/cpcsdk/idsk" ;
     license = licenses.mit;
     maintainers = [ ];
+    mainProgram = "iDSK";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/graphics/imageworsener/default.nix b/pkgs/tools/graphics/imageworsener/default.nix
index 126bcfefc80..ab0a4387162 100644
--- a/pkgs/tools/graphics/imageworsener/default.nix
+++ b/pkgs/tools/graphics/imageworsener/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/jsummers/${pname}/blob/${version}/changelog.txt";
     license = licenses.mit;
     maintainers = with maintainers; [ emily smitop ];
+    mainProgram = "imagew";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/asdf-vm/default.nix b/pkgs/tools/misc/asdf-vm/default.nix
index 6b217d75d69..ee33ba82be6 100644
--- a/pkgs/tools/misc/asdf-vm/default.nix
+++ b/pkgs/tools/misc/asdf-vm/default.nix
@@ -80,6 +80,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://asdf-vm.com/";
     license = licenses.mit;
     maintainers = [ maintainers.c4605 ];
+    mainProgram = "asdf";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/gotify-cli/default.nix b/pkgs/tools/misc/gotify-cli/default.nix
index e52744223de..04f588081f0 100644
--- a/pkgs/tools/misc/gotify-cli/default.nix
+++ b/pkgs/tools/misc/gotify-cli/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/gotify/cli";
     description = "A command line interface for pushing messages to gotify/server";
     maintainers = with maintainers; [ ma27 ];
+    mainProgram = "gotify";
   };
 }
diff --git a/pkgs/tools/misc/heatseeker/default.nix b/pkgs/tools/misc/heatseeker/default.nix
index fd89775afd6..5f8c15253aa 100644
--- a/pkgs/tools/misc/heatseeker/default.nix
+++ b/pkgs/tools/misc/heatseeker/default.nix
@@ -29,6 +29,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rschmitt/heatseeker";
     license = licenses.mit;
     maintainers = [ maintainers.michaelpj ];
+    mainProgram = "hs";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/hiksink/default.nix b/pkgs/tools/misc/hiksink/default.nix
index 0fcdb2fdca0..9cc91035afe 100644
--- a/pkgs/tools/misc/hiksink/default.nix
+++ b/pkgs/tools/misc/hiksink/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/CornerBit/HikSink";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "hik_sink";
   };
 }
diff --git a/pkgs/tools/misc/intermodal/default.nix b/pkgs/tools/misc/intermodal/default.nix
index c1f182d6966..c61398a78dc 100644
--- a/pkgs/tools/misc/intermodal/default.nix
+++ b/pkgs/tools/misc/intermodal/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/casey/intermodal";
     license = licenses.cc0;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "imdl";
   };
 }
diff --git a/pkgs/tools/misc/lokalise2-cli/default.nix b/pkgs/tools/misc/lokalise2-cli/default.nix
index 85437e09efb..cd569b8cc62 100644
--- a/pkgs/tools/misc/lokalise2-cli/default.nix
+++ b/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -24,6 +24,7 @@ buildGoModule rec {
     homepage = "https://lokalise.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ timstott ];
+    mainProgram = "lokalise2";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/oppai-ng/default.nix b/pkgs/tools/misc/oppai-ng/default.nix
index f36dacdd3a2..cf1ea893fcf 100644
--- a/pkgs/tools/misc/oppai-ng/default.nix
+++ b/pkgs/tools/misc/oppai-ng/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Francesco149/oppai-ng";
     license = licenses.unlicense;
     maintainers = with maintainers; [ tadeokondrak ];
+    mainProgram = "oppai";
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/tools/misc/unclutter-xfixes/default.nix b/pkgs/tools/misc/unclutter-xfixes/default.nix
index 9e95cddda32..710932af5e9 100644
--- a/pkgs/tools/misc/unclutter-xfixes/default.nix
+++ b/pkgs/tools/misc/unclutter-xfixes/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = lib.licenses.mit;
     maintainers = [ maintainers.globin ];
+    mainProgram = "unclutter";
   };
 }
diff --git a/pkgs/tools/networking/changetower/default.nix b/pkgs/tools/networking/changetower/default.nix
index e0e38c8d221..62a277dd0cf 100644
--- a/pkgs/tools/networking/changetower/default.nix
+++ b/pkgs/tools/networking/changetower/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/Dc4ts/ChangeTower";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ChangeTower";
   };
 }
diff --git a/pkgs/tools/networking/dnscrypt-proxy2/default.nix b/pkgs/tools/networking/dnscrypt-proxy2/default.nix
index af4f1db4cd1..7d84365eb99 100644
--- a/pkgs/tools/networking/dnscrypt-proxy2/default.nix
+++ b/pkgs/tools/networking/dnscrypt-proxy2/default.nix
@@ -21,6 +21,7 @@ buildGoModule rec {
     license = licenses.isc;
     homepage = "https://dnscrypt.info/";
     maintainers = with maintainers; [ atemu waynr ];
+    mainProgram = "dnscrypt-proxy";
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index c4a0baf3160..b0a689db7bf 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -30,6 +30,7 @@ buildGoModule rec {
     homepage = "https://github.com/minio/mc";
     description = "A replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage";
     maintainers = with maintainers; [ bachp eelco ];
+    mainProgram = "mc";
     platforms = platforms.unix;
     license = licenses.asl20;
   };
diff --git a/pkgs/tools/networking/rustcat/default.nix b/pkgs/tools/networking/rustcat/default.nix
index a5dfd38a0e3..118725c6793 100644
--- a/pkgs/tools/networking/rustcat/default.nix
+++ b/pkgs/tools/networking/rustcat/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/robiot/rustcat";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "rcat";
   };
 }
diff --git a/pkgs/tools/networking/s3gof3r/default.nix b/pkgs/tools/networking/s3gof3r/default.nix
index 19422c3ec8e..2e3b8384087 100644
--- a/pkgs/tools/networking/s3gof3r/default.nix
+++ b/pkgs/tools/networking/s3gof3r/default.nix
@@ -19,6 +19,7 @@ buildGoPackage rec {
     description = "Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI";
     homepage = "https://pkg.go.dev/github.com/rlmcpherson/s3gof3r";
     maintainers = with maintainers; [ ];
+    mainProgram = "gof3r";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/networking/shadowfox/default.nix b/pkgs/tools/networking/shadowfox/default.nix
index 4b270998a6b..56406583637 100644
--- a/pkgs/tools/networking/shadowfox/default.nix
+++ b/pkgs/tools/networking/shadowfox/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://overdodactyl.github.io/ShadowFox/";
     license = licenses.mit;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "shadowfox-updater";
   };
 }
diff --git a/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix b/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
index be3a2f77d5c..1642bb2944d 100644
--- a/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
+++ b/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
     homepage = "https://github.com/shadowsocks/v2ray-plugin/";
     license = licenses.mit;
     maintainers = [ maintainers.ahrzb ];
+    mainProgram = "v2ray-plugin";
   };
 }
 
diff --git a/pkgs/tools/networking/tdns-cli/default.nix b/pkgs/tools/networking/tdns-cli/default.nix
index a38456bcc76..10dda6568fc 100644
--- a/pkgs/tools/networking/tdns-cli/default.nix
+++ b/pkgs/tools/networking/tdns-cli/default.nix
@@ -18,5 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rotty/tdns-cli";
     license = licenses.gpl3;
     maintainers = with maintainers; [ astro ];
+    mainProgram = "tdns";
   };
 }
diff --git a/pkgs/tools/networking/telepresence2/default.nix b/pkgs/tools/networking/telepresence2/default.nix
index 06a36473ec1..2c6f799e658 100644
--- a/pkgs/tools/networking/telepresence2/default.nix
+++ b/pkgs/tools/networking/telepresence2/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://www.getambassador.io/docs/telepresence/2.1/quick-start/";
     license = licenses.asl20;
     maintainers = with maintainers; [ mausch ];
+    mainProgram = "telepresence";
   };
 }
diff --git a/pkgs/tools/networking/webwormhole/default.nix b/pkgs/tools/networking/webwormhole/default.nix
index 8fbaf3159a2..aed0b624d44 100644
--- a/pkgs/tools/networking/webwormhole/default.nix
+++ b/pkgs/tools/networking/webwormhole/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/saljam/webwormhole";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bbigras ];
+    mainProgram = "ww";
   };
 }
diff --git a/pkgs/tools/networking/wg-friendly-peer-names/default.nix b/pkgs/tools/networking/wg-friendly-peer-names/default.nix
index a2ec966a604..eaa8efbcebd 100644
--- a/pkgs/tools/networking/wg-friendly-peer-names/default.nix
+++ b/pkgs/tools/networking/wg-friendly-peer-names/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = wireguard-tools.meta.platforms;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "wgg";
   };
 }
diff --git a/pkgs/tools/security/fulcio/default.nix b/pkgs/tools/security/fulcio/default.nix
index a9e48bdca09..4098a101518 100644
--- a/pkgs/tools/security/fulcio/default.nix
+++ b/pkgs/tools/security/fulcio/default.nix
@@ -68,5 +68,6 @@ buildGoModule rec {
     description = "A Root-CA for code signing certs - issuing certificates based on an OIDC email address";
     license = licenses.asl20;
     maintainers = with maintainers; [ lesuisse jk ];
+    mainProgram = "fulcio-server";
   };
 }
diff --git a/pkgs/tools/security/go365/default.nix b/pkgs/tools/security/go365/default.nix
index 02e4c32c6ce..db075745ede 100644
--- a/pkgs/tools/security/go365/default.nix
+++ b/pkgs/tools/security/go365/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/optiv/Go365";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "Go365";
   };
 }
diff --git a/pkgs/tools/security/gosh/default.nix b/pkgs/tools/security/gosh/default.nix
index 7d5cd7a1525..a4c74f1a563 100644
--- a/pkgs/tools/security/gosh/default.nix
+++ b/pkgs/tools/security/gosh/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/redcode-labs/GoSH";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+    mainProgram = "GoSH";
   };
 }
diff --git a/pkgs/tools/security/jwt-cli/default.nix b/pkgs/tools/security/jwt-cli/default.nix
index 77e5ce08913..98b297fe831 100644
--- a/pkgs/tools/security/jwt-cli/default.nix
+++ b/pkgs/tools/security/jwt-cli/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mike-engel/jwt-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ rycee ];
+    mainProgram = "jwt";
   };
 }
diff --git a/pkgs/tools/security/minio-certgen/default.nix b/pkgs/tools/security/minio-certgen/default.nix
index 16dbfdf63ad..6e2403ad7c1 100644
--- a/pkgs/tools/security/minio-certgen/default.nix
+++ b/pkgs/tools/security/minio-certgen/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     downloadPage = "https://github.com/minio/certgen";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bryanasdev000 ];
+    mainProgram = "certgen";
   };
 }
diff --git a/pkgs/tools/security/phrasendrescher/default.nix b/pkgs/tools/security/phrasendrescher/default.nix
index 7e8c87f6e82..d4f7242b289 100644
--- a/pkgs/tools/security/phrasendrescher/default.nix
+++ b/pkgs/tools/security/phrasendrescher/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "pd";
   };
 }
diff --git a/pkgs/tools/security/sheesy-cli/default.nix b/pkgs/tools/security/sheesy-cli/default.nix
index 4be2189e293..c47e5a21285 100644
--- a/pkgs/tools/security/sheesy-cli/default.nix
+++ b/pkgs/tools/security/sheesy-cli/default.nix
@@ -37,5 +37,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/share-secrets-safely/cli/releases/tag/${version}";
     license = with licenses; [ lgpl21Only ];
     maintainers = with maintainers; [ devhell ];
+    mainProgram = "sy";
   };
 }
diff --git a/pkgs/tools/security/snowcrash/default.nix b/pkgs/tools/security/snowcrash/default.nix
index bce05ed8f2e..087c6af1e60 100644
--- a/pkgs/tools/security/snowcrash/default.nix
+++ b/pkgs/tools/security/snowcrash/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/redcode-labs/SNOWCRASH";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+    mainProgram = "SNOWCRASH";
   };
 }
diff --git a/pkgs/tools/security/solo2-cli/default.nix b/pkgs/tools/security/solo2-cli/default.nix
index eaa2bc659a5..89d26540d38 100644
--- a/pkgs/tools/security/solo2-cli/default.nix
+++ b/pkgs/tools/security/solo2-cli/default.nix
@@ -45,5 +45,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/solokeys/solo2-cli";
     license = with licenses; [ asl20 mit ]; # either at your option
     maintainers = with maintainers; [ lukegb ];
+    mainProgram = "solo2";
   };
 }
diff --git a/pkgs/tools/system/natscli/default.nix b/pkgs/tools/system/natscli/default.nix
index 411c1054434..c889bffcf89 100644
--- a/pkgs/tools/system/natscli/default.nix
+++ b/pkgs/tools/system/natscli/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/nats-io/natscli";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "nats";
   };
 }
diff --git a/pkgs/tools/system/plan9port/default.nix b/pkgs/tools/system/plan9port/default.nix
index d6c8833618c..f165bfca425 100644
--- a/pkgs/tools/system/plan9port/default.nix
+++ b/pkgs/tools/system/plan9port/default.nix
@@ -101,6 +101,7 @@ stdenv.mkDerivation {
       ftrvxmtrx
       kovirobi
     ];
+    mainProgram = "9";
     platforms = platforms.unix;
     # TODO: revisit this when the sdk situation on x86_64-darwin changes
     broken = stdenv.isDarwin && stdenv.isx86_64;
diff --git a/pkgs/tools/system/tre-command/default.nix b/pkgs/tools/system/tre-command/default.nix
index 85b4f9fe2ac..8e8d5c12051 100644
--- a/pkgs/tools/system/tre-command/default.nix
+++ b/pkgs/tools/system/tre-command/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dduan/tre";
     license = licenses.mit;
     maintainers = [ maintainers.dduan ];
+    mainProgram = "tre";
   };
 }
diff --git a/pkgs/tools/text/angle-grinder/default.nix b/pkgs/tools/text/angle-grinder/default.nix
index a2303c10a63..987b61da9f0 100644
--- a/pkgs/tools/text/angle-grinder/default.nix
+++ b/pkgs/tools/text/angle-grinder/default.nix
@@ -21,5 +21,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rcoh/angle-grinder";
     license = licenses.mit;
     maintainers = with maintainers; [ bbigras ];
+    mainProgram = "agrind";
   };
 }
diff --git a/pkgs/tools/text/html-tidy/default.nix b/pkgs/tools/text/html-tidy/default.nix
index d4bb26a0a77..9694295ed1f 100644
--- a/pkgs/tools/text/html-tidy/default.nix
+++ b/pkgs/tools/text/html-tidy/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "http://html-tidy.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ edwtjo ];
+    mainProgram = "tidy";
   };
 }
diff --git a/pkgs/tools/text/igrep/default.nix b/pkgs/tools/text/igrep/default.nix
index b7fc915c44d..28c896a828e 100644
--- a/pkgs/tools/text/igrep/default.nix
+++ b/pkgs/tools/text/igrep/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/konradsz/igrep/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ _0x4A6F ];
+    mainProgram = "ig";
   };
 }
diff --git a/pkgs/tools/text/miller/default.nix b/pkgs/tools/text/miller/default.nix
index 932b670c749..b524fd0484f 100644
--- a/pkgs/tools/text/miller/default.nix
+++ b/pkgs/tools/text/miller/default.nix
@@ -26,6 +26,7 @@ buildGoModule rec {
     homepage    = "https://github.com/johnkerl/miller";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ mstarzyk ];
+    mainProgram = "mlr";
     platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/video/atomicparsley/default.nix b/pkgs/tools/video/atomicparsley/default.nix
index 758fa56db50..9e989fcc475 100644
--- a/pkgs/tools/video/atomicparsley/default.nix
+++ b/pkgs/tools/video/atomicparsley/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = with maintainers; [ pjones ];
+    mainProgram = "AtomicParsley";
   };
 }
diff --git a/pkgs/tools/virtualization/cloudmonkey/default.nix b/pkgs/tools/virtualization/cloudmonkey/default.nix
index ca1c4caf03b..5b857ab1c1a 100644
--- a/pkgs/tools/virtualization/cloudmonkey/default.nix
+++ b/pkgs/tools/virtualization/cloudmonkey/default.nix
@@ -18,6 +18,7 @@ buildGoModule rec {
     homepage = "https://github.com/apache/cloudstack-cloudmonkey";
     license = [ licenses.asl20 ];
     maintainers = [ maintainers.womfoo ];
+    mainProgram = "cloudstack-cloudmonkey";
   };
 
 }