push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
rustPlatform,
installShellFiles,
libiconv,
}:
rustPlatform.buildRustPackage rec {
pname = "ea";
version = "0.2.1";
src = fetchFromGitHub {
owner = "dduan";
repo = "ea";
rev = version;
hash = "sha256-VXSSe5d7VO3LfjumzN9a7rrKRedOtOzTdLVQWgV1ED8=";
};
cargoPatches = [
# https://github.com/dduan/ea/pull/64
(fetchpatch {
name = "update-guard.patch";
url = "https://github.com/dduan/ea/commit/068aa36d7a472c7a4bac855f2404e7094dec7d58.patch";
hash = "sha256-iK3fjB6zSDqe0yMUIFjP1nEFLYLFg7dy6+b0T6mC1GA=";
})
];
cargoHash = "sha256-Sv+bwqb9FmcBk3XUu0QLJr6hyV6JUnVzL7RXh0pbe2s=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
];
postInstall = ''
installManPage docs/ea.1
'';
meta = with lib; {
description = "Makes file paths from CLI output actionable";
homepage = "https://github.com/dduan/ea";
license = with licenses; [ mit ];
maintainers = with maintainers; [ deejayem ];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "each";
version = "0.2.0";
src = fetchFromGitHub {
owner = "arraypad";
repo = "each";
rev = "v${version}";
sha256 = "sha256-5Aa/uHWrU4bpWd28Uddnuhmi6guHy09W9AU8sAfea6I=";
};
cargoHash = "sha256-TfAT36/JeBjBxymnX1gIyCEPZcxTW4fPVIOhHF3z9wA=";
meta = with lib; {
description = "Command-line tool for processing CSV, JSON and other structured data";
mainProgram = "each";
homepage = "https://github.com/arraypad/each";
license = with licenses; [ mit ];
maintainers = with maintainers; [ thiagokokada ];
};
}

View File

@@ -0,0 +1,148 @@
{
lib,
stdenv,
fetchurl,
perl,
libX11,
libXinerama,
libjpeg,
libpng,
libtiff,
libwebp,
pkg-config,
librsvg,
glib,
gtk2,
libXext,
libXxf86vm,
poppler,
vlc,
ghostscript,
makeWrapper,
tzdata,
makeDesktopItem,
copyDesktopItems,
directoryListingUpdater,
htmldoc,
binutils,
gzip,
p7zip,
xz,
zip,
extraRuntimeDeps ? [ ],
}:
stdenv.mkDerivation rec {
pname = "eaglemode";
version = "0.96.2";
src = fetchurl {
url = "mirror://sourceforge/eaglemode/${pname}-${version}.tar.bz2";
hash = "sha256:1al5n2mcjp0hmsvi4hsdmzd7i0id5i3255xplk0il1nmzydh312a";
};
# Fixes "Error: No time zones found." on the clock
postPatch = ''
substituteInPlace src/emClock/emTimeZonesModel.cpp --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
'';
nativeBuildInputs = [
pkg-config
makeWrapper
copyDesktopItems
];
buildInputs = [
perl
libX11
libXinerama
libjpeg
libpng
libtiff
libwebp
librsvg
glib
gtk2
libXxf86vm
libXext
poppler
vlc
ghostscript
];
# The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the
# trick on NIX_LDFLAGS and dontPatchELF to make it find them.
buildPhase = ''
runHook preBuild
export NIX_LDFLAGS="$NIX_LDFLAGS -lXxf86vm -lXext -lXinerama"
perl make.pl build
runHook postBuild
'';
dontPatchELF = true;
# eaglemode expects doc to be in the root directory
forceShare = [
"man"
"info"
];
installPhase =
let
runtimeDeps = lib.makeBinPath (
[
ghostscript # renders the manual
htmldoc # renders HTML files in file browser
perl # various display scripts use Perl
# archive formats in the file browser:
binutils
gzip
p7zip
xz
zip
]
++ extraRuntimeDeps
);
in
''
runHook preInstall
perl make.pl install dir=$out
wrapProgram $out/bin/eaglemode --set EM_DIR "$out" --prefix LD_LIBRARY_PATH : "$out/lib" --prefix PATH : "${runtimeDeps}"
for i in 32 48 96; do
mkdir -p $out/share/icons/hicolor/''${i}x''${i}/apps
ln -s $out/res/icons/${pname}$i.png $out/share/icons/hicolor/''${i}x''${i}/apps/${pname}.png
done
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = pname;
exec = pname;
icon = pname;
desktopName = "Eagle Mode";
genericName = meta.description;
categories = [
"Game"
"Graphics"
"System"
"Utility"
];
})
];
passthru.updateScript = directoryListingUpdater {
url = "https://eaglemode.sourceforge.net/download.html";
extraRegex = "(?!.*(x86_64|setup64|livecd)).*";
};
meta = with lib; {
homepage = "https://eaglemode.sourceforge.net";
description = "Zoomable User Interface";
changelog = "https://eaglemode.sourceforge.net/ChangeLog.html";
license = licenses.gpl3;
maintainers = with maintainers; [
chuangzhu
];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
rustPlatform,
fetchFromGitLab,
pkg-config,
dbus,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "ear2ctl";
version = "0.1.0";
src = fetchFromGitLab {
owner = "bharadwaj-raju";
repo = "ear2ctl";
rev = version;
hash = "sha256-xaxl4opLMw9KEDpmNcgR1fBGUqO4BP5a/U52Kz+GAvc=";
};
cargoHash = "sha256-2yMq1Ag0cUXMBMjpkdqYxkKMXQiZ5536cmwoaCrpFgI=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ dbus ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Linux controller for the Nothing Ear (2)";
homepage = "https://gitlab.com/bharadwaj-raju/ear2ctl";
maintainers = with lib.maintainers; [ jaredmontoya ];
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
mainProgram = "ear2ctl";
};
}

View File

@@ -0,0 +1,26 @@
From 6f52bee7f71e253b0504164fc268750116945108 Mon Sep 17 00:00:00 2001
From: griffi-gh <prasol258@gmail.com>
Date: Mon, 4 Nov 2024 00:43:49 +0100
Subject: [PATCH] fix daemon autostart
---
src/daemon_utils.rs | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/daemon_utils.rs b/src/daemon_utils.rs
index cd8f49b..f56e100 100644
--- a/src/daemon_utils.rs
+++ b/src/daemon_utils.rs
@@ -13,7 +13,11 @@ use nix::{
pub fn start() -> bool {
let curr_exe = env::current_exe().expect("Couldn't get current executable!");
let mut cmd = Command::new("nohup");
- let cmd = cmd.arg(curr_exe).arg("-d").arg("--no-fork").arg("-q");
+ let cmd = cmd
+ .arg(curr_exe)
+ .arg("--daemon").arg("true")
+ .arg("--no-fork").arg("true")
+ .arg("--quiet").arg("true");
cmd.stdout(Stdio::null());
cmd.stderr(Stdio::null());
let status = cmd.spawn();

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
installShellFiles,
pkg-config,
bluez,
dbus,
libpulseaudio,
}:
rustPlatform.buildRustPackage {
pname = "earbuds";
version = "0.1.9-unstable-2024-06-28";
src = fetchFromGitHub {
owner = "JojiiOfficial";
repo = "LiveBudsCli";
rev = "df46706e44fa9e7de355b11eab4cc850efe968a3";
hash = "sha256-IEor7aZnwCA6Rg2gXIYSQ65hV/jJOKehujOSZnVzVis=";
};
# fix daemon autostart not working
patches = [
./fix-daemon.patch
];
cargoHash = "sha256-Y1pMmWxfXGcEFPj05/BpXQvd199O5l6hJmePNxMQc/Y=";
nativeBuildInputs = [
installShellFiles
pkg-config
];
buildInputs = [
bluez
dbus
libpulseaudio
];
# package does not contain any tests
doCheck = false;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd earbuds \
--bash <($out/bin/earbuds --generate bash) \
--fish <($out/bin/earbuds --generate fish) \
--zsh <($out/bin/earbuds --generate zsh)
'';
meta = {
description = "Free CLI tool to control your Galaxy Buds";
homepage = "https://github.com/JojiiOfficial/LiveBudsCli";
changelog = "https://github.com/JojiiOfficial/LiveBudsCli/releases";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ griffi-gh ];
mainProgram = "earbuds";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "earlybird";
version = "4.0.0";
src = fetchFromGitHub {
owner = "americanexpress";
repo = "earlybird";
rev = "v${version}";
hash = "sha256-guSm/ha4ICaOcoynvAwFeojE6ikaCykMcdfskD/ehTw=";
};
vendorHash = "sha256-39jXqCXAwg/C+9gEXiS1X58OD61nMNQifnhgVGEF6ck=";
ldflags = [
"-s"
"-w"
];
meta = {
description = "Sensitive data detection tool capable of scanning source code repositories for passwords, key files, and more";
mainProgram = "earlybird";
homepage = "https://github.com/americanexpress/earlybird";
changelog = "https://github.com/americanexpress/earlybird/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,11 @@
--- a/kill.c
+++ b/kill.c
@@ -55,7 +55,7 @@ static void notify(const char* summary, const char* body)
}
// Complete command line looks like this:
// dbus-send --system / net.nuetzlich.SystemNotifications.Notify 'string:summary text' 'string:and body text'
- execl("/usr/bin/dbus-send", "dbus-send", "--system", "/", "net.nuetzlich.SystemNotifications.Notify",
+ execlp("dbus-send", "dbus-send", "--system", "/", "net.nuetzlich.SystemNotifications.Notify",
summary2, body2, NULL);
warn("notify: exec failed: %s\n", strerror(errno));
exit(1);

View File

@@ -0,0 +1,70 @@
{
lib,
fetchFromGitHub,
pandoc,
stdenv,
nixosTests,
fetchpatch,
# The man page requires pandoc to build and resides in a separate "man"
# output which is pulled in on-demand. There is no need to disabled it unless
# pandoc is hard to build on your platform.
withManpage ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "earlyoom";
version = "1.8.2";
src = fetchFromGitHub {
owner = "rfjakob";
repo = "earlyoom";
rev = "v${finalAttrs.version}";
hash = "sha256-HZ7llMNdx2u1a6loIFjXt5QNkYpJp8GqLKxDf9exuzE=";
};
outputs = [ "out" ] ++ lib.optionals withManpage [ "man" ];
patches = [
./0000-fix-dbus-path.patch
# Respect `MANDIR`.
(fetchpatch {
url = "https://github.com/rfjakob/earlyoom/commit/c5a1799a5ff4b3fd3132d50a510e8c126933cf4a.patch";
hash = "sha256-64AkpTMmjiqZ6Byq6687zNIqrQ/IGRGgzzjyyAfcg14=";
})
# Correctly handle `PREFIX` as a default rather than always-concatenate.
(fetchpatch {
url = "https://github.com/rfjakob/earlyoom/commit/f7d6f1cc925962fbdcf57b1c2aeeabbf11e2d542.patch";
hash = "sha256-DJDeQzcEGJMoMGIi1D/ogMaKG1VQvPZN9jXtUDGjyjk=";
})
];
nativeBuildInputs = lib.optionals withManpage [ pandoc ];
makeFlags = [
"VERSION=${finalAttrs.version}"
"PREFIX=${placeholder "out"}"
]
++ lib.optional withManpage "MANDIR=${placeholder "man"}/share/man";
passthru.tests = {
inherit (nixosTests) earlyoom;
};
meta = {
homepage = "https://github.com/rfjakob/earlyoom";
description = "Early OOM Daemon for Linux";
longDescription = ''
earlyoom checks the amount of available memory and free swap up to 10
times a second (less often if there is a lot of free memory). By default
if both are below 10%, it will kill the largest process (highest
oom_score). The percentage value is configurable via command line
arguments.
'';
license = lib.licenses.mit;
mainProgram = "earlyoom";
maintainers = with lib.maintainers; [
oxalica
];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,93 @@
{
stdenv,
lib,
fetchFromGitLab,
meson,
ninja,
pkg-config,
wrapGAppsHook4,
libadwaita,
gettext,
glib,
gobject-introspection,
desktop-file-utils,
appstream,
appstream-glib,
gtk4,
librsvg,
python3Packages,
blueprint-compiler,
nix-update-script,
}:
python3Packages.buildPythonApplication rec {
pname = "eartag";
version = "0.6.5";
format = "other";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "eartag";
rev = version;
hash = "sha256-sxVivQppX8KdkvHaW6xQ64Wi8Nfv5Rmwf4NADBDpOOo=";
};
postPatch = ''
chmod +x ./build-aux/meson/postinstall.py
patchShebangs ./build-aux/meson/postinstall.py
substituteInPlace ./build-aux/meson/postinstall.py \
--replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
'';
nativeBuildInputs = [
meson
ninja
glib
desktop-file-utils
appstream
appstream-glib
pkg-config
gettext
gobject-introspection
wrapGAppsHook4
blueprint-compiler
]
++ lib.optional stdenv.hostPlatform.isDarwin gtk4; # for gtk4-update-icon-cache
buildInputs = [
librsvg
libadwaita
];
propagatedBuildInputs = with python3Packages; [
pygobject3
eyed3
pillow
mutagen
pytaglib
python-magic
pyacoustid
];
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
homepage = "https://gitlab.gnome.org/World/eartag";
description = "Simple music tag editor";
# This seems to be using ICU license but we're flagging it to MIT license
# since ICU license is a modified version of MIT and to prevent it from
# being incorrectly identified as unfree software.
license = licenses.mit;
mainProgram = "eartag";
maintainers = with maintainers; [ foo-dogsquared ];
teams = [ teams.gnome-circle ];
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
buildGoModule,
fetchFromGitHub,
stdenv,
testers,
earthly,
}:
buildGoModule rec {
pname = "earthly";
version = "0.8.16";
src = fetchFromGitHub {
owner = "earthly";
repo = "earthly";
rev = "v${version}";
hash = "sha256-2+Ya5i6V2QDzHsYR+Ro14u0VWR3wrQJHZRXBatGC8BA=";
};
vendorHash = "sha256-kEgg7zrT69X4yrsGtLyvnrGQ7+sXaEzdqd4Fz7rpFyg=";
subPackages = [
"cmd/earthly"
"cmd/debugger"
];
env.CGO_ENABLED = 0;
ldflags = [
"-s"
"-w"
"-X main.Version=v${version}"
"-X main.DefaultBuildkitdImage=docker.io/earthly/buildkitd:v${version}"
"-X main.GitSha=v${version}"
"-X main.DefaultInstallationName=earthly"
]
++ lib.optionals stdenv.hostPlatform.isLinux [
"-extldflags '-static'"
];
tags = [
"dfrunmount"
"dfrunnetwork"
"dfrunsecurity"
"dfsecrets"
"dfssh"
];
postInstall = ''
mv $out/bin/debugger $out/bin/earthly-debugger
'';
passthru = {
tests.version = testers.testVersion {
package = earthly;
version = "v${version}";
};
};
meta = {
description = "Build automation for the container era";
homepage = "https://earthly.dev/";
changelog = "https://github.com/earthly/earthly/releases/tag/v${version}";
license = lib.licenses.mpl20;
maintainers = with lib.maintainers; [
zoedsoupe
konradmalik
];
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
fetchFromGitHub,
rustPlatform,
earthlyls,
nix-update-script,
testers,
}:
rustPlatform.buildRustPackage rec {
pname = "earthlyls";
version = "0.5.5";
src = fetchFromGitHub {
owner = "glehmann";
repo = "earthlyls";
rev = version;
hash = "sha256-GnFzfCjT4kjb9WViKIFDkIU7zVpiI6HDuUeddgHGQuc=";
};
cargoHash = "sha256-sWbYN92Jfr/Pr3qoHWkew/ASIdq8DQg0WHpdyklGBLo=";
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion { package = earthlyls; };
};
meta = {
description = "Earthly language server";
homepage = "https://github.com/glehmann/earthlyls";
changelog = "https://github.com/glehmann/earthlyls/releases/tag/${version}";
license = lib.licenses.mit;
mainProgram = "earthlyls";
maintainers = [ ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
fetchYarnDeps,
yarnConfigHook,
yarnBuildHook,
nodejs,
jq,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "eas-cli";
version = "16.4.0";
src = fetchFromGitHub {
owner = "expo";
repo = "eas-cli";
rev = "v${finalAttrs.version}";
hash = "sha256-cHayMBhqiLY//t/ljjwJm4qMuVn531z7x2cqJE4z6hQ=";
};
yarnOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock"; # Point to the root lockfile
hash = "sha256-qDUwAdShpKjIUyYvtA6/hgGdO1z1xLqdsJkL3oqkMSw=";
};
nativeBuildInputs = [
yarnConfigHook
yarnBuildHook
nodejs
jq
];
# yarnInstallHook strips out build outputs within packages/eas-cli resulting in most commands missing from eas-cli.
installPhase = ''
runHook preInstall
mkdir -p $out/lib/node_modules/eas-cli-root
cp -r . $out/lib/node_modules/eas-cli-root
runHook postInstall
'';
# postFixup is used to override the symlink created in the fixupPhase
postFixup = ''
mkdir -p $out/bin
ln -sf $out/lib/node_modules/eas-cli-root/packages/eas-cli/bin/run $out/bin/eas
'';
meta = {
changelog = "https://github.com/expo/eas-cli/releases/tag/v${finalAttrs.version}";
description = "EAS command line tool from submodule";
homepage = "https://github.com/expo/eas-cli";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ zestsystem ];
};
})

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
perl,
python3,
versionCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "easel";
version = "0.49";
src = fetchFromGitHub {
owner = "EddyRivasLab";
repo = "easel";
tag = "easel-${finalAttrs.version}";
hash = "sha256-NSKy7ptNYR0K/VFJNv+5TGWdC1ZM4Y5i/3L+3Coj/sg=";
};
nativeBuildInputs = [ autoreconfHook ];
enableParallelBuilding = true;
doCheck = true;
nativeCheckInputs = [
perl
python3
];
preCheck = ''
patchShebangs devkit/sqc
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
meta = {
description = "Sequence analysis library used by Eddy/Rivas lab code";
homepage = "https://github.com/EddyRivasLab/easel";
license = lib.licenses.bsd2;
mainProgram = "easel";
maintainers = with lib.maintainers; [ natsukium ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "easeprobe";
version = "2.3.0";
src = fetchFromGitHub {
owner = "megaease";
repo = "easeprobe";
rev = "v${version}";
sha256 = "sha256-LrfUQxxoC20pJXdBWa8wMuxbTbD3DRnsOlIDdBarNMY=";
};
vendorHash = "sha256-FPApT6snyzYbMn/Am7Zxpwp5w8VZ8F6/YhwCLwDaRAw=";
subPackages = [ "cmd/easeprobe" ];
env.CGO_ENABLED = 0;
ldflags = [
"-s"
"-w"
"-extldflags -static"
"-X github.com/megaease/easeprobe/global.Ver=${version}"
"-X github.com/megaease/easeprobe/pkg/version.REPO=megaease/easeprobe"
];
meta = with lib; {
description = "Simple, standalone, and lightweight tool that can do health/status checking, written in Go";
homepage = "https://github.com/megaease/easeprobe";
license = licenses.asl20;
maintainers = with maintainers; [ dit7ya ];
mainProgram = "easeprobe";
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
}:
buildNpmPackage rec {
pname = "eask-cli";
version = "0.11.8";
src = fetchFromGitHub {
owner = "emacs-eask";
repo = "cli";
rev = version;
hash = "sha256-OGgXlszN+us6Wi6U2d2M6vOQ88kk/ZORmXoz5CNoCWo=";
};
npmDepsHash = "sha256-X5v4ZZmcd0Cc41dFCKRX15uEnbQs2/ZQkPjB7V0k/OY=";
dontBuild = true;
meta = {
changelog = "https://github.com/emacs-eask/cli/blob/${src.rev}/CHANGELOG.md";
description = "CLI for building, runing, testing, and managing your Emacs Lisp dependencies";
homepage = "https://emacs-eask.github.io/";
license = lib.licenses.gpl3Plus;
mainProgram = "eask";
maintainers = with lib.maintainers; [
jcs090218
piotrkwiecinski
];
};
}

View File

@@ -0,0 +1,43 @@
---
easy_abc.py | 4 ++++
fluidsynth.py | 2 ++
2 files changed, 6 insertions(+)
diff --git a/easy_abc.py b/easy_abc.py
index 5be3e6a..40c999a 100644
--- a/easy_abc.py
+++ b/easy_abc.py
@@ -3960,6 +3960,8 @@ class MainFrame(wx.Frame):
else:
default_soundfont_path = '/usr/share/sounds/sf2/FluidR3_GM.sf2'
+ default_soundfont_path = '@soundfont@'
+
soundfont_path = settings.get('soundfont_path', default_soundfont_path)
self.uses_fluidsynth = False
if fluidsynth_available and soundfont_path and os.path.exists(soundfont_path):
@@ -8367,6 +8369,8 @@ class MainFrame(wx.Frame):
gs_path = '/usr/bin/pstopdf'
settings['gs_path'] = gs_path
+ settings['gs_path'] = '@ghostscript@'
+
# 1.3.6.1 [SS] 2015-01-12 2015-01-22
gs_path = settings['gs_path'] #eliminate trailing \n
if gs_path and (os.path.exists(gs_path) == False):
diff --git a/fluidsynth.py b/fluidsynth.py
index 529ebbf..b5d9377 100644
--- a/fluidsynth.py
+++ b/fluidsynth.py
@@ -44,6 +44,8 @@ if platform.system() == 'Windows':
else:
lib_locations = ['./libfluidsynth.so.3', 'libfluidsynth.so.3', './libfluidsynth.so.2', 'libfluidsynth.so.2']
+lib_locations = ['@fluidsynth@']
+
i = 0
while i < len(lib_locations):
try:
--
2.38.5

View File

@@ -0,0 +1,76 @@
{
lib,
fetchFromGitHub,
replaceVars,
python3,
fluidsynth,
soundfont-fluid,
wrapGAppsHook3,
abcmidi,
abcm2ps,
ghostscript,
}:
python3.pkgs.buildPythonApplication {
pname = "easyabc";
version = "1.3.8.7-unstable-2025-01-12";
format = "other";
src = fetchFromGitHub {
owner = "jwdj";
repo = "easyabc";
rev = "2cfa74d138d485523cae9b889186add3a249f2e4";
hash = "sha256-96Rh7hFWITIC62vs0bUtatDDgJ27UdZYhku8uqJBJew=";
};
patches = [
(replaceVars ./hardcoded-paths.patch {
fluidsynth = "${fluidsynth}/lib/libfluidsynth.so";
soundfont = "${soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2";
ghostscript = "${ghostscript}/bin/gs";
})
];
nativeBuildInputs = [ wrapGAppsHook3 ];
dependencies = with python3.pkgs; [
cx-freeze
wxpython
pygame
pyparsing
];
# apparently setup.py only supports Windows and Darwin
# everything is very non-standard in this project
dontBuild = true;
# https://discourse.nixos.org/t/packaging-mcomix3-python-gtk-missing-gsettings-schemas-issue/10190/2
strictDeps = false;
installPhase = ''
runHook preInstall
mkdir -p $out/share/easyabc
mv * $out/share/easyabc
ln -s ${abcmidi}/bin/abc2midi $out/share/easyabc/bin/abc2midi
ln -s ${abcmidi}/bin/midi2abc $out/share/easyabc/bin/midi2abc
ln -s ${abcmidi}/bin/abc2abc $out/share/easyabc/bin/abc2abc
ln -s ${abcm2ps}/bin/abcm2ps $out/share/easyabc/bin/abcm2ps
makeWrapper ${python3.interpreter} $out/bin/easyabc \
--set PYTHONPATH "$PYTHONPATH:$out/share/easyabc" \
--add-flags "-O $out/share/easyabc/easy_abc.py"
runHook postInstall
'';
meta = {
description = "ABC music notation editor";
mainProgram = "easyabc";
homepage = "https://easyabc.sourceforge.net/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ mausch ];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
buildGoModule,
fetchFromGitHub,
makeWrapper,
amass,
alterx,
oam-tools,
subfinder,
}:
buildGoModule rec {
pname = "easyeasm";
version = "1.0.6";
src = fetchFromGitHub {
owner = "g0ldencybersec";
repo = "EasyEASM";
tag = "v${version}";
hash = "sha256-/PhoH+5k63rJL1N3V3IL1TP1oacsBfGfVw/OueN9j8M=";
};
vendorHash = "sha256-g+yaVIx4jxpAQ/+WrGKxhVeliYx7nLQe/zsGpxV4Fn4=";
nativeBuildInputs = [
makeWrapper
];
ldflags = [
"-s"
"-w"
];
postFixup = ''
wrapProgram $out/bin/easyeasm \
--prefix PATH : "${
lib.makeBinPath [
amass
alterx
oam-tools
subfinder
]
}"
'';
meta = {
description = "Attack surface management tool";
homepage = "https://github.com/g0ldencybersec/EasyEASM";
changelog = "https://github.com/g0ldencybersec/EasyEASM/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "easyeasm";
};
}

View File

@@ -0,0 +1,33 @@
{
python3Packages,
lib,
fetchPypi,
}:
python3Packages.buildPythonPackage rec {
pname = "easyeda2kicad";
version = "0.8.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
hash = "sha256-p4G+bRB29uBohqQpI3PrkwyZId5McJ1t2Ru26hBPSks=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
pydantic
requests
];
meta = with lib; {
description = "Convert any LCSC components (including EasyEDA) to KiCad library";
homepage = "https://github.com/uPesy/easyeda2kicad.py";
license = licenses.agpl3Only;
maintainers = with maintainers; [ ChocolateLoverRaj ];
mainProgram = "easyeda2kicad";
};
}

View File

@@ -0,0 +1,137 @@
{
lib,
stdenv,
appstream-glib,
calf,
deepfilternet,
desktop-file-utils,
fetchFromGitHub,
fftw,
fftwFloat,
fmt_9,
glib,
gsl,
gtk4,
itstool,
ladspaH,
libadwaita,
libbs2b,
libebur128,
libportal-gtk4,
libsamplerate,
libsigcxx30,
libsndfile,
lilv,
lsp-plugins,
lv2,
mda_lv2,
meson,
ninja,
nix-update-script,
nlohmann_json,
pipewire,
pkg-config,
rnnoise,
rubberband,
soundtouch,
speexdsp,
onetbb,
wrapGAppsHook4,
zam-plugins,
zita-convolver,
}:
let
# Fix crashes with speexdsp effects
speexdsp' = speexdsp.override { withFftw3 = false; };
in
stdenv.mkDerivation rec {
pname = "easyeffects";
version = "7.2.5";
src = fetchFromGitHub {
owner = "wwmm";
repo = "easyeffects";
tag = "v${version}";
hash = "sha256-w3Mb13LOSF8vgcdJrqbesLqyyilI5AoA19jFquE5lEw=";
};
nativeBuildInputs = [
desktop-file-utils
itstool
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [
appstream-glib
deepfilternet
fftw
fftwFloat
fmt_9
glib
gsl
gtk4
ladspaH
libadwaita
libbs2b
libebur128
libportal-gtk4
libsamplerate
libsigcxx30
libsndfile
lilv
lv2
nlohmann_json
pipewire
rnnoise
rubberband
soundtouch
speexdsp'
onetbb
zita-convolver
];
preFixup =
let
lv2Plugins = [
calf # compressor exciter, bass enhancer and others
lsp-plugins # delay, limiter, multiband compressor
mda_lv2 # loudness
zam-plugins # maximizer
];
ladspaPlugins = [
deepfilternet # deep noise remover
rubberband # pitch shifting
];
in
''
gappsWrapperArgs+=(
--set LV2_PATH "${lib.makeSearchPath "lib/lv2" lv2Plugins}"
--set LADSPA_PATH "${lib.makeSearchPath "lib/ladspa" ladspaPlugins}"
)
'';
separateDebugInfo = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Audio effects for PipeWire applications";
homepage = "https://github.com/wwmm/easyeffects";
changelog = "https://github.com/wwmm/easyeffects/blob/v${version}/CHANGELOG.md";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
getchoo
aleksana
];
mainProgram = "easyeffects";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "easyjson";
version = "0.9.1";
src = fetchFromGitHub {
owner = "mailru";
repo = "easyjson";
rev = "v${version}";
hash = "sha256-aKufvebodIy0UtecpjZ9+5MOUTWKFIqFI3SYgVPWdhQ=";
};
vendorHash = "sha256-BsksTYmfPQezbWfIWX0NhuMbH4VvktrEx06C2Nb/FYE=";
subPackages = [ "easyjson" ];
meta = with lib; {
homepage = "https://github.com/mailru/easyjson";
description = "Fast JSON serializer for Go";
mainProgram = "easyjson";
license = licenses.mit;
};
}

View File

@@ -0,0 +1,40 @@
{
stdenv,
lib,
fetchFromGitHub,
udevCheckHook,
}:
stdenv.mkDerivation rec {
pname = "easypdkprog";
version = "1.3";
src = fetchFromGitHub {
owner = "free-pdk";
repo = "easy-pdk-programmer-software";
rev = version;
sha256 = "0hc3gdmn6l01z63hzzwdhbdyy288gh5v219bsfm8fb1498vpnd6f";
};
nativeBuildInputs = [
udevCheckHook
];
doInstallCheck = true;
installPhase = ''
install -Dm755 -t $out/bin easypdkprog
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
install -Dm644 -t $out/etc/udev/rules.d Linux_udevrules/70-stm32vcp.rules
'';
meta = with lib; {
description = "Read, write and execute programs on PADAUK microcontroller";
mainProgram = "easypdkprog";
homepage = "https://github.com/free-pdk/easy-pdk-programmer-software";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ david-sawatzke ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,74 @@
{
stdenv,
lib,
fetchurl,
autoPatchelfHook,
glib,
gtk3,
pango,
cairo,
harfbuzz,
networkmanager,
libsecret,
libsoup_3,
webkitgtk_4_1,
glib-networking,
wrapGAppsHook3,
dpkg,
}:
stdenv.mkDerivation rec {
pname = "easyroam-connect-desktop";
version = "1.4.3";
src = fetchurl {
url = "https://packages.easyroam.de/repos/easyroam-desktop/pool/main/e/easyroam-desktop/easyroam_connect_desktop-${version}+${version}-linux.deb";
hash = "sha256-03PLAUQQWlaAO+0cYcCorc1Q6wAhvLQGXNu0mqh8Lvw=";
};
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [
autoPatchelfHook
wrapGAppsHook3
dpkg
];
buildInputs = [
glib
gtk3
pango
cairo
harfbuzz
libsecret
networkmanager
webkitgtk_4_1
libsoup_3
glib-networking
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -r usr/share $out/share
ln -s $out/share/easyroam_connect_desktop/easyroam_connect_desktop $out/bin/easyroam_connect_desktop
runHook postInstall
'';
meta = {
description = "Manage and install your easyroam WiFi profiles";
mainProgram = "easyroam_connect_desktop";
longDescription = ''
Using this software you can easily connect your device to eduroam® by simply logging in with your DFN-AAI account.
'';
homepage = "https://easyroam.de";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
shadows_withal
MarchCraft
];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,131 @@
{
lib,
stdenv,
fetchFromGitHub,
asciidoctor,
cmake,
doxygen,
pkg-config,
alsa-lib,
flac,
fluidsynth,
fmt,
freetype,
glib,
harfbuzz,
lhasa,
libdecor,
liblcf,
libpng,
libsndfile,
libsysprof-capture,
libvorbis,
libXcursor,
libXext,
libXi,
libXinerama,
libxmp,
libXrandr,
libXScrnSaver,
libXxf86vm,
mpg123,
nlohmann_json,
opusfile,
pcre2,
pixman,
sdl3,
speexdsp,
wildmidi,
zlib,
}:
stdenv.mkDerivation rec {
pname = "easyrpg-player";
# liblcf needs to be updated before this.
version = "0.8.1.1";
src = fetchFromGitHub {
owner = "EasyRPG";
repo = "Player";
rev = version;
hash = "sha256-fYSpFhqETkQhRK1/Uws0fWWdCr35+1J4vCPX9ZiQ3ZA=";
};
strictDeps = true;
nativeBuildInputs = [
asciidoctor
cmake
doxygen
pkg-config
];
buildInputs = [
flac # needed by libsndfile
fluidsynth
fmt
freetype
glib
harfbuzz
lhasa
liblcf
libpng
libsndfile
libsysprof-capture # needed by glib
libvorbis
libxmp
mpg123
nlohmann_json
opusfile
pcre2 # needed by glib
pixman
sdl3
speexdsp
wildmidi
zlib
]
++ lib.optionals stdenv.hostPlatform.isLinux [
alsa-lib
libXcursor
libXext
libXi
libXinerama
libXrandr
libXScrnSaver
libXxf86vm
libdecor
];
cmakeFlags = [
"-DPLAYER_ENABLE_TESTS=${lib.boolToString doCheck}"
# TODO: remove the below once SDL3 becomes default next major release
"-DPLAYER_TARGET_PLATFORM=SDL3"
];
makeFlags = [
"all"
"man"
];
buildFlags = lib.optionals doCheck [
"test_runner_player"
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir $out/bin
mv Package $out/Applications
ln -s $out/{Applications/EasyRPG\ Player.app/Contents/MacOS,bin}/EasyRPG\ Player
'';
enableParallelChecking = true;
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
meta = with lib; {
description = "RPG Maker 2000/2003 and EasyRPG games interpreter";
homepage = "https://easyrpg.org/";
license = licenses.gpl3Plus;
maintainers = [ ];
platforms = platforms.all;
mainProgram = lib.optionalString stdenv.hostPlatform.isDarwin "EasyRPG Player";
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
openssl,
makeWrapper,
runtimeShell,
}:
stdenv.mkDerivation rec {
pname = "easyrsa";
version = "3.2.4";
src = fetchFromGitHub {
owner = "OpenVPN";
repo = "easy-rsa";
rev = "v${version}";
hash = "sha256-X/EXiiSLDSxxSSNnb6lkPsvdA0vSp/zPN+wSNuUMzrg=";
};
nativeBuildInputs = [ makeWrapper ];
nativeInstallCheckInputs = [ openssl.bin ];
installPhase = ''
mkdir -p $out/share/easy-rsa
cp -r easyrsa3/{*.cnf,x509-types,vars.example} $out/share/easy-rsa
install -D -m755 easyrsa3/easyrsa $out/bin/easyrsa
substituteInPlace $out/bin/easyrsa \
--replace /usr/ $out/ \
--replace '~VER~' '${version}' \
--replace '~GITHEAD~' 'v${version}' \
--replace '~DATE~' '1970-01-01'
# Wrap it with the correct OpenSSL binary.
wrapProgram $out/bin/easyrsa \
--set-default EASYRSA_OPENSSL ${openssl.bin}/bin/openssl
# Helper utility
cat > $out/bin/easyrsa-init <<EOF
#!${runtimeShell} -e
cp -r $out/share/easy-rsa/* .
EOF
chmod +x $out/bin/easyrsa-init
'';
doInstallCheck = true;
postInstallCheck = ''
set -euo pipefail
export EASYRSA_BATCH=1
export EASYRSA_PASSIN=pass:nixpkgs
export EASYRSA_PASSOUT="$EASYRSA_PASSIN"
export EASYRSA_REQ_CN='nixpkgs test CA'
export EASYRSA_KEY_SIZE=3072
export EASYRSA_ALGO=rsa
export EASYRSA_DIGEST=sha512
$out/bin/easyrsa init-pki
$out/bin/easyrsa build-ca
openssl x509 -in pki/ca.crt -noout -subject | tee /dev/stderr | grep -zq "$EASYRSA_REQ_CN"
'';
meta = with lib; {
description = "Simple shell based CA utility";
homepage = "https://openvpn.net/";
license = licenses.gpl2Only;
maintainers = [
maintainers.offline
maintainers.numinit
];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromGitHub,
zfs,
}:
stdenv.mkDerivation {
pname = "easysnap";
version = "0-unstable-2022-06-03";
src = fetchFromGitHub {
owner = "sjau";
repo = "easysnap";
rev = "5f961442315a6f7eb8ca5b705bd52fe1e6d7dc42";
sha256 = "sha256-jiKdpwuw0Oil0sxUr/3KJ6Nbfxh8DvBei0yy0nRM+Vs=";
};
installPhase = ''
mkdir -p $out/bin
cp easysnap* $out/bin/
for i in $out/bin/*; do
substituteInPlace $i \
--replace zfs ${zfs}/bin/zfs
done
'';
meta = with lib; {
homepage = "https://github.com/sjau/easysnap";
description = "Customizable ZFS Snapshotting tool with zfs send/recv pulling";
license = licenses.gpl3;
maintainers = with maintainers; [ sjau ];
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
intltool,
gtk3,
glib,
libid3tag,
id3lib,
taglib_1,
libvorbis,
libogg,
opusfile,
flac,
itstool,
libxml2,
gsettings-desktop-schemas,
gnome,
adwaita-icon-theme,
wrapGAppsHook3,
fetchpatch,
}:
stdenv.mkDerivation rec {
pname = "easytag";
version = "2.4.3";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
hash = "sha256-/FHukqcF48WXnf8WVfdJbv+2i5jxraBUfoy7wDO2fdU=";
};
patches = [
# https://gitlab.gnome.org/GNOME/easytag/-/merge_requests/8
# Borrowed from Gentoo
(fetchpatch {
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-sound/easytag/files/easytag-2.4.3-ogg-corruption.patch?id=b175a159c1138702bdfb009ff4d6565019ed3c4a";
hash = "sha256-z75dYTEVp1raSFROjpakLeBjF96sgWBxxRB6ut9wYXw=";
})
];
NIX_LDFLAGS = "-lid3tag -lz";
nativeBuildInputs = [
pkg-config
intltool
itstool
libxml2
wrapGAppsHook3
];
buildInputs = [
gtk3
glib
libid3tag
id3lib
taglib_1
libvorbis
libogg
opusfile
flac
gsettings-desktop-schemas
adwaita-icon-theme
];
doCheck = false; # fails 1 out of 9 tests
passthru = {
updateScript = gnome.updateScript {
packageName = pname;
versionPolicy = "none";
};
};
meta = with lib; {
description = "View and edit tags for various audio files";
mainProgram = "easytag";
homepage = "https://gitlab.gnome.org/GNOME/easytag";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ matteopacini ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
protobuf,
nixosTests,
nix-update-script,
installShellFiles,
withQuic ? false, # with QUIC protocol support
}:
rustPlatform.buildRustPackage rec {
pname = "easytier";
version = "2.4.5";
src = fetchFromGitHub {
owner = "EasyTier";
repo = "EasyTier";
tag = "v${version}";
hash = "sha256-vGQHrpImPMF44LXVnKRpj47Nr534wTlVZJiBDm4GkGs=";
};
cargoHash = "sha256-B9GkvSXyZXTBsnV7wbipjdZ0EkVrL/aw8Ff7uUvfKPo=";
nativeBuildInputs = [
protobuf
rustPlatform.bindgenHook
installShellFiles
];
buildNoDefaultFeatures = stdenv.hostPlatform.isMips;
buildFeatures = lib.optional stdenv.hostPlatform.isMips "mips" ++ lib.optional withQuic "quic";
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd easytier-cli \
--bash <($out/bin/easytier-cli gen-autocomplete bash) \
--fish <($out/bin/easytier-cli gen-autocomplete fish) \
--zsh <($out/bin/easytier-cli gen-autocomplete zsh)
installShellCompletion --cmd easytier-core \
--bash <($out/bin/easytier-core --gen-autocomplete bash) \
--fish <($out/bin/easytier-core --gen-autocomplete fish) \
--zsh <($out/bin/easytier-core --gen-autocomplete zsh)
'';
doCheck = false; # tests failed due to heavy rely on network
passthru = {
tests = { inherit (nixosTests) easytier; };
updateScript = nix-update-script { };
};
meta = {
homepage = "https://github.com/EasyTier/EasyTier";
changelog = "https://github.com/EasyTier/EasyTier/releases/tag/v${version}";
description = "Simple, decentralized mesh VPN with WireGuard support";
longDescription = ''
EasyTier is a simple, safe and decentralized VPN networking solution implemented
with the Rust language and Tokio framework.
'';
mainProgram = "easytier-core";
license = lib.licenses.asl20;
platforms = with lib.platforms; unix ++ windows;
maintainers = with lib.maintainers; [ ltrump ];
};
}