push sheeet
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
+48
View File
@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchurl,
autoconf,
}:
stdenv.mkDerivation rec {
version = "1.99.21";
pname = "dd_rescue";
src = fetchurl {
hash = "sha256-YB3gyUX/8dsFfIbGUWX5rvRuIa2q9E4LOCtEOz+z/bk=";
url = "http://www.garloff.de/kurt/linux/ddrescue/${pname}-${version}.tar.bz2";
};
dd_rhelp_src = fetchurl {
url = "http://www.kalysto.org/pkg/dd_rhelp-0.3.0.tar.gz";
sha256 = "0br6fs23ybmic3i5s1w4k4l8c2ph85ax94gfp2lzjpxbvl73cz1g";
};
buildInputs = [ autoconf ];
preBuild = ''
substituteInPlace Makefile \
--replace "\$(DESTDIR)/usr" "$out" \
--replace "-o root" "" \
--replace "-g root" ""
'';
makeFlags = [ "LIBDIR=$out" ];
postInstall = ''
mkdir -p "$out/share/dd_rescue" "$out/bin"
tar xf "${dd_rhelp_src}" -C "$out/share/dd_rescue"
cp "$out/share/dd_rescue"/dd_rhelp*/dd_rhelp "$out/bin"
'';
meta = with lib; {
description = "Tool to copy data from a damaged block device";
maintainers = with maintainers; [
raskin
];
platforms = platforms.linux;
homepage = "http://www.garloff.de/kurt/linux/ddrescue/";
license = licenses.gpl2Plus;
mainProgram = "dd_rescue";
};
}
+39
View File
@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
}:
stdenv.mkDerivation rec {
pname = "ddate";
version = "0.2.2";
src = fetchFromGitHub {
owner = "bo0ts";
repo = "ddate";
tag = "v${version}";
sha256 = "1qchxnxvghbma6gp1g78wnjxsri0b72ha9axyk31cplssl7yn73f";
};
patches = [
# cmake-4 compatibility
(fetchpatch {
name = "cmake-4.patch";
url = "https://github.com/bo0ts/ddate/commit/0fbae46cb004c0acc48982b8e3533556d7b2edcc.patch?full_index=1";
hash = "sha256-EbOmZYhFN8t8E/GW9ctcvhYfQauGZnX+5ZQmrEl6F18=";
})
];
nativeBuildInputs = [ cmake ];
meta = with lib; {
homepage = "https://github.com/bo0ts/ddate";
description = "Discordian version of the date program";
license = licenses.publicDomain;
maintainers = with maintainers; [ kovirobi ];
platforms = platforms.all;
mainProgram = "ddate";
};
}
+40
View File
@@ -0,0 +1,40 @@
{
lib,
stdenv,
autoconf,
automake,
libtool,
intltool,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "ddccontrol-db";
version = "20250814";
src = fetchFromGitHub {
owner = "ddccontrol";
repo = "ddccontrol-db";
rev = version;
sha256 = "sha256-DYDO7JZzriLdVKeqOaaEonHcdRaOD3SsvJPhScvSkVE=";
};
nativeBuildInputs = [
autoconf
automake
intltool
libtool
];
preConfigure = ''
./autogen.sh
'';
meta = with lib; {
description = "Monitor database for DDCcontrol";
homepage = "https://github.com/ddccontrol/ddccontrol-db";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ lib.maintainers.pakhfn ];
};
}
+63
View File
@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
intltool,
libxml2,
pciutils,
pkg-config,
gtk2,
ddccontrol-db,
}:
stdenv.mkDerivation rec {
pname = "ddccontrol";
version = "1.0.3";
src = fetchFromGitHub {
owner = "ddccontrol";
repo = "ddccontrol";
rev = version;
sha256 = "sha256-qyD6i44yH3EufIW+LA/LBMW20Tejb49zvsDfv6YFD6c=";
};
nativeBuildInputs = [
autoreconfHook
intltool
pkg-config
];
buildInputs = [
libxml2
pciutils
gtk2
ddccontrol-db
];
configureFlags = [
"--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
];
prePatch = ''
substituteInPlace configure.ac \
--replace \
"\$""{datadir}/ddccontrol-db" \
"${ddccontrol-db}/share/ddccontrol-db"
substituteInPlace src/ddcpci/Makefile.am \
--replace "chmod 4711" "chmod 0711"
'';
preConfigure = ''
intltoolize --force
'';
meta = with lib; {
description = "Program used to control monitor parameters by software";
homepage = "https://github.com/ddccontrol/ddccontrol";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with lib.maintainers; [ pakhfn ];
};
}
+63
View File
@@ -0,0 +1,63 @@
{
lib,
fetchFromGitHub,
perlPackages,
autoreconfHook,
perl,
curl,
}:
let
myPerl = perl.withPackages (ps: [ ps.JSONPP ]);
in
perlPackages.buildPerlPackage rec {
pname = "ddclient";
version = "4.0.0";
outputs = [ "out" ];
src = fetchFromGitHub {
owner = "ddclient";
repo = "ddclient";
rev = "v${version}";
sha256 = "sha256-RCE24RKcW4EhicOTwgz5UE/gzqLxw+UNNk960vFx5Gs=";
};
postPatch = ''
touch Makefile.PL
'';
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [
curl
myPerl
];
# Prevent ddclient from picking up build time perl which is implicitly added
# by buildPerlPackage.
configureFlags = [
"--with-perl=${lib.getExe myPerl}"
];
installPhase = ''
runHook preInstall
install -Dm755 ddclient $out/bin/ddclient
install -Dm644 -t $out/share/doc/ddclient COP* README.* ChangeLog.md
runHook postInstall
'';
# TODO: run upstream tests
doCheck = false;
meta = with lib; {
description = "Client for updating dynamic DNS service entries";
homepage = "https://ddclient.net/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ bjornfor ];
mainProgram = "ddclient";
};
}
+53
View File
@@ -0,0 +1,53 @@
{
lib,
stdenv,
fetchurl,
autoreconfHook,
pkg-config,
glib,
jansson,
udev,
libgudev,
libusb1,
libdrm,
xorg,
}:
stdenv.mkDerivation rec {
pname = "ddcutil";
version = "2.2.1";
src = fetchurl {
url = "https://www.ddcutil.com/tarballs/ddcutil-${version}.tar.gz";
hash = "sha256-cch2DDg91fohgXg5uGuYUKxtVY4TPi1v6ojfrwREiuY=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
glib
jansson
libdrm
libgudev
libusb1
udev
xorg.libXext
xorg.libXrandr
];
enableParallelBuilding = true;
doInstallCheck = true;
meta = {
homepage = "http://www.ddcutil.com/";
description = "Query and change Linux monitor settings using DDC/CI and USB";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ rnhmjoj ];
changelog = "https://github.com/rockowitz/ddcutil/blob/v${version}/CHANGELOG.md";
mainProgram = "ddcutil";
};
}
+70
View File
@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchurl,
imagemagick,
desktopToDarwinBundle,
motif,
ncurses,
libX11,
libXt,
gdb,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ddd";
version = "3.4.0";
src = fetchurl {
url = "mirror://gnu/ddd/ddd-${finalAttrs.version}.tar.gz";
hash = "sha256-XUy8iguwRYVDhm1nkwjFOj7wZuQC/loZGOGWmKPTWA8=";
};
postPatch = ''
substituteInPlace ddd/Ddd.in \
--replace-fail 'debuggerCommand:' 'debuggerCommand: ${gdb}/bin/gdb'
'';
nativeBuildInputs = [
imagemagick
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ desktopToDarwinBundle ];
buildInputs = [
motif
ncurses
libX11
libXt
];
# ioctl is not found without this flag. fixed in next release
# Upstream issue ref: https://savannah.gnu.org/bugs/index.php?64188
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin { NIX_CFLAGS_COMPILE = "-DHAVE_SYS_IOCTL_H"; };
configureFlags = [
"--enable-builtin-manual"
"--enable-builtin-app-defaults"
];
# From MacPorts: make will build the executable "ddd" and the X resource
# file "Ddd" in the same directory, as HFS+ is case-insensitive by default
# this will loosely FAIL
makeFlags = [ "EXEEXT=exe" ];
enableParallelBuilding = true;
postInstall = ''
mv $out/bin/dddexe $out/bin/ddd
convert icons/ddd.xbm ddd.png
install -D ddd.png $out/share/icons/hicolor/48x48/apps/ddd.png
'';
meta = {
changelog = "https://www.gnu.org/software/ddd/news.html";
description = "Graphical front-end for command-line debuggers";
homepage = "https://www.gnu.org/software/ddd";
license = lib.licenses.gpl3Only;
mainProgram = "ddd";
maintainers = with lib.maintainers; [ emilytrau ];
platforms = lib.platforms.unix;
};
})
+64
View File
@@ -0,0 +1,64 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
versionCheckHook,
writableTmpDirAsHomeHook,
}:
buildGoModule rec {
pname = "ddev";
version = "1.24.8";
src = fetchFromGitHub {
owner = "ddev";
repo = "ddev";
rev = "v${version}";
hash = "sha256-z0rxRY/Jxo+0aLj1vfODBVlmZYb3SOufctS7R9d/3gs=";
};
nativeBuildInputs = [
installShellFiles
];
vendorHash = null;
ldflags = [
"-extldflags -static"
"-X github.com/ddev/ddev/pkg/versionconstants.DdevVersion=v${version}"
"-X github.com/ddev/ddev/pkg/versionconstants.SegmentKey=v${version}"
];
# Tests need docker.
doCheck = false;
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
# DDEV will try to create $HOME/.ddev, so we set $HOME to a temporary
# directory.
export HOME=$(mktemp -d)
$out/bin/ddev_gen_autocomplete
installShellCompletion --cmd ddev \
--bash .gotmp/bin/completions/ddev_bash_completion.sh \
--fish .gotmp/bin/completions/ddev_fish_completion.sh \
--zsh .gotmp/bin/completions/ddev_zsh_completion.sh
'';
doInstallCheck = true;
nativeInstallCheckInputs = [
versionCheckHook
writableTmpDirAsHomeHook
];
versionCheckProgramArg = "--version";
versionCheckKeepEnvironment = [ "HOME" ];
meta = with lib; {
description = "Docker-based local PHP+Node.js web development environments";
homepage = "https://ddev.com/";
license = licenses.asl20;
platforms = platforms.unix;
mainProgram = "ddev";
maintainers = with maintainers; [ remyvv ];
};
}
+43
View File
@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
installShellFiles,
}:
stdenv.mkDerivation rec {
version = "2.2";
pname = "ddgr";
src = fetchFromGitHub {
owner = "jarun";
repo = "ddgr";
rev = "v${version}";
sha256 = "sha256-88cCQm3eViy0OwSyCTlnW7uuiFwz2/6Wz45QzxCgXxg=";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ python3 ];
makeFlags = [ "PREFIX=$(out)" ];
postInstall = ''
installShellCompletion --bash --name ddgr.bash auto-completion/bash/ddgr-completion.bash
installShellCompletion --fish auto-completion/fish/ddgr.fish
installShellCompletion --zsh auto-completion/zsh/_ddgr
'';
meta = with lib; {
homepage = "https://github.com/jarun/ddgr";
description = "Search DuckDuckGo from the terminal";
license = licenses.gpl3;
maintainers = with maintainers; [
ceedubs
markus1189
];
platforms = python3.meta.platforms;
mainProgram = "ddgr";
};
}
+31
View File
@@ -0,0 +1,31 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "ddh";
version = "0.13.0";
src = fetchFromGitHub {
owner = "darakian";
repo = "ddh";
rev = version;
sha256 = "XFfTpX4c821pcTAJZFUjdqM940fRoBwkJC6KTknXtCw=";
};
cargoHash = "sha256-rl9+3JSFkqZwaIWCuZBDhDF0QBr+aB2I7kB1o9LWCEw=";
meta = with lib; {
description = "Fast duplicate file finder";
longDescription = ''
DDH traverses input directories and their subdirectories.
It also hashes files as needed and reports findings.
'';
homepage = "https://github.com/darakian/ddh";
license = licenses.lgpl3Only;
maintainers = with maintainers; [ h7x4 ];
platforms = platforms.all;
mainProgram = "ddh";
};
}
@@ -0,0 +1,76 @@
From fae7504042bb5e3efe253476000d1b15523bd2d7 Mon Sep 17 00:00:00 2001
From: OPNA2608 <opna2608@protonmail.com>
Date: Thu, 1 May 2025 15:57:02 +0200
Subject: [PATCH] Make findPath & its calls behave well with store
- images is a cache of downloaded card images.
put that into ~/.cache/ddm/images and allow it to be created.
- campaigns, cubes & constructed are user-downloaded files that set up possible game styles.
create & populate them for the game, and tell it to not try to create them on its own.
---
index.js | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/index.js b/index.js
index 99f0697..492d096 100755
--- a/index.js
+++ b/index.js
@@ -8,6 +8,8 @@ const path = require('path');
const fs = require('fs');
app.commandLine.appendSwitch('disable-gpu-vsync'); //NVIDIA vsync patch //must be before whenready
+const userCacheDir = path.normalize(process.env.HOME + "/.cache/ddm")
+
app.on('ready', () => {
const mainWindow = new BrowserWindow({
width: 1344,
@@ -61,16 +63,16 @@ app.on('ready', () => {
const isDir = fs.statSync(fullPath).isDirectory();
if (containsDanger(fullPath)) throw new Error ("Dangerous files detected");
if (isDir) return fullPath;
- } catch (err) { throw new Error("Bad path Error 1", err); }
+ } catch (err) { throw new Error(`Bad path Error 1: ${err.message}`, err); }
else try { //dev
- const fullPath = path.join(__dirname, folderName);
+ const fullPath = path.join(allowFolderCreation ? userCacheDir : __dirname, folderName);
if (!fs.existsSync(fullPath) && allowFolderCreation) fs.mkdirSync(fullPath, {recursive: true});
const isDir = fs.statSync(fullPath).isDirectory();
console.log(fullPath)
if (containsDanger(fullPath)) throw new Error (`DDM refused entry to path: ${fullPath}`);
if (isDir) return fullPath;
- } catch (err) { throw new Error("Bad path Error 2", err); }
+ } catch (err) { throw new Error(`Bad path Error 2: ${err.message}`, err); }
}
@@ -92,7 +94,7 @@ app.on('ready', () => {
path.join(basePath, "campaigns"),
path.join(basePath, "cubes"),
path.join(basePath, "constructed"),
- path.join(basePath, "images")
+ path.join(userCacheDir, "images")
];
// Check if the directory is within allowed paths
@@ -117,7 +119,7 @@ app.on('ready', () => {
try {
if (!["campaigns", "cubes", "constructed"].includes(folderName)) throw new Error(`bad folder name ${folderName}`);
- const folderPath = findPath(folderName, true);
+ const folderPath = findPath(folderName, false);
if (!fs.existsSync(folderPath)) fs.mkdirSync(folderPath);
const files = fs.readdirSync(folderPath);
if (folderName === "campaigns" ) return files.filter(file => fs.statSync (path.join(folderPath, file)).isDirectory());
@@ -136,7 +138,7 @@ app.on('ready', () => {
ipcMain.handle('open-local-folder', async (event, folderName) => {
if (!["campaigns", "cubes", "constructed"].includes(folderName)) throw new Error(`bad folder name ${constructed}`);
- const folderPath = findPath(folderName, true);
+ const folderPath = findPath(folderName, false);
try { shell.openPath(folderPath); }
catch (error) { console.error(error); }
});
--
2.48.1
+91
View File
@@ -0,0 +1,91 @@
{
stdenvNoCC,
lib,
requireFile,
asar,
copyDesktopItems,
electron,
makeDesktopItem,
makeWrapper,
unzip,
campaigns ? [ ],
cubes ? [ ],
constructed ? [ ],
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "ddm";
version = "4.1.0";
src = requireFile {
name = "DungeonDuelMonsters-linux-x64.zip";
hash = "sha256-gq2nGwpaStqaVI1pL63xygxOI/z53o+zLwiKizG98Ks=";
url = "https://mikaygo.itch.io/ddm";
};
strictDeps = true;
nativeBuildInputs = [
asar
copyDesktopItems
makeWrapper
unzip
];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/icons/hicolor/512x512/apps,share/ddm}
asar extract ./resources/app.asar $out/share/ddm/
patch -d $out/share/ddm/ -p1 < ${./0001-Make-findPath-its-calls-behave-well-with-store.patch}
ln -s $out/share/ddm/icon.png $out/share/icons/hicolor/512x512/apps/ddm.png
makeWrapper ${lib.getExe electron} $out/bin/ddm \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--add-flags "$out/share/ddm"
# Install externally-downloaded campaign packs and cube & constructed lists
mkdir $out/share/ddm/{campaigns,cubes,constructed}
''
+ lib.concatMapStringsSep "\n" (campaignZip: ''
unzip "${campaignZip}" -d $out/share/ddm/campaigns/
'') campaigns
+ lib.concatMapStringsSep "\n" (cubeFile: ''
cp "${cubeFile}" $out/share/ddm/cubes/
'') cubes
+ lib.concatMapStringsSep "\n" (constructedFile: ''
cp "${constructedFile}" $out/share/ddm/constructed/
'') constructed
+ ''
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "ddm";
desktopName = "Dungeon Duel Monsters";
comment = "A Tabletop Yugioh Experience";
exec = "ddm";
terminal = false;
icon = "ddm";
})
];
meta = {
description = "Tabletop Yugioh Experience";
homepage = "https://dungeonduelmonsters.com";
changelog = "https://mikaygo.itch.io/ddm/devlog";
license = lib.licenses.unfree;
mainProgram = "ddm";
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
};
})
+140
View File
@@ -0,0 +1,140 @@
{
lib,
stdenv,
fetchFromGitHub,
cargo,
cmake,
ninja,
pkg-config,
rustPlatform,
rustc,
curl,
freetype,
libGLU,
libnotify,
libogg,
libX11,
opusfile,
pcre,
python3,
SDL2,
sqlite,
wavpack,
ffmpeg,
x264,
vulkan-headers,
vulkan-loader,
glslang,
spirv-tools,
gtest,
buildClient ? true,
}:
stdenv.mkDerivation rec {
pname = "ddnet";
version = "19.4";
src = fetchFromGitHub {
owner = "ddnet";
repo = "ddnet";
tag = version;
hash = "sha256-x/QHTjtFX2j3CA9YAg7c09WTRnW0Y+1keu52RMLSSoA=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-VKGc4LQjt2FHbELLBKtV8rKpxjGBrzlA3m9BSdZ/6Z0=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
rustc
cargo
rustPlatform.cargoSetupHook
];
nativeCheckInputs = [
gtest
];
buildInputs = [
curl
libnotify
pcre
python3
sqlite
]
++ lib.optionals buildClient (
[
freetype
libGLU
libogg
opusfile
SDL2
wavpack
ffmpeg
x264
vulkan-loader
vulkan-headers
glslang
spirv-tools
]
++ lib.optionals stdenv.hostPlatform.isLinux [
libX11
]
);
postPatch = ''
substituteInPlace src/engine/shared/storage.cpp \
--replace /usr/ $out/
'';
cmakeFlags = [
"-DAUTOUPDATE=OFF"
"-DCLIENT=${if buildClient then "ON" else "OFF"}"
];
# Tests loop forever on Darwin for some reason
doCheck = !stdenv.hostPlatform.isDarwin;
checkTarget = "run_tests";
postInstall = lib.optionalString (!buildClient) ''
# DDNet's CMakeLists.txt automatically installs .desktop
# shortcuts and icons for the client, even if the client
# is not supposed to be built
rm -rf $out/share/applications
rm -rf $out/share/icons
rm -rf $out/share/metainfo
'';
preFixup = lib.optionalString (stdenv.hostPlatform.isDarwin && buildClient) ''
# Upstream links against <prefix>/lib while it installs this library in <prefix>/lib/ddnet
install_name_tool -change "$out/lib/libsteam_api.dylib" "$out/lib/ddnet/libsteam_api.dylib" "$out/bin/DDNet"
'';
meta = {
description = "Teeworlds modification with a unique cooperative gameplay";
longDescription = ''
DDraceNetwork (DDNet) is an actively maintained version of DDRace,
a Teeworlds modification with a unique cooperative gameplay.
Help each other play through custom maps with up to 64 players,
compete against the best in international tournaments,
design your own maps, or run your own server.
'';
homepage = "https://ddnet.org";
license = with lib.licenses; [
zlib
ofl
cc-by-sa-30
];
maintainers = with lib.maintainers; [
lom
ncfavier
Scrumplex
sirseruju
];
mainProgram = "DDNet${lib.optionalString (!buildClient) "-Server"}";
};
}
+34
View File
@@ -0,0 +1,34 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "ddns-go";
version = "6.12.5";
src = fetchFromGitHub {
owner = "jeessy2";
repo = "ddns-go";
rev = "v${version}";
hash = "sha256-8k3WxNSt+DvfdmWH/V3rAlOSHeyf+g5mmXQZghCf7K4=";
};
vendorHash = "sha256-f94Ox/8MQgy3yyLRTK0WFHebntSUAGlbr4/IY+wrz4w=";
ldflags = [
"-X main.version=${version}"
];
# network required
doCheck = false;
meta = with lib; {
homepage = "https://github.com/jeessy2/ddns-go";
description = "Simple and easy to use DDNS";
license = licenses.mit;
maintainers = with maintainers; [ oluceps ];
mainProgram = "ddns-go";
};
}
+42
View File
@@ -0,0 +1,42 @@
{
buildGoModule,
fetchFromGitHub,
lib,
nixosTests,
nix-update-script,
}:
buildGoModule rec {
pname = "ddns-updater";
version = "2.9.0";
src = fetchFromGitHub {
owner = "qdm12";
repo = "ddns-updater";
rev = "v${version}";
hash = "sha256-Vvk3owtSpwstmC5UaVyUEY+FW25KA+nYp2dOqiP4HTs=";
};
vendorHash = "sha256-RKaUgE/cdzattMWMxiJ5fIXjx3IKE+On6dT/P6y4wqU=";
ldflags = [
"-s"
"-w"
];
subPackages = [ "cmd/ddns-updater" ];
passthru = {
tests = {
inherit (nixosTests) ddns-updater;
};
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Container to update DNS records periodically with WebUI for many DNS providers";
homepage = "https://github.com/qdm12/ddns-updater";
license = licenses.mit;
maintainers = with maintainers; [ delliott ];
mainProgram = "ddns-updater";
};
}
+48
View File
@@ -0,0 +1,48 @@
{
lib,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGoModule (finalAttrs: {
pname = "ddosify";
version = "2.6.0";
src = fetchFromGitHub {
owner = "ddosify";
repo = "ddosify";
tag = "selfhosted-${finalAttrs.version}";
hash = "sha256-EPbpBCSaUVVhxGlj7gRqwHLuj5p6563iiARqkEjA6Rk=";
};
vendorHash = "sha256-Wg4JzA2aEwNBsDrkauFUb9AS38ITLBGex9QHzDcdpoM=";
sourceRoot = "${finalAttrs.src.name}/ddosify_engine";
ldflags = [
"-s"
"-w"
"-X=main.GitVersion=${finalAttrs.version}"
"-X=main.GitCommit=unknown"
"-X=main.BuildDate=unknown"
];
# TestCreateHammerMultipartPayload error occurred - Get "https://upload.wikimedia.org/wikipedia/commons/b/bd/Test.svg"
doCheck = false;
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "-version";
meta = {
description = "High-performance load testing tool, written in Golang";
mainProgram = "ddosify";
homepage = "https://ddosify.com/";
changelog = "https://github.com/ddosify/ddosify/releases/tag/selfhosted-${finalAttrs.version}";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ bryanasdev000 ];
};
})
+57
View File
@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchurl,
lzip,
}:
stdenv.mkDerivation rec {
pname = "ddrescue";
version = "1.29.1";
src = fetchurl {
url = "mirror://gnu/ddrescue/ddrescue-${version}.tar.lz";
sha256 = "sha256-3dfUXfAmgHg1ouxqucNl3y7xno3hpQ/+aIbNOR4E3XU=";
};
nativeBuildInputs = [ lzip ];
doCheck = true; # not cross;
configureFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ];
meta = with lib; {
description = "GNU ddrescue, a data recovery tool";
longDescription = ''
GNU ddrescue is a data recovery tool. It copies data from one file
or block device (hard disc, cdrom, etc) to another, trying hard to
rescue data in case of read errors.
The basic operation of ddrescue is fully automatic. That is, you
don't have to wait for an error, stop the program, read the log, run
it in reverse mode, etc.
If you use the logfile feature of ddrescue, the data is rescued very
efficiently (only the needed blocks are read). Also you can
interrupt the rescue at any time and resume it later at the same
point.
Automatic merging of backups: If you have two or more damaged copies
of a file, cdrom, etc, and run ddrescue on all of them, one at a
time, with the same output file, you will probably obtain a complete
and error-free file. This is so because the probability of having
damaged areas at the same places on different input files is very
low. Using the logfile, only the needed blocks are read from the
second and successive copies.
'';
homepage = "https://www.gnu.org/software/ddrescue/ddrescue.html";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [
fpletz
];
};
}
+62
View File
@@ -0,0 +1,62 @@
{
stdenv,
lib,
fetchurl,
fpc,
lazarus,
atk,
cairo,
gdk-pixbuf,
glib,
gtk2,
libX11,
pango,
}:
stdenv.mkDerivation rec {
pname = "ddrescueview";
version = "0.4.5";
src = fetchurl {
url = "mirror://sourceforge/ddrescueview/ddrescueview-source-${version}.tar.xz";
sha256 = "sha256-Vzg8OU5iYSzip5lDiwDG48Rlwx+bqUDgd/Yk4ucChGU=";
};
sourceRoot = "ddrescueview-source-${version}/source";
nativeBuildInputs = [
fpc
lazarus
];
buildInputs = [
atk
cairo
gdk-pixbuf
glib
gtk2
libX11
pango
];
NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
buildPhase = ''
lazbuild --lazarusdir=${lazarus}/share/lazarus ddrescueview.lpi
'';
installPhase = ''
install -Dt $out/bin ddrescueview
cd ../resources/linux
mkdir -p "$out/share"
cp -ar applications icons man $out/share
'';
meta = with lib; {
description = "Tool to graphically examine ddrescue mapfiles";
homepage = "https://sourceforge.net/projects/ddrescueview/";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ orivej ];
mainProgram = "ddrescueview";
};
}
+34
View File
@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "ddrutility";
version = "2.8";
src = fetchurl {
url = "mirror://sourceforge/ddrutility/${pname}-${version}.tar.gz";
sha256 = "023g7f2sfv5cqk3iyss4awrw3b913sy5423mn5zvlyrri5hi2cac";
};
postPatch = ''
substituteInPlace makefile --replace /usr/local ""
'';
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: /build/ccltHly5.o:(.bss+0x119f8): multiple definition of `start_time'; /build/cc9evx3L.o:(.bss+0x10978): first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
makeFlags = [ "DESTDIR=$(out)" ];
meta = with lib; {
description = "Set of utilities for hard drive data rescue";
homepage = "https://sourceforge.net/projects/ddrutility/";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ orivej ];
};
}
+36
View File
@@ -0,0 +1,36 @@
{
lib,
python3Packages,
fetchPypi,
}:
let
version = "2.0.3";
in
python3Packages.buildPythonApplication {
pname = "ddsmt";
inherit version;
pyproject = true;
src = fetchPypi {
inherit version;
pname = "ddSMT";
hash = "sha256-nmhEG4sUmgpgRUduVTtwDLGPJVKx+dEaPb+KjFRwV2Q=";
};
nativeBuildInputs = with python3Packages; [
setuptools
];
propagatedBuildInputs = with python3Packages; [
gprof2dot
progressbar
];
meta = {
description = "Delta debugger for SMT benchmarks in SMT-LIB v2";
homepage = "https://ddsmt.readthedocs.io/";
license = with lib.licenses; [ gpl3Plus ];
maintainers = [ ];
};
}
+66
View File
@@ -0,0 +1,66 @@
{
lib,
stdenv,
fetchpatch,
fetchFromGitHub,
btrfs-progs,
python3,
udevCheckHook,
}:
let
btrfsProgsPatched = btrfs-progs.overrideAttrs {
patches = [
(fetchpatch {
url = "https://raw.githubusercontent.com/Lakshmipathi/dduper/7e8f995a3a6179a31d15ce073bce6cfbaefb81ed/patch/btrfs-progs-v6.11/0001-Print-csum-for-a-given-file-on-stdout.patch";
hash = "sha256-ndydH5tHKYLKhstNdpfuJVCUrwl+6VJwprKy4hz8uwM=";
})
];
};
py3 = python3.withPackages (
ps: with ps; [
prettytable
numpy
]
);
in
stdenv.mkDerivation rec {
pname = "dduper";
version = "0.04";
src = fetchFromGitHub {
owner = "lakshmipathi";
repo = "dduper";
rev = "v${version}";
sha256 = "09ncdawxkffldadqhfblqlkdl05q2qmywxyg6p61fv3dr2f2v5wm";
};
buildInputs = [
btrfsProgsPatched
py3
];
nativeBuildInputs = [
udevCheckHook
];
doInstallCheck = true;
patchPhase = ''
substituteInPlace ./dduper --replace "/usr/sbin/btrfs.static" "${btrfsProgsPatched}/bin/btrfs"
'';
installPhase = ''
mkdir -p $out/bin
install -m755 ./dduper $out/bin
'';
meta = with lib; {
description = "Fast block-level out-of-band BTRFS deduplication tool";
mainProgram = "dduper";
homepage = "https://github.com/Lakshmipathi/dduper";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ thesola10 ];
platforms = platforms.linux;
};
}