Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-03-20 00:12:21 +00:00 committed by GitHub
commit 05f9a72c0e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5610 changed files with 8758 additions and 1896 deletions

View file

@ -658,14 +658,18 @@ This creates a derivation with a directory structure like the following:
## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile}
Writes the closure of transitive dependencies to a file.
Deprecated. Use [`writeClosure`](#trivial-builder-writeClosure) instead.
This produces the equivalent of `nix-store -q --requisites`.
## `writeClosure` {#trivial-builder-writeClosure}
Given a list of [store paths](https://nixos.org/manual/nix/stable/glossary#gloss-store-path) (or string-like expressions coercible to store paths), write their collective [closure](https://nixos.org/manual/nix/stable/glossary#gloss-closure) to a text file.
The result is equivalent to the output of `nix-store -q --requisites`.
For example,
```nix
writeReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'')
writeClosure [ (writeScriptBin "hi" ''${hello}/bin/hello'') ]
```
produces an output path `/nix/store/<hash>-runtime-deps` containing

View file

@ -144,4 +144,4 @@ All new projects should use the CUDA redistributables available in [`cudaPackage
| Find libraries | `configurePhase` | Missing dependency on a `dev` output | Add the missing dependency | The `dev` output typically contain CMake configuration files |
| Find libraries | `buildPhase` or `patchelf` | Missing dependency on a `lib` or `static` output | Add the missing dependency | The `lib` or `static` output typically contain the libraries |
In the scenario you are unable to run the resulting binary: this is arguably the most complicated as it could be any combination of the previous reasons. This type of failure typically occurs when a library attempts to load or open a library it depends on that it does not declare in its `DT_NEEDED` section. As a first step, ensure that dependencies are patched with [`cudaPackages.autoAddOpenGLRunpath`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.autoAddOpenGLRunpath). Failing that, try running the application with [`nixGL`](https://github.com/guibou/nixGL) or a similar wrapper tool. If that works, it likely means that the application is attempting to load a library that is not in the `RPATH` or `RUNPATH` of the binary.
In the scenario you are unable to run the resulting binary: this is arguably the most complicated as it could be any combination of the previous reasons. This type of failure typically occurs when a library attempts to load or open a library it depends on that it does not declare in its `DT_NEEDED` section. As a first step, ensure that dependencies are patched with [`cudaPackages.autoAddDriverRunpath`](https://search.nixos.org/packages?channel=unstable&type=packages&query=cudaPackages.autoAddDriverRunpath). Failing that, try running the application with [`nixGL`](https://github.com/guibou/nixGL) or a similar wrapper tool. If that works, it likely means that the application is attempting to load a library that is not in the `RPATH` or `RUNPATH` of the binary.

View file

@ -4,12 +4,31 @@ Ant-based Java packages are typically built from source as follows:
```nix
stdenv.mkDerivation {
name = "...";
pname = "...";
version = "...";
src = fetchurl { ... };
nativeBuildInputs = [ jdk ant ];
nativeBuildInputs = [
ant
jdk
stripJavaArchivesHook # removes timestamp metadata from jar files
];
buildPhase = "ant";
buildPhase = ''
runHook preBuild
ant # build the project using ant
runHook postBuild
'';
installPhase = ''
runHook preInstall
# copy generated jar file(s) to an appropriate location in $out
install -Dm644 build/foo.jar $out/share/java/foo.jar
runHook postInstall
'';
}
```
@ -17,6 +36,10 @@ Note that `jdk` is an alias for the OpenJDK (self-built where available,
or pre-built via Zulu). Platforms with OpenJDK not (yet) in Nixpkgs
(`Aarch32`, `Aarch64`) point to the (unfree) `oraclejdk`.
Also note that not using `stripJavaArchivesHook` will likely cause the
generated `.jar` files to be non-deterministic, which is not optimal.
Using it, however, does not always guarantee reproducibility.
JAR files that are intended to be used by other packages should be
installed in `$out/share/java`. JDKs have a stdenv setup hook that add
any JARs in the `share/java` directories of the build inputs to the

View file

@ -6276,6 +6276,16 @@
githubId = 541748;
name = "Felipe Espinoza";
};
federicoschonborn = {
name = "Federico Damián Schonborn";
email = "federicoschonborn@disroot.org";
github = "FedericoSchonborn";
githubId = 62166915;
matrix = "@FedericoDSchonborn:matrix.org";
keys = [
{ fingerprint = "C43F 4052 D289 3B73 33F8 0259 E4F6 F544 DE9E 29E8"; }
];
};
fedx-sudo = {
email = "fedx-sudo@pm.me";
github = "FedX-sudo";
@ -20952,6 +20962,12 @@
githubId = 15619766;
name = "wldhx";
};
w-lfchen = {
email = "w-lfchen@posteo.net";
github = "w-lfchen";
githubId = 115360611;
name = "Wölfchen";
};
wmertens = {
email = "Wout.Mertens@gmail.com";
github = "wmertens";

View file

@ -21,6 +21,7 @@ stdenv.mkDerivation {
meta = {
maintainers = with lib.maintainers; [ eelco ];
description = "Utility to generate a Nix expression for a Perl package from CPAN";
mainProgram = "nix-generate-from-cpan";
platforms = lib.platforms.unix;
};
}

View file

@ -19,6 +19,7 @@ stdenv.mkDerivation {
meta = with lib; {
maintainers = [ maintainers.eelco ];
description = "A utility for Nixpkgs contributors to check Nixpkgs for common errors";
mainProgram = "nixpkgs-lint";
platforms = platforms.unix;
};
}

View file

@ -99,6 +99,7 @@ with lib.maintainers; {
budgie = {
members = [
bobby285271
federicoschonborn
];
scope = "Maintain Budgie desktop environment";
shortName = "Budgie";

View file

@ -171,6 +171,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
- `writeReferencesToFile` is deprecated in favour of the new trivial build helper `writeClosure`. The latter accepts a list of paths and has an unambiguous name and cleaner implementation.
- `inetutils` now has a lower priority to avoid shadowing the commonly used `util-linux`. If one wishes to restore the default priority, simply use `lib.setPrio 5 inetutils` or override with `meta.priority = 5`.
- `paperless`' `services.paperless.extraConfig` setting has been removed and converted to the freeform type and option named `services.paperless.settings`.
@ -454,3 +456,6 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
The previous native backends remain available but are now minimally maintained. Refer to [upstream documentation](https://doc.qt.io/qt-6/qtmultimedia-index.html#ffmpeg-as-the-default-backend) for further details about each platform.
- The oil shell's c++ version is now available as `oils-for-unix`. The python version is still available as `oil`
- `documentation.man.mandoc` now by default uses `MANPATH` to set the directories where mandoc will search for manual pages.
This enables mandoc to find manual pages in Nix profiles. To set the manual search paths via the `mandoc.conf` configuration file like before, use `documentation.man.mandoc.settings.manpath` instead.

View file

@ -352,7 +352,7 @@ in
show-trace = true;
system-features = [ "big-parallel" "kvm" "recursive-nix" ];
sandbox-paths = { "/bin/sh" = "''${pkgs.busybox-sandbox-shell.out}/bin/busybox"; };
sandbox-paths = [ "/bin/sh=''${pkgs.busybox-sandbox-shell.out}/bin/busybox" ];
}
'';
description = lib.mdDoc ''

View file

@ -17,6 +17,8 @@ let
)
output
);
makeLeadingSlashes = map (path: if builtins.substring 0 1 path != "/" then "/${path}" else path);
in
{
meta.maintainers = [ lib.maintainers.sternenseemann ];
@ -29,6 +31,7 @@ in
type = with lib.types; listOf str;
default = [ "share/man" ];
example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
apply = makeLeadingSlashes;
description = ''
Change the paths included in the MANPATH environment variable,
i. e. the directories where {manpage}`man(1)`
@ -41,6 +44,28 @@ in
'';
};
cachePath = lib.mkOption {
type = with lib.types; listOf str;
default = cfg.manPath;
defaultText = lib.literalExpression "config.documentation.man.mandoc.manPath";
example = lib.literalExpression "[ \"share/man\" \"share/man/fr\" ]";
apply = makeLeadingSlashes;
description = ''
Change the paths where mandoc {manpage}`makewhatis(8)`generates the
manual page index caches. {option}`documentation.man.generateCaches`
should be enabled to allow cache generation. This list should only
include the paths to manpages installed in the system configuration,
i. e. /run/current-system/sw/share/man. {manpage}`makewhatis(8)`
creates a database in each directory using the files
`mansection/[arch/]title.section` and `catsection/[arch/]title.0`
in it. If a directory contains no manual pages, no database is
created in that directory.
This option only needs to be set manually if extra paths should be
indexed or {option}`documentation.man.manPath` contains paths that
can't be indexed.
'';
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.mandoc;
@ -178,19 +203,14 @@ in
# TODO(@sternenseemman): fix symlinked directories not getting indexed,
# see: https://inbox.vuxu.org/mandoc-tech/20210906171231.GF83680@athene.usta.de/T/#e85f773c1781e3fef85562b2794f9cad7b2909a3c
extraSetup = lib.mkIf config.documentation.man.generateCaches ''
for man_path in ${
lib.concatMapStringsSep " " (path:
"$out/" + lib.escapeShellArg path
) cfg.manPath} ${lib.concatMapStringsSep " " (path:
lib.escapeShellArg path) cfg.settings.manpath
}
for man_path in ${lib.concatMapStringsSep " " (path: "$out" + lib.escapeShellArg path) cfg.cachePath}
do
[[ -d "$man_path" ]] && ${makewhatis} -T utf8 $man_path
done
'';
# tell mandoc the paths containing man pages
profileRelativeSessionVariables."MANPATH" = map (path: if builtins.substring 0 1 path != "/" then "/${path}" else path) cfg.manPath;
profileRelativeSessionVariables."MANPATH" = lib.mkIf (cfg.manPath != [ ]) cfg.manPath;
};
};
}

View file

@ -51,14 +51,6 @@ in
setuid = false;
setgid = true;
};
"1Password-KeyringHelper" = {
source = "${package}/share/1password/1Password-KeyringHelper";
owner = "root";
group = "onepassword";
setuid = true;
setgid = true;
};
};
};

View file

@ -1439,6 +1439,8 @@ in {
nodejs
gnupg
"${cfg.packages.gitlab}/share/gitlab/vendor/gems/sidekiq-${cfg.packages.gitlab.rubyEnv.gems.sidekiq.version}"
# Needed for GitLab project imports
gnutar
gzip
@ -1452,7 +1454,12 @@ in {
TimeoutSec = "infinity";
Restart = "always";
WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production";
ExecStart = utils.escapeSystemdExecArgs [
"${cfg.packages.gitlab}/share/gitlab/bin/sidekiq-cluster"
"-e" "production"
"-r" "."
"*" # all queue groups
];
};
};
@ -1550,7 +1557,7 @@ in {
gnutar
gzip
openssh
gitlab-workhorse
cfg.packages.gitlab-workhorse
];
serviceConfig = {
Type = "simple";

View file

@ -236,9 +236,9 @@ in
};
services.hedgedoc.settings = {
defaultNotePath = lib.mkDefault "${cfg.package}/public/default.md";
docsPath = lib.mkDefault "${cfg.package}/public/docs";
viewPath = lib.mkDefault "${cfg.package}/public/views";
defaultNotePath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/default.md";
docsPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/docs";
viewPath = lib.mkDefault "${cfg.package}/share/hedgedoc/public/views";
};
systemd.services.hedgedoc = {
@ -263,7 +263,7 @@ in
Group = name;
Restart = "always";
ExecStart = "${cfg.package}/bin/hedgedoc";
ExecStart = lib.getExe cfg.package;
RuntimeDirectory = [ name ];
StateDirectory = [ name ];
WorkingDirectory = "/run/${name}";

View file

@ -44,6 +44,8 @@ let
enableSshSocket = config.services.openssh.startWhenNeeded;
};
in {
meta.maintainers = lib.teams.budgie.members;
options = {
services.xserver.desktopManager.budgie = {
enable = mkEnableOption (mdDoc "the Budgie desktop");

View file

@ -233,7 +233,9 @@ in
symlinks because modprobe only supports one directory.
'';
# Convert the list of path to only one path.
apply = pkgs.aggregateModules;
apply = let
kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
in modules: (pkgs.aggregateModules modules).override { name = kernel-name + "-modules"; };
};
system.requiredKernelConfig = mkOption {

View file

@ -13,15 +13,11 @@ let
kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
modulesTree = config.system.modulesTree.override { name = kernel-name + "-modules"; };
firmware = config.hardware.firmware;
# Determine the set of modules that we need to mount the root FS.
modulesClosure = pkgs.makeModulesClosure {
rootModules = config.boot.initrd.availableKernelModules ++ config.boot.initrd.kernelModules;
kernel = modulesTree;
firmware = firmware;
kernel = config.system.modulesTree;
firmware = config.hardware.firmware;
allowMissing = false;
};

View file

@ -91,13 +91,11 @@ let
};
kernel-name = config.boot.kernelPackages.kernel.name or "kernel";
modulesTree = config.system.modulesTree.override { name = kernel-name + "-modules"; };
firmware = config.hardware.firmware;
# Determine the set of modules that we need to mount the root FS.
modulesClosure = pkgs.makeModulesClosure {
rootModules = config.boot.initrd.availableKernelModules ++ config.boot.initrd.kernelModules;
kernel = modulesTree;
firmware = firmware;
kernel = config.system.modulesTree;
firmware = config.hardware.firmware;
allowMissing = false;
};

View file

@ -61,14 +61,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
machine.succeed(f"{cmd} | grep 'XDG_CURRENT_DESKTOP' | grep 'Budgie:GNOME'")
machine.succeed(f"{cmd} | grep 'BUDGIE_PLUGIN_DATADIR' | grep '${pkgs.budgie.budgie-desktop-with-plugins.pname}'")
with subtest("Open Budgie Control Center"):
with subtest("Open run dialog"):
machine.send_key("alt-f2")
machine.wait_until_succeeds("pgrep -f budgie-run-dialog")
machine.wait_for_window("budgie-run-dialog")
machine.sleep(3)
machine.send_chars("Budgie Control Center", delay=0.5)
machine.screenshot("quick_search")
machine.send_chars("\n")
machine.sleep(2)
machine.screenshot("run_dialog")
machine.send_key("esc")
with subtest("Open Budgie Control Center"):
machine.succeed("${su "budgie-control-center >&2 &"}")
machine.wait_for_window("Budgie Control Center")
with subtest("Lock the screen"):

View file

@ -21,7 +21,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
''
machine.wait_for_x()
machine.succeed("echo '<!DOCTYPE html><html><body><h1>Hello world</h1></body></html>' > page.html")
machine.execute("ladybird file://$(pwd)/page.html >&2 &")
machine.execute("Ladybird file://$(pwd)/page.html >&2 &")
machine.wait_for_window("Ladybird")
machine.sleep(5)
machine.wait_for_text("Hello world")

View file

@ -93,23 +93,5 @@ let
inherit (import ../ssh-keys.nix pkgs) snakeOilPrivateKey snakeOilPublicKey;
/*
Return a store path with a closure containing everything including
derivations and all build dependency outputs, all the way down.
*/
allDrvOutputs = pkg:
let name = "allDrvOutputs-${pkg.pname or pkg.name or "unknown"}";
in
pkgs.runCommand name { refs = pkgs.writeReferencesToFile pkg.drvPath; } ''
touch $out
while read ref; do
case $ref in
*.drv)
cat $ref >>$out
;;
esac
done <$refs
'';
in
tests

View file

@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "GUI for alsa controls presented by Focusrite Scarlett Gen 2/3 Mixer Driver";
mainProgram = "alsa-scarlett-gui";
homepage = "https://github.com/geoffreybennett/alsa-scarlett-gui";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ sebtm ];

View file

@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Realtime modular synthesizer for ALSA";
mainProgram = "ams";
homepage = "https://alsamodular.sourceforge.net";
license = licenses.gpl2;
platforms = platforms.linux;

View file

@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "GTK client for MPD (Music player daemon)";
mainProgram = "ario";
homepage = "https://ario-player.sourceforge.net/";
license = licenses.gpl2Plus;
maintainers = [ maintainers.garrison ];

View file

@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A graphical Audio CD ripper and encoder for Linux";
mainProgram = "asunder";
homepage = "http://littlesvr.ca/asunder/index.php";
license = licenses.gpl2;
maintainers = with maintainers; [ mudri ];

View file

@ -190,6 +190,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Sound editor with graphical UI";
mainProgram = "audacity";
homepage = "https://www.audacityteam.org";
changelog = "https://github.com/audacity/audacity/releases";
license = with licenses; [

View file

@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Audio recorder for GNOME and Unity Desktops";
mainProgram = "audio-recorder";
longDescription = ''
This program allows you to record your favourite music or audio to a file.
It can record audio from your system soundcard, microphones, browsers and

View file

@ -76,6 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
mainProgram = "BambooTracker";
homepage = "https://bambootracker.github.io/BambooTracker/";
license = licenses.gpl2Plus;
platforms = platforms.all;

View file

@ -27,11 +27,11 @@
stdenv.mkDerivation rec {
pname = "bitwig-studio";
version = "5.1.3";
version = "5.1.6";
src = fetchurl {
url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
sha256 = "sha256-1/iKezOD2HCym6JBXRa9rGpjolJjrxRZA4vwfgZyVng=";
sha256 = "sha256-U1Qp7/7kAr1IEcv256I2J/sb5MYxfR20Pi5N8WaVh2U=";
};
nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];

View file

@ -59,6 +59,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
homepage = "https://github.com/rafaelmardojai/blanket";
description = "Listen to different sounds";
mainProgram = "blanket";
maintainers = with maintainers; [ onny ];
license = licenses.gpl3Plus;
platforms = platforms.linux;

View file

@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Nostalgia bucklespring keyboard sound";
mainProgram = "buckle";
longDescription = ''
When built with libinput (wayland or bare console),
users need to be in the input group to use this:

View file

@ -111,6 +111,7 @@ mkDerivation rec {
meta = with lib; {
description = "A graphical client for MPD";
mainProgram = "cantata";
homepage = "https://github.com/cdrummond/cantata";
license = licenses.gpl3Only;
maintainers = with maintainers; [ peterhoeg ];

View file

@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
license = licenses.gpl2Plus;
platforms = platforms.unix;
description = "Command-line utility to get CDDB discid information from a CD-ROM disc";
mainProgram = "cd-discid";
longDescription = ''
cd-discid is a backend utility to get CDDB discid information

View file

@ -29,6 +29,7 @@ python3.pkgs.buildPythonApplication rec {
meta = with lib; {
homepage = "https://github.com/xi/cplay-ng";
description = "Simple curses audio player";
mainProgram = "cplay-ng";
longDescription = ''
cplay is a minimalist music player with a textual user interface written
in Python. It aims to provide a power-user-friendly interface with simple

View file

@ -29,6 +29,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "Command line radio player";
mainProgram = "curseradio";
homepage = "https://github.com/chronitis/curseradio";
license = licenses.mit;
maintainers = [ maintainers.eyjhb ];

View file

@ -130,6 +130,7 @@ in clangStdenv.mkDerivation {
meta = with lib; {
description = "Ultimate Music Player for GNU/Linux";
mainProgram = "deadbeef";
homepage = "http://deadbeef.sourceforge.net/";
downloadPage = "https://github.com/DeaDBeeF-Player/deadbeef";
license = licenses.gpl2;

View file

@ -49,6 +49,7 @@ in mkDerivation rec {
meta = with lib; {
description = "Analyse and compare audio files in time and frequency";
mainProgram = "dfasma";
longDescription = ''
DFasma is free open-source software to compare audio files by time and
frequency. The comparison is first visual, using wavforms and spectra. It

View file

@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "Compute the DR14 of a given audio file according to the procedure described by the Pleasurize Music Foundation";
mainProgram = "dr14_tmeter";
license = licenses.gpl3Plus;
homepage = "http://dr14tmeter.sourceforge.net/";
maintainers = [ maintainers.adisbladis ];

View file

@ -15,6 +15,7 @@ mkDerivation rec {
meta = with lib; {
description = "An old-school drum-kit sampler synthesizer with stereo fx";
mainProgram = "drumkv1_jack";
homepage = "http://drumkv1.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.linux;

View file

@ -73,6 +73,7 @@ in python.pkgs.buildPythonApplication {
meta = {
description = "ABC music notation editor";
mainProgram = "easyabc";
homepage = "https://easyabc.sourceforge.net/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;

View file

@ -33,6 +33,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "View and edit tags for various audio files";
mainProgram = "easytag";
homepage = "https://wiki.gnome.org/Apps/EasyTAG";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ ];

View file

@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Compact open source software speech synthesizer";
mainProgram = "espeak";
homepage = "https://espeak.sourceforge.net/";
license = licenses.gpl3Plus;
platforms = platforms.linux;

View file

@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Phoneme editor for espeak";
mainProgram = "espeakedit";
homepage = "https://espeak.sourceforge.net/";
license = licenses.gpl3Plus;
platforms = platforms.linux;

View file

@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://www.exaile.org/";
description = "A music player with a simple interface and powerful music management capabilities";
mainProgram = "exaile";
license = licenses.gpl2Only;
maintainers = with maintainers; [ ryneeverett ];
platforms = platforms.all;

View file

@ -86,6 +86,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A standalone just-in-time Faust compiler";
mainProgram = "FaustLive";
longDescription = ''
FaustLive is a standalone just-in-time Faust compiler. It tries to bring
together the convenience of a standalone interpreted language with the

View file

@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Command line encoder frontend for libfdk-aac encoder";
mainProgram = "fdkaac";
longDescription = ''
fdkaac reads linear PCM audio in either WAV, raw PCM, or CAF format,
and encodes it into either M4A / AAC file.

View file

@ -37,6 +37,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "Multi process, clustered, FLAC to multi codec audio converter with tagging support";
mainProgram = "flac2all";
homepage = "https://github.com/ZivaVatra/flac2all";
license = licenses.gpl3;
# TODO: This has only been tested on Linux, but may work on Mac too.

View file

@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description =
"Extracts audio tracks from an audio CD image to separate tracks";
mainProgram = "flacon";
homepage = "https://flacon.github.io/";
license = licenses.lgpl21;
platforms = platforms.linux;

View file

@ -49,6 +49,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "A real-time audio analyzer";
mainProgram = "friture";
homepage = "https://friture.org/";
license = licenses.gpl3;
platforms = platforms.linux; # fails on Darwin

View file

@ -51,6 +51,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
description = "A beautiful, fast, fluent, light weight music player written in GTK4";
mainProgram = "g4music";
homepage = "https://gitlab.gnome.org/neithern/g4music";
license = licenses.gpl3Only;
maintainers = with maintainers; [ magnouvean ];

View file

@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A free, minimal, hardcore audio tool for DJs, live performers and electronic musicians";
mainProgram = "giada";
homepage = "https://giadamusic.com/";
license = licenses.gpl3;
maintainers = with maintainers; [ kashw2 ];

View file

@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Listen to your favorite podcasts";
mainProgram = "gnome-podcasts";
homepage = "https://wiki.gnome.org/Apps/Podcasts";
license = licenses.gpl3Plus;
maintainers = teams.gnome.members;

View file

@ -18,6 +18,7 @@ with pythonPackages; buildPythonApplication rec {
meta = with lib; {
homepage = "https://github.com/manolomartinez/greg";
description = "A command-line podcast aggregator";
mainProgram = "greg";
license = licenses.gpl3;
maintainers = with maintainers; [ edwtjo ];
};

View file

@ -117,6 +117,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A virtual guitar amplifier for Linux running with JACK";
mainProgram = "guitarix";
longDescription = ''
guitarix is a virtual guitar amplifier for Linux running with
JACK (Jack Audio Connection Kit). It is free as in speech and

View file

@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "One music sequencer for all major platforms, both desktop and mobile";
mainProgram = "helio";
homepage = "https://helio.fm/";
license = licenses.gpl3Only;
maintainers = [ maintainers.suhr ];

View file

@ -67,6 +67,7 @@ buildPythonApplication {
homepage = "https://kryogenix.org/code/hushboard/";
license = licenses.mit;
description = "Mute your microphone while typing";
mainProgram = "hushboard";
platforms = platforms.linux;
maintainers = with maintainers; [ sersorrel ];
};

View file

@ -21,6 +21,7 @@ mkDerivation rec {
meta = with lib; {
description = "Graphical open-source sequencer";
mainProgram = "iannix";
homepage = "https://www.iannix.org/";
license = licenses.lgpl3;
platforms = platforms.linux;

View file

@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A real-time pitch and formant tracking software";
mainProgram = "in-formant";
homepage = "https://github.com/in-formant/in-formant";
license = licenses.asl20;
# currently broken on i686-linux and aarch64-linux due to other nixpkgs dependencies

View file

@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "Sound input/output selector indicator for Linux";
mainProgram = "indicator-sound-switcher";
homepage = "https://yktoo.com/en/software/sound-switcher-indicator/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ alexnortung ];

View file

@ -24,6 +24,7 @@ mkDerivation rec {
homepage = "https://github.com/kripton/jack_autoconnect";
description =
"Tiny application that reacts on port registrations by clients and connects them";
mainProgram = "jack_autoconnect";
maintainers = with maintainers; [ unclechu ];
license = licenses.gpl2Only;
platforms = platforms.linux;

View file

@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A program for recording soundfiles with jack";
mainProgram = "jack_capture";
homepage = "https://github.com/kmatheussen/jack_capture/";
license = licenses.gpl2;
maintainers = with maintainers; [ goibhniu orivej ];

View file

@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A simple waveform viewer for JACK";
mainProgram = "jack_oscrolloscope";
homepage = "http://das.nasophon.de/jack_oscrolloscope";
license = licenses.gpl2;
maintainers = [ maintainers.goibhniu ];

View file

@ -36,6 +36,7 @@ mkDerivation rec {
meta = with lib; {
description = "Matrix-Mixer for the Jack-Audio-connection-Kit";
mainProgram = "jackmix";
homepage = "https://github.com/kampfschlaefer/jackmix";
license = licenses.gpl2Only;
maintainers = with maintainers; [ kampfschlaefer ];

View file

@ -55,6 +55,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Multi-machine audio network performance over the Internet";
mainProgram = "jacktrip";
homepage = "https://jacktrip.github.io/jacktrip/";
license = with licenses; [ gpl3 lgpl3 mit ];
maintainers = [ maintainers.iwanb ];

View file

@ -80,6 +80,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
broken = (stdenv.isLinux && stdenv.isAarch64);
description = "An audio effect processor for PipeWire clients";
mainProgram = "jamesdsp";
homepage = "https://github.com/Audio4Linux/JDSP4Linux";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ pasqui23 rewine ];

View file

@ -50,6 +50,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
description = "Open Source Spotify client library and playback daemon";
mainProgram = "librespot";
homepage = "https://github.com/librespot-org/librespot";
changelog = "https://github.com/librespot-org/librespot/blob/v${version}/CHANGELOG.md";
license = with licenses; [ mit ];

View file

@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
meta = {
description = "Not a Guitar-Only tuner";
mainProgram = "lingot";
homepage = "https://www.nongnu.org/lingot/";
license = lib.licenses.gpl2Plus;
platforms = with lib.platforms; linux;

View file

@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Graphical companion application for various bridges like LinVst, etc";
mainProgram = "linvstmanager";
homepage = "https://github.com/Goli4thus/linvstmanager";
license = with licenses; [ gpl3 ];
platforms = platforms.linux;

View file

@ -48,6 +48,7 @@ mkDerivation rec {
meta = with lib; {
description = "DAW similar to FL Studio (music production software)";
mainProgram = "lmms";
homepage = "https://lmms.io";
license = licenses.gpl2Plus;
platforms = [ "x86_64-linux" "i686-linux" ];

View file

@ -55,6 +55,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
description = "Simple and powerful voice changer for Linux, written in GTK 3";
mainProgram = "lyrebird";
homepage = "https://github.com/chxrlt/lyrebird";
license = licenses.mit;
maintainers = with maintainers; [ OPNA2608 ];

View file

@ -65,6 +65,7 @@ mkDerivation rec {
broken = stdenv.isDarwin; # test build fails, but the project is not maintained anymore
description = "Cloud music integration for your desktop";
mainProgram = "MellowPlayer";
homepage = "https://gitlab.com/ColinDuquesnoy/MellowPlayer";
license = licenses.gpl2;
maintainers = with maintainers; [ kalbasit ];

View file

@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Collection of audio level meters with GUI in LV2 plugin format";
mainProgram = "x42-meter";
homepage = "https://x42.github.io/meters.lv2/";
license = licenses.gpl2;
platforms = platforms.linux;

View file

@ -31,6 +31,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Graphical program for editing, playing and recording sound files";
mainProgram = "mhwaveedit";
homepage = "https://github.com/magnush/mhwaveedit";
license = licenses.gpl2Plus;
platforms = platforms.linux;

View file

@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A small MIDI visualizer tool, using OpenGL";
mainProgram = "MIDIVisualizer";
homepage = "https://github.com/kosua20/MIDIVisualizer";
license = licenses.mit;
platforms = platforms.unix;

View file

@ -54,6 +54,7 @@ in stdenv.mkDerivation {
meta = with lib; {
description = "Convert MIDI Files to Piano Sheet Music for two hands";
mainProgram = "midisheetmusic.mono.exe";
homepage = "http://midisheetmusic.com";
license = licenses.gpl2;
maintainers = [ ];

View file

@ -53,6 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
description = "A light-weight integrated development environment for the ChucK digital audio programming language";
mainProgram = "miniAudicle";
homepage = "https://audicle.cs.princeton.edu/mini/";
downloadPage = "https://audicle.cs.princeton.edu/mini/linux/";
license = licenses.gpl2Plus;

View file

@ -142,6 +142,7 @@ mkDerivation rec {
meta = with lib; {
homepage = "https://mixxx.org";
description = "Digital DJ mixing software";
mainProgram = "mixxx";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ goibhniu bfortz ];
platforms = platforms.linux;

View file

@ -46,6 +46,7 @@ pythonPackages.buildPythonApplication rec {
meta = with lib; {
homepage = "https://www.mopidy.com/";
description = "An extensible music server that plays music from local disk, Spotify, SoundCloud, and more";
mainProgram = "mopidy";
license = licenses.asl20;
maintainers = [ maintainers.fpletz ];
hydraPlatforms = [];

View file

@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Identify any songs in seconds";
mainProgram = "mousai";
homepage = "https://github.com/SeaDve/Mousai";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ dotlambda ];

View file

@ -65,6 +65,7 @@ mkDerivation rec {
meta = with lib; {
homepage = "https://munt.sourceforge.net/";
description = "A synthesizer application built on Qt and libmt32emu";
mainProgram = "mt32emu-qt";
longDescription = ''
mt32emu-qt is a synthesiser application that facilitates both realtime
synthesis and conversion of pre-recorded SMF files to WAVE making use of

View file

@ -45,6 +45,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
homepage = "https://munt.sourceforge.net/";
description = "Produces a WAVE file from a Standard MIDI file (SMF)";
mainProgram = "mt32emu-smf2wav";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ OPNA2608 ];
platforms = platforms.all;

View file

@ -31,6 +31,7 @@ rustPlatform.buildRustPackage rec {
meta = with lib; {
broken = stdenv.isDarwin;
description = "An automatic music sorter (based on ID3 tags)";
mainProgram = "muso";
homepage = "https://github.com/quebin31/muso";
license = with licenses; [ gpl3Plus ];
maintainers = with maintainers; [ ];

View file

@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Application for practicing playing musical scores and ear training";
mainProgram = "nootka";
homepage = "https://nootka.sourceforge.io/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ mmlb orivej ];

View file

@ -15,6 +15,7 @@ mkDerivation rec {
meta = with lib; {
description = "polyphonic additive synthesizer";
mainProgram = "padthv1_jack";
homepage = "http://padthv1.sourceforge.net/";
license = licenses.gpl2Plus;
platforms = platforms.linux;

View file

@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "PulseAudio Preferences";
mainProgram = "paprefs";
longDescription = ''
PulseAudio Preferences (paprefs) is a simple GTK based configuration

View file

@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "GNOME audio player for transcription";
mainProgram = "parlatype";
longDescription = ''
Parlatype is a minimal audio player for manual speech transcription,
written for the GNOME desktop environment. It plays audio sources to

View file

@ -42,6 +42,7 @@ buildPythonApplication rec {
meta = with lib; {
homepage = "https://github.com/Houston4444/Patchance";
description = "JACK Patchbay GUI";
mainProgram = "patchance";
license = licenses.gpl2;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;

View file

@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "A MIDI file player that teaches you how to play the piano";
mainProgram = "pianobooster";
homepage = "https://github.com/pianobooster/PianoBooster";
license = licenses.gpl3Plus;
platforms = platforms.linux;

View file

@ -77,6 +77,7 @@ pythonPackages.buildPythonApplication rec {
homepage = "https://picard.musicbrainz.org";
changelog = "https://picard.musicbrainz.org/changelog";
description = "The official MusicBrainz tagger";
mainProgram = "picard";
license = licenses.gpl2Plus;
platforms = platforms.all;
};

View file

@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
meta = with lib; {
description = "Pipewire control GUI program in Qt (Kirigami2)";
mainProgram = "pipecontrol";
homepage = "https://github.com/portaloffreedom/pipecontrol";
license = licenses.gpl3Only;
maintainers = with maintainers; [ tilcreator ];

View file

@ -34,6 +34,7 @@ pythonPackages.buildPythonApplication rec {
meta = with lib; {
broken = stdenv.isDarwin;
description = "Pandora Internet Radio player for GNOME";
mainProgram = "pithos";
homepage = "https://pithos.github.io/";
license = licenses.gpl3;
maintainers = with maintainers; [ obadz ];

View file

@ -114,6 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = with lib; {
description = "Plugin wrapper around Pure Data to allow patching in a wide selection of DAWs";
mainProgram = "plugdata";
homepage = "https://plugdata.org/";
license = licenses.gpl3;
platforms = platforms.linux;

View file

@ -46,6 +46,7 @@ mkDerivation rec {
meta = with lib; {
broken = (stdenv.isLinux && stdenv.isAarch64);
description = "A soundfont editor for creating musical instruments";
mainProgram = "polyphone";
homepage = "https://www.polyphone-soundfonts.com/";
license = licenses.gpl3;
maintainers = [ maintainers.maxdamantus ];

View file

@ -60,6 +60,7 @@ stdenv.mkDerivation (finalAttrs: {
meta = {
description = "Doing phonetics by computer";
mainProgram = "praat";
homepage = "https://www.fon.hum.uva.nl/praat/";
license = lib.licenses.gpl2Plus; # Has some 3rd-party code in it though
maintainers = with lib.maintainers; [ orivej ];

View file

@ -95,6 +95,7 @@ mkDerivation rec {
meta = with lib; {
description = "A lightweight GTK+ music manager - fork of Consonance Music Manager";
mainProgram = "pragha";
homepage = "https://pragha-music-player.github.io/";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ mbaeten ];

View file

@ -8,13 +8,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "pt2-clone";
version = "1.66.1";
version = "1.67";
src = fetchFromGitHub {
owner = "8bitbubsy";
repo = "pt2-clone";
rev = "v${finalAttrs.version}";
sha256 = "sha256-j7VPC1sj1Q+wL2TBgv06uYLPqym8F57HG1SRvj0Ggeo=";
sha256 = "sha256-fTUTXwS6A72zhKkANlSljQVvPeN5rOTyuyb8vLxYfdk=";
};
nativeBuildInputs = [ cmake ];

View file

@ -72,6 +72,7 @@ python3.pkgs.buildPythonApplication rec {
meta = with lib; {
description = "An audio tag editor similar to the Windows program, Mp3tag";
mainProgram = "puddletag";
homepage = "https://docs.puddletag.net";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ peterhoeg dschrempf ];

View file

@ -33,6 +33,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "Control pulseaudio volume from the shell or mapped to keyboard shortcuts. No need for alsa-utils";
mainProgram = "pulseaudio-ctl";
homepage = "https://bbs.archlinux.org/viewtopic.php?id=124513";
license = licenses.mit;
maintainers = with maintainers; [ peterhoeg ];

View file

@ -67,6 +67,7 @@ python3Packages.buildPythonApplication {
meta = with lib; {
description = "A lightweight streaming server which brings DLNA / UPNP and Chromecast support to PulseAudio and Linux";
mainProgram = "pulseaudio-dlna";
homepage = "https://github.com/Cygn/pulseaudio-dlna";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ mog ];

View file

@ -106,6 +106,7 @@ in stdenv.mkDerivation rec {
meta = with lib; {
description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
mainProgram = "pulseeffects";
homepage = "https://github.com/wwmm/pulseeffects";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ];

View file

@ -39,6 +39,7 @@ python3Packages.buildPythonApplication rec {
meta = with lib; {
homepage = "http://www.coderholic.com/pyradio/";
description = "Curses based internet radio player";
mainProgram = "pyradio";
changelog = "https://github.com/coderholic/pyradio/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ contrun ];

Some files were not shown because too many files have changed in this diff Show more