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,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "deadnix";
version = "1.3.1";
src = fetchFromGitHub {
owner = "astro";
repo = "deadnix";
rev = "v${version}";
hash = "sha256-WrzIqt28RhoFYhCMu5oY5jAdGh0Gv5uryW/1jTX99aY=";
};
cargoHash = "sha256-IgGuWIsDsiMqscO4B876iTCdrR+nI9bpTQOyxjCtjMk=";
meta = with lib; {
description = "Find and remove unused code in .nix source files";
homepage = "https://github.com/astro/deadnix";
license = licenses.gpl3Only;
mainProgram = "deadnix";
maintainers = with maintainers; [ astro ];
};
}

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitHub,
freetype,
libX11,
libXi,
libXt,
libXft,
}:
stdenv.mkDerivation {
pname = "deadpixi-sam-unstable";
version = "2020-07-14";
src = fetchFromGitHub {
owner = "deadpixi";
repo = "sam";
rev = "5d8acb35d78c327d76f00a54857cbd566ed9bc11";
sha256 = "sha256-+vRh6nDPc3UnmEdqROHRel5Te0h5m4eiaERs492xciQ=";
};
postPatch = ''
substituteInPlace config.mk.def \
--replace "/usr/include/freetype2" "${freetype.dev}/include/freetype2" \
--replace "CC=gcc" "CC=${stdenv.cc.targetPrefix}cc" \
--replace "RXPATH=/usr/bin/ssh" "RXPATH=ssh"
'';
CFLAGS = "-D_DARWIN_C_SOURCE";
makeFlags = [ "DESTDIR=$(out)" ];
buildInputs = [
libX11
libXi
libXt
libXft
];
# build fails when run in parallel
enableParallelBuilding = false;
postInstall = ''
substituteInPlace deadpixi-sam.desktop \
--replace "accessories-text-editor" "$out/share/icons/hicolor/scalable/apps/sam.svg"
mkdir -p $out/share/applications
mkdir -p $out/share/icons/hicolor/scalable/apps
mv deadpixi-sam.desktop $out/share/applications
mv sam.svg $out/share/icons/hicolor/scalable/apps
'';
meta = with lib; {
homepage = "https://github.com/deadpixi/sam";
description = "Updated version of the sam text editor";
license = licenses.lpl-102;
maintainers = with maintainers; [ ramkromberg ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,72 @@
{
fetchFromGitHub,
stdenv,
lib,
help2man,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "deark";
version = "1.7.1";
src = fetchFromGitHub {
owner = "jsummers";
repo = "deark";
tag = "v${version}";
hash = "sha256-EnolN4uSHDm1sIkbwCmZUe70DdHyXP3Si4QwGaMtN0A=";
};
nativeBuildInputs = [
help2man
installShellFiles
];
postBuild = ''
make man
'';
installPhase = ''
runHook preInstall
install -Dm755 deark $out/bin/deark
installManPage deark.1
runHook postInstall
'';
meta = {
description = "Utility for file format and metadata analysis, data extraction, decompression, and image format decoding";
longDescription = ''
Deark is a portable command-line utility that can decode certain
types of files, and either convert them to a more-modern or
more-readable format, or extract embedded files from them.
'';
homepage = "https://entropymine.com/deark/";
downloadPage = "https://github.com/jsummers/deark/";
# cf. READMEs under "foreign" folder for details
license = with lib.licenses; [
mit
# deark itself + modifications to foreign code, sans foreign code
# ozunreduce.h (dual-licensed: MIT is one option)
free
# miniz*.h (MIT-style, predates standardized licenses)
# ozunreduce.h (dual-licensed: public domain is one option)
# dskdcmps.h (public domain)
# uncompface.h ("Permission is given to distribute these sources, as long as the
# copyright messages are not removed, and no monies are exchanged"
# + waiver of liability)
unfreeRedistributable
# lzhuf.* (no copywrite notice, predates standardized licenses,
# widely distributed & intent appears to be free use)
# "By necessity, Deark contains knowledge about how to decode various
# third-party file formats. This knowledge includes data structures,
# algorithms, tables, color palettes, etc. The author(s) of Deark
# make no intellectual property claims to this essential knowledge,
# but they cannot guarantee that no one else will attempt to do so.
# Deark contains VGA and CGA bitmapped fonts, which have no known
# copyright claims."
];
maintainers = with lib.maintainers; [ zacharyweiss ];
mainProgram = "deark";
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,31 @@
diff --git a/Makefile b/Makefile
index b0b682cb..513822d9 100644
--- a/Makefile
+++ b/Makefile
@@ -58,17 +58,14 @@ endif
INCDIRS = \
-isystem ./lib/ncurses/include \
- -iquote ./lib/libgit2/include \
-iquote ./src \
-iquote .
LIBDIRS = \
- -L./lib/libgit2/build-$(PLATFORM) \
-L./lib/ncurses/build-$(PLATFORM)
LIBS = \
-lgit2 \
- -lz \
-lpthread \
-lformw \
-lmenuw \
@@ -102,7 +99,7 @@ $(OBJS): | lib $(GITHASHHEADER)
# Libs: execute make from `lib` directory
.PHONY: lib
lib:
- $(MAKE) -C $@
+ $(MAKE) -C $@ ncurses/$(BUILDROOT)
# C rule
$(BUILDDIR)/%.o: %.c

View File

@@ -0,0 +1,80 @@
{
fetchFromGitHub,
fetchpatch, # Delete at next version bump.
lib,
libgit2,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "debase";
# NOTE: When updating version, also update commit hash in prePatch.
version = "3";
src = fetchFromGitHub {
owner = "toasterllc";
repo = "debase";
tag = "v${version}";
hash = "sha256-IOh5TlFHFhIaP5bpQHYzY4wwmQUdwKePmSzEM2qx8oE=";
fetchSubmodules = true;
};
prePatch = ''
# xcrun is not available in the Darwin stdenv, but we don't need it anyway.
substituteInPlace Makefile \
--replace-fail 'xcrun dsymutil' dsymutil
# NOTE: Update this when updating version.
substituteInPlace Makefile \
--replace-fail 'git rev-parse HEAD' 'echo aa083074d67938d50336bd3737c960b038d91134' \
--replace-fail '$(GITHASHHEADER): .git/HEAD .git/index' '$(GITHASHHEADER):'
'';
patches = [
# Ignore debase's vendored copy of libgit2 in favor of the nixpkgs version.
./ignore-vendored-libgit2.patch
];
buildInputs = [
libgit2
];
installPhase = ''
runHook preInstall
install -Dm755 build-${
if stdenv.hostPlatform.isDarwin then "mac" else "linux"
}/release/debase $out/bin/debase
runHook postInstall
'';
enableParallelBuilding = true;
makeFlags = [
"ARCHS=${
if stdenv.hostPlatform.isx86_64 then
"x86_64"
else if stdenv.hostPlatform.isAarch64 then
"arm64"
else
throw "unsupported system: ${stdenv.system}"
}"
];
meta = {
description = "TUI for drag-and-drop manipulation of git commits";
homepage = "https://toaster.llc/debase";
license = lib.licenses.publicDomain;
mainProgram = "debase";
maintainers = with lib.maintainers; [
jeremyschlatter
aleksana
];
platforms = [
# Only these systems are supported by Makefile
"x86_64-linux"
"x86_64-darwin"
"aarch64-linux"
"aarch64-darwin"
];
};
}

View File

@@ -0,0 +1,147 @@
{
lib,
stdenv,
fetchFromGitLab,
fetchpatch,
xz,
dpkg,
libxslt,
docbook_xsl,
makeWrapper,
writeShellScript,
python3Packages,
perlPackages,
curl,
gnupg,
diffutils,
nano,
pkg-config,
bash-completion,
help2man,
nix-update-script,
sendmailPath ? "/run/wrappers/bin/sendmail",
}:
let
inherit (python3Packages) python setuptools;
sensible-editor = writeShellScript "sensible-editor" ''
exec ''${EDITOR-${nano}/bin/nano} "$@"
'';
in
stdenv.mkDerivation (finalAttrs: {
pname = "debian-devscripts";
version = "2.25.15+deb13u1";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "debian";
repo = "devscripts";
tag = "v${finalAttrs.version}";
hash = "sha256-szyVLpeIQozPXwBgL4nIYog4znUzweIt8q7nczo5q+g=";
};
patches = [
(fetchpatch {
name = "hardening-check-obey-binutils-env-vars.patch";
url = "https://github.com/Debian/devscripts/pull/2/commits/c6a018e0ef50a1b0cb4962a2f96dae7c6f21f1d4.patch";
hash = "sha256-UpS239JiAM1IYxNuJLdILq2h0xlR5t0Tzhj47xiMHww=";
})
];
postPatch = ''
substituteInPlace scripts/debrebuild.pl \
--replace-fail "/usr/bin/perl" "${perlPackages.perl}/bin/perl"
patchShebangs scripts
''
+
# Remove man7 target to avoid missing *.7 file error
''
substituteInPlace doc/Makefile \
--replace-fail " install_man7" ""
'';
nativeBuildInputs = [
makeWrapper
pkg-config
];
buildInputs = [
xz
dpkg
libxslt
python
setuptools
curl
gnupg
diffutils
bash-completion
help2man
]
++ (with perlPackages; [
perl
CryptSSLeay
LWP
TimeDate
DBFile
FileDesktopEntry
ParseDebControl
LWPProtocolHttps
Moo
FileHomeDir
IPCRun
FileDirList
FileTouch
IOString
]);
preConfigure = ''
export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}${dpkg}";
tgtpy="$out/${python.sitePackages}"
mkdir -p "$tgtpy"
export PYTHONPATH="$PYTHONPATH''${PYTHONPATH:+:}$tgtpy"
find lib po4a scripts -type f -exec sed -r \
-e "s@/usr/bin/gpg(2|)@${lib.getExe' gnupg "gpg"}@g" \
-e "s@/usr/(s|)bin/sendmail@${sendmailPath}@g" \
-e "s@/usr/bin/diff@${lib.getExe' diffutils "diff"}@g" \
-e "s@/usr/bin/gpgv(2|)@${lib.getExe' gnupg "gpgv"}@g" \
-e "s@(command -v|/usr/bin/)curl@${lib.getExe curl}@g" \
-e "s@sensible-editor@${sensible-editor}@g" \
-e "s@(^|\W)/bin/bash@\1${stdenv.shell}@g" \
-i {} +
sed -e "s@/usr/share/sgml/[^ ]*/manpages/docbook.xsl@${docbook_xsl}/xml/xsl/docbook/manpages/docbook.xsl@" -i scripts/Makefile
sed -r \
-e "s@/usr( |$|/)@$out\\1@g" \
-e "s@/etc( |$|/)@$out/etc\\1@g" \
-e 's/ translated_manpages//; s/--install-layout=deb//; s@--root="[^ ]*"@--prefix="'"$out"'"@' \
-i Makefile* */Makefile*
'';
makeFlags = [
"DESTDIR=$(out)"
"PREFIX="
"COMPL_DIR=/share/bash-completion/completions"
"PERLMOD_DIR=/share/devscripts"
];
postInstall = ''
sed -re 's@(^|[ !`"])/bin/bash@\1${stdenv.shell}@g' -i "$out/bin"/*
for i in "$out/bin"/*; do
wrapProgram "$i" \
--prefix PERL5LIB : "$PERL5LIB" \
--prefix PERL5LIB : "$out/share/devscripts" \
--prefix PYTHONPATH : "$out/${python.sitePackages}" \
--prefix PATH : "${dpkg}/bin"
done
ln -s debchange $out/bin/dch
ln -s pts-subscribe $out/bin/pts-unsubscribe
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Debian package maintenance scripts";
license = lib.licenses.free; # Mix of public domain, Artistic+GPL, GPL1+, GPL2+, GPL3+, and GPL2-only... TODO
maintainers = with lib.maintainers; [ raskin ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitLab,
curl,
dialog,
installShellFiles,
perl,
python3,
}:
stdenv.mkDerivation rec {
pname = "debian-goodies";
version = "0.88.2";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "debian";
repo = "debian-goodies";
tag = "debian/${version}";
sha256 = "sha256-KPPRxYmCEYwlUAR29tc8w4rerXpswO/rbpEjXPoDV4Q=";
};
postPatch = ''
substituteInPlace debmany/debmany \
--replace "/usr/bin/dialog" "${dialog}/bin/dialog" \
--replace "/usr/bin/whiptail" "${python3.pkgs.snack}/bin/whiptail"
substituteInPlace dman \
--replace "curl" "${curl}/bin/curl"
'';
nativeBuildInputs = [
installShellFiles
];
buildInputs = [
perl
python3
];
installPhase = ''
runHook preInstall
# see https://salsa.debian.org/debian/debian-goodies/-/blob/master/debian/install
for bin in checkrestart dgrep dglob debget dpigs debman dman popbugs which-pkg-broke which-pkg-broke-build dhomepage debmany/debmany check-enhancements find-dbgsym-packages; do
install -Dm755 $bin -t $out/bin
done
install -Dm644 find-dbgsym-packages-templates/* -t $out/share/debian-goodies/find-dbgsym-packages-templates/
installShellCompletion --bash \
debmany/bash_completion/debmany \
debian/bash-completion
installManPage \
*.1 \
debmany/man/*.1 \
*.8
runHook postInstall
'';
meta = with lib; {
description = "Small toolbox-style utilities for Debian systems";
homepage = "https://salsa.debian.org/debian/debian-goodies";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = with maintainers; [ SuperSandro2000 ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitLab,
autoreconfHook,
perl,
po4a,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "debianutils";
version = "5.23.2";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "debian";
repo = "debianutils";
rev = "debian/${finalAttrs.version}";
hash = "sha256-28pl0uua4gX65uZP1td87HfojKLvkjJbo8KPqpgg/0g=";
};
nativeBuildInputs = [
autoreconfHook
perl
po4a
];
strictDeps = true;
outputs = [
"out"
"man"
];
meta = {
homepage = "https://packages.debian.org/sid/debianutils";
description = "Miscellaneous utilities specific to Debian";
longDescription = ''
This package provides a number of small utilities which are used primarily
by the installation scripts of Debian packages, although you may use them
directly.
The specific utilities included are: add-shell installkernel ischroot
remove-shell run-parts savelog tempfile which
'';
license = with lib.licenses; [
gpl2Plus
publicDomain
smail
];
mainProgram = "ischroot";
maintainers = [ ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,108 @@
{
lib,
stdenv,
fetchFromGitLab,
dpkg,
gawk,
perl,
wget,
binutils,
bzip2,
coreutils,
util-linux,
gnugrep,
gnupg,
gnutar,
gnused,
gzip,
xz,
zstd,
makeWrapper,
nix-update-script,
testers,
debootstrap,
}:
# USAGE like this: debootstrap sid /tmp/target-chroot-directory
# There is also cdebootstrap now. Is that easier to maintain?
let
binPath = lib.makeBinPath [
binutils
bzip2
coreutils
dpkg
gawk
gnugrep
gnupg
gnused
gnutar
gzip
perl
util-linux
wget
xz
zstd
];
in
stdenv.mkDerivation rec {
pname = "debootstrap";
version = "1.0.140_bpo12+1";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "installer-team";
repo = "debootstrap";
rev = "refs/tags/${version}";
hash = "sha256-4vINaMRo6IrZ6e2/DAJ06ODy2BWm4COR1JDSY52upUc=";
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
installPhase = ''
runHook preInstall
substituteInPlace debootstrap \
--replace 'CHROOT_CMD="chroot ' 'CHROOT_CMD="${coreutils}/bin/chroot ' \
--replace 'CHROOT_CMD="unshare ' 'CHROOT_CMD="${util-linux}/bin/unshare ' \
--replace /usr/bin/dpkg ${dpkg}/bin/dpkg \
--replace '#!/bin/sh' '#!/bin/bash' \
--subst-var-by VERSION ${version}
d=$out/share/debootstrap
mkdir -p $out/{share/debootstrap,bin}
mv debootstrap $out/bin
cp -r . $d
wrapProgram $out/bin/debootstrap \
--set PATH ${binPath} \
--set-default DEBOOTSTRAP_DIR $d
mkdir -p $out/man/man8
mv debootstrap.8 $out/man/man8
rm -rf $d/debian
runHook postInstall
'';
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion {
package = debootstrap;
};
};
meta = {
changelog = "https://salsa.debian.org/installer-team/debootstrap/-/blob/${version}/debian/changelog";
description = "Tool to create a Debian system in a chroot";
homepage = "https://wiki.debian.org/Debootstrap";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ marcweber ];
platforms = lib.platforms.linux;
mainProgram = "debootstrap";
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
buildGoModule,
fetchFromGitHub,
dpkg,
pkg-config,
glib,
ostree,
qemu,
unzip,
nix-update-script,
}:
buildGoModule (finalAttrs: {
pname = "debos";
version = "1.1.5";
src = fetchFromGitHub {
owner = "go-debos";
repo = "debos";
tag = "v${finalAttrs.version}";
hash = "sha256-1Xv7r1uyISp1whALtFZWNQgTMH0swd/0+QdRCmXM4DQ=";
};
vendorHash = "sha256-FdcmitxGKzkHqFjllDGW24Lr8yrsYDBzuEDRco9CW14=";
nativeBuildInputs = [
dpkg
pkg-config
unzip
];
buildInputs = [
glib
ostree
qemu
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Tool to create Debian OS images";
homepage = "https://github.com/go-debos/debos";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ liberodark ];
mainProgram = "debos";
};
})

View File

@@ -0,0 +1,34 @@
{
binutils,
lib,
perlPackages,
fetchFromGitLab,
}:
perlPackages.buildPerlPackage rec {
pname = "debsigs";
version = "0.2.2";
src = fetchFromGitLab {
owner = "debsigs";
repo = "debsigs";
tag = "release/${version}";
hash = "sha256-gCc5JmmdhTAUQqkMOK/0YmlCRD0JcpemCpqusYmpoKU=";
};
sourceRoot = "${src.name}/perl";
postPatch = ''
substituteInPlace arf.pm \
--replace-fail /usr/bin/ar ${binutils.bintools}/bin/ar
'';
meta = {
description = "Manipulate the cryptographic signatures stored inside a .deb file";
mainProgram = "debsigs";
homepage = "https://gitlab.com/debsigs/debsigs";
changelog = "https://gitlab.com/debsigs/debsigs/-/tags/release/${version}";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ usertam ];
};
}

View File

@@ -0,0 +1,43 @@
#TODO@deliciouslytyped The tool seems to unnecessarily force mutable access for the debugedit `-l` feature
{
fetchgit,
lib,
stdenv,
autoreconfHook,
pkg-config,
elfutils,
help2man,
util-linux,
}:
stdenv.mkDerivation rec {
pname = "debugedit";
version = "5.0";
nativeBuildInputs = [
autoreconfHook
pkg-config
help2man
];
buildInputs = [ elfutils ];
nativeCheckInputs = [ util-linux ]; # Tests use `rev`
src = fetchgit {
url = "git://sourceware.org/git/debugedit.git";
rev = "debugedit-${version}";
sha256 = "VTZ7ybQT3DfKIfK0lH+JiehCJyJ+qpQ0bAn1/f+Pscs=";
};
preBuild = ''
patchShebangs scripts/find-debuginfo.in
'';
doCheck = true;
meta = with lib; {
description = "Provides programs and scripts for creating debuginfo and source file distributions, collect build-ids and rewrite source paths in DWARF data for debugging, tracing and profiling";
homepage = "https://sourceware.org/debugedit/";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [ deliciouslytyped ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "dec-decode";
version = "0-unstable-2022-12-24";
src = fetchFromGitHub {
owner = "sammiq";
repo = "dec-decode";
rev = "6ee103cfaa9365f930da65b13f2e296c4e1ef8c3";
hash = "sha256-vOYKVl00oaXwp77pRLqUPnXQT5QuJfqnGGkQVBMq5W0=";
};
vendorHash = "sha256-zGWRzw1KUmifIsTudlgoKCR3+K0FLehHRSB3lNX+OWY=";
meta = with lib; {
description = "Nintendo Wii iso.dec decoder";
mainProgram = "dec-decode";
homepage = "https://github.com/sammiq/dec-decode";
license = licenses.unlicense;
maintainers = with maintainers; [ hughobrien ];
platforms = with platforms; linux ++ darwin;
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchurl,
# nativeBuildInputs
zstd,
pkg-config,
jq,
cargo,
rustc,
rustPlatform,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "decasify";
version = "0.10.1";
src = fetchurl {
url = "https://github.com/alerque/decasify/releases/download/v${finalAttrs.version}/decasify-${finalAttrs.version}.tar.zst";
hash = "sha256-XPl4HfhkwhHRkfc64BTafeHgLK1lB4UHKP6loLn5Ruc=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) pname version src;
dontConfigure = true;
nativeBuildInputs = [ zstd ];
hash = "sha256-rbFacCK/HU2D7QbVfMgKr9VevfutBJJtbXbKodTmkrc=";
};
nativeBuildInputs = [
zstd
pkg-config
jq
cargo
rustc
rustPlatform.cargoSetupHook
];
outputs = [
"out"
"doc"
"man"
"dev"
];
enableParallelBuilding = true;
meta = {
description = "Utility to change the case of prose strings following natural language style guides";
longDescription = ''
A CLI utility to cast strings to title-case (and other cases) according
to locale specific style guides including Turkish support.
'';
homepage = "https://github.com/alerque/decasify";
changelog = "https://github.com/alerque/decasify/raw/v${finalAttrs.version}/CHANGELOG.md";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
alerque
];
license = lib.licenses.lgpl3Only;
mainProgram = "decasify";
};
})

View File

@@ -0,0 +1,105 @@
{
lib,
stdenv,
fetchzip,
fetchurl,
makeDesktopItem,
copyDesktopItems,
buildFHSEnv,
alsa-lib,
freetype,
nghttp2,
libX11,
expat,
}:
let
pname = "decent-sampler";
version = "1.13.10";
rlkey = "orvjprslmwn0dkfs0ncx6nxnm";
icon = fetchurl {
url = "https://www.decentsamples.com/wp-content/uploads/2018/09/cropped-Favicon_512x512.png";
hash = "sha256-EXjaHrlXY0HU2EGTrActNbltIiqTLfdkFgP7FXoLzrM=";
};
decent-sampler = stdenv.mkDerivation {
inherit pname version;
src = fetchzip {
# dropbox links: https://www.dropbox.com/sh/dwyry6xpy5uut07/AABBJ84bjTTSQWzXGG5TOQpfa\
url = "https://www.dropbox.com/scl/fo/a0i0udw7ggfwnjoi05hh3/ACdV5vrbMrsBIUbidqizaIk/Decent_Sampler-${version}-Linux-Static-x86_64.tar.gz?rlkey=${rlkey}&dl=0";
hash = "sha256-2LyBldjsD05bMyK/aI+Ivk3f3cErRiM7GJlwOGqT9VQ=";
};
nativeBuildInputs = [ copyDesktopItems ];
desktopItems = [
(makeDesktopItem {
type = "Application";
name = "decent-sampler";
desktopName = "Decent Sampler";
comment = "DecentSampler player";
icon = "decent-sampler";
exec = "decent-sampler";
categories = [
"Audio"
"AudioVideo"
];
})
];
installPhase = ''
runHook preInstall
install -Dm755 DecentSampler $out/bin/decent-sampler
install -Dm755 DecentSampler.so -t $out/lib/vst
install -d "$out/lib/vst3" && cp -r "DecentSampler.vst3" $out/lib/vst3
install -Dm444 ${icon} $out/share/pixmaps/decent-sampler.png
runHook postInstall
'';
};
in
buildFHSEnv {
inherit (decent-sampler) pname version;
targetPkgs = pkgs: [
alsa-lib
decent-sampler
freetype
nghttp2
libX11
expat
];
runScript = "decent-sampler";
extraInstallCommands = ''
cp -r ${decent-sampler}/lib $out/lib
cp -r ${decent-sampler}/share $out/share
'';
meta = with lib; {
description = "Audio sample player";
longDescription = ''
Decent Sampler is an audio sample player.
Allowing you to play sample libraries in the DecentSampler format
(files with extensions: dspreset and dslibrary).
'';
mainProgram = "decent-sampler";
homepage = "https://www.decentsamples.com/product/decent-sampler-plugin/";
# It claims to be free but we currently cannot find any license
# that it is released under.
license = licenses.unfree;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [
adam248
chewblacka
kaptcha0
];
};
}

View File

@@ -0,0 +1,75 @@
{
lib,
stdenv,
fetchurl,
appstream,
blueprint-compiler,
desktop-file-utils,
gjs,
gst_all_1,
libadwaita,
meson,
ninja,
pkg-config,
typescript,
wrapGAppsHook4,
gnome,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "decibels";
version = "48.0";
src = fetchurl {
url = "mirror://gnome/sources/decibels/${lib.versions.major finalAttrs.version}/decibels-${finalAttrs.version}.tar.xz";
hash = "sha256-IpsRqSYxR7y4w+If8NSvZZ+yYmL4rs5Uetz4xl4DH3Q=";
};
nativeBuildInputs = [
appstream
blueprint-compiler
desktop-file-utils
meson
ninja
pkg-config
typescript
wrapGAppsHook4
];
buildInputs = [
gjs
gst_all_1.gstreamer
gst_all_1.gst-plugins-base # for GstVideo
gst_all_1.gst-plugins-bad # for GstPlay
gst_all_1.gst-plugins-good # for scaletempo
gst_all_1.gst-libav
libadwaita
];
# NOTE: this is applied after install to ensure `tsc` doesn't
# mess with us
#
# gjs uses the invocation name to add gresource files
# to get around this, we set the entry point name manually
preFixup = ''
sed -i "1 a imports.package._findEffectiveEntryPointName = () => 'org.gnome.Decibels';" $out/bin/org.gnome.Decibels
'';
passthru = {
updateScript = gnome.updateScript {
packageName = "decibels";
};
};
meta = {
description = "Play audio files";
homepage = "https://gitlab.gnome.org/GNOME/decibels";
changelog = "https://gitlab.gnome.org/GNOME/decibels/-/blob/${finalAttrs.version}/NEWS?ref_type=tags";
license = lib.licenses.gpl3Only;
teams = [
lib.teams.gnome
lib.teams.gnome-circle
];
mainProgram = "org.gnome.Decibels";
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,49 @@
{
buildGoModule,
stdenv,
lib,
installShellFiles,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule rec {
pname = "deck";
version = "1.52.0";
src = fetchFromGitHub {
owner = "Kong";
repo = "deck";
tag = "v${version}";
hash = "sha256-fKcI40DqQwVw4YzPXVOXdij4LAwRkCp2U+TpjYmIO8I=";
};
nativeBuildInputs = [ installShellFiles ];
env.CGO_ENABLED = 0;
ldflags = [
"-s -w -X github.com/kong/deck/cmd.VERSION=${version}"
"-X github.com/kong/deck/cmd.COMMIT=${src.rev}"
];
proxyVendor = true; # darwin/linux hash mismatch
vendorHash = "sha256-h7wtQDw8kixqGK5RE9YQ6a/I3yRO1k/6qcHX/K4M6fc=";
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd deck \
--bash <($out/bin/deck completion bash) \
--fish <($out/bin/deck completion fish) \
--zsh <($out/bin/deck completion zsh)
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Configuration management and drift detection tool for Kong";
homepage = "https://github.com/Kong/deck";
license = lib.licenses.asl20;
mainProgram = "deck";
maintainers = with lib.maintainers; [ liyangau ];
};
}

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchFromGitHub,
SDL2,
SDL2_image,
unixtools,
multimarkdown,
}:
stdenv.mkDerivation rec {
pname = "decker";
version = "1.60";
src = fetchFromGitHub {
owner = "JohnEarnest";
repo = "Decker";
rev = "v${version}";
hash = "sha256-A8lsQs3fZm8XREHx2IPRNWZp4tTZ4Jya30+gBT6xME8=";
};
buildInputs = [
SDL2
SDL2_image
multimarkdown
unixtools.xxd
];
doCheck = true;
postPatch = ''
patchShebangs ./scripts
'';
buildPhase = ''
runHook preBuild
make lilt
make decker
make docs
runHook postBuild
'';
env.NIX_CFLAGS_COMPILE = toString (
lib.optionals stdenv.cc.isClang [
"-Wno-error=implicit-const-int-float-conversion"
]
);
installPhase = ''
runHook preInstall
install -Dm0755 ./c/build/lilt -t $out/bin
install -Dm0755 ./c/build/decker -t $out/bin
install -Dm0644 ./syntax/vim/ftdetect/lil.vim -t $out/share/vim-plugins/decker/ftdetect
install -Dm0644 ./syntax/vim/syntax/lil.vim -t $out/share/vim-plugins/decker/syntax
# Fixing the permissions of the installed files on the documentation.
chmod a-x ./docs/images/* \
./docs/*.md \
./examples/decks/*.deck \
./examples/lilt/*.lil
# This example has a shebang so we'll leave it as an executable.
chmod a+x ./examples/lilt/podcasts.lil
mkdir -p $out/share/doc/decker
cp -r ./docs/*.html ./docs/images ./examples $out/share/doc/decker
runHook postInstall
'';
checkPhase = ''
runHook preCheck
make test
runHook postCheck
'';
meta = with lib; {
homepage = "https://beyondloom.com/decker";
description = "Multimedia platform for creating and sharing interactive documents";
license = licenses.mit;
mainProgram = "decker";
platforms = platforms.all;
maintainers = with maintainers; [ foo-dogsquared ];
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
buildGoModule,
fetchFromGitHub,
makeWrapper,
roboto,
}:
buildGoModule rec {
pname = "deckmaster";
version = "0.9.0";
src = fetchFromGitHub {
owner = "muesli";
repo = "deckmaster";
tag = "v${version}";
hash = "sha256-1hZ7yAKTvkk20ho+QOqFEtspBvFztAtfmITs2uxhdmQ=";
};
vendorHash = "sha256-DFssAic2YtXNH1Jm6zCDv1yPNz3YUXaFLs7j7rNHhlE=";
proxyVendor = true;
nativeBuildInputs = [
makeWrapper
];
ldflags = [
"-s"
"-w"
];
# Let the app find Roboto-*.ttf files (hard-coded file names).
postFixup = ''
wrapProgram $out/bin/deckmaster \
--prefix XDG_DATA_DIRS : "${roboto.out}/share/" \
'';
meta = {
description = "Application to control your Elgato Stream Deck on Linux";
mainProgram = "deckmaster";
homepage = "https://github.com/muesli/deckmaster";
changelog = "https://github.com/muesli/deckmaster/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,43 @@
{
fetchFromGitHub,
buildNpmPackage,
lib,
chromium,
}:
buildNpmPackage rec {
name = "decktape";
version = "3.15.0";
src = fetchFromGitHub {
owner = "astefanutti";
repo = "decktape";
rev = "v${version}";
hash = "sha256-SsdjqkMEVD0pVgIZ9Upmrz/1KOWcb1KUy/v/xTCVGc0=";
};
npmDepsHash = "sha256-Z5fLGMvxVhM8nW81PQ5ZFPHK6m2uoYUv0A4XsTa3Z2Y=";
npmPackFlags = [ "--ignore-scripts" ];
dontNpmBuild = true;
env.PUPPETEER_SKIP_DOWNLOAD = 1;
postFixup = ''
wrapProgram $out/bin/decktape \
--add-flags "--chrome-path ${chromium}/bin/chromium" \
--set PATH ${
lib.makeBinPath [
chromium
]
}
'';
meta = {
description = "High-quality PDF exporter for HTML presentation frameworks";
mainProgram = "decktape";
homepage = "https://github.com/astefanutti/decktape";
changelog = "https://github.com/astefanutti/decktape/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fidgetingbits ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
scsh,
feh,
xorg,
xdg-user-dirs,
}:
stdenv.mkDerivation {
pname = "deco";
version = "0-unstable-2025-07-07";
src = fetchFromGitHub {
owner = "vedatechnologiesinc";
repo = "deco";
rev = "2fd28241ed28c07b9d641061d4e1bf3cacfcc7a0";
hash = "sha256-kjXEvgYO1p/dX9nXQ3HHcXmJdtxDM6xzKqDQu3yM4Tw=";
};
installPhase = ''
mkdir -p $out/bin
cp deco $out/bin
chmod +x $out/bin/deco
'';
postFixup = ''
substituteInPlace $out/bin/deco --replace-fail "/usr/bin/env scsh" "${scsh}/bin/scsh"
substituteInPlace $out/bin/deco --replace-fail "feh" "${feh}/bin/feh"
substituteInPlace $out/bin/deco --replace-fail "xdpyinfo" "${xorg.xdpyinfo}/bin/xdpyinfo"
substituteInPlace $out/bin/deco --replace-fail "xdg-user-dir" "${xdg-user-dirs}/bin/xdg-user-dir"
'';
meta = {
homepage = "https://github.com/vedatechnologiesinc/deco";
description = "Simple root image setter";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.ebzzry ];
platforms = lib.platforms.unix;
mainProgram = "deco";
};
dontBuild = true;
}

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "decode-spam-headers";
version = "2022-09-22-unreleased";
src = fetchFromGitHub {
owner = "mgeeky";
repo = "decode-spam-headers";
rev = "492b6e744475cd5d3dd68a8140bc3478244b7df1";
sha256 = "sha256-gBDkvlZCndQjochn6TZtM/Lanza64LqMjNnLjn+pPR4=";
};
format = "other";
outputs = [
"out"
"doc"
];
installPhase = ''
install -D decode-spam-headers.py $out/bin/decode-spam-headers
mkdir -p $doc/share/doc/${pname}
mv \
README.md \
img/ \
$doc/share/doc/${pname}
'';
propagatedBuildInputs = [
python3Packages.python-dateutil
python3Packages.tldextract
python3Packages.packaging
python3Packages.dnspython
python3Packages.requests
python3Packages.colorama
];
meta = with lib; {
homepage = "https://github.com/mgeeky/decode-spam-headers/";
description = "Script that helps you understand why your E-Mail ended up in Spam";
mainProgram = "decode-spam-headers";
longDescription = ''
Whether you are trying to understand why a specific e-mail ended up in
SPAM/Junk for your daily Administrative duties or for your Red-Team
Phishing simulation purposes, this script is there for you to help!
This tool accepts on input an *.EML or *.txt file with all the SMTP
headers. It will then extract a subset of interesting headers and using
105+ tests will attempt to decode them as much as possible.
This script also extracts all IPv4 addresses and domain names and performs
full DNS resolution of them.
Resulting output will contain useful information on why this e-mail might
have been blocked.
'';
license = licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
openssl,
}:
stdenv.mkDerivation {
pname = "decoder";
version = "unstable-2021-11-20";
src = fetchFromGitHub {
owner = "PeterPawn";
repo = "decoder";
rev = "da0f826629d4e7b873f9d1a39f24c50ff0a68cd2";
sha256 = "sha256-1sT1/iwtc2ievmLuNuooy9b14pTs1ZC5noDwzFelk7w=";
};
patches = [
# Pull fix pending upstream inclusion for -fno-common toolchains:
# https://github.com/PeterPawn/decoder/pull/29
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/PeterPawn/decoder/commit/843ac477c31108023d8008581bf91c5a3acc1859.patch";
sha256 = "sha256-rRylz8cxgNyPSqL/THdgEBpzcVx1K+xbjUn4PwP9Jn4=";
})
];
buildInputs = [
openssl
];
makeFlags = [ "OPENSSL=y" ];
installPhase = ''
runHook preInstall
install -Dm755 src/decoder "$out/bin/decoder"
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/PeterPawn/decoder";
description = ''"secrets" decoding for FRITZ!OS devices'';
mainProgram = "decoder";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ Luflosi ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
pkgs,
stdenv,
fetchFromGitHub,
libusb1,
pkg-config,
}:
let
dediprogVersion = "1.14.21,x";
dediprogHash = "sha256-tz5qLN74IbUcvj2nXzR6Q7Nh9l/LAUy/6h43J+o8dvc=";
in
stdenv.mkDerivation (finalAttrs: {
pname = "dediprog-sf100-linux";
version = finalAttrs.dediprogVersion;
inherit dediprogVersion dediprogHash;
src = fetchFromGitHub {
owner = "DediProgSW";
repo = "SF100Linux";
rev = "V${finalAttrs.dediprogVersion}";
hash = finalAttrs.dediprogHash;
};
buildInputs = [ libusb1 ];
nativeBuildInputs = [ pkg-config ];
doInstallCheck = true;
udevRules = pkgs.writeText "dediprog.rules" ''
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="dada", MODE="660", GROUP="plugdev"
'';
installPhase = ''
runHook preInstall
install -Dm0755 ./dpcmd -t $out/bin
install -Dm0644 ./ChipInfoDb.dedicfg -t $out/share/DediProg
install -Dm0644 ${finalAttrs.udevRules} -D $out/lib/udev/rules.d/60-dediprog.rules
runHook postInstall
'';
meta = {
homepage = "https://github.com/DediProgSW/SF100Linux";
description = "Linux software for DediProg SF100/SF600 programmers";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ thillux ];
};
})

View File

@@ -0,0 +1,13 @@
diff --git a/Makefile b/Makefile
index c9c56ec..75654f7 100644
--- a/Makefile
+++ b/Makefile
@@ -29,7 +29,7 @@ CFLAGS += \
-mtune=generic \
-O \
'-DVERSION="$(VERSION)"' \
- '-DBUILD_DATE="$(shell date '+%Y%m%d')"'
+ '-DBUILD_DATE="19700101"'
ENTITLEMENT_FLAGS =

View File

@@ -0,0 +1,18 @@
Entitlements & code signature are only needed
for ASAN and other debugging tools.
See official README for more details.
diff --git a/Makefile b/Makefile
index c9c56ec..36b81e0 100644
--- a/Makefile
+++ b/Makefile
@@ -63,9 +63,6 @@ dedup.x86_64: CFLAGS += -target x86_64-apple-macos11
dedup dedup.arm dedup.x86_64: $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $^
- mv $@ $@.unsigned
- codesign -s - -v -f $(ENTITLEMENT_FLAGS) $@.unsigned
- mv $@.unsigned $@
dedup.universal:
rm -f *.o

View File

@@ -0,0 +1,42 @@
{
stdenv,
lib,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dedup-darwin";
version = "0.0.6";
src = fetchFromGitHub {
owner = "ttkb-oss";
repo = "dedup";
tag = "release-${finalAttrs.version}";
hash = "sha256-/qVrZVSVJPANMuKphbekB4p4ehjrOg6097yvjdIdl7I=";
};
patches = [
./build-date-fix.patch
./no-codesign.patch
];
postPatch = ''
# Fix the prefix
substituteInPlace Makefile --replace-fail \
"PREFIX ?= /usr/local" "PREFIX ?= ${placeholder "out"}"
'';
preInstall = ''
# Install complains of missing directories, hence this fix.
mkdir -p $out/{bin,share/man/man1}
'';
meta = {
description = "Darwin utility to replace duplicate file data with a copy-on-write clone";
homepage = "https://github.com/ttkb-oss/dedup";
license = lib.licenses.bsd2;
maintainers = [ lib.maintainers.matteopacini ];
platforms = lib.platforms.darwin;
mainProgram = "dedup";
};
})

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
lz4,
snappy,
libsodium,
# For testing
coreutils,
gawk,
}:
stdenv.mkDerivation rec {
pname = "dedup";
version = "2.0";
src = fetchurl {
url = "https://dl.2f30.org/releases/${pname}-${version}.tar.gz";
sha256 = "0n5kkni4d6blz3s94y0ddyhijb74lxv7msr2mvdmj8l19k0lrfh1";
};
makeFlags = [
"CC:=$(CC)"
"PREFIX=${placeholder "out"}"
"MANPREFIX=${placeholder "out"}/share/man"
];
buildInputs = [
lz4
snappy
libsodium
];
doCheck = true;
nativeCheckInputs = [
coreutils
gawk
];
checkTarget = "test";
meta = with lib; {
description = "Data deduplication program";
homepage = "https://git.2f30.org/dedup/file/README.html";
license = with licenses; [
bsd0
isc
];
maintainers = with maintainers; [ dtzWill ];
};
}

View File

@@ -0,0 +1,29 @@
From 7bc49f8edd9a49d675ee5b163ab61b405e2d0258 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Thu, 7 Oct 2021 21:42:26 +0200
Subject: [PATCH] Fix build with Vala 0.54
Vala codegen now emits constructor methods so we need to skip @new
so that we can use a custom one from our VAPI overrides.
https://gitlab.gnome.org/GNOME/vala/-/commit/472765b90cd98c1a628975d20005c46352d665f8
---
vapi/Dee-1.0.metadata | 2 ++
1 file changed, 2 insertions(+)
diff --git a/vapi/Dee-1.0.metadata b/vapi/Dee-1.0.metadata
index 7e80de0..793ffd8 100644
--- a/vapi/Dee-1.0.metadata
+++ b/vapi/Dee-1.0.metadata
@@ -1,6 +1,8 @@
GListResultSet skip
GListResultSetClass skip
+Filter
+ .new skip
FilterModel
.filter unowned
Model
--
2.33.0

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchgit,
fetchpatch,
pkg-config,
glib,
icu,
gobject-introspection,
dbus-glib,
vala,
python3,
autoreconfHook,
gtk-doc,
}:
stdenv.mkDerivation rec {
pname = "dee";
version = "unstable-2017-06-16";
outputs = [
"out"
"dev"
"py"
];
src = fetchgit {
url = "https://git.launchpad.net/ubuntu/+source/dee";
rev = "import/1.2.7+17.10.20170616-4ubuntu3";
sha256 = "09blrdj7229vscp4mkg0fabmcvc6jdpamvblrq86rbky7j2nnwlk";
};
patches = [
"${src}/debian/patches/gtkdocize.patch"
"${src}/debian/patches/strict-prototype.patch"
"${src}/debian/patches/vapi-skip-properties.patch"
./0001-Fix-build-with-Vala-0.54.patch
# Fixes glib 2.62 deprecations
(fetchpatch {
name = "dee-1.2.7-deprecated-g_type_class_add_private.patch";
url = "https://src.fedoraproject.org/rpms/dee/raw/1a9a4ce3377074fabfca653ffe0287cd73aef82f/f/dee-1.2.7-deprecated-g_type_class_add_private.patch";
sha256 = "13nyprq7bb7lnzkcb7frcpzidbl836ycn5bvmwa2k0nhmj6ycbx5";
})
];
nativeBuildInputs = [
pkg-config
vala
autoreconfHook
gobject-introspection
python3
gtk-doc
];
buildInputs = [
glib
icu
dbus-glib
];
configureFlags = [
"--disable-gtk-doc"
"--with-pygi-overrides-dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
];
# Compilation fails after a change in glib where
# g_string_free now returns a value
env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
enableParallelBuilding = true;
meta = with lib; {
description = "Library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus";
mainProgram = "dee-tool";
homepage = "https://launchpad.net/dee";
license = licenses.lgpl3;
platforms = platforms.linux;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
libudev-zero,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "deepcool-digital-linux";
version = "0.8.3-alpha";
src = fetchFromGitHub {
owner = "Nortank12";
repo = "deepcool-digital-linux";
tag = "v${finalAttrs.version}";
hash = "sha256-Whmjd6NCOUkE7hM3FaN7grMwcC/suL7AJDVSgnZSKzM=";
};
cargoHash = "sha256-K1pEbUyENPUS4QK0lztWmw8ov1fGrx8KHdODmSByfek=";
buildInputs = [ libudev-zero ];
nativeBuildInputs = [
pkg-config
];
doInstallCheck = false; # FIXME: version cmd returns 0.8.3, set to true when we switch to a stable version
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgramArg = "--version";
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/Nortank12/deepcool-digital-linux/releases/tag/v${finalAttrs.version}";
description = "Linux version for the DeepCool Digital Windows software";
homepage = "https://github.com/Nortank12/deepcool-digital-linux";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ NotAShelf ];
mainProgram = "deepcool-digital-linux";
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,84 @@
diff --git a/Cargo.lock b/Cargo.lock
index 48eb89c..ae318a6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1073,9 +1073,12 @@ dependencies = [
[[package]]
name = "deranged"
-version = "0.3.8"
+version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
[[package]]
name = "derivative"
@@ -2805,6 +2808,12 @@ dependencies = [
"serde",
]
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
[[package]]
name = "num-derive"
version = "0.3.3"
@@ -3266,6 +3275,12 @@ dependencies = [
"windows-sys 0.48.0",
]
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
[[package]]
name = "ppv-lite86"
version = "0.2.17"
@@ -4134,12 +4149,14 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.28"
+version = "0.3.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
dependencies = [
"deranged",
"itoa",
+ "num-conv",
+ "powerfmt",
"serde",
"time-core",
"time-macros",
@@ -4147,16 +4164,17 @@ dependencies = [
[[package]]
name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
-version = "0.2.14"
+version = "0.2.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
dependencies = [
+ "num-conv",
"time-core",
]

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "deepfilternet";
version = "0.5.6";
src = fetchFromGitHub {
owner = "Rikorose";
repo = "DeepFilterNet";
rev = "v${version}";
hash = "sha256-5bYbfO1kmduNm9YV5niaaPvRIDRmPt4QOX7eKpK+sWY=";
};
cargoPatches = [
# Fix compilation with Rust 1.80 (https://github.com/NixOS/nixpkgs/issues/332957)
./cargo-lock-bump-time.patch
];
cargoHash = "sha256-I0hY2WmaHu/HKQJHyZp0C6wIi0++w5dFeExVMyhInJY=";
# only the ladspa plugin part has been packaged so far...
buildAndTestSubdir = "ladspa";
postInstall = ''
mkdir $out/lib/ladspa
mv $out/lib/libdeep_filter_ladspa${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/ladspa/
'';
meta = {
description = "Noise supression using deep filtering";
homepage = "https://github.com/Rikorose/DeepFilterNet";
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [ ralismark ];
changelog = "https://github.com/Rikorose/DeepFilterNet/releases/tag/${src.rev}";
};
}

View File

@@ -0,0 +1,97 @@
{
copyDesktopItems,
fetchurl,
glib,
adwaita-icon-theme,
gtk3,
jre,
lib,
makeDesktopItem,
stdenv,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "deepgit";
version = "4.4";
src = fetchurl {
url = "https://www.syntevo.com/downloads/deepgit/deepgit-linux-${
lib.replaceStrings [ "." ] [ "_" ] version
}.tar.gz";
hash = "sha256-ILqwXDyW7/hZzoSxxaxv4bF5xsB/JFaOBYAJFb7xmdk=";
};
nativeBuildInputs = [
copyDesktopItems
wrapGAppsHook3
];
buildInputs = [
adwaita-icon-theme
gtk3
jre
];
preFixup = ''
gappsWrapperArgs+=(
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
glib
gtk3
]
}
--set DEEPGIT_JAVA_HOME ${jre}
)
patchShebangs bin/deepgit.sh
'';
desktopItems = [
(makeDesktopItem rec {
name = pname;
desktopName = "DeepGit";
keywords = [ "git" ];
comment = "Git-Client";
categories = [
"Development"
"RevisionControl"
];
terminal = false;
startupNotify = true;
startupWMClass = desktopName;
exec = pname;
mimeTypes = [
"x-scheme-handler/${pname}"
"x-scheme-handler/sourcetree"
];
icon = pname;
})
];
installPhase = ''
runHook preInstall
mkdir -pv $out/{bin,share/icons/hicolor/scalable/apps/}
cp -a lib license.html $out
mv bin/deepgit.sh $out/bin/deepgit
for icon_size in 32 48 64 128 256; do
path=$icon_size'x'$icon_size
icon=bin/deepgit-$icon_size.png
mkdir -p $out/share/icons/hicolor/$path/apps
cp $icon $out/share/icons/hicolor/$path/apps/deepgit.png
done
runHook postInstall
'';
meta = with lib; {
description = "Tool to investigate the history of source code";
homepage = "https://www.syntevo.com/deepgit";
changelog = "https://www.syntevo.com/deepgit/changelog.txt";
license = licenses.unfree;
maintainers = with maintainers; [ urandom ];
platforms = platforms.linux;
mainProgram = "deepgit";
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "deepsecrets";
version = "1.0.6";
pyproject = true;
src = fetchFromGitHub {
owner = "avito-tech";
repo = "deepsecrets";
tag = "v${version}";
hash = "sha256-VfIsPgStHcIYGbfrOs1mvgoq0ZoVSZwILFVBeMt/5Jc=";
};
pythonRelaxDeps = [
"pyyaml"
"regex"
"mmh3"
];
build-system = with python3.pkgs; [ poetry-core ];
dependencies = with python3.pkgs; [
dotwiz
mmh3
ordered-set
pydantic_1
pygments
pyyaml
regex
];
nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
disabledTests = [
# assumes package is built in /app (docker?), and not /build/${src.name} (nix sandbox)
"test_1_cli"
"test_config"
"test_basic_info"
];
pythonImportsCheck = [ "deepsecrets" ];
meta = {
description = "Secrets scanner that understands code";
homepage = "https://github.com/avito-tech/deepsecrets";
changelog = "https://github.com/avito-tech/deepsecrets/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "deepsecrets";
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
installShellFiles,
buildGoModule,
fetchFromGitHub,
versionCheckHook,
}:
buildGoModule rec {
pname = "deepsource";
version = "0.10.1";
src = fetchFromGitHub {
owner = "DeepSourceCorp";
repo = "cli";
rev = "v${version}";
hash = "sha256-eJRoy/mgcdYgUV9covQbWwn5sk1hJB1UkKnNd/hjuEY=";
};
nativeBuildInputs = [ installShellFiles ];
doCheck = true;
checkFlags =
let
# Skip tests that require network access
skippedTests = [
"TestReportKeyValueWorkflow"
"TestReportAnalyzerTypeWorkflow"
"TestReportKeyValueFileWorkflow"
];
in
[ "-skip=^${builtins.concatStringsSep "$|^" skippedTests}$" ];
vendorHash = "sha256-SsMq4ngq3sSOL28ysHTxTF4CT9sIcCIW7yIhBxIPrNs=";
ldflags = [
"-s"
"-w"
"-X=main.version=${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd deepsource \
--bash <($out/bin/deepsource completion bash) \
--fish <($out/bin/deepsource completion fish) \
--zsh <($out/bin/deepsource completion zsh)
'';
doInstallCheck = true;
versionCheckProgramArg = "version";
nativeInstallCheckInputs = [
versionCheckHook
];
meta = {
description = "Command line interface to DeepSource, the code health platform";
mainProgram = "deepsource";
homepage = "https://github.com/DeepSourceCorp/cli";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ nipeharefa ];
};
}

View File

@@ -0,0 +1,66 @@
{
lib,
python3Packages,
fetchFromGitHub,
addBinToPathHook,
}:
python3Packages.buildPythonApplication rec {
pname = "deeptools";
version = "3.5.6";
pyproject = true;
src = fetchFromGitHub {
owner = "deeptools";
repo = "deepTools";
tag = version;
hash = "sha256-dxXlOvOjF4KSc5YO+1A5hlp95sfeyPSbmp93tihm7Vo=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
numpy
scipy
matplotlib
pysam
numpydoc
pybigwig
py2bit
plotly
deeptoolsintervals
];
nativeCheckInputs = with python3Packages; [
pytestCheckHook
addBinToPathHook
];
disabledTestPaths = [
# tests trip on `len(sys.argv) == 1`
"deeptools/test/test_bigwigAverage.py"
"deeptools/test/test_bigwigCompare_and_multiBigwigSummary.py"
"deeptools/test/test_heatmapper.py"
"deeptools/test/test_multiBamSummary.py"
];
meta = {
homepage = "https://deeptools.readthedocs.io/en/develop";
description = "Tools for exploring deep DNA sequencing data";
longDescription = ''
deepTools contains useful modules to process the mapped reads data for multiple
quality checks, creating normalized coverage files in standard bedGraph and bigWig
file formats, that allow comparison between different files (for example, treatment and control).
Finally, using such normalized and standardized files, deepTools can create many
publication-ready visualizations to identify enrichments and for functional
annotations of the genome.
'';
license = with lib.licenses; [
mit
bsd3
];
maintainers = with lib.maintainers; [ scalavision ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
}:
stdenv.mkDerivation rec {
pname = "deer";
version = "1.4";
src = fetchFromGitHub {
owner = "Vifon";
repo = "deer";
rev = "v${version}";
sha256 = "1xnbnbi0zk2xsyn8dqsmyxqlfnl36pb1wwibnlp0dxixw6sfymyl";
};
strictDeps = true;
prePatch = ''
substituteInPlace deer \
--replace " perl " " ${perl}/bin/perl "
'';
patches = [ ./realpath.patch ];
installPhase = ''
mkdir -p $out/share/zsh/site-functions/
cp deer $out/share/zsh/site-functions/
'';
meta = with lib; {
description = "Ranger-like file navigation for zsh";
homepage = "https://github.com/Vifon/deer";
license = licenses.gpl3Plus;
maintainers = [ maintainers.vyp ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,28 @@
From ceadb2f11119143af4f590ea6b05a531483219b5 Mon Sep 17 00:00:00 2001
From: xd1le <elisp.vim@gmail.com>
Date: Wed, 30 Aug 2017 17:27:20 +1000
Subject: [PATCH] use realpath instead of python to calculate relative path
---
deer | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/deer b/deer
index 3d89dea..804a871 100644
--- a/deer
+++ b/deer
@@ -259,10 +259,7 @@ deer-get-relative()
{
local TMP
TMP=${1:-${DEER_DIRNAME%/}/$DEER_BASENAME[$DEER_DIRNAME]}
- TMP="`python -c '
-import sys, os
-print(os.path.relpath(sys.argv[1], sys.argv[2]))
-' $TMP ${DEER_STARTDIR:-$PWD}`"
+ TMP="`realpath --relative-to=${DEER_STARTDIR:-$PWD} $TMP`"
print -R $TMP:q
}
--
2.14.1

View File

@@ -0,0 +1,129 @@
{
### Tools
lib,
stdenvNoCC,
fetchurl,
makeWrapper,
autoPatchelfHook,
dpkg,
gnutar,
### Libs
xorg,
libxkbcommon,
glib,
nss,
dbus,
at-spi2-atk,
cups,
gtk3,
pango,
cairo,
expat,
systemdLibs,
alsa-lib,
nwjs,
libGL,
}:
stdenvNoCC.mkDerivation rec {
pname = "deezer-enhanced";
version = "1.3.0";
src = fetchurl {
url = "https://github.com/duzda/deezer-enhanced/releases/download/v${version}/deezer-enhanced_${version}_amd64.deb";
hash = "sha256-zHgrLzPByAPww0aSEDETsddX71O/GU80AZH729YjQQ0=";
};
nativeBuildInputs = [
### To unpack deezer-enhanced
dpkg
gnutar
makeWrapper
autoPatchelfHook
];
buildInputs = [
### Xorg libs
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
### Systemd libs
systemdLibs
dbus
### Other libs
libxkbcommon
nss
glib
at-spi2-atk
cups
gtk3
libGL
nwjs # For libffmpeg.so
];
unpackPhase = ''
runHook preUnpack
dpkg-deb --fsys-tarfile $src | tar --no-same-owner --no-same-permissions -xvf -
runHook postUnpack
'';
installPhase = ''
runHook preInstall
### Create directory and copy files
mkdir -p $out
mv usr/* $out
### Wrap deezer-enhanced to include all libraries in the environment
wrapProgram $out/bin/${pname} \
--set LD_LIBRARY_PATH ${
lib.makeLibraryPath [
### Xorg libs
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
### Systemd libs
systemdLibs
dbus
### Other libs
libxkbcommon
nss
glib
at-spi2-atk
cups
gtk3
nwjs
libGL
]
}
runHook postInstall
'';
meta = {
homepage = "https://github.com/duzda/deezer-enhanced";
changelog = "https://github.com/duzda/deezer-enhanced/releases/tag/v${version}";
description = "Unofficial application for Deezer with enhanced features";
license = lib.licenses.mit;
platforms = [ "x86_64-linux" ];
mainProgram = "deezer-enhanced";
maintainers = with lib.maintainers; [ minegameYTB ];
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
python3,
fetchFromGitHub,
pkgs,
}:
python3.pkgs.buildPythonApplication rec {
pname = "deface";
version = "1.5.0";
pyproject = true;
disabled = python3.pythonOlder "3.8";
src = fetchFromGitHub {
owner = "ORB-HD";
repo = "deface";
tag = "v${version}";
hash = "sha256-/mXWeL6OSgW4BMXtAZD/3UxQUGt7UE5ZvH8CXNCueJo=";
};
build-system = with python3.pkgs; [
setuptools-scm
];
dependencies = with python3.pkgs; [
imageio
imageio-ffmpeg
numpy
onnx
onnxruntime # Nixpkgs onnxruntime is missing CUDA support
opencv-python
scikit-image
tqdm
];
# Native onnxruntime lib used by Python module onnxruntime can't find its other libs without this
makeWrapperArgs = [
''--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ pkgs.onnxruntime ]}"''
];
pythonImportsCheck = [
"deface"
"onnx"
"onnxruntime"
];
meta = {
description = "Video anonymization by face detection";
homepage = "https://github.com/ORB-HD/deface";
changelog = "https://github.com/ORB-HD/deface/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ lurkki ];
mainProgram = "deface";
# terminate called after throwing an instance of 'onnxruntime::OnnxRuntimeException'
broken = stdenv.hostPlatform.system == "aarch64-linux";
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "defaultbrowser";
version = "unstable-2020-07-23";
src = fetchFromGitHub {
owner = "kerma";
repo = "defaultbrowser";
rev = "d2860c00dd7fbb5d615232cc819d7d492a6a6ddb";
sha256 = "sha256-SelUQXoKtShcDjq8uKg3wM0kG2opREa2DGQCDd6IsOQ=";
};
makeFlags = [
"CC=cc"
"PREFIX=$(out)"
];
meta = with lib; {
mainProgram = "defaultbrowser";
description = "Command line tool for getting and setting a default browser (HTTP handler) in Mac OS X";
homepage = "https://github.com/kerma/defaultbrowser";
platforms = platforms.darwin;
maintainers = [ ];
license = licenses.mit;
};
}

View File

@@ -0,0 +1,30 @@
{
buildNpmPackage,
fetchFromGitHub,
gitUpdater,
lib,
}:
buildNpmPackage rec {
pname = "defuddle-cli";
version = "0.6.4";
src = fetchFromGitHub {
owner = "kepano";
repo = "defuddle-cli";
tag = "${version}";
hash = "sha256-28XmpFKzBKNhRkPOGaacJVw8hjQUZq2nwuR0vNo8aW0=";
};
npmDepsHash = "sha256-rRo+ty/E09OS+cWDnKQkROEdDc0hiB5g1h/+NbJe+/M=";
passthru.updateScript = gitUpdater { };
meta = {
description = "Command line utility to extract clean html, markdown and metadata from web pages";
homepage = "https://github.com/kepano/defuddle-cli";
license = lib.licenses.mit;
mainProgram = "defuddle";
maintainers = with lib.maintainers; [ surfaceflinger ];
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
}:
buildNpmPackage rec {
pname = "degit";
version = "2.8.4";
src = fetchFromGitHub {
owner = "Rich-Harris";
repo = "degit";
rev = "v${version}";
hash = "sha256-Vw/gtmKywi5faSCs7Wek80nmnqcPHXlQarD5qMwlsQE=";
};
npmDepsHash = "sha256-42cM31C2c1Gr7HWOowMUTEUEyL0mGnyl5fyQECcz1Sw=";
meta = {
changelog = "https://github.com/Rich-Harris/degit/blob/${src.rev}/CHANGELOG.md";
description = "Make copies of git repositories";
homepage = "https://github.com/Rich-Harris/degit";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ kidonng ];
mainProgram = "degit";
};
}

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
python3,
xmlto,
docbook-xsl-nons,
fetchFromGitLab,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "deheader";
version = "1.11";
outputs = [
"out"
"man"
];
src = fetchFromGitLab {
owner = "esr";
repo = "deheader";
rev = version;
hash = "sha256-RaWU6075PvgxbsH1+Lt/CEDAcl9Vx6kxcZAA/A/Af4o=";
};
buildInputs = [ python3 ];
nativeBuildInputs = [
xmlto
docbook-xsl-nons
installShellFiles
];
# With upstream Makefile, xmlto is called without "--skip-validation". It
# makes it require a lot of dependencies, yet ultimately it fails
# nevertheless in attempt to fetch something from SourceForge.
#
# Need to set "foundMakefile" so "make check" tests are run.
buildPhase = ''
runHook preBuild
xmlto man --skip-validation deheader.xml
patchShebangs ./deheader
foundMakefile=1
runHook postBuild
'';
doCheck = true;
installPhase = ''
runHook preInstall
install -Dm755 ./deheader -t $out/bin
installManPage ./deheader.1
runHook postInstall
'';
meta = with lib; {
description = "Tool to find and optionally remove unneeded includes in C or C++ source files";
mainProgram = "deheader";
longDescription = ''
This tool takes a list of C or C++ sourcefiles and generates a report
on which #includes can be omitted from them -- the test, for each foo.c
or foo.cc or foo.cpp, is simply whether 'rm foo.o; make foo.o' returns a
zero status. Optionally, with the -r option, the unneeded headers are removed.
The tool also reports on headers required for strict portability.
'';
homepage = "http://catb.org/~esr/deheader";
changelog = "https://gitlab.com/esr/deheader/-/blob/master/NEWS.adoc";
license = licenses.bsd2;
maintainers = with maintainers; [ kaction ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
coreutils,
curl,
diffutils,
gawk,
gnugrep,
gnused,
hexdump,
openssl,
makeWrapper,
fetchFromGitHub,
installShellFiles,
}:
stdenv.mkDerivation rec {
pname = "dehydrated";
version = "0.7.2";
src = fetchFromGitHub {
owner = "lukas2511";
repo = "dehydrated";
rev = "v${version}";
sha256 = "sha256-xDDYqP6oxJt0NPgHtHV1xQKUxVc8JQxWekXwxezggtE=";
};
nativeBuildInputs = [
makeWrapper
installShellFiles
];
installPhase = ''
installManPage docs/man/dehydrated.1
mkdir -p "$out/share/docs/dehydrated"
cp docs/*.md "$out/share/docs/dehydrated"
cp -r docs/examples "$out/share/docs/dehydrated"
cp {CHANGELOG,LICENSE,README.md} "$out/share/docs/dehydrated"
mkdir -p $out/bin
cp -a dehydrated $out/bin
wrapProgram "$out/bin/dehydrated" --prefix PATH : "${
lib.makeBinPath [
openssl
coreutils
gnused
gnugrep
diffutils
curl
gawk
hexdump
]
}"
'';
meta = with lib; {
inherit (src.meta) homepage;
description = "Letsencrypt/acme client implemented as a shell-script";
mainProgram = "dehydrated";
license = licenses.mit;
platforms = platforms.all;
maintainers = [ maintainers.pstn ];
};
}

View File

@@ -0,0 +1,13 @@
--- a/libdeja/duplicity/DuplicityInstance.vala
+++ b/libdeja/duplicity/DuplicityInstance.vala
@@ -114,8 +114,8 @@ internal class DuplicityInstance : Object
// We already are pretty sure we don't have other duplicities in our
// archive directories, because we use our own and we ensure we only have
// one deja-dup running at a time via DBus.
var lockfile_glob = Shell.quote(cache_dir) + "/*/lockfile.lock";
- if (Posix.system("/bin/rm -f " + lockfile_glob) != 0)
+ if (Posix.system("@coreutils@/bin/rm -f " + lockfile_glob) != 0)
warning("Could not delete '%s'", lockfile_glob);
Process.spawn_async_with_pipes(null, real_argv, real_envp,
SpawnFlags.SEARCH_PATH |

View File

@@ -0,0 +1,102 @@
{
lib,
stdenv,
fetchFromGitLab,
replaceVars,
meson,
ninja,
pkg-config,
vala,
gettext,
itstool,
desktop-file-utils,
glib,
glib-networking,
gtk4,
coreutils,
libsoup_3,
libsecret,
libadwaita,
wrapGAppsHook4,
libgpg-error,
json-glib,
duplicity,
rclone,
restic,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "deja-dup";
version = "48.4";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "deja-dup";
rev = finalAttrs.version;
hash = "sha256-hFmuJqUHBMSsQW+a9GjI82wNOQjHt5f3rEkGUxYA6Y0=";
};
patches = [
(replaceVars ./fix-paths.patch {
inherit coreutils;
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
vala
gettext
itstool
desktop-file-utils
wrapGAppsHook4
];
buildInputs = [
libsoup_3
glib
glib-networking
gtk4
libsecret
libadwaita
libgpg-error
json-glib
];
mesonFlags = [
"-Dduplicity_command=${lib.getExe duplicity}"
"-Drclone_command=${lib.getExe rclone}"
"-Denable_restic=true"
"-Drestic_command=${lib.getExe restic}"
];
preFixup = ''
gappsWrapperArgs+=(
# Required by duplicity
--prefix PATH : "${lib.makeBinPath [ rclone ]}"
)
'';
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Simple backup tool";
longDescription = ''
Déjà Dup is a simple backup tool. It hides the complexity \
of backing up the Right Way (encrypted, off-site, and regular) \
and uses duplicity as the backend.
'';
homepage = "https://apps.gnome.org/DejaDup/";
changelog = "https://gitlab.gnome.org/World/deja-dup/-/releases/${finalAttrs.version}";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ jtojnar ];
teams = [ teams.gnome-circle ];
platforms = platforms.linux;
mainProgram = "deja-dup";
};
})

View File

@@ -0,0 +1,76 @@
{
fetchurl,
lib,
stdenv,
expect,
makeWrapper,
updateAutotoolsGnuConfigScriptsHook,
}:
stdenv.mkDerivation rec {
pname = "dejagnu";
version = "1.6.3";
src = fetchurl {
url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
sha256 = "1qx2cv6qkxbiqg87jh217jb62hk3s7dmcs4cz1llm2wmsynfznl7";
};
nativeBuildInputs = [
updateAutotoolsGnuConfigScriptsHook
makeWrapper
];
buildInputs = [ expect ];
# dejagnu-1.6.3 can't successfully run tests in source tree:
# https://wiki.linuxfromscratch.org/lfs/ticket/4871
preConfigure = ''
mkdir build
cd build
'';
configureScript = "../configure";
doCheck = !(with stdenv; isDarwin && isAarch64);
# Note: The test-suite *requires* /dev/pts among the `build-chroot-dirs' of
# the build daemon when building in a chroot. See
# <https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01056.html> for
# details.
# The test-suite needs to have a non-empty stdin:
# https://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html
checkPhase = ''
# Provide `runtest' with a log name, otherwise it tries to run
# `whoami', which fails when in a chroot.
LOGNAME="nix-build-daemon" make check < /dev/zero
'';
postInstall = ''
# 'runtest' and 'dejagnu' look up 'expect' in their 'bin' path
# first. We avoid use of 'wrapProgram' here because wrapping
# of shell scripts does not preserve argv[0] for schell scripts:
# https://sourceware.org/PR30052#c5
ln -s ${expect}/bin/expect $out/bin/expect
'';
meta = with lib; {
description = "Framework for testing other programs";
longDescription = ''
DejaGnu is a framework for testing other programs. Its purpose
is to provide a single front end for all tests. Think of it as a
custom library of Tcl procedures crafted to support writing a
test harness. A test harness is the testing infrastructure that
is created to support a specific program or tool. Each program
can have multiple testsuites, all supported by a single test
harness. DejaGnu is written in Expect, which in turn uses Tcl --
Tool command language.
'';
homepage = "https://www.gnu.org/software/dejagnu/";
license = licenses.gpl2Plus;
platforms = platforms.unix;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "dejsonlz4";
version = "1.1";
src = fetchFromGitHub {
owner = "avih";
repo = "dejsonlz4";
rev = "v${version}";
sha256 = "0ggs69qamaama5mid07mhp95m1x42wljdb953lrwfr7p8p6f8czh";
};
buildPhase = ''
${stdenv.cc.targetPrefix}cc -o dejsonlz4 src/dejsonlz4.c src/lz4.c
'';
installPhase = ''
mkdir -p $out/bin/
cp dejsonlz4 $out/bin/
'';
meta = with lib; {
description = "Decompress Mozilla Firefox bookmarks backup files";
homepage = "https://github.com/avih/dejsonlz4";
license = licenses.bsd2;
maintainers = with maintainers; [ mt-caret ];
platforms = platforms.all;
mainProgram = "dejsonlz4";
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
libGL,
libX11,
libXext,
libXrandr,
libXinerama,
libXcursor,
freetype,
alsa-lib,
cmake,
pkg-config,
gcc-unwrapped,
}:
stdenv.mkDerivation {
pname = "delayarchitect";
version = "0-unstable-2022-01-16";
src = fetchFromGitHub {
owner = "jpcima";
repo = "DelayArchitect";
rev = "5abf4dfb7f92ba604d591a2c388d2d69a9055fe3";
hash = "sha256-LoK2pYPLzyJF7tDJPRYer6gKHNYzvFvX/d99TuOPECo=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
libGL
libX11
libXext
libXrandr
libXinerama
libXcursor
freetype
alsa-lib
];
cmakeFlags = [
"-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
"-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
"-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
];
installPhase = ''
mkdir -p $out/lib/vst3
cd DelayArchitect_artefacts/Release
cp -r VST3/Delay\ Architect.vst3 $out/lib/vst3
'';
meta = with lib; {
homepage = "https://github.com/jpcima/DelayArchitect";
description = "Visual, musical editor for delay effects";
maintainers = [ maintainers.magnetophon ];
platforms = platforms.all;
license = licenses.gpl3Plus;
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
appstream,
cargo,
desktop-file-utils,
fetchFromGitea,
gitUpdater,
gtk4,
libadwaita,
libepoxy,
libglvnd,
meson,
mpv,
ninja,
openssl,
pkg-config,
rustPlatform,
rustc,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "delfin";
version = "0.4.8";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "avery42";
repo = "delfin";
rev = "v${version}";
hash = "sha256-2ussvPXMX4wGE9N+Zh8KYIjbbqEKkPaNymN1Oqj8w8U=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-zZc2+0oskptpWZE4fyVcR4QHxqzpj71GXMXNXMK4an0=";
};
postPatch = ''
substituteInPlace delfin/meson.build --replace-fail \
"'delfin' / rust_target / meson.project_name()" \
"'delfin' / '${stdenv.hostPlatform.rust.cargoShortTarget}' / rust_target / meson.project_name()"
'';
nativeBuildInputs = [
appstream
desktop-file-utils
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
cargo
rustc
wrapGAppsHook4
];
buildInputs = [
gtk4
libadwaita
libglvnd
libepoxy
mpv
openssl
];
mesonFlags = [
(lib.mesonOption "profile" "release")
];
# For https://codeberg.org/avery42/delfin/src/commit/820b466bfd47f71c12e9b2cabb698e8f78942f41/delfin/meson.build#L47-L48
env.CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTargetSpec;
passthru.updateScript = gitUpdater {
rev-prefix = "v";
};
meta = with lib; {
description = "Stream movies and TV shows from Jellyfin";
homepage = "https://www.delfin.avery.cafe/";
license = licenses.gpl3Only;
maintainers = with maintainers; [
colinsane
avery
];
mainProgram = "delfin";
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,98 @@
{
appstream,
buildNpmPackage,
cargo,
desktop-file-utils,
fetchFromGitHub,
gtk4,
gtksourceview5,
lib,
libadwaita,
meson,
ninja,
nix-update-script,
pkg-config,
rustPlatform,
rustc,
stdenv,
webkitgtk_6_0,
wrapGAppsHook4,
}:
let
d3-graphviz = buildNpmPackage rec {
pname = "d3-graphviz";
version = "5.6.0";
src = fetchFromGitHub {
owner = "magjac";
repo = "d3-graphviz";
tag = "v${version}";
hash = "sha256-MZhAzR6+GIBTsLPJq5NqaEPHjiBMgYBJ0hFbDPNPgFk=";
};
npmDepsHash = "sha256-J1kptumP/8UoiYDM+AJOYUne0OSkMXCTAXW3ZmavU4E=";
# keep the devDependencies, as Delineate imports d3 via node_modules
# https://github.com/SeaDve/Delineate/blob/v0.1.0/data/graph_view/index.html#L10-L11
npmPruneFlags = "--include=dev";
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "delineate";
version = "0.1.1";
src = fetchFromGitHub {
owner = "SeaDve";
repo = "Delineate";
tag = "v${finalAttrs.version}";
hash = "sha256-rYA5TKHX3QJHcUhaTFDpcXQ6tdaG3MbX8buvzV0V5iY=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit (finalAttrs) src;
hash = "sha256-6XBg9kbIr5k+TMQ/TE/qsAA5rKIevU9M1m+jsPrqfYw=";
};
# rename $out/src -> $out/opt
postPatch = ''
substituteInPlace ./meson.build --replace-fail \
"graphviewsrcdir = prefix / 'src/delineate/graph_view'" \
"graphviewsrcdir = prefix / 'opt/delineate/graph_view'"
'';
nativeBuildInputs = [
cargo
desktop-file-utils
gtk4
meson
ninja
pkg-config
rustPlatform.bindgenHook
rustPlatform.cargoSetupHook
rustc
wrapGAppsHook4
];
buildInputs = [
appstream
gtksourceview5
libadwaita
webkitgtk_6_0
];
postInstall = ''
ln -s ${d3-graphviz}/lib/node_modules/d3-graphviz $out/opt/delineate/graph_view/d3-graphviz
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "View and edit graphs";
homepage = "https://github.com/SeaDve/Delineate";
changelog = "https://github.com/SeaDve/Delineate/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.nekowinston ];
platforms = lib.platforms.linux;
mainProgram = "delineate";
};
})

View File

@@ -0,0 +1,20 @@
{
runCommand,
fetchurl,
rpm,
cpio,
}:
let
version = "1.3-1";
src = fetchurl {
url = "http://downloads.dell.com/printer/Dell-5130cdn-Color-Laser-${version}.noarch.rpm";
sha256 = "0pj32sj6jcdnpa5v75af0hnvx4z0ky0m1k2522cfdx4cb1r2lna9";
};
in
runCommand "Dell-5130cdn-Color-Laser-1.3-1" { } ''
mkdir -p usr/share/cups/model
${rpm}/bin/rpm2cpio ${src} | ${cpio}/bin/cpio -i
mkdir -p $out/share/ppd
mv usr/share/cups/model/Dell $out/share/ppd
''

View File

@@ -0,0 +1,121 @@
{
lib,
stdenv,
fetchurl,
dpkg,
autoPatchelfHook,
patchelfUnstable,
openssl,
}:
# Use techniques described in https://web.archive.org/web/20220904051329/https://tapesoftware.net/replace-symbol/
# Adapted from https://github.com/KenMacD/etc-nixos/blob/d3d28085586358a62b2bb4b427eb21aad05b5b23/dcc/default.nix
# Used https://github.com/NixOS/nixpkgs/pull/84926 as a template
# then converted to use autoPatchelfHook instead, and link with
# the dependencies from other pkgs.
let
version = "5.1.0-6";
unpacked = stdenv.mkDerivation (finalAttrs: {
inherit version;
pname = "dell-command-configure-unpacked";
src = fetchurl {
urls = [
"https://dl.dell.com/FOLDER12705845M/1/command-configure_${version}.ubuntu24_amd64.tar.gz"
"https://web.archive.org/web/20250421172156/https://dl.dell.com/FOLDER12705845M/1/command-configure_5.1.0-6.ubuntu24_amd64.tar.gz"
];
# The CDN blocks the Curl user-agent, so set to blank instead.
curlOpts = ''-A=""'';
hash = "sha256-MM6Djkz/VuVCLHGEji88Xq0vIV+AfqQkjNXz4zqFOtw=";
};
dontBuild = true;
nativeBuildInputs = [ dpkg ];
unpackPhase = ''
tar -xzf ${finalAttrs.src}
dpkg-deb -x command-configure_${version}.ubuntu24_amd64.deb command-configure
dpkg-deb -x srvadmin-hapi_9.5.0_amd64.deb srvadmin-hapi
'';
installPhase = ''
mkdir $out
cp -r . $out
'';
});
# Contains a fopen() wrapper for finding the firmware package
wrapperLibName = "wrapper-lib.so";
wrapperLib = stdenv.mkDerivation {
pname = "dell-command-configure-unpacked-wrapper-lib";
inherit version;
unpackPhase = ''
cp ${./wrapper-lib.c} wrapper-lib.c
'';
postPatch = ''
substitute wrapper-lib.c lib.c \
--subst-var-by to "${unpacked}/srvadmin-hapi/opt/dell/srvadmin/etc/omreg.d/omreg-hapi.cfg"
cc -fPIC -shared lib.c -o ${wrapperLibName}
'';
installPhase = ''
install -D ${wrapperLibName} -t $out/lib
'';
};
in
stdenv.mkDerivation {
inherit version;
pname = "dell-command-configure";
nativeBuildInputs = [ autoPatchelfHook ];
buildInputs = [
openssl
(lib.getLib stdenv.cc.cc)
];
dontConfigure = true;
src = unpacked;
installPhase = ''
runHook preInstall
install -D -t $out/lib -m644 -v command-configure/opt/dell/dcc/libhapiintf.so
install -D -t $out/lib -m644 -v command-configure/opt/dell/dcc/libsmbios_c.so.2
install -D -t $out/bin -m755 -v command-configure/opt/dell/dcc/cctk
install -D -t $out/bin -m755 -v srvadmin-hapi/opt/dell/srvadmin/sbin/dchcfg
for lib in $(find srvadmin-hapi/opt/dell/srvadmin/lib64 -type l); do
install -D -t $out/lib -m644 -v $lib
done
runHook postInstall
'';
postFixup = ''
echo fopen fopen_wrapper > fopen_name_map
echo access access_wrapper > access_name_map
${patchelfUnstable}/bin/patchelf \
--rename-dynamic-symbols fopen_name_map \
--rename-dynamic-symbols access_name_map \
--add-needed ${wrapperLibName} \
--set-rpath ${lib.makeLibraryPath [ wrapperLib ]} \
$out/lib/*
'';
meta = {
description = "Configure BIOS settings on Dell laptops";
homepage = "https://www.dell.com/support/article/us/en/19/sln311302/dell-command-configure";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ ryangibb ];
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
};
}

View File

@@ -0,0 +1,24 @@
#include <stdio.h>
#include <string.h>
#include <unistd.h>
static const char from[] = "/usr/lib/ext/dell/omreg.cfg";
static const char to[] = "@to@";
int access_wrapper(const char *fn, int mode)
{
if (!strcmp(fn, from)) {
printf("access_wrapper.c: Replacing path '%s' with '%s'\n", from, to);
fn = to;
}
return access(fn, mode);
}
FILE* fopen_wrapper(const char* fn, const char* mode)
{
if (!strcmp(fn, from)) {
printf("fopen_wrapper.c: Replacing path '%s' with '%s'\n", from, to);
fn = to;
}
return fopen(fn, mode);
}

View File

@@ -0,0 +1,77 @@
{
lib,
stdenv,
fetchFromGitHub,
boost,
bzip2,
htslib,
llvmPackages,
xz,
zlib,
delly,
runCommand,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "delly";
version = "1.5.0";
src = fetchFromGitHub {
owner = "dellytools";
repo = "delly";
rev = "v${finalAttrs.version}";
hash = "sha256-OoQivDDoYtYYPsl5U4hJGE7b+IU/jrqWejiXY5Py4n4=";
};
postPatch = lib.optionalString stdenv.cc.isClang ''
substituteInPlace Makefile \
--replace-fail "-std=c++17" "-std=c++14"
'';
buildInputs = [
boost
bzip2
htslib
xz
zlib
]
++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp;
makeFlags = [
"EBROOTHTSLIB=${htslib}"
"PARALLEL=1"
];
installPhase = ''
runHook preInstall
install -Dm555 src/delly $out/bin/delly
runHook postInstall
'';
passthru.tests = {
simple = runCommand "${finalAttrs.pname}-test" { } ''
mkdir $out
${lib.getExe delly} call -g ${delly.src}/example/ref.fa ${delly.src}/example/sr.bam > $out/sr.vcf
${lib.getExe delly} lr -g ${delly.src}/example/ref.fa ${delly.src}/example/lr.bam > $out/lr.vcf
${lib.getExe delly} cnv -g ${delly.src}/example/ref.fa -m ${delly.src}/example/map.fa.gz ${delly.src}/example/sr.bam > cnv.vcf
'';
};
meta = with lib; {
description = "Structural variant caller for mapped DNA sequenced data";
mainProgram = "delly";
license = licenses.bsd3;
maintainers = with maintainers; [ scalavision ];
platforms = platforms.unix;
longDescription = ''
Delly is an integrated structural variant (SV) prediction method
that can discover, genotype and visualize deletions, tandem duplications,
inversions and translocations at single-nucleotide resolution in
short-read massively parallel sequencing data. It uses paired-ends,
split-reads and read-depth to sensitively and accurately delineate
genomic rearrangements throughout the genome.
'';
};
})

View File

@@ -0,0 +1,31 @@
{
fetchFromGitHub,
gf2x,
lib,
rustPlatform,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "delsum";
version = "1.0.0";
src = fetchFromGitHub {
owner = "8051Enthusiast";
repo = "delsum";
tag = "v${finalAttrs.version}";
hash = "sha256-trCH2LIC3hjm3MMEoVGO2AY33eYTfn4N2mm2rOfUwt4=";
};
cargoHash = "sha256-Flz7h2/i4WIGr8CgVjpbCGHUkkGKSiHw5wlOIo7uuXo=";
buildInputs = [
gf2x
];
meta = {
homepage = "https://github.com/8051Enthusiast/delsum";
description = "Reverse engineer's checksum toolbox";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ timschumi ];
mainProgram = "delsum";
};
})

View File

@@ -0,0 +1,72 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
pkg-config,
oniguruma,
stdenv,
git,
zlib,
}:
rustPlatform.buildRustPackage rec {
pname = "delta";
version = "0.18.2";
src = fetchFromGitHub {
owner = "dandavison";
repo = "delta";
tag = version;
hash = "sha256-fJSKGa935kwLG8WYmT9Ncg2ozpSNMzUJx0WLo1gtVAA=";
};
cargoHash = "sha256-qF55A1CENoHu3LBtNRc/n2PKYxMls7pdn2d56Mp18Qs=";
nativeBuildInputs = [
installShellFiles
pkg-config
];
buildInputs = [
oniguruma
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
zlib
];
nativeCheckInputs = [ git ];
env = {
RUSTONIG_SYSTEM_LIBONIG = true;
};
postInstall = ''
installShellCompletion --cmd delta \
etc/completion/completion.{bash,fish,zsh}
'';
# test_env_parsing_with_pager_set_to_bat sets environment variables,
# which can be flaky with multiple threads:
# https://github.com/dandavison/delta/issues/1660
dontUseCargoParallelTests = true;
checkFlags = lib.optionals stdenv.hostPlatform.isDarwin [
# This test tries to read /etc/passwd, which fails with the sandbox
# enabled on Darwin
"--skip=test_diff_real_files"
];
meta = {
homepage = "https://github.com/dandavison/delta";
description = "Syntax-highlighting pager for git";
changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
zowoq
SuperSandro2000
figsoda
];
mainProgram = "delta";
};
}

View File

@@ -0,0 +1,156 @@
{
lib,
copyDesktopItems,
electron_37,
fetchFromGitHub,
deltachat-rpc-server,
makeDesktopItem,
makeWrapper,
nodejs,
pkg-config,
pnpm_9,
python3,
rustPlatform,
stdenv,
testers,
deltachat-desktop,
yq,
}:
let
deltachat-rpc-server' = deltachat-rpc-server.overrideAttrs rec {
version = "2.15.0";
src = fetchFromGitHub {
owner = "chatmail";
repo = "core";
tag = "v${version}";
hash = "sha256-sFAE90ptPBzT/w4wlGgQe1ERMD2ZAvf4pZ8YW8NEkLU=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
pname = "chatmail-core";
inherit version src;
hash = "sha256-MmSjIn4x3b2gpagJnl2r4Z5DXSufZMoohvAf0v5VUbE=";
};
};
electron = electron_37;
pnpm = pnpm_9;
in
stdenv.mkDerivation (finalAttrs: {
pname = "deltachat-desktop";
version = "2.15.0";
src = fetchFromGitHub {
owner = "deltachat";
repo = "deltachat-desktop";
tag = "v${finalAttrs.version}";
hash = "sha256-7AERqu2M/WeTDw62SF921vXROttZyvC1LmRZG3+aDPI=";
};
pnpmDeps = pnpm.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-wdexath7r2roBVw1SSpJcMp8LSs/X5QNiLNHxQF60Lg=";
};
nativeBuildInputs = [
yq
makeWrapper
nodejs
pkg-config
pnpm.configHook
python3
]
++ lib.optionals stdenv.hostPlatform.isLinux [
copyDesktopItems
];
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
SKIP_FUSES = true; # EACCES: permission denied
VERSION_INFO_GIT_REF = finalAttrs.src.tag;
};
buildPhase = ''
runHook preBuild
test \
$(yq -r '.catalogs.default."@deltachat/jsonrpc-client".version' pnpm-lock.yaml) \
= ${deltachat-rpc-server'.version} \
|| (echo "error: deltachat-rpc-server version does not match jsonrpc-client" && exit 1)
test \
$(yq -r '.importers."packages/target-electron".devDependencies.electron.version' pnpm-lock.yaml | grep -E -o "^[0-9]+") \
= ${lib.versions.major electron.version} \
|| (echo 'error: electron version doesn not match package-lock.json' && exit 1)
pnpm -w build:electron
pnpm --filter=@deltachat-desktop/target-electron pack:generate_config
pnpm --filter=@deltachat-desktop/target-electron pack:patch-node-modules
pnpm --filter=@deltachat-desktop/target-electron exec electron-builder \
--config ./electron-builder.json5 \
--dir \
-c.electronDist=${electron.dist} \
-c.electronVersion=${electron.version}
pushd packages/target-electron/dist/*-unpacked/resources/app.asar.unpacked
rm node_modules/@deltachat/stdio-rpc-server-*/deltachat-rpc-server
ln -s ${lib.getExe deltachat-rpc-server'} node_modules/@deltachat/stdio-rpc-server-*
popd
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/opt/DeltaChat
cp -r packages/target-electron/dist/*-unpacked/{locales,resources{,.pak}} $out/opt/DeltaChat
makeWrapper ${lib.getExe electron} $out/bin/${finalAttrs.meta.mainProgram} \
--add-flags $out/opt/DeltaChat/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \
--inherit-argv0
install -Dt "$out/share/icons/hicolor/scalable/apps" images/tray/deltachat.svg
runHook postInstall
'';
desktopItems = lib.singleton (makeDesktopItem {
name = "deltachat";
exec = "deltachat %u";
icon = "deltachat";
desktopName = "Delta Chat";
genericName = "Delta Chat";
comment = finalAttrs.meta.description;
categories = [
"Network"
"InstantMessaging"
"Chat"
];
startupWMClass = "DeltaChat";
mimeTypes = [
"x-scheme-handler/openpgp4fpr"
"x-scheme-handler/dcaccount"
"x-scheme-handler/dclogin"
"x-scheme-handler/mailto"
];
});
passthru.tests = {
version = testers.testVersion {
package = deltachat-desktop;
};
};
meta = {
description = "Email-based instant messaging for Desktop";
homepage = "https://github.com/deltachat/deltachat-desktop";
changelog = "https://github.com/deltachat/deltachat-desktop/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.gpl3Plus;
mainProgram = "deltachat";
maintainers = with lib.maintainers; [ dotlambda ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,36 @@
{
rustPlatform,
libdeltachat,
pkg-config,
}:
rustPlatform.buildRustPackage {
pname = "deltachat-repl";
inherit (libdeltachat)
version
src
cargoDeps
buildInputs
;
nativeBuildInputs = [
pkg-config
];
env = {
OPENSSL_NO_VENDOR = true;
};
cargoBuildFlags = [
"--package"
"deltachat-repl"
];
doCheck = false;
meta = libdeltachat.meta // {
description = "Delta Chat CLI client";
mainProgram = "deltachat-repl";
};
}

View File

@@ -0,0 +1,36 @@
{
rustPlatform,
libdeltachat,
pkg-config,
}:
rustPlatform.buildRustPackage {
pname = "deltachat-rpc-server";
inherit (libdeltachat)
version
src
cargoDeps
buildInputs
;
nativeBuildInputs = [
pkg-config
];
env = {
OPENSSL_NO_VENDOR = true;
};
cargoBuildFlags = [
"--package"
"deltachat-rpc-server"
];
doCheck = false;
meta = libdeltachat.meta // {
description = "Delta Chat RPC server exposing JSON-RPC core API over standard I/O";
mainProgram = "deltachat-rpc-server";
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitea,
cmake,
intltool,
libdeltachat,
lomiri,
qt5,
quirc,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "deltatouch";
version = "1.14.3";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "lk108";
repo = "deltatouch";
rev = "v${finalAttrs.version}";
hash = "sha256-vumMAMm9+dKlmi5a6ehIDePpQKkco/smYSM1K/QiXu4=";
};
nativeBuildInputs = [
qt5.wrapQtAppsHook
intltool
cmake
];
buildInputs = [
qt5.qtbase
qt5.qtwebengine
qt5.qtquickcontrols2
lomiri.lomiri-ui-toolkit
lomiri.lomiri-ui-extras
lomiri.lomiri-api
lomiri.qqc2-suru-style
];
postPatch = ''
# Fix all sorts of install locations
substituteInPlace CMakeLists.txt \
--replace-fail 'set(DATA_DIR /)' 'set(DATA_DIR ''${CMAKE_INSTALL_DATAROOTDIR})' \
--replace-fail 'RUNTIME DESTINATION ''${CMAKE_INSTALL_PREFIX}' 'RUNTIME DESTINATION ''${CMAKE_INSTALL_BINDIR}' \
--replace-fail 'assets/logo.svg DESTINATION assets' 'assets/logo.svg DESTINATION ''${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps RENAME deltatouch.svg' \
--replace-fail "\''${DESKTOP_FILE_NAME} DESTINATION \''${DATA_DIR}" "\''${DESKTOP_FILE_NAME} DESTINATION \''${CMAKE_INSTALL_DATAROOTDIR}/applications"
substituteInPlace plugins/{DeltaHandler,HtmlMsgEngineProfile,WebxdcEngineProfile,XdcPickerEngineProfile}/CMakeLists.txt \
--replace-fail 'set(QT_IMPORTS_DIR "/lib/''${ARCH_TRIPLET}")' 'set(QT_IMPORTS_DIR "${placeholder "out"}/${qt5.qtbase.qtQmlPrefix}")'
# Fix import of library dependencies
substituteInPlace plugins/{DeltaHandler,HtmlMsgEngineProfile,WebxdcEngineProfile,XdcPickerEngineProfile}/CMakeLists.txt \
--replace-fail 'IMPORTED_LOCATION "''${CMAKE_CURRENT_BINARY_DIR}/libdeltachat.so"' 'IMPORTED_LOCATION "${lib.getLib libdeltachat}/lib/libdeltachat.so"'
substituteInPlace plugins/DeltaHandler/CMakeLists.txt \
--replace-fail 'IMPORTED_LOCATION "''${CMAKE_CURRENT_BINARY_DIR}/libquirc.so.1.2"' 'IMPORTED_LOCATION "${lib.getLib quirc}/lib/libquirc.so"'
# Fix icon reference in desktop file
substituteInPlace deltatouch.desktop.in \
--replace-fail 'Icon=assets/logo.svg' 'Icon=deltatouch'
'';
postInstall = ''
# Remove clickable metadata & helpers from out
rm $out/{manifest.json,share/push*}
'';
meta = with lib; {
changelog = "https://codeberg.org/lk108/deltatouch/src/tag/${finalAttrs.src.rev}/CHANGELOG";
description = "Messaging app for Ubuntu Touch, powered by Delta Chat core";
longDescription = ''
DeltaTouch is a messenger for Ubuntu Touch based on Delta Chat core.
Delta Chat works over email.
'';
homepage = "https://codeberg.org/lk108/deltatouch";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ link2xt ];
mainProgram = "deltatouch";
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,13 @@
diff --git a/cmd/dlv/main.go b/cmd/dlv/main.go
index 2207708e..a7e8a3c2 100644
--- a/cmd/dlv/main.go
+++ b/cmd/dlv/main.go
@@ -21,6 +21,8 @@ func main() {
version.DelveVersion.Build = Build
}
+ os.Setenv("disableHardening", "fortify "+os.Getenv("disableHardening"))
+
const cgoCflagsEnv = "CGO_CFLAGS"
if os.Getenv(cgoCflagsEnv) == "" {
os.Setenv(cgoCflagsEnv, "-O0 -g")

View File

@@ -0,0 +1,54 @@
{
lib,
buildGoModule,
fetchFromGitHub,
stdenv,
}:
buildGoModule rec {
pname = "delve";
version = "1.25.2";
src = fetchFromGitHub {
owner = "go-delve";
repo = "delve";
rev = "v${version}";
hash = "sha256-CtOaaYxqa4GwfDQ1yuUwRQPy948Xyha046TLTaq526w=";
};
patches = [
./disable-fortify.diff
];
vendorHash = null;
subPackages = [ "cmd/dlv" ];
hardeningDisable = [ "fortify" ];
preCheck = ''
XDG_CONFIG_HOME=$(mktemp -d)
'';
# Disable tests on Darwin as they require various workarounds.
#
# - Tests requiring local networking fail with or without sandbox,
# even with __darwinAllowLocalNetworking allowed.
# - CGO_FLAGS warnings break tests' expected stdout/stderr outputs.
# - DAP test binaries exit prematurely.
doCheck = !stdenv.hostPlatform.isDarwin;
postInstall = ''
# add symlink for vscode golang extension
# https://github.com/golang/vscode-go/blob/master/docs/debugging.md#manually-installing-dlv-dap
ln $out/bin/dlv $out/bin/dlv-dap
'';
meta = with lib; {
description = "Debugger for the Go programming language";
homepage = "https://github.com/go-delve/delve";
maintainers = with maintainers; [ vdemeester ];
license = licenses.mit;
mainProgram = "dlv";
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "demoit";
version = "1.0";
src = fetchFromGitHub {
owner = "dgageot";
repo = "demoit";
rev = "v${version}";
hash = "sha256-3g0k2Oau0d9tXYDtxHpUKvAQ1FnGhjRP05YVTlmgLhM=";
};
vendorHash = null;
subPackages = [ "." ];
meta = with lib; {
description = "Live coding demos without Context Switching";
homepage = "https://github.com/dgageot/demoit";
license = licenses.asl20;
maintainers = [ maintainers.freezeboy ];
mainProgram = "demoit";
};
}

667
pkgs/by-name/de/denaro/deps.json generated Normal file
View File

@@ -0,0 +1,667 @@
[
{
"pname": "Ace4896.DBus.Services.Secrets",
"version": "1.2.0",
"sha256": "1i1rwv8z2dx0mjib7vair2w7ylngmrcpbd012sdlpvdjpx0af0bn"
},
{
"pname": "Cake.Tool",
"version": "4.0.0",
"sha256": "11vc5fimi6w465081sqxs4zhw7grr6v8ga7nl1mscdl43wv33ql2"
},
{
"pname": "Docnet.Core",
"version": "2.6.0",
"sha256": "1b1nj984ly4zgj28fri1a6ych9sdiacxkms8pvzsclvyxkf0ri8m"
},
{
"pname": "FuzzySharp",
"version": "2.0.2",
"sha256": "1xq3q4s9d5p1yn4j91a90hawk9wcrz1bl6zj9866y01yx9aamr8s"
},
{
"pname": "GetText.NET",
"version": "1.9.14",
"sha256": "18z4cf0dldcf41z8xgj3gdlvj9w5a9ikgj72623r0i740ndnl094"
},
{
"pname": "GirCore.Adw-1",
"version": "0.5.0-preview.3",
"sha256": "090kg5v99myd7hi49cz933cl36hk5n586ywy78gf5djn5im3v19l"
},
{
"pname": "GirCore.Cairo-1.0",
"version": "0.5.0-preview.3",
"sha256": "0bh1h2hr6givrq6096bvzcsg4lab1hlm7r7h4bqifbw0zmmcfb7k"
},
{
"pname": "GirCore.FreeType2-2.0",
"version": "0.5.0-preview.3",
"sha256": "194p44gd7r69x70j3qynv5v8awlyxmdazmzpwzgj5ayy2xpdk3hy"
},
{
"pname": "GirCore.Gdk-4.0",
"version": "0.5.0-preview.3",
"sha256": "09p097nvs7vi7l14l024m39qyhg1gyqihanq7zv66xqys4hzim1g"
},
{
"pname": "GirCore.GdkPixbuf-2.0",
"version": "0.5.0-preview.3",
"sha256": "0lspyra1g1rd8hj3f3daxspin5dhgplzgjh4jwhlgzzn648942j0"
},
{
"pname": "GirCore.Gio-2.0",
"version": "0.5.0-preview.3",
"sha256": "090svrddgpliks5r29yncih3572w7gdc552nl16qbviqbmhr0lbs"
},
{
"pname": "GirCore.GLib-2.0",
"version": "0.5.0-preview.3",
"sha256": "1wxwf24gabd69yxpnhv30rn7pcv49w885jdw3nqbrakl7pvv9fza"
},
{
"pname": "GirCore.GObject-2.0",
"version": "0.5.0-preview.3",
"sha256": "0iajydyx79f3khx0fhv8izbxlzxwn6gpps2xzmi9c4v98ly221j3"
},
{
"pname": "GirCore.Graphene-1.0",
"version": "0.5.0-preview.3",
"sha256": "114fbgxils50jdy891nwj70yr43lnwgbq9fzxqzywd1kk70k7mww"
},
{
"pname": "GirCore.Gsk-4.0",
"version": "0.5.0-preview.3",
"sha256": "0f5s6f6pwc9vc3nm7xfaa06z2klgpg4rv5cdf0cwis3vlncd7dnj"
},
{
"pname": "GirCore.Gtk-4.0",
"version": "0.5.0-preview.3",
"sha256": "1fn0b8lwlrmjm9phjq4amqnq3q70fl214115652cap5rz4rjmpgg"
},
{
"pname": "GirCore.HarfBuzz-0.0",
"version": "0.5.0-preview.3",
"sha256": "0xska2l44l0j38mlgmrwly1qal9wzbv2w2jjj8gn90sxbygb8zky"
},
{
"pname": "GirCore.Pango-1.0",
"version": "0.5.0-preview.3",
"sha256": "0ccw3bd3kl24mnxbjzhya11i0ln6g1g7q876pyy54cwh48x4mdia"
},
{
"pname": "GirCore.PangoCairo-1.0",
"version": "0.5.0-preview.3",
"sha256": "0lds340p5cci7sjp58nh94jxkjvzfky9cbs2h4q98hglxndjm7r9"
},
{
"pname": "HarfBuzzSharp",
"version": "7.3.0",
"sha256": "1rqcmdyzxz9kc0k8594hbpksjc23mkakmjybi4b8702qycxx0lrf"
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "7.3.0",
"sha256": "0i9gaiyjgmcpnfn1fixbxq8shqlh4ahng7j4dxlf38zlln1f6h80"
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "7.3.0",
"sha256": "1b5ng37bwk75cifw7p1hzn8z6sswi8h7h510qgwlbvgmlrs5r0ga"
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "7.3.0",
"sha256": "1hyvmz7rfbrxbcpnwyvb64gdk1hifcpz3rln58yyb7g1pnbpnw2s"
},
{
"pname": "Hazzik.Qif",
"version": "1.0.3",
"sha256": "16v6cfy3pa0qy699v843pss3418rvq5agz6n43sikzh69vzl2azy"
},
{
"pname": "LiveChartsCore",
"version": "2.0.0-rc2",
"sha256": "02ywlv67525qnnx7x2xaz52gs8195zvvjlmcz7ql1gff05pkcb15"
},
{
"pname": "LiveChartsCore.SkiaSharpView",
"version": "2.0.0-rc2",
"sha256": "1p35mli6wxq5jn7h27564a8dgv4qyj95isihs9lbmvs1pr7m785l"
},
{
"pname": "Markdig",
"version": "0.33.0",
"sha256": "1dj06wgdqmjji4nfr1dysz7hwp5bjgsrk9qjkdq82d7gk6nmhs9r"
},
{
"pname": "Meziantou.Framework.Win32.CredentialManager",
"version": "1.4.5",
"sha256": "1ikjxj6wir2jcjwlmd4q7zz0b4g40808gx59alvad31sb2aqp738"
},
{
"pname": "Microsoft.Data.Sqlite.Core",
"version": "8.0.0",
"sha256": "05qjnzk1fxybks92y93487l3mj5nghjcwiy360xjgk3jykz3rv39"
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"sha256": "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"
},
{
"pname": "Microsoft.NETCore.Targets",
"version": "5.0.0",
"sha256": "0z3qyv7qal5irvabc8lmkh58zsl42mrzd1i0sssvzhv4q4kl3cg6"
},
{
"pname": "Microsoft.Win32.Primitives",
"version": "4.3.0",
"sha256": "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"
},
{
"pname": "Microsoft.Win32.SystemEvents",
"version": "8.0.0",
"sha256": "05392f41ijgn17y8pbjcx535l1k09krnq3xdp60kyq568sn6xk2i"
},
{
"pname": "NETStandard.Library",
"version": "1.6.1",
"sha256": "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"
},
{
"pname": "Nickvision.Aura",
"version": "2023.11.4",
"sha256": "0gasyglp1pgi0s6zqzmbm603j3j36vvr68grv6g93fdj2vjlmkxs"
},
{
"pname": "Octokit",
"version": "9.0.0",
"sha256": "0kw49w1hxk4d2x9598012z9q1yr3ml5rm06fy1jnmhy44s3d3jp5"
},
{
"pname": "OfxSharp.NetStandard",
"version": "1.0.0",
"sha256": "1v7yw2glyywb4s0y5fw306bzh2vw175bswrhi5crvd92wf93makj"
},
{
"pname": "PdfSharpCore",
"version": "1.3.62",
"sha256": "1wxm642fx0pgiidd5x35iifayq7nicykycpwpvs0814xfjm0zw63"
},
{
"pname": "QuestPDF",
"version": "2023.12.2",
"sha256": "16h6k15h5wxccyrsakkpn3jsk7fcgs1pfidisg772k78hizvagdf"
},
{
"pname": "ReadSharp.Ports.SgmlReader.Core",
"version": "1.0.0",
"sha256": "0pcvlh0gq513vw6y12lfn90a0br56a6f26lvppcj4qb839zmh3id"
},
{
"pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"
},
{
"pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"
},
{
"pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"
},
{
"pname": "runtime.native.System",
"version": "4.3.0",
"sha256": "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"
},
{
"pname": "runtime.native.System.IO.Compression",
"version": "4.3.0",
"sha256": "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d"
},
{
"pname": "runtime.native.System.Net.Http",
"version": "4.3.0",
"sha256": "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk"
},
{
"pname": "runtime.native.System.Security.Cryptography.Apple",
"version": "4.3.0",
"sha256": "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q"
},
{
"pname": "runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"
},
{
"pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"
},
{
"pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"
},
{
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple",
"version": "4.3.0",
"sha256": "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi"
},
{
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"
},
{
"pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"
},
{
"pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"
},
{
"pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"
},
{
"pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"
},
{
"pname": "SharpZipLib",
"version": "1.3.3",
"sha256": "1gij11wfj1mqm10631cjpnhzw882bnzx699jzwhdqakxm1610q8x"
},
{
"pname": "SixLabors.Fonts",
"version": "1.0.0-beta17",
"sha256": "1qm8q82wzj54nbv63kx3ybln51k47sl18hia3jnzk1zrb6wdsw9a"
},
{
"pname": "SixLabors.ImageSharp",
"version": "3.1.2",
"sha256": "0bc0753aczgw9mi9bcgly2x71w4adlr35krgf023vppc36809yhg"
},
{
"pname": "SkiaSharp",
"version": "2.88.6",
"sha256": "0xs11zjw9ha68maw3l825kfwlrid43qwy0mswljxhpjh0y1k6k6b"
},
{
"pname": "SkiaSharp.HarfBuzz",
"version": "2.88.6",
"sha256": "1h61vk9ibavwwrxqgclzsxmchighvfaqlcqrj0dpi2fzw57f54c2"
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.6",
"sha256": "0cg38xgddww1y93xrnbfn40sin63yl39j5zm7gm5pdgp5si0cf2n"
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "2.88.6",
"sha256": "1fp9h8c8k6sbsh48b69dc6461isd4dajq7yw5i7j6fhkas78q4zf"
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "2.88.6",
"sha256": "1w2mwcwkqvrg4x4ybc4674xnkqwh1n2ihg520gqgpnqfc11ghc4n"
},
{
"pname": "SQLitePCLRaw.bundle_e_sqlcipher",
"version": "2.1.6",
"sha256": "15v2x7y4k7cl47a9jccbvgbwngwi5dz6qhv0cxpcasx4v5i9aila"
},
{
"pname": "SQLitePCLRaw.bundle_e_sqlcipher",
"version": "2.1.7",
"sha256": "18s6b6im9rwhnilsznbgvhily40sb5rc4p9z02nqn0ahncb2i52w"
},
{
"pname": "SQLitePCLRaw.core",
"version": "2.1.6",
"sha256": "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"
},
{
"pname": "SQLitePCLRaw.core",
"version": "2.1.7",
"sha256": "1y3jl4c76g2i13xss72nfvx5qr6mzsbjvjc5f9arybh53a0wavd6"
},
{
"pname": "SQLitePCLRaw.lib.e_sqlcipher",
"version": "2.1.6",
"sha256": "0dl5an15whs4yl5hm2wibzbfigzck0flah8a07k99y1bhbmv080z"
},
{
"pname": "SQLitePCLRaw.lib.e_sqlcipher",
"version": "2.1.7",
"sha256": "0wgxqw1nc9asxxj04l8qfjgkshnlp92c3clx7ymjf43jr3g4pxs0"
},
{
"pname": "SQLitePCLRaw.provider.e_sqlcipher",
"version": "2.1.6",
"sha256": "1jx8d4dq5w2951b7w722gnxbfgdklwazc48kcbdzylkglwkrqgrq"
},
{
"pname": "SQLitePCLRaw.provider.e_sqlcipher",
"version": "2.1.7",
"sha256": "1paj54r7552vpjzdj8mv4gdxshbd10xyc8fa6qs12pspa58wivjn"
},
{
"pname": "System.AppContext",
"version": "4.3.0",
"sha256": "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"
},
{
"pname": "System.Buffers",
"version": "4.3.0",
"sha256": "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"
},
{
"pname": "System.Collections",
"version": "4.3.0",
"sha256": "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"
},
{
"pname": "System.Collections.Concurrent",
"version": "4.3.0",
"sha256": "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"
},
{
"pname": "System.Console",
"version": "4.3.0",
"sha256": "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"
},
{
"pname": "System.Diagnostics.Debug",
"version": "4.3.0",
"sha256": "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"
},
{
"pname": "System.Diagnostics.DiagnosticSource",
"version": "4.3.0",
"sha256": "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"
},
{
"pname": "System.Diagnostics.Tools",
"version": "4.3.0",
"sha256": "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"
},
{
"pname": "System.Diagnostics.Tracing",
"version": "4.3.0",
"sha256": "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"
},
{
"pname": "System.Drawing.Common",
"version": "8.0.0",
"sha256": "1j4rsm36bnwqmh5br9mzmj0ikjnc39k26q6l9skjlrnw8hlngwy4"
},
{
"pname": "System.Globalization",
"version": "4.3.0",
"sha256": "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"
},
{
"pname": "System.Globalization.Calendars",
"version": "4.3.0",
"sha256": "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq"
},
{
"pname": "System.Globalization.Extensions",
"version": "4.3.0",
"sha256": "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"
},
{
"pname": "System.IO",
"version": "4.3.0",
"sha256": "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"
},
{
"pname": "System.IO.Compression",
"version": "4.3.0",
"sha256": "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"
},
{
"pname": "System.IO.Compression.ZipFile",
"version": "4.3.0",
"sha256": "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar"
},
{
"pname": "System.IO.FileSystem",
"version": "4.3.0",
"sha256": "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"
},
{
"pname": "System.IO.FileSystem.Primitives",
"version": "4.3.0",
"sha256": "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"
},
{
"pname": "System.IO.Pipelines",
"version": "6.0.0",
"sha256": "08211lvckdsdbd67xz4f6cyk76cli565j0dby1grlc4k9bhwby65"
},
{
"pname": "System.Linq",
"version": "4.3.0",
"sha256": "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"
},
{
"pname": "System.Linq.Expressions",
"version": "4.3.0",
"sha256": "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"
},
{
"pname": "System.Memory",
"version": "4.5.3",
"sha256": "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"
},
{
"pname": "System.Memory",
"version": "4.5.5",
"sha256": "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"
},
{
"pname": "System.Net.Http",
"version": "4.3.0",
"sha256": "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"
},
{
"pname": "System.Net.Primitives",
"version": "4.3.0",
"sha256": "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"
},
{
"pname": "System.Net.Requests",
"version": "4.3.0",
"sha256": "0pcznmwqqk0qzp0gf4g4xw7arhb0q8v9cbzh3v8h8qp6rjcr339a"
},
{
"pname": "System.Net.Sockets",
"version": "4.3.0",
"sha256": "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"
},
{
"pname": "System.Net.WebHeaderCollection",
"version": "4.3.0",
"sha256": "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562"
},
{
"pname": "System.ObjectModel",
"version": "4.3.0",
"sha256": "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"
},
{
"pname": "System.Reflection",
"version": "4.3.0",
"sha256": "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"
},
{
"pname": "System.Reflection.Emit",
"version": "4.3.0",
"sha256": "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"
},
{
"pname": "System.Reflection.Emit.ILGeneration",
"version": "4.3.0",
"sha256": "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"
},
{
"pname": "System.Reflection.Emit.Lightweight",
"version": "4.3.0",
"sha256": "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"
},
{
"pname": "System.Reflection.Extensions",
"version": "4.3.0",
"sha256": "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"
},
{
"pname": "System.Reflection.Primitives",
"version": "4.3.0",
"sha256": "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"
},
{
"pname": "System.Reflection.TypeExtensions",
"version": "4.3.0",
"sha256": "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"
},
{
"pname": "System.Resources.ResourceManager",
"version": "4.3.0",
"sha256": "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"
},
{
"pname": "System.Runtime",
"version": "4.3.0",
"sha256": "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"
},
{
"pname": "System.Runtime.Extensions",
"version": "4.3.0",
"sha256": "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"
},
{
"pname": "System.Runtime.Handles",
"version": "4.3.0",
"sha256": "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"
},
{
"pname": "System.Runtime.InteropServices",
"version": "4.3.0",
"sha256": "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"
},
{
"pname": "System.Runtime.InteropServices.RuntimeInformation",
"version": "4.3.0",
"sha256": "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"
},
{
"pname": "System.Runtime.Numerics",
"version": "4.3.0",
"sha256": "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"
},
{
"pname": "System.Security.Cryptography.Algorithms",
"version": "4.3.0",
"sha256": "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"
},
{
"pname": "System.Security.Cryptography.Cng",
"version": "4.3.0",
"sha256": "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"
},
{
"pname": "System.Security.Cryptography.Csp",
"version": "4.3.0",
"sha256": "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1"
},
{
"pname": "System.Security.Cryptography.Encoding",
"version": "4.3.0",
"sha256": "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"
},
{
"pname": "System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"sha256": "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"
},
{
"pname": "System.Security.Cryptography.Primitives",
"version": "4.3.0",
"sha256": "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"
},
{
"pname": "System.Security.Cryptography.X509Certificates",
"version": "4.3.0",
"sha256": "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"
},
{
"pname": "System.Text.Encoding",
"version": "4.3.0",
"sha256": "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"
},
{
"pname": "System.Text.Encoding.Extensions",
"version": "4.3.0",
"sha256": "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"
},
{
"pname": "System.Text.RegularExpressions",
"version": "4.3.0",
"sha256": "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"
},
{
"pname": "System.Threading",
"version": "4.3.0",
"sha256": "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"
},
{
"pname": "System.Threading.Tasks",
"version": "4.3.0",
"sha256": "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"
},
{
"pname": "System.Threading.Tasks.Extensions",
"version": "4.3.0",
"sha256": "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"
},
{
"pname": "System.Threading.Timer",
"version": "4.3.0",
"sha256": "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"
},
{
"pname": "System.Xml.ReaderWriter",
"version": "4.3.0",
"sha256": "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"
},
{
"pname": "System.Xml.XDocument",
"version": "4.3.0",
"sha256": "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"
},
{
"pname": "Tmds.DBus",
"version": "0.15.0",
"sha256": "1bz5j6wfp9hn4fg5vjxl6mr9lva4gx6zqncqyqxrcb8lw7hvhwc6"
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.15.0",
"sha256": "0d99kcs7r9cp6gpyc7z230czkkyx4164x86dhy0mca73f2ykc2g2"
}
]

View File

@@ -0,0 +1,78 @@
{
lib,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
gtk4,
libadwaita,
pkg-config,
wrapGAppsHook4,
glib,
shared-mime-info,
gdk-pixbuf,
blueprint-compiler,
}:
buildDotnetModule rec {
pname = "denaro";
version = "2024.2.0";
src = fetchFromGitHub {
owner = "NickvisionApps";
repo = "Denaro";
rev = version;
hash = "sha256-fEhwup8SiYvKH2FtzruEFsj8axG5g3YJ917aqc8dn/8=";
};
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
projectFile = "NickvisionMoney.GNOME/NickvisionMoney.GNOME.csproj";
nugetDeps = ./deps.json;
executables = "NickvisionMoney.GNOME";
nativeBuildInputs = [
pkg-config
wrapGAppsHook4
glib # For glib-compile-resources
shared-mime-info # For update-mime-database
gdk-pixbuf # Fixes icon missing in envs where GDK_PIXBUF_MODULE_FILE is not set
blueprint-compiler
];
buildInputs = [
gtk4
libadwaita
]; # Used by blueprint-compiler
# Denaro switches installation tool frequently (bash -> just -> cake)
# For maintainability, let's do it ourselves
postInstall = ''
substituteInPlace NickvisionMoney.Shared/Linux/org.nickvision.money.desktop.in --replace '@EXEC@' "NickvisionMoney.GNOME"
install -Dm444 NickvisionMoney.Shared/Resources/org.nickvision.money.svg -t $out/share/icons/hicolor/scalable/apps/
install -Dm444 NickvisionMoney.Shared/Resources/org.nickvision.money-symbolic.svg -t $out/share/icons/hicolor/symbolic/apps/
install -Dm444 NickvisionMoney.Shared/Linux/org.nickvision.money.desktop.in -T $out/share/applications/org.nickvision.money.desktop
'';
runtimeDeps = [
gtk4
libadwaita
glib # Fixes "Could not retrieve parent type - is the typeid valid?"
gdk-pixbuf
];
passthru.updateScript = ./update.sh;
meta = {
description = "Personal finance manager for GNOME";
homepage = "https://github.com/nlogozzo/NickvisionMoney";
mainProgram = "NickvisionMoney.GNOME";
license = lib.licenses.mit;
changelog = "https://github.com/nlogozzo/NickvisionMoney/releases/tag/${version}";
maintainers = with lib.maintainers; [
chuangzhu
kashw2
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,18 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p curl jq common-updater-scripts
#shellcheck shell=bash
set -eu -o pipefail
version=$(curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} \
https://api.github.com/repos/NickvisionApps/Denaro/releases/latest | jq -e -r .tag_name)
old_version=$(nix-instantiate --eval -A denaro.version | jq -e -r)
if [[ $version == "$old_version" ]]; then
echo "New version same as old version, nothing to do." >&2
exit 0
fi
update-source-version denaro "$version"
$(nix-build -A denaro.fetch-deps --no-out-link) "$(dirname -- "${BASH_SOURCE[0]}")/deps.nix"

View File

@@ -0,0 +1,76 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
nix-update-script,
nixosTests,
postgresql,
postgresqlTestHook,
}:
buildGoModule rec {
pname = "matrix-dendrite";
version = "0.15.2";
src = fetchFromGitHub {
owner = "element-hq";
repo = "dendrite";
rev = "v${version}";
hash = "sha256-VxQ5fuGzkEL371TmnDQ0wNqqmfzupmsTX/v+eFthj8E=";
};
vendorHash = "sha256-QUztOoOesECAhwh4whzvrc43rJxjtPaEICUHno2DId0=";
subPackages = [
# The server
"cmd/dendrite"
# admin tools
"cmd/create-account"
"cmd/generate-config"
"cmd/generate-keys"
"cmd/resolve-state"
## curl, but for federation requests, only useful for developers
# "cmd/furl"
## an internal tool for upgrading ci tests, only relevant for developers
# "cmd/dendrite-upgrade-tests"
## tech demos
# "cmd/dendrite-demo-pinecone"
# "cmd/dendrite-demo-yggdrasil"
];
nativeCheckInputs = [
postgresqlTestHook
postgresql
];
postgresqlTestUserOptions = "LOGIN SUPERUSER";
preCheck = ''
export PGUSER=$(whoami)
# temporarily disable this failing test
# it passes in upstream CI and requires further investigation
rm roomserver/internal/input/input_test.go
'';
# PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter
doCheck = !stdenv.hostPlatform.isDarwin;
passthru.tests = {
inherit (nixosTests) dendrite;
};
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"v(.+)"
];
};
meta = {
homepage = "https://element-hq.github.io/dendrite";
description = "Second-generation Matrix homeserver written in Go";
changelog = "https://github.com/element-hq/dendrite/releases/tag/v${version}";
license = lib.licenses.agpl3Plus;
teams = [ lib.teams.matrix ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
fetchgit,
pkg-config,
libjack2,
gettext,
intltool,
guile,
lilypond,
glib,
libxml2,
librsvg,
libsndfile,
aubio,
gtk3,
gtksourceview,
evince,
fluidsynth,
rubberband,
autoreconfHook,
gtk-doc,
portaudio,
portmidi,
fftw,
wrapGAppsHook3,
}:
stdenv.mkDerivation {
pname = "denemo";
version = "2.6.43";
src = fetchgit {
url = "https://git.savannah.gnu.org/git/denemo.git";
rev = "b04ead1d3efeee036357cf36898b838a96ec5332";
hash = "sha256-XMFbPk70JqUHWBPEK8rjr70iMs49RNyaaCUGnYlLf2E=";
};
buildInputs = [
libjack2
guile
lilypond
glib
libxml2
librsvg
libsndfile
aubio
gtk3
gtksourceview
evince
fluidsynth
rubberband
portaudio
fftw
portmidi
];
# error by default in GCC 14
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${lilypond}/bin"
)
'';
nativeBuildInputs = [
autoreconfHook
gtk-doc
wrapGAppsHook3
intltool
gettext
pkg-config
];
meta = {
description = "Music notation and composition software used with lilypond";
homepage = "http://denemo.org";
license = lib.licenses.gpl3;
platforms = lib.platforms.linux;
maintainers = [ lib.maintainers.olynch ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromBitbucket,
cmake,
freetype,
pkg-config,
pulseaudio,
gtk3,
libxkbcommon,
udev,
libuuid,
wrapGAppsHook3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "deniseemu";
version = "2.6";
src = fetchFromBitbucket {
owner = "piciji";
repo = "denise";
rev = "v${finalAttrs.version}";
hash = "sha256-+PJtYuiZ1eawuVCTo1kqtCmIoBjNKOGRDnbuH3KRpNM=";
};
buildInputs = [
gtk3
udev
libuuid
libxkbcommon
freetype
pulseaudio
];
nativeBuildInputs = [
cmake
pkg-config
wrapGAppsHook3
];
meta = {
homepage = "https://bitbucket.org/piciji/denise";
downloadPage = "https://sourceforge.net/projects/deniseemu/";
description = "C64 / Amiga Emulator";
license = [ lib.licenses.gpl3Plus ];
maintainers = [ lib.maintainers.matthewcroughan ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,21 @@
# not a stable interface, do not reference outside the deno package but make a
# copy if you need
{
lib,
stdenv,
fetchurl,
}:
{
fetchLibrustyV8 =
args:
fetchurl {
name = "librusty_v8-${args.version}";
url = "https://github.com/denoland/rusty_v8/releases/download/v${args.version}/librusty_v8_release_${stdenv.hostPlatform.rust.rustcTarget}.a.gz";
sha256 = args.shas.${stdenv.hostPlatform.system};
meta = {
inherit (args) version;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
};
}

View File

@@ -0,0 +1,12 @@
# auto-generated file -- DO NOT EDIT!
{ fetchLibrustyV8 }:
fetchLibrustyV8 {
version = "140.2.0";
shas = {
x86_64-linux = "sha256-r3qrYDVaT4Z6udC6YuQG1BKqrsQc7IhuACDCTbr083U=";
aarch64-linux = "sha256-LtlAIk+qpeU8zCm+H9sqtivHKrM0U1LP6GkCRr1GVL0=";
x86_64-darwin = "sha256-B/6GPHX40TgAgaesNGsVQDPN1FeSFiT+cCC1wB49IXg=";
aarch64-darwin = "sha256-eZ2l9ovI2divQake+Z4/Ofcl5QwJ+Y/ql2Dymisx1oA=";
};
}

View File

@@ -0,0 +1,258 @@
{
stdenv,
lib,
callPackage,
fetchFromGitHub,
rustPlatform,
cmake,
yq,
protobuf,
installShellFiles,
librusty_v8 ? callPackage ./librusty_v8.nix {
inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8;
},
libffi,
sqlite,
lld,
writableTmpDirAsHomeHook,
# Test deps
curl,
nodejs,
git,
python3,
esbuild,
}:
let
canExecute = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "deno";
version = "2.5.3";
src = fetchFromGitHub {
owner = "denoland";
repo = "deno";
tag = "v${finalAttrs.version}";
fetchSubmodules = true; # required for tests
hash = "sha256-UqD9Va33XVX73bjwUdb6woZ3kP/Xz6iBVqV1ceRbXq0=";
};
cargoHash = "sha256-OrKg3bOA5AyLQA+LIsHwWpk9DHodhcCVzdKW/S9+mNY=";
patches = [
# Patch out the remote upgrade (deno update) check.
# Not a blocker in the build sandbox, since implementation and tests are
# considerately written for no external networking, but removing brings
# in-line with common nixpkgs practice.
./patches/0000-remove-deno-upgrade-check.patch
# Patch out the upgrade sub-command since that wouldn't correctly upgrade
# deno from nixpkgs.
./patches/0001-remove-deno-upgrade.patch
./patches/0002-tests-replace-hardcoded-paths.patch
./patches/0003-tests-linux-no-chown.patch
./patches/0004-tests-darwin-fixes.patch
# some new TS tests don't identify `deno` location from parent actively
# running `deno` instance
# https://github.com/denoland/deno/pull/30914
./patches/0005-tests-fix-deno-path.patch
];
postPatch = ''
# Use patched nixpkgs libffi in order to fix https://github.com/libffi/libffi/pull/857
tomlq -ti '.workspace.dependencies.libffi = { "version": .workspace.dependencies.libffi, "features": ["system"] }' Cargo.toml
'';
buildInputs = [
libffi
sqlite
];
# uses zlib-ng but can't dynamically link yet
# https://github.com/rust-lang/libz-sys/issues/158
nativeBuildInputs = [
rustPlatform.bindgenHook
# for tomlq to adjust Cargo.toml
yq
# required by libz-ng-sys crate
cmake
# required by deno_kv crate
protobuf
installShellFiles
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ lld ];
configureFlags = lib.optionals stdenv.cc.isClang [
# This never worked with clang, but became a hard error recently: https://github.com/llvm/llvm-project/commit/3d5b610c864c8f5980eaa16c22b71ff1cf462fae
"--disable-multi-os-directory"
];
buildFlags = [ "--package=cli" ];
# work around "error: unknown warning group '-Wunused-but-set-parameter'"
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unknown-warning-option";
# The v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
# To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE
env.RUSTY_V8_ARCHIVE = librusty_v8;
# Many tests depend on prebuilt binaries being present at `./third_party/prebuilt`.
# We provide nixpkgs binaries for these for all platforms, but the test runner itself only handles
# these four arch+platform combinations.
doCheck =
stdenv.hostPlatform.isDarwin
|| (stdenv.hostPlatform.isLinux && (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isx86_64));
preCheck =
# Provide esbuild binary at `./third_party/prebuilt/` just like upstream:
# https://github.com/denoland/deno_third_party/tree/master/prebuilt
# https://github.com/denoland/deno/blob/main/tests/util/server/src/servers/npm_registry.rs#L402
let
platform =
if stdenv.hostPlatform.isLinux then
"linux64"
else if stdenv.hostPlatform.isDarwin then
"mac"
else
throw "Unsupported platform";
arch =
if stdenv.hostPlatform.isAarch64 then
"aarch64"
else if stdenv.hostPlatform.isx86_64 then
"x64"
else
throw "Unsupported architecture";
in
''
mkdir -p ./third_party/prebuilt/${platform}
cp ${lib.getExe esbuild} ./third_party/prebuilt/${platform}/esbuild-${arch}
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# Unset the env var defined by bintools-wrapper because it triggers Deno's sandbox protection in some tests.
# ref: https://github.com/denoland/deno/pull/25271
unset LD_DYLD_PATH
'';
cargoTestFlags = [
"--lib" # unit tests
"--test integration_tests"
# Test targets not included here:
# - node_compat: there are tons of network access in them and it's not trivial to skip test cases.
# - specs: this target uses a custom test harness that doesn't implement the --skip flag.
# refs:
# - https://github.com/denoland/deno/blob/2212d7d814914e43f43dfd945ee24197f50fa6fa/tests/Cargo.toml#L25
# - https://github.com/denoland/file_test_runner/blob/9c78319a4e4c6180dde0e9e6c2751017176e65c9/src/collection/mod.rs#L49
];
checkFlags = [
# Internet access
"--skip=check::ts_no_recheck_on_redirect"
"--skip=js_unit_tests::quic_test"
"--skip=js_unit_tests::net_test"
"--skip=node_unit_tests::http_test"
"--skip=node_unit_tests::http2_test"
"--skip=node_unit_tests::net_test"
"--skip=node_unit_tests::tls_test"
"--skip=npm::lock_file_lock_write"
# GPU access
"--skip=js_unit_tests::webgpu_test"
"--skip=js_unit_tests::jupyter_test"
# Use of /usr/bin
"--skip=specs::permission::proc_self_fd"
# Flaky
"--skip=init::init_subcommand_serve"
"--skip=serve::deno_serve_parallel"
"--skip=js_unit_tests::stat_test" # timing-sensitive
"--skip=repl::pty_complete_imports"
"--skip=repl::pty_complete_expression"
# Test hangs, needs investigation
"--skip=repl::pty_complete_imports_no_panic_empty_specifier"
# Use of VSOCK, might not be available on all platforms
"--skip=js_unit_tests::serve_test"
"--skip=js_unit_tests::fetch_test"
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Expects specific shared libraries from macOS to be linked
"--skip=shared_library_tests::macos_shared_libraries"
# Darwin sandbox issues
"--skip=watcher"
"--skip=node_unit_tests::_fs_watch_test"
"--skip=js_unit_tests::fs_events_test"
]
++ lib.optionals stdenv.hostPlatform.isLinux [
# Wants to access /etc/resolv.conf: https://github.com/hickory-dns/hickory-dns/issues/2959
"--skip=tests::test_userspace_resolver"
];
__darwinAllowLocalNetworking = true;
nativeCheckInputs = [
writableTmpDirAsHomeHook
curl
nodejs
git
python3
];
preInstall = ''
# Delete generated shared libraries that aren't needed in the final package
find ./target \
-name "libswc_common${stdenv.hostPlatform.extensions.sharedLibrary}" -o \
-name "libtest_ffi${stdenv.hostPlatform.extensions.sharedLibrary}" -o \
-name "libtest_napi${stdenv.hostPlatform.extensions.sharedLibrary}" \
-delete
'';
postInstall = ''
# Remove non-essential binaries like denort and test_server
find $out/bin/* -not -name "deno" -delete
''
+ lib.optionalString canExecute ''
installShellCompletion --cmd deno \
--bash <($out/bin/deno completions bash) \
--fish <($out/bin/deno completions fish) \
--zsh <($out/bin/deno completions zsh)
'';
doInstallCheck = canExecute;
installCheckPhase = lib.optionalString canExecute ''
runHook preInstallCheck
$out/bin/deno --help
$out/bin/deno --version | grep "deno ${finalAttrs.version}"
runHook postInstallCheck
'';
passthru.updateScript = ./update/update.ts;
passthru.tests = callPackage ./tests { };
meta = with lib; {
homepage = "https://deno.land/";
changelog = "https://github.com/denoland/deno/releases/tag/v${finalAttrs.version}";
description = "Secure runtime for JavaScript and TypeScript";
longDescription = ''
Deno aims to be a productive and secure scripting environment for the modern programmer.
Deno will always be distributed as a single executable.
Given a URL to a Deno program, it is runnable with nothing more than the ~15 megabyte zipped executable.
Deno explicitly takes on the role of both runtime and package manager.
It uses a standard browser-compatible protocol for loading modules: URLs.
Among other things, Deno is a great replacement for utility scripts that may have been historically written with
bash or python.
'';
license = licenses.mit;
mainProgram = "deno";
maintainers = with maintainers; [
jk
ofalvai
];
platforms = [
"x86_64-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
};
})

View File

@@ -0,0 +1,41 @@
diff --git a/cli/tools/upgrade.rs b/cli/tools/upgrade.rs
index 3f4bcc8c7..74d5805a3 100644
--- a/cli/tools/upgrade.rs
+++ b/cli/tools/upgrade.rs
@@ -310,10 +310,7 @@ async fn print_release_notes(
}
pub fn upgrade_check_enabled() -> bool {
- matches!(
- env::var("DENO_NO_UPDATE_CHECK"),
- Err(env::VarError::NotPresent)
- )
+ false
}
pub fn check_for_upgrades(
diff --git a/cli/args/flags.rs b/cli/args/flags.rs
index e1bc861e4..612599c4c 100644
--- a/cli/args/flags.rs
+++ b/cli/args/flags.rs
@@ -1283,7 +1283,6 @@ static ENV_VARIABLES_HELP: &str = cstr!(
database.
<g>DENO_EMIT_CACHE_MODE</> Control if the transpiled sources should be cached.
<g>DENO_NO_PACKAGE_JSON</> Disables auto-resolution of package.json
- <g>DENO_NO_UPDATE_CHECK</> Set to disable checking if a newer Deno version is available
<g>DENO_SERVE_ADDRESS</> Override address for Deno.serve
Example: "tcp:0.0.0.0:8080", "unix:/tmp/deno.sock", or "vsock:1234:5678"
<g>DENO_AUTO_SERVE</> If the entrypoint contains export default { fetch }, `deno run`
diff --git a/tests/integration/upgrade_tests.rs b/tests/integration/upgrade_tests.rs
index b342c17f7..1f54292f0 100644
--- a/tests/integration/upgrade_tests.rs
+++ b/tests/integration/upgrade_tests.rs
@@ -43,6 +43,7 @@ fn upgrade_invalid_lockfile() {
);
}
+#[ignore]
#[flaky_test::flaky_test]
fn upgrade_prompt() {
let context = upgrade_context();

View File

@@ -0,0 +1,73 @@
diff --git a/cli/args/flags.rs b/cli/args/flags.rs
index e1bc861e4..05f070563 100644
--- a/cli/args/flags.rs
+++ b/cli/args/flags.rs
@@ -1349,8 +1349,6 @@ static DENO_HELP: &str = cstr!(
<g>test</> Run tests
<p(245)>deno test | deno test test.ts</>
<g>publish</> Publish the current working directory's package or workspace
- <g>upgrade</> Upgrade deno executable to given version
- <p(245)>deno upgrade | deno upgrade 1.45.0 | deno upgrade canary</>
{after-help}
<y>Docs:</> https://docs.deno.com
@@ -1536,7 +1534,6 @@ pub fn flags_from_vec(args: Vec<OsString>) -> clap::error::Result<Flags> {
"types" => types_parse(&mut flags, &mut m),
"uninstall" => uninstall_parse(&mut flags, &mut m),
"update" => outdated_parse(&mut flags, &mut m, true)?,
- "upgrade" => upgrade_parse(&mut flags, &mut m),
"vendor" => vendor_parse(&mut flags, &mut m),
"publish" => publish_parse(&mut flags, &mut m)?,
_ => unreachable!(),
@@ -1797,7 +1794,6 @@ pub fn clap_root() -> Command {
.subcommand(test_subcommand())
.subcommand(types_subcommand())
.subcommand(update_subcommand())
- .subcommand(upgrade_subcommand())
.subcommand(vendor_subcommand());
let help = help_subcommand(&cmd);
@@ -6644,6 +6640,7 @@ mod tests {
assert_eq!(flags2, flags);
}
+ #[ignore]
#[test]
fn upgrade() {
let r = flags_from_vec(svec!["deno", "upgrade", "--dry-run", "--force"]);
@@ -6665,6 +6662,7 @@ mod tests {
);
}
+ #[ignore]
#[test]
fn upgrade_with_output_flag() {
let r = flags_from_vec(svec!["deno", "upgrade", "--output", "example.txt"]);
@@ -10599,6 +10597,7 @@ mod tests {
);
}
+ #[ignore]
#[test]
fn upgrade_with_ca_file() {
let r = flags_from_vec(svec!["deno", "upgrade", "--cert", "example.crt"]);
@@ -10620,6 +10619,7 @@ mod tests {
);
}
+ #[ignore]
#[test]
fn upgrade_release_candidate() {
let r = flags_from_vec(svec!["deno", "upgrade", "--rc"]);
diff --git a/tests/integration/upgrade_tests.rs b/tests/integration/upgrade_tests.rs
index b342c17f7..a6c2aafc6 100644
--- a/tests/integration/upgrade_tests.rs
+++ b/tests/integration/upgrade_tests.rs
@@ -9,6 +9,7 @@ use test_util::TestContext;
use test_util::assert_starts_with;
use util::TestContextBuilder;
+#[ignore]
#[flaky_test::flaky_test]
fn upgrade_invalid_lockfile() {
let context = upgrade_context();

View File

@@ -0,0 +1,44 @@
diff --git a/tests/unit/serve_test.ts b/tests/unit/serve_test.ts
index 6373fbb3a..2b43226f6 100644
--- a/tests/unit/serve_test.ts
+++ b/tests/unit/serve_test.ts
@@ -4218,7 +4218,7 @@ Deno.test(
},
);
await promise;
- const e = await execCode3("/usr/bin/sh", [
+ const e = await execCode3("sh", [
"-c",
`curl --stderr - -N --compressed --no-progress-meter http://localhost:${servePort}`,
]);
diff --git a/tests/unit_node/process_test.ts b/tests/unit_node/process_test.ts
index fe6f43b3e..29916019a 100644
--- a/tests/unit_node/process_test.ts
+++ b/tests/unit_node/process_test.ts
@@ -509,7 +509,7 @@ Deno.test({
const scriptPath = "./testdata/process_stdin.ts";
const filePath = "./testdata/process_stdin_dummy.txt";
- const shell = Deno.build.os === "windows" ? "cmd.exe" : "/bin/sh";
+ const shell = Deno.build.os === "windows" ? "cmd.exe" : "sh";
const cmd = `"${Deno.execPath()}" run ${scriptPath} < ${filePath}`;
const args = Deno.build.os === "windows" ? ["/d", "/c", cmd] : ["-c", cmd];
@@ -569,7 +569,7 @@ Deno.test({
listener.close();
});
- const shell = "/bin/bash";
+ const shell = "bash";
const cmd =
`"${Deno.execPath()}" run ${scriptPath} < /dev/tcp/127.0.0.1/9000`;
const args = ["-c", cmd];
@@ -620,7 +620,7 @@ Deno.test({
const scriptPath = "./testdata/process_stdin.ts";
const directoryPath = "./testdata/";
- const shell = "/bin/bash";
+ const shell = "bash";
const cmd = `"${Deno.execPath()}" run ${scriptPath} < ${directoryPath}`;
const args = ["-c", cmd];

View File

@@ -0,0 +1,77 @@
Disable chown, uid and gid tests on Linux. These fail in the Nix sandbox.
diff --git a/tests/unit/chown_test.ts b/tests/unit/chown_test.ts
index 99e7dd4..a343122 100644
--- a/tests/unit/chown_test.ts
+++ b/tests/unit/chown_test.ts
@@ -69,7 +69,7 @@ Deno.test(
);
Deno.test(
- { permissions: { write: true }, ignore: Deno.build.os == "windows" },
+ { permissions: { write: true }, ignore: Deno.build.os == "windows" || Deno.build.os === "linux" },
function chownSyncPermissionDenied() {
const dirPath = Deno.makeTempDirSync();
const filePath = dirPath + "/chown_test_file.txt";
@@ -84,7 +84,7 @@ Deno.test(
);
Deno.test(
- { permissions: { write: true }, ignore: Deno.build.os == "windows" },
+ { permissions: { write: true }, ignore: Deno.build.os == "windows" || Deno.build.os === "linux" },
async function chownPermissionDenied() {
const dirPath = await Deno.makeTempDir();
const filePath = dirPath + "/chown_test_file.txt";
diff --git a/tests/unit/command_test.ts b/tests/unit/command_test.ts
index fa941df..9292864 100644
--- a/tests/unit/command_test.ts
+++ b/tests/unit/command_test.ts
@@ -755,7 +755,7 @@ Deno.test(
Deno.test(
{
permissions: { run: true, read: true },
- ignore: Deno.build.os === "windows",
+ ignore: Deno.build.os === "windows" || Deno.build.os === "linux",
},
async function commandUid() {
const { stdout } = await new Deno.Command("id", {
@@ -778,7 +778,7 @@ Deno.test(
Deno.test(
{
permissions: { run: true, read: true },
- ignore: Deno.build.os === "windows",
+ ignore: Deno.build.os === "windows" || Deno.build.os === "linux",
},
function commandSyncUid() {
const { stdout } = new Deno.Command("id", {
@@ -801,7 +801,7 @@ Deno.test(
Deno.test(
{
permissions: { run: true, read: true },
- ignore: Deno.build.os === "windows",
+ ignore: Deno.build.os === "windows" || Deno.build.os === "linux",
},
async function commandGid() {
const { stdout } = await new Deno.Command("id", {
@@ -824,7 +824,7 @@ Deno.test(
Deno.test(
{
permissions: { run: true, read: true },
- ignore: Deno.build.os === "windows",
+ ignore: Deno.build.os === "windows" || Deno.build.os === "linux",
},
function commandSyncGid() {
const { stdout } = new Deno.Command("id", {
diff --git a/tests/unit_node/_fs/_fs_handle_test.ts b/tests/unit_node/_fs/_fs_handle_test.ts
index 6bf37b6..3a4567f 100644
--- a/tests/unit_node/_fs/_fs_handle_test.ts
+++ b/tests/unit_node/_fs/_fs_handle_test.ts
@@ -276,7 +276,7 @@ Deno.test({
Deno.test({
name: "[node/fs filehandle.chown] Change owner of the file",
- ignore: Deno.build.os === "windows",
+ ignore: Deno.build.os === "windows" || Deno.build.os === "linux",
async fn() {
const fileHandle = await fs.open(testData);

View File

@@ -0,0 +1,43 @@
Disable codesign check and a Darwin-specific temp dir workaround.
Note: the darwin.sigtool package includes a codesign utility, but it doesn't support the -v flag used in this test.
diff --git a/tests/integration/compile_tests.rs b/tests/integration/compile_tests.rs
index 503538d24..ca89e3133 100644
--- a/tests/integration/compile_tests.rs
+++ b/tests/integration/compile_tests.rs
@@ -32,17 +32,6 @@ fn compile_basic() {
output.assert_matches_text("Welcome to Deno!\n");
}
- // On arm64 macOS, check if `codesign -v` passes
- #[cfg(all(target_os = "macos", target_arch = "aarch64"))]
- {
- let output = std::process::Command::new("codesign")
- .arg("-v")
- .arg(&exe)
- .output()
- .unwrap();
- assert!(output.status.success());
- }
-
// now ensure this works when the deno_dir is readonly
let readonly_dir = dir.path().join("readonly");
readonly_dir.make_dir_readonly();
diff --git a/tests/unit/dir_test.ts b/tests/unit/dir_test.ts
index 757c8fec3..22b999820 100644
--- a/tests/unit/dir_test.ts
+++ b/tests/unit/dir_test.ts
@@ -12,11 +12,7 @@ Deno.test(
const path = Deno.makeTempDirSync();
Deno.chdir(path);
const current = Deno.cwd();
- if (Deno.build.os === "darwin") {
- assertEquals(current, "/private" + path);
- } else {
- assertEquals(current, path);
- }
+ assertEquals(current, path);
Deno.chdir(initialdir);
},
);

View File

@@ -0,0 +1,34 @@
From 798fc5e7e87c1b985a383b7b92a7e55c82e41efa Mon Sep 17 00:00:00 2001
From: 06kellyjac <dev@j-k.io>
Date: Fri, 3 Oct 2025 14:20:53 +0100
Subject: [PATCH] test: leverage `Deno.execPath()` matching other tests
Currently most TS tests use `Deno.execPath()` to identify where `deno` lives
In the event deno is not on the `$PATH` these tests will fail.
If deno is on the `$PATH` you can end up testing the wrong instance of `deno`.
---
tests/unit/process_test.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tests/unit/process_test.ts b/tests/unit/process_test.ts
index 7b82fe5ba782f5..1c26a6f990d1b0 100644
--- a/tests/unit/process_test.ts
+++ b/tests/unit/process_test.ts
@@ -623,7 +623,7 @@ Deno.test(
// @ts-ignore `Deno.run()` was soft-removed in Deno 2.
const p = Deno.run({
- cmd: ["deno", "run", "--watch", tempFile],
+ cmd: [Deno.execPath(), "run", "--watch", tempFile],
stdout: "piped",
stderr: "null",
});
@@ -661,7 +661,7 @@ Deno.serve({ signal: ac.signal }, () => new Response("Hello World"));
// @ts-ignore `Deno.run()` was soft-removed in Deno 2.
const p = Deno.run({
- cmd: ["deno", "run", "--watch", tempFile],
+ cmd: [Deno.execPath(), "run", "--watch", tempFile],
stdout: "piped",
stderr: "null",
});

View File

@@ -0,0 +1 @@
console.log(1 + 1)

View File

@@ -0,0 +1,79 @@
{
deno,
runCommand,
lib,
testers,
}:
let
testDenoRun =
name:
{
args ? "",
dir ? ./. + "/${name}",
file ? "index.ts",
expected ? "",
expectFailure ? false,
}:
let
command = "deno run ${args} ${dir}/${file}";
in
runCommand "deno-test-${name}"
{
nativeBuildInputs = [ deno ];
meta.timeout = 60;
}
''
HOME=$(mktemp -d)
if output=$(${command} 2>&1); then
if [[ $output =~ '${expected}' ]]; then
echo "Test '${name}' passed"
touch $out
else
echo -n ${lib.escapeShellArg command} >&2
echo " output did not match what was expected." >&2
echo "The expected was:" >&2
echo '${expected}' >&2
echo "The output was:" >&2
echo "$output" >&2
exit 1
fi
else
if [[ "${toString expectFailure}" == "1" ]]; then
echo "Test '${name}' failed as expected"
touch $out
exit 0
fi
echo -n ${lib.escapeShellArg command} >&2
echo " returned a non-zero exit code." >&2
echo "$output" >&2
exit 1
fi
'';
in
(lib.mapAttrs testDenoRun {
basic = {
dir = ./.;
file = "basic.ts";
expected = "2";
};
import-json = {
expected = "hello from JSON";
};
import-ts = {
expected = "hello from ts";
};
read-file = {
args = "--allow-read";
expected = "hello from a file";
};
fail-read-file = {
expectFailure = true;
dir = ./read-file;
};
})
// {
version = testers.testVersion {
package = deno;
command = "deno --version";
};
}

View File

@@ -0,0 +1 @@
{ "msg": "hello from JSON" }

View File

@@ -0,0 +1,2 @@
import file from "./data.json" with { type: "json" };
console.log(file.msg);

View File

@@ -0,0 +1,3 @@
import { sayHello } from "./lib.ts"
sayHello("ts")

View File

@@ -0,0 +1,3 @@
export function sayHello(thing: string) {
console.log(`hello from ${thing}`);
}

View File

@@ -0,0 +1 @@
hello from a file

View File

@@ -0,0 +1,5 @@
// trim 'file://' prefix
const thisDir = Deno.mainModule.substring(7, Deno.mainModule.length);
const getParent = (path: string) => path.substring(0, path.lastIndexOf("/"))
const text = await Deno.readTextFile(getParent(thisDir) + "/data.txt");
console.log(text);

View File

@@ -0,0 +1,51 @@
interface GHRelease {
tag_name: string;
}
const decode = (buffer: Uint8Array) => new TextDecoder("utf-8").decode(buffer);
export const run = async (command: string, args: string[]) => {
const cmd = new Deno.Command(command, { args });
const { code, stdout, stderr } = await cmd.output();
if (code !== 0) {
const error = decode(stderr).trimEnd();
// Known error we can ignore
if (error.includes("'allow-unsafe-native-code-during-evaluation'")) {
// Extract the target sha256 out of the error
const target = " got: sha256:";
const match = error
.split("\n")
.find((l) => l.includes(target))
?.split(target)[1];
if (typeof match !== "undefined") {
return match;
}
}
throw new Error(error);
}
return decode(stdout).trimEnd();
};
// Exports
export const versionRegExp = /\d+\.\d+\.\d+/;
export const sha256RegExp = /[a-z0-9]{52}|sha256-.{44}/;
export const getExistingVersion = async (filePath: string) =>
read(filePath).then(
(s) => s.match(genValueRegExp("version", versionRegExp))?.shift() || "",
);
export const getLatestVersion = (owner: string, repo: string) =>
fetch(`https://api.github.com/repos/${owner}/${repo}/releases`)
.then((res) => res.json())
.then((res: GHRelease[]) => res[0].tag_name);
// The (?<=) and (?=) allow replace to only change inside
// Match the regex passed in or empty
export const genValueRegExp = (key: string, regex: RegExp) =>
new RegExp(`(?<=${key} = ")(${regex.source}|)(?=")`);
export const logger = (name: string) => (...a: any) =>
console.log(`[${name}]`, ...a);
export const read = Deno.readTextFile;
export const write = Deno.writeTextFile;

View File

@@ -0,0 +1,74 @@
import * as toml from "jsr:@std/toml@1.0.1";
import { getExistingVersion, logger, run, write } from "./common.ts";
const log = logger("librusty_v8");
export interface Architecture {
nix: string;
rust: string;
}
interface PrefetchResult {
arch: Architecture;
sha256: string;
}
const getCargoLock = async (
owner: string,
repo: string,
version: string,
) =>
fetch(`https://github.com/${owner}/${repo}/raw/${version}/Cargo.lock`)
.then((res) => res.text())
.then((txt) => toml.parse(txt));
const fetchArchShaTasks = (version: string, arches: Architecture[]) =>
arches.map(
async (arch: Architecture): Promise<PrefetchResult> => {
log("Fetching:", arch.nix);
const sha256 = await run("nix-prefetch-url", [
`https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch.rust}.a.gz`
]);
const sha256_sri = await run("nix-hash", ["--type", "sha256", "--to-sri", sha256]);
log("Done: ", arch.nix);
return { arch, sha256: sha256_sri };
},
);
const templateDeps = (version: string, deps: PrefetchResult[]) =>
`# auto-generated file -- DO NOT EDIT!
{ fetchLibrustyV8 }:
fetchLibrustyV8 {
version = "${version}";
shas = {
${deps.map(({ arch, sha256 }) => ` ${arch.nix} = "${sha256}";`).join("\n")}
};
}
`;
export async function updateLibrustyV8(
filePath: string,
owner: string,
repo: string,
denoVersion: string,
arches: Architecture[],
) {
log("Starting librusty_v8 update");
// 0.0.0
const cargoLockData = await getCargoLock(owner, repo, denoVersion);
console.log(cargoLockData);
const packageItem = cargoLockData.package.find(({ name }) => name === "v8");
const version = packageItem.version;
if (typeof version !== "string") {
throw "no librusty_v8 version";
}
log("librusty_v8 version:", version);
const existingVersion = await getExistingVersion(filePath);
if (version === existingVersion) {
log("Version already matches latest, skipping...");
return;
}
const archShaResults = await Promise.all(fetchArchShaTasks(version, arches));
await write(filePath, templateDeps(version, archShaResults));
log("Finished deps update");
}

View File

@@ -0,0 +1,67 @@
import {
genValueRegExp,
logger,
read,
run,
sha256RegExp,
versionRegExp,
write,
} from "./common.ts";
interface Replacer {
regex: RegExp;
value: string;
}
const log = logger("src");
const prefetchHash = (nixpkgs: string, version: string) =>
run("nurl", ["https://github.com/denoland/deno", version, "-H", "-n", nixpkgs, "-S"]);
const prefetchCargoHash = (nixpkgs: string) =>
run(
"nurl",
["-e", `(import ${nixpkgs} {}).deno.cargoDeps.overrideAttrs (_: { hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; })`]
);
const replace = (str: string, replacers: Replacer[]) =>
replacers.reduce(
(str, r) => str.replace(r.regex, r.value),
str,
);
const updateNix = (filePath: string, replacers: Replacer[]) =>
read(filePath).then((str) => write(filePath, replace(str, replacers)));
const genVerReplacer = (k: string, value: string): Replacer => (
{ regex: genValueRegExp(k, versionRegExp), value }
);
const genShaReplacer = (k: string, value: string): Replacer => (
{ regex: genValueRegExp(k, sha256RegExp), value }
);
export async function updateSrc(
filePath: string,
nixpkgs: string,
denoVersion: string,
) {
log("Starting src update");
const trimVersion = denoVersion.substring(1);
log("Fetching hash for:", trimVersion);
const sha256 = await prefetchHash(nixpkgs, denoVersion);
log("sha256 to update:", sha256);
await updateNix(
filePath,
[
genVerReplacer("version", trimVersion),
genShaReplacer("hash", sha256),
],
);
log("Fetching cargoHash for:", sha256);
const cargoHash = await prefetchCargoHash(nixpkgs);
log("cargoHash to update:", cargoHash);
await updateNix(
filePath,
[genShaReplacer("cargoHash", cargoHash)],
);
log("Finished src update");
}

View File

@@ -0,0 +1,43 @@
#!/usr/bin/env nix-shell
/*
#!nix-shell -i "deno run --allow-net --allow-run --allow-read --allow-write" -p deno git nurl
*/
import { getExistingVersion, getLatestVersion, logger } from "./common.ts";
import { Architecture, updateLibrustyV8 } from "./librusty_v8.ts";
import { updateSrc } from "./src.ts";
const log = logger("update");
// TODO: Getting current file position to more-safely point to nixpkgs root
const nixpkgs = Deno.cwd();
// TODO: Read values from default.nix
const owner = "denoland";
const repo = "deno";
const denoDir = `${nixpkgs}/pkgs/by-name/de/${repo}`;
const src = `${denoDir}/package.nix`;
const librusty_v8 = `${denoDir}/librusty_v8.nix`;
const architectures: Architecture[] = [
{ nix: "x86_64-linux", rust: "x86_64-unknown-linux-gnu" },
{ nix: "aarch64-linux", rust: "aarch64-unknown-linux-gnu" },
{ nix: "x86_64-darwin", rust: "x86_64-apple-darwin" },
{ nix: "aarch64-darwin", rust: "aarch64-apple-darwin" },
];
log("Updating deno");
log("Getting latest deno version");
const version = await getLatestVersion(owner, repo);
const existingVersion = await getExistingVersion(src);
const trimVersion = version.substr(1); // Strip v from v0.0.0
log("Latest version: ", trimVersion);
log("Extracted version:", existingVersion);
if (trimVersion === existingVersion) {
log("Version already matches latest, skipping...");
Deno.exit(0);
}
const tasks = [
updateSrc(src, nixpkgs, version),
updateLibrustyV8(librusty_v8, owner, repo, version, architectures),
];
await Promise.all(tasks);
log("Updating deno complete");

View File

@@ -0,0 +1,79 @@
{
fetchFromGitHub,
lib,
python3Packages,
gtk3,
gobject-introspection,
wrapGAppsHook3,
xorg,
gnugrep,
ghostscript,
libnotify,
}:
python3Packages.buildPythonApplication rec {
pname = "densify";
version = "0.3.2";
format = "other";
src = fetchFromGitHub {
owner = "hkdb";
repo = "Densify";
tag = "v${version}";
hash = "sha256-giFFy8HiSmnOqFKLyrPD1kTry8hMQxotEgD/u2FEMRY=";
};
postPatch = ''
# Fix fail loading program icon from runtime path
substituteInPlace densify \
--replace-fail "/icon.png" "/../share/densify/icon.png"
'';
dependencies = with python3Packages; [ pygobject3 ];
nativeBuildInputs = [
gobject-introspection
wrapGAppsHook3
];
buildInputs = [ gtk3 ];
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${
lib.makeBinPath [
ghostscript
gnugrep
xorg.xrandr
libnotify
]
}"
)
'';
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin densify
install -Dm644 -t $out/share/applications densify.desktop
install -Dm644 -t $out/share/densify desktop-icon.png icon.png
runHook postInstall
'';
postFixup = ''
substituteInPlace $out/share/applications/densify.desktop \
--replace-fail "/opt/Densify/densify" "densify" \
--replace-fail "Path=/opt/Densify/" "Path=$out/bin/" \
--replace-fail "/opt/Densify/desktop-icon.png" "$out/share/densify/desktop-icon.png"
'';
meta = {
description = "Compress PDF files with Ghostscript";
homepage = "https://github.com/hkdb/Densify";
changelog = "https://github.com/hkdb/Densify/blob/${src.rev}/README.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ onny ];
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,83 @@
{
lib,
fetchFromGitHub,
python3Packages,
writableTmpDirAsHomeHook,
makeWrapper,
cdxgen,
nixosTests,
}:
python3Packages.buildPythonApplication rec {
pname = "dep-scan";
version = "6.0.0b3";
pyproject = true;
src = fetchFromGitHub {
owner = "owasp-dep-scan";
repo = "dep-scan";
tag = "v${version}";
hash = "sha256-GdrFsECcBZ2J47ojM33flqOtrY3avchGpsZk6pt8Aks=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages; [
appthreat-vulnerability-db
custom-json-diff
cvss
defusedxml
ds-analysis-lib
ds-reporting-lib
ds-xbom-lib
jinja2
oras
packageurl-python
pdfkit
pygithub
pyyaml
quart
rich
toml
];
nativeCheckInputs = with python3Packages; [
httpretty
pytest-cov-stub
pytestCheckHook
writableTmpDirAsHomeHook
];
pythonImportsCheck = [ "depscan" ];
disabledTests = [
# Test is not present
"test_query_metadata2"
];
# depscan --src shiftleft/scan-slim -o containertests -t docker
#
# WARNING [2025-07-28 20:17:35,654] cdxgen command not found. Please install using npm install @cyclonedx/cdxgen or set PATH variable
# WARNING [2025-07-28 20:17:35,654] /nix/store/56bxjw4rgdqa82f61w70z92qq6b14ass-dep-scan-5.5.0/lib/python3.13/site-packages/depscan/lib/local_bin/cdxgen command not found. Please install using npm install @cyclonedx/cdxgen or set PATH variable
# INFO [2025-07-28 20:17:35,654] Generating Software Bill-of-Materials for container image shiftleft/scan-slim. This might take a few mins ...
# WARNING [2025-07-28 20:17:35,654] Unable to locate cdxgen command.
makeWrapperArgs = [
"--prefix PATH : ${
lib.makeBinPath [
cdxgen
]
}"
];
passthru.tests = { inherit (nixosTests) dep-scan; };
meta = {
description = "Security and risk audit tool based on known vulnerabilities, advisories, and license limitations for project dependencies";
homepage = "https://github.com/owasp-dep-scan/dep-scan";
changelog = "https://github.com/owasp-dep-scan/dep-scan/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
teams = [ lib.teams.ngi ];
mainProgram = "dep-scan";
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
fetchFromGitHub,
buildGoModule,
linkFarm,
}:
let
testDeps = {
react-stl-viewer = fetchFromGitHub {
owner = "gabotechs";
repo = "react-stl-viewer";
rev = "2.2.4";
hash = "sha256-0u9q0UgOn43PE1Y6BUhl1l6RnVjpPraFqZWB+HhQ0s8=";
};
react-gcode-viewer = fetchFromGitHub {
owner = "gabotechs";
repo = "react-gcode-viewer";
rev = "2.2.4";
hash = "sha256-FHBICLdy0k4j3pPKStg+nkIktMpKS1ADa4m1vYHJ+AQ=";
};
graphql-js = fetchFromGitHub {
owner = "graphql";
repo = "graphql-js";
rev = "v17.0.0-alpha.2";
hash = "sha256-y55SNiMivL7bRsjLEIpsKKyaluI4sXhREpiB6A5jfDU=";
};
warp = fetchFromGitHub {
owner = "seanmonstar";
repo = "warp";
rev = "v0.3.3";
hash = "sha256-76ib8KMjTS2iUOwkQYCsoeL3GwBaA/MRQU2eGjJEpOo=";
};
};
pname = "dep-tree";
version = "0.23.4";
in
buildGoModule {
inherit pname version;
src = fetchFromGitHub {
owner = "gabotechs";
repo = "dep-tree";
rev = "v${version}";
hash = "sha256-m+afcnwVvPrD+S7c/kfE8mqlD7kO+VPI6sSXCCjXWZM=";
};
vendorHash = "sha256-KoVOjZq+RrJ2gzLnANHPPtbEY1ztC0rIXWD9AXAxqMg=";
preCheck = ''
substituteInPlace internal/tui/tui_test.go \
--replace-fail /tmp/dep-tree-tests ${linkFarm "dep-tree_testDeps-farm" testDeps}
'';
checkPhase = ''
runHook preCheck
# We do not set trimpath for tests, in case they reference test assets
export GOFLAGS=''${GOFLAGS//-trimpath/}
# checkFlags is not able to skip tests via pattern.
# possibly requires fixing in buildGoModule.
# For now, this is the new checkPhase
go test ./... -skip='TestRoot.*|TestFilesFromArgs.*'
# these tests were not feasibly fixable.
# a LARGE portion of the original source would need to be edited via patch for this to work.
runHook postCheck
'';
meta = {
description = "Tool for visualizing interconnectedness of codebases in multiple languages";
longDescription = ''
dep-tree is a tool for interactively visualizing the complexity of a code base.
It helps analyze the interconnectedness of the codebase and create goals to improve maintainability.
'';
homepage = "https://github.com/gabotechs/dep-tree";
changelog = "https://github.com/gabotechs/dep-tree/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ birdee ];
mainProgram = "dep-tree";
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "departure-mono";
version = "1.500";
src = fetchzip {
url = "https://github.com/rektdeckard/departure-mono/releases/download/v${finalAttrs.version}/DepartureMono-${finalAttrs.version}.zip";
stripRoot = false;
hash = "sha256-XYL76L266MKqClxfbPn/C6+x/vcs7AD56DtiDmQam2A=";
};
sourceRoot = "${finalAttrs.src.name}/DepartureMono-${finalAttrs.version}";
installPhase = ''
runHook preInstall
install -D -m 444 *.otf -t $out/share/fonts/otf
install -D -m 444 *.woff -t $out/share/fonts/woff
install -D -m 444 *.woff2 -t $out/share/fonts/woff2
runHook postInstall
'';
meta = {
changelog = "https://github.com/rektdeckard/departure-mono/releases/tag/v${finalAttrs.version}";
description = "Departure Mono is a monospaced pixel font with a lo-fi technical vibe";
homepage = "https://departuremono.com/";
license = lib.licenses.ofl;
platforms = lib.platforms.all;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,118 @@
{
lib,
stdenv,
buildGoModule,
dependabot-cli,
dockerTools,
fetchFromGitHub,
installShellFiles,
makeWrapper,
symlinkJoin,
testers,
}:
let
pname = "dependabot-cli";
version = "1.74.0";
# `tag` is what `dependabot` uses to find the relevant docker images.
tag = "nixpkgs-dependabot-cli-${version}";
# Get these hashes from
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy --image-tag latest --final-image-name dependabot-update-job-proxy --final-image-tag ${tag}
updateJobProxy.imageDigest = "sha256:05539969894efd6f5d04c9c633f330cc61a3024106b19361d6684850258e4f0f";
updateJobProxy.hash = "sha256-qhHkL1HmCz0o3JIBAevWnTkidtoH92wE2GyzYTFhVyY=";
# Get these hashes from
# nix run nixpkgs#nix-prefetch-docker -- --image-name ghcr.io/dependabot/dependabot-updater-github-actions --image-tag latest --final-image-name dependabot-updater-github-actions --final-image-tag ${tag}
updaterGitHubActions.imageDigest = "sha256:7424e2a837d3bee8c49ddabf8d0152e9d5e87eac6cf67edb684f5e9f7895cff3";
updaterGitHubActions.hash = "sha256-75qJjwYEkpKP1Gs87odBsiLXTZhQ0KvaOpBB+YFZkJY=";
in
buildGoModule {
inherit pname version;
src = fetchFromGitHub {
owner = "dependabot";
repo = "cli";
rev = "v${version}";
hash = "sha256-h1qnyH9M37kWFeET31KFKNn+RnnE7FRcaKADDDtxSdw=";
};
vendorHash = "sha256-Tq+mHd/5LkBkqEXvZ98SRTdA6IsCdUPril+AmPQZfdI=";
ldflags = [
"-s"
"-w"
"-X github.com/dependabot/cli/cmd/dependabot/internal/cmd.version=v${version}"
];
nativeBuildInputs = [
makeWrapper
installShellFiles
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd dependabot \
--bash <($out/bin/dependabot completion bash) \
--fish <($out/bin/dependabot completion fish) \
--zsh <($out/bin/dependabot completion zsh)
'';
checkFlags = [
"-skip=TestDependabot"
];
doInstallCheck = true;
installCheckPhase = ''
$out/bin/dependabot --help
'';
passthru.updateScript = ./update.sh;
passthru.withDockerImages = symlinkJoin {
name = "dependabot-cli-with-docker-images";
paths = [ dependabot-cli ];
buildInputs = [ makeWrapper ];
postBuild =
let
updateJobProxyImage = dockerTools.pullImage {
imageName = "ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy";
finalImageName = "dependabot-update-job-proxy";
finalImageTag = tag;
inherit (updateJobProxy) imageDigest hash;
};
updaterGitHubActionsImage = dockerTools.pullImage {
imageName = "ghcr.io/dependabot/dependabot-updater-github-actions";
finalImageName = "dependabot-updater-github-actions";
finalImageTag = tag;
inherit (updaterGitHubActions) imageDigest hash;
};
in
''
# Create a wrapper that pins the docker images that `dependabot` uses.
wrapProgram $out/bin/dependabot \
--run "docker load --input ${updateJobProxyImage} >&2" \
--add-flags "--proxy-image=dependabot-update-job-proxy:${tag}" \
--run "docker load --input ${updaterGitHubActionsImage} >&2" \
--add-flags "--updater-image=dependabot-updater-github-actions:${tag}"
'';
};
passthru.tests.version = testers.testVersion {
package = dependabot-cli;
command = "dependabot --version";
version = "v${version}";
};
meta = {
changelog = "https://github.com/dependabot/cli/releases/tag/v${version}";
description = "Tool for testing and debugging Dependabot update jobs";
mainProgram = "dependabot";
homepage = "https://github.com/dependabot/cli";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
infinisil
philiptaron
];
};
}

View File

@@ -0,0 +1,48 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep gnused jq gh nix-prefetch-docker nix gitMinimal
set -x -eu -o pipefail
cd $(dirname "${BASH_SOURCE[0]}")
NIXPKGS_PATH="$(git rev-parse --show-toplevel)"
temp_dir=$(mktemp -d)
trap 'rm -rf "$temp_dir"' EXIT
gh api repos/dependabot/cli/releases/latest > "$temp_dir/latest.json"
VERSION="$(jq -r .tag_name "$temp_dir/latest.json" | sed 's/^v//')"
OLD_VERSION="$(grep -m1 'version = "' ./package.nix | cut -d'"' -f2)"
if [ "$OLD_VERSION" = "$VERSION" ]; then
echo "dependabot is already up-to-date at $OLD_VERSION"
exit 0
fi
SHA256="$(nix-prefetch-url --quiet --unpack https://github.com/dependabot/cli/archive/refs/tags/v${VERSION}.tar.gz)"
HASH="$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri "$SHA256")"
nix-prefetch-docker --json --quiet --final-image-name dependabot-update-job-proxy --final-image-tag "nixpkgs-dependabot-cli-$VERSION" ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy latest > "$temp_dir/dependabot-update-job-proxy.json"
nix-prefetch-docker --json --quiet --final-image-name dependabot-updater-github-actions --final-image-tag "nixpkgs-dependabot-cli-$VERSION" ghcr.io/dependabot/dependabot-updater-github-actions latest > "$temp_dir/dependabot-updater-github-actions.json"
setKV () {
sed -i "s,$1 = \"[^v].*\",$1 = \"${2:-}\"," ./package.nix
}
setKV version "${VERSION}"
setKV hash "${HASH}"
setKV updateJobProxy.imageDigest "$(jq -r .imageDigest "$temp_dir/dependabot-update-job-proxy.json")"
setKV updateJobProxy.hash "$(jq -r .hash "$temp_dir/dependabot-update-job-proxy.json")"
setKV updaterGitHubActions.imageDigest "$(jq -r .imageDigest "$temp_dir/dependabot-updater-github-actions.json")"
setKV updaterGitHubActions.hash "$(jq -r .hash "$temp_dir/dependabot-updater-github-actions.json")"
# We need to figure out the vendorHash for this new version, so we initially set it to `lib.fakeHash`
FAKE_HASH="sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
setKV vendorHash "$FAKE_HASH"
set +e
VENDOR_HASH="$(nix-build --no-out-link --log-format internal-json -A dependabot-cli "$NIXPKGS_PATH" 2>&1 >/dev/null | grep "$FAKE_HASH" | grep -o "sha256-[^\\]*" | tail -1)"
set -e
setKV vendorHash "$VENDOR_HASH"

View File

@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "dependency-track-exporter";
version = "0.1.2";
src = fetchFromGitHub {
owner = "jetstack";
repo = "dependency-track-exporter";
tag = "v${version}";
hash = "sha256-yvScGxgkyZzEdfeJCXk/tSk3cLW+jyw00XbJVrpU6MY=";
};
vendorHash = "sha256-bEJFTsGQMDfZOt67ouv3PkKy+De4mL9Yk7iuslo1qYU=";
ldflags = [
"-X=github.com/prometheus/common/version.Version=${version}"
"-X=github.com/prometheus/common/version.Revision=${src.rev}"
"-X=github.com/prometheus/common/version.Branch=${src.rev}"
"-X=github.com/prometheus/common/version.BuildDate=1970-01-01T00:00:00Z"
];
meta = {
description = "Helper to export Prometheus metrics for Dependency-Track";
homepage = "https://github.com/jetstack/dependency-track-exporter";
changelog = "https://github.com/jetstack/dependency-track-exporter/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "dependency-track-exporter";
};
}

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