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,54 @@
{
lib,
rustPlatform,
fetchFromGitHub,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "dua";
version = "2.32.0";
src = fetchFromGitHub {
owner = "Byron";
repo = "dua-cli";
tag = "v${version}";
hash = "sha256-u8g7X/70ZsZF6vUiVnisItwSMiNXgiAdOXqGUT34EaY=";
# Remove unicode file names which leads to different checksums on HFS+
# vs. other filesystems because of unicode normalisation.
postFetch = ''
rm -r $out/tests/fixtures
'';
};
cargoHash = "sha256-6WjaKGCnEoHCIDqMHtp/dpdHbrUe2XOxCtstQCuXPyc=";
checkFlags = [
# Skip interactive tests
"--skip=interactive::app::tests::journeys_readonly::simple_user_journey_read_only"
"--skip=interactive::app::tests::journeys_with_writes::basic_user_journey_with_deletion"
"--skip=interactive::app::tests::unit::it_can_handle_ending_traversal_reaching_top_but_skipping_levels"
"--skip=interactive::app::tests::unit::it_can_handle_ending_traversal_without_reaching_the_top"
];
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Tool to conveniently learn about the disk usage of directories";
homepage = "https://github.com/Byron/dua-cli";
changelog = "https://github.com/Byron/dua-cli/blob/v${version}/CHANGELOG.md";
license = with lib.licenses; [ mit ];
maintainers = with lib.maintainers; [
figsoda
killercup
];
mainProgram = "dua";
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
installShellFiles,
meson,
ninja,
pkg-config,
dbus,
hidapi,
udev,
testers,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dualsensectl";
version = "0.7";
src = fetchFromGitHub {
owner = "nowrep";
repo = "dualsensectl";
rev = "v${finalAttrs.version}";
hash = "sha256-/EPFZWpa7U4fmcdX2ycFkPgaqlKEA2cD84LBkcvVVhc=";
};
nativeBuildInputs = [
installShellFiles
meson
ninja
pkg-config
];
buildInputs = [
dbus
hidapi
udev
];
postInstall = ''
installShellCompletion --cmd dualsensectl \
--bash ../completion/dualsensectl \
--zsh ../completion/_dualsensectl
'';
passthru = {
tests.version = testers.testVersion { package = finalAttrs.finalPackage; };
updateScript = nix-update-script { };
};
meta = with lib; {
changelog = "https://github.com/nowrep/dualsensectl/releases/tag/v${finalAttrs.version}";
description = "Linux tool for controlling PS5 DualSense controller";
homepage = "https://github.com/nowrep/dualsensectl";
license = licenses.gpl2Only;
mainProgram = "dualsensectl";
maintainers = with maintainers; [ azuwis ];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,170 @@
{
lib,
stdenv,
fetchFromGitHub,
curl,
ldc,
libevent,
rsync,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dub";
version = "1.39.0";
enableParallelBuilding = true;
src = fetchFromGitHub {
owner = "dlang";
repo = "dub";
rev = "v${finalAttrs.version}";
hash = "sha256-73b15A9+hClD6IbuxTy9QZKpTKjUFYBuqGOclUyhrnM=";
};
postPatch = ''
patchShebangs test
'';
nativeBuildInputs = [
ldc
libevent
rsync
];
buildInputs = [ curl ];
buildPhase = ''
runHook preBuild
export DMD=${ldc}/bin/ldmd2
ldc2 -run ./build.d
runHook postBuild
'';
doCheck = !stdenv.hostPlatform.isDarwin;
checkPhase = ''
runHook preCheck
export DUB=$NIX_BUILD_TOP/source/bin/dub
export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
export DC=${lib.getExe ldc}
export HOME=$TMP
rm -rf test/issue502-root-import
rm test/issue674-concurrent-dub.sh
rm test/issue672-upgrade-optional.sh
rm test/issue990-download-optional-selected.sh
rm test/issue877-auto-fetch-package-on-run.sh
rm test/issue1037-better-dependency-messages.sh
rm test/issue1416-maven-repo-pkg-supplier.sh
rm test/issue1180-local-cache-broken.sh
rm test/issue1574-addcommand.sh
rm test/issue1524-maven-upgrade-dependency-tree.sh
rm test/issue1773-lint.sh
rm test/ddox.sh
rm test/fetchzip.sh
rm test/feat663-search.sh
rm -rf test/git-dependency
rm test/interactive-remove.sh
rm test/timeout.sh
rm test/version-spec.sh
rm test/0-init-multi.sh
rm test/0-init-multi-json.sh
rm test/4-describe-data-1-list.sh
rm test/4-describe-data-3-zero-delim.sh
rm test/4-describe-import-paths.sh
rm test/4-describe-string-import-paths.sh
rm test/4-describe-json.sh
rm test/5-convert-stdout.sh
rm test/issue1003-check-empty-ld-flags.sh
rm test/issue103-single-file-package.sh
rm test/issue1040-run-with-ver.sh
rm test/issue1091-bogus-rebuild.sh
rm test/issue1194-warn-wrong-subconfig.sh
rm test/issue1277.sh
rm test/issue1372-ignore-files-in-hidden-dirs.sh
rm test/issue1447-build-settings-vars.sh
rm test/issue1531-toolchain-requirements.sh
rm test/issue346-redundant-flags.sh
rm test/issue361-optional-deps.sh
rm test/issue564-invalid-upgrade-dependency.sh
rm test/issue586-subpack-dep.sh
rm test/issue616-describe-vs-generate-commands.sh
rm test/issue686-multiple-march.sh
rm test/issue813-fixed-dependency.sh
rm test/issue813-pure-sub-dependency.sh
rm test/issue820-extra-fields-after-convert.sh
rm test/issue923-subpackage-deps.sh
rm test/single-file-sdl-default-name.sh
rm test/subpackage-common-with-sourcefile-globbing.sh
rm test/issue934-path-dep.sh
rm -r test/issue2258-dynLib-exe-dep # requires files below
rm -r test/1-dynLib-simple
rm -r test/1-exec-simple-package-json
rm -r test/1-exec-simple
rm -r test/1-staticLib-simple
rm -r test/2-dynLib-dep
rm -r test/2-staticLib-dep
rm -r test/2-dynLib-with-staticLib-dep
rm -r test/2-sourceLib-dep/
rm -r test/3-copyFiles
rm -r test/custom-source-main-bug487
rm -r test/custom-unittest
rm -r test/issue1262-version-inheritance-diamond
rm -r test/issue1003-check-empty-ld-flags
rm -r test/ignore-hidden-1
rm -r test/ignore-hidden-2
rm -r test/issue1427-betterC
rm -r test/issue130-unicode-*
rm -r test/issue1262-version-inheritance
rm -r test/issue1372-ignore-files-in-hidden-dirs
rm -r test/issue1350-transitive-none-deps
rm -r test/issue1775
rm -r test/issue1447-build-settings-vars
rm -r test/issue1408-inherit-linker-files
rm -r test/issue1551-var-escaping
rm -r test/issue754-path-selection-fail
rm -r test/issue1788-incomplete-string-import-override
rm -r test/subpackage-ref
rm -r test/issue777-bogus-path-dependency
rm -r test/issue959-path-based-subpack-dep
rm -r test/issue97-targettype-none-nodeps
rm -r test/issue97-targettype-none-onerecipe
rm -r test/path-subpackage-ref
rm -r test/sdl-package-simple
rm -r test/dpath-variable # requires execution of dpath-variable.sh
rm -r test/use-c-sources
rm -r test/pr2642-cache-db
rm -r test/pr2644-describe-artifact-path
rm -r test/pr2647-build-deep
./test/run-unittest.sh
runHook postCheck
'';
installPhase = ''
runHook preInstall
install -Dm755 bin/dub $out/bin/dub
runHook postInstall
'';
meta = with lib; {
description = "Package and build manager for D programs and libraries";
homepage = "https://code.dlang.org/";
license = licenses.mit;
mainProgram = "dub";
maintainers = with maintainers; [ jtbx ];
platforms = [
"x86_64-linux"
"i686-linux"
"aarch64-linux"
"x86_64-darwin"
"aarch64-darwin"
];
};
})

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
jsoncpp,
libtins,
libpcap,
openssl,
unstableGitUpdater,
nixosTests,
}:
stdenv.mkDerivation {
pname = "dublin-traceroute";
version = "0.4.2-unstable-2024-04-11";
src = fetchFromGitHub {
owner = "insomniacslk";
repo = "dublin-traceroute";
rev = "a92118d93fd1fa7bdb827e741dd848b7f7083a1e";
hash = "sha256-UJeFPVi3423Jh72fVk8QbLX1tTNAQ504xYs9HwVCkZc=";
};
# gtest requires C++17, while dublin-traceroute requires C++11
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail "ENABLE_TESTING()" ""
'';
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
jsoncpp
libtins
libpcap
openssl
];
outputs = [
"out"
"lib"
"dev"
];
passthru = {
# 0.4.2 was tagged in 2017
updateScript = unstableGitUpdater { };
tests = {
inherit (nixosTests) dublin-traceroute;
};
};
meta = with lib; {
description = "NAT-aware multipath traceroute tool";
homepage = "https://dublin-traceroute.net/";
license = licenses.bsd2;
maintainers = with maintainers; [ baloo ];
platforms = platforms.unix;
mainProgram = "dublin-traceroute";
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
tokyocabinet,
ncurses,
cairo ? null,
pango ? null,
enableCairo ? stdenv.hostPlatform.isLinux,
}:
assert enableCairo -> cairo != null && pango != null;
stdenv.mkDerivation rec {
pname = "duc";
version = "1.4.5";
src = fetchFromGitHub {
owner = "zevv";
repo = "duc";
rev = version;
sha256 = "sha256-ZLNsyp82UnsveEfDKzH8WfRh/Y/PQlXq8Ma+jIZl9Gk=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
tokyocabinet
ncurses
]
++ lib.optionals enableCairo [
cairo
pango
];
configureFlags = lib.optionals (!enableCairo) [
"--disable-x11"
"--disable-cairo"
];
meta = with lib; {
homepage = "http://duc.zevv.nl/";
description = "Collection of tools for inspecting and visualizing disk usage";
license = licenses.gpl2Only;
platforms = platforms.all;
maintainers = [ ];
mainProgram = "duc";
};
}

View File

@@ -0,0 +1,151 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
openssl,
openjdk11,
python3,
unixODBC,
withJdbc ? false,
withOdbc ? false,
}:
let
enableFeature = yes: if yes then "ON" else "OFF";
versions = lib.importJSON ./versions.json;
in
stdenv.mkDerivation (finalAttrs: {
pname = "duckdb";
inherit (versions) rev version;
src = fetchFromGitHub {
# to update run:
# nix-shell maintainers/scripts/update.nix --argstr path duckdb
inherit (versions) hash;
owner = "duckdb";
repo = "duckdb";
tag = "v${finalAttrs.version}";
};
outputs = [
"out"
"lib"
"dev"
];
nativeBuildInputs = [
cmake
ninja
python3
];
buildInputs = [
openssl
]
++ lib.optionals withJdbc [ openjdk11 ]
++ lib.optionals withOdbc [ unixODBC ];
cmakeFlags = [
"-DDUCKDB_EXTENSION_CONFIGS=${finalAttrs.src}/.github/config/in_tree_extensions.cmake"
"-DBUILD_ODBC_DRIVER=${enableFeature withOdbc}"
"-DJDBC_DRIVER=${enableFeature withJdbc}"
"-DOVERRIDE_GIT_DESCRIBE=v${finalAttrs.version}-0-g${finalAttrs.rev}"
]
++ lib.optionals finalAttrs.doInstallCheck [
# development settings
"-DBUILD_UNITTESTS=ON"
];
doInstallCheck = true;
installCheckPhase =
let
excludes = map (pattern: "exclude:'${pattern}'") (
[
"[s3]"
"Test closing database during long running query"
"Test using a remote optimizer pass in case thats important to someone"
"test/common/test_cast_hugeint.test"
"test/sql/copy/csv/test_csv_remote.test"
"test/sql/copy/parquet/test_parquet_remote.test"
"test/sql/copy/parquet/test_parquet_remote_foreign_files.test"
"test/sql/storage/compression/chimp/chimp_read.test"
"test/sql/storage/compression/chimp/chimp_read_float.test"
"test/sql/storage/compression/patas/patas_compression_ratio.test_coverage"
"test/sql/storage/compression/patas/patas_read.test"
"test/sql/json/read_json_objects.test"
"test/sql/json/read_json.test"
"test/sql/json/table/read_json_objects.test"
"test/sql/json/table/read_json.test"
"test/sql/copy/parquet/parquet_5968.test"
"test/fuzzer/pedro/buffer_manager_out_of_memory.test"
"test/sql/storage/compression/bitpacking/bitpacking_size_calculation.test"
"test/sql/copy/parquet/delta_byte_array_length_mismatch.test"
"test/sql/function/timestamp/test_icu_strptime.test"
"test/sql/timezone/test_icu_timezone.test"
"test/sql/copy/parquet/snowflake_lineitem.test"
"test/sql/copy/parquet/test_parquet_force_download.test"
"test/sql/copy/parquet/delta_byte_array_multiple_pages.test"
"test/sql/copy/csv/test_csv_httpfs_prepared.test"
"test/sql/copy/csv/test_csv_httpfs.test"
"test/sql/settings/test_disabled_file_system_httpfs.test"
"test/sql/copy/csv/parallel/test_parallel_csv.test"
"test/sql/copy/csv/parallel/csv_parallel_httpfs.test"
"test/common/test_cast_struct.test"
# test is order sensitive
"test/sql/copy/parquet/parquet_glob.test"
# these are only hidden if no filters are passed in
"[!hide]"
# this test apparently never terminates
"test/sql/copy/csv/auto/test_csv_auto.test"
# test expects installed file timestamp to be > 2024
"test/sql/table_function/read_text_and_blob.test"
# fails with Out of Memory Error
"test/sql/copy/parquet/batched_write/batch_memory_usage.test"
# wants http connection
"test/sql/copy/csv/recursive_query_csv.test"
"test/sql/copy/csv/test_mixed_lines.test"
"test/parquet/parquet_long_string_stats.test"
"test/sql/attach/attach_remote.test"
"test/sql/copy/csv/test_sniff_httpfs.test"
"test/sql/httpfs/internal_issue_2490.test"
# fails with incorrect result
# Upstream issue https://github.com/duckdb/duckdb/issues/14294
"test/sql/copy/file_size_bytes.test"
# https://github.com/duckdb/duckdb/issues/17757#issuecomment-3032080432
"test/issues/general/test_17757.test"
]
++ lib.optionals stdenv.hostPlatform.isAarch64 [
"test/sql/aggregate/aggregates/test_kurtosis.test"
"test/sql/aggregate/aggregates/test_skewness.test"
"test/sql/function/list/aggregates/skewness.test"
"test/sql/aggregate/aggregates/histogram_table_function.test"
]
);
LD_LIBRARY_PATH = lib.optionalString stdenv.hostPlatform.isDarwin "DY" + "LD_LIBRARY_PATH";
in
''
runHook preInstallCheck
(($(ulimit -n) < 1024)) && ulimit -n 1024
HOME="$(mktemp -d)" ${LD_LIBRARY_PATH}="$lib/lib" ./test/unittest ${toString excludes}
runHook postInstallCheck
'';
passthru.updateScript = ./update.sh;
meta = {
changelog = "https://github.com/duckdb/duckdb/releases/tag/v${finalAttrs.version}";
description = "Embeddable SQL OLAP Database Management System";
homepage = "https://duckdb.org/";
license = lib.licenses.mit;
mainProgram = "duckdb";
maintainers = with lib.maintainers; [
costrouc
cpcloud
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,37 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p cacert jq git moreutils nix nix-prefetch-github
# shellcheck shell=bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")"
repo=duckdb
owner=duckdb
msg() {
echo "$*" >&2
}
json_get() {
jq -r "$1" < ./versions.json
}
json_set() {
jq --arg x "$2" "$1 = \$x" < ./versions.json | sponge 'versions.json'
}
get_latest() {
gh release --repo "${owner}/${repo}" list \
--exclude-pre-releases \
--limit 1 \
--json tagName \
--jq '.[].tagName'
}
tag="$(get_latest | sed 's/^v//g')"
json=$(nix-prefetch-github "${owner}" "${repo}" --rev "v${tag}")
json_set ".version" "${tag}"
json_set ".rev" "$(jq -r '.rev' <<< "${json}")"
json_set ".hash" "$(jq -r '.hash' <<< "${json}")"

View File

@@ -0,0 +1,5 @@
{
"version": "1.3.2",
"rev": "0b83e5d2f68bc02dfefde74b846bd039f078affa",
"hash": "sha256-6NMQ893g+nOiH8dnb63oa+fZMNXs8N6tJv+Er4x547U="
}

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "duckling-proxy";
version = "2021-07-23-unstable";
src = fetchFromGitHub {
owner = "LukeEmmet";
repo = "duckling-proxy";
rev = "e2bfd73a60d7afa43f13a9d420d514131fee8fd1";
hash = "sha256-GRIJwHrPg0NCNOOj/hTNmmn1ceUEmSLDD0sXR5SzkIw=";
};
vendorHash = "sha256-zmOtwx2+mBHDua9Z+G+MnxWaBzoqBPymwEcl+4oKs3M=";
meta = with lib; {
description = "Gemini proxy to access the Small Web";
homepage = "https://github.com/LukeEmmet/duckling-proxy";
license = licenses.mit;
maintainers = with maintainers; [ kaction ];
mainProgram = "duckling-proxy";
};
}

View File

@@ -0,0 +1,38 @@
{
lib,
stdenv,
fetchCrate,
rustPlatform,
openssl,
pkg-config,
libiconv,
}:
rustPlatform.buildRustPackage rec {
pname = "duckscript_cli";
version = "0.11.1";
src = fetchCrate {
inherit pname version;
hash = "sha256-afxzZkmmYnprUBquH681VHMDs3Co9C71chNoKbu6lEY=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
openssl
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
];
cargoHash = "sha256-ft6EUajAj+Zw3cEhdajwwHAaMaUf+/vtTuUYni8E+o0=";
meta = with lib; {
description = "Simple, extendable and embeddable scripting language";
homepage = "https://github.com/sagiegurari/duckscript";
license = licenses.asl20;
maintainers = with maintainers; [ mkg20001 ];
mainProgram = "duck";
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
ninja,
gitUpdater,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "duckx";
version = "1.2.2";
src = fetchFromGitHub {
owner = "amiremohamadi";
repo = "DuckX";
tag = "v${finalAttrs.version}";
hash = "sha256-qRqYcBi/a2tUSlLAa7DKPqwQsctw5/0hjV/Og1pHPQU=";
};
nativeBuildInputs = [
cmake
ninja
];
cmakeFlags = [
# https://github.com/amiremohamadi/DuckX/issues/92
(lib.cmakeFeature "CMAKE_CXX_STANDARD" "14")
];
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
};
meta = {
description = "C++ library for creating and modifying Microsoft Word (.docx) files";
homepage = "https://github.com/amiremohamadi/DuckX";
changelog = "https://github.com/amiremohamadi/DuckX/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ titaniumtown ];
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
fetchFromGitHub,
buildGoModule,
installShellFiles,
}:
buildGoModule (finalAttrs: {
pname = "duf";
version = "0.9.1";
src = fetchFromGitHub {
owner = "muesli";
repo = "duf";
tag = "v${finalAttrs.version}";
hash = "sha256-d/co7EaDk0m/oYxWFATxQYCdH3Z9r8eTtOOo+M+HD4o=";
};
vendorHash = "sha256-Br2jagMynnzH77GNA7NeWbM5qSHbhfW5Bo7X2b6OX28=";
ldflags = [
"-s"
"-w"
"-X=main.Version=${finalAttrs.version}"
];
nativeBuildInputs = [ installShellFiles ];
postInstall = ''
installManPage duf.1
'';
meta = {
homepage = "https://github.com/muesli/duf/";
description = "Disk Usage/Free Utility";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
figsoda
penguwin
sigmasquadron
];
mainProgram = "duf";
};
})

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
gettext,
}:
stdenv.mkDerivation {
pname = "duff";
version = "2024-02-16";
src = fetchFromGitHub {
sha256 = "9lS4th+qeglsoA+1s45uEE2UGmlE3YtSy4/uGqWKU/k=";
rev = "c1baefa4f4d5cefbbbc7bfefc0c18356752c8a1b";
repo = "duff";
owner = "elmindreda";
};
nativeBuildInputs = [
autoreconfHook
gettext
];
preAutoreconf = ''
# gettexttize rightly refuses to run non-interactively:
cp ${gettext}/bin/gettextize .
substituteInPlace gettextize \
--replace "read dummy" "echo '(Automatically acknowledged)' #"
./gettextize
sed 's@po/Makefile.in\( .*\)po/Makefile.in@po/Makefile.in \1@' \
-i configure.ac
# src/main.c is utf8, not ascii
sed '/^XGETTEXT_OPTIONS =/ s,$, --from-code=utf-8,' -i po/Makevars
'';
enableParallelBuilding = true;
meta = with lib; {
description = "Quickly find duplicate files";
mainProgram = "duff";
longDescription = ''
Duff is a Unix command-line utility for quickly finding duplicates in
a given set of files.
'';
homepage = "https://github.com/elmindreda/duff";
license = licenses.zlib;
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
rustPlatform,
fetchFromGitHub,
installShellFiles,
stdenv,
}:
rustPlatform.buildRustPackage rec {
pname = "dufs";
version = "0.45.0";
src = fetchFromGitHub {
owner = "sigoden";
repo = "dufs";
rev = "v${version}";
hash = "sha256-83lFnT4eRYaBe4e2o6l6AGQycm/oK96n5DXutBNvBsE=";
};
cargoHash = "sha256-WdjqG2URtloh5OnpBBnEWHD3WKGkCKLDcCyWRVGIXto=";
nativeBuildInputs = [ installShellFiles ];
__darwinAllowLocalNetworking = true;
checkFlags = [
# tests depend on network interface, may fail with virtual IPs.
"--skip=validate_printed_urls"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd dufs \
--bash <($out/bin/dufs --completions bash) \
--fish <($out/bin/dufs --completions fish) \
--zsh <($out/bin/dufs --completions zsh)
'';
meta = with lib; {
description = "File server that supports static serving, uploading, searching, accessing control, webdav";
mainProgram = "dufs";
homepage = "https://github.com/sigoden/dufs";
changelog = "https://github.com/sigoden/dufs/blob/${src.rev}/CHANGELOG.md";
license = with licenses; [
asl20 # or
mit
];
maintainers = with maintainers; [
figsoda
holymonson
];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
fixDarwinDylibNames,
validatePkgConfig,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "duktape";
version = "2.7.0";
src = fetchurl {
url = "http://duktape.org/duktape-${finalAttrs.version}.tar.xz";
sha256 = "sha256-kPjS+otVZ8aJmDDd7ywD88J5YLEayiIvoXqnrGE8KJA=";
};
# https://github.com/svaarala/duktape/issues/2464
LDFLAGS = [ "-lm" ];
nativeBuildInputs = [
validatePkgConfig
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ fixDarwinDylibNames ];
buildPhase = ''
make -f Makefile.cmdline
''
+ lib.optionalString (!stdenv.hostPlatform.isStatic) ''
make INSTALL_PREFIX="$out" -f Makefile.sharedlibrary
'';
installPhase = ''
install -d $out/bin
install -m755 duk $out/bin/
''
+ lib.optionalString (!stdenv.hostPlatform.isStatic) ''
install -d $out/lib/pkgconfig
install -d $out/include
make INSTALL_PREFIX="$out" -f Makefile.sharedlibrary install
'';
enableParallelBuilding = true;
meta = with lib; {
description = "Embeddable Javascript engine, with a focus on portability and compact footprint";
homepage = "https://duktape.org/";
downloadPage = "https://duktape.org/download.html";
license = licenses.mit;
maintainers = [ maintainers.fgaz ];
mainProgram = "duk";
platforms = platforms.all;
};
})

View File

@@ -0,0 +1,28 @@
{
lib,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "dum";
version = "0.1.20";
src = fetchFromGitHub {
owner = "egoist";
repo = "dum";
rev = "v${version}";
sha256 = "sha256-rkdQb4TI7lfWE4REJYsIJwMcmM/78jjgQrd0ZvKJxk8=";
};
cargoHash = "sha256-CpVci0nw/6Y6uyQX6iRV9E7uXzdZ2fzYIelYxsc+tI0=";
meta = {
description = "Npm scripts runner written in Rust";
mainProgram = "dum";
homepage = "https://github.com/egoist/dum";
changelog = "https://github.com/egoist/dum/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ figsoda ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchFromGitHub,
glibc,
}:
stdenv.mkDerivation rec {
pname = "dumb-init";
version = "1.2.5";
src = fetchFromGitHub {
owner = "Yelp";
repo = "dumb-init";
rev = "v${version}";
sha256 = "sha256-aRh0xfmp+ToXIYjYaducTpZUHndZ5HlFZpFhzJ3yKgs=";
};
postPatch = lib.optionalString (!stdenv.hostPlatform.isStatic) ''
substituteInPlace Makefile --replace "-static" ""
'';
buildInputs = lib.optional (stdenv.hostPlatform.isGnu && stdenv.hostPlatform.isStatic) glibc.static;
installPhase = ''
runHook preInstall
install -Dm755 -t $out/bin dumb-init
runHook postInstall
'';
meta = with lib; {
description = "Minimal init system for Linux containers";
homepage = "https://github.com/Yelp/dumb-init";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.unix;
mainProgram = "dumb-init";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "dumbpipe";
version = "0.27.0";
src = fetchFromGitHub {
owner = "n0-computer";
repo = "dumbpipe";
rev = "v${version}";
hash = "sha256-IF9KL5Rf7PsM8T/ZdFfycFRDUGmpAqdWyCPFaCGN/ko=";
};
cargoHash = "sha256-qrFARMY5kjxirCJvCW5O1QPU+yaAh16AvULGqbKUY+w=";
__darwinAllowLocalNetworking = true;
# On Darwin, dumbpipe invokes CoreFoundation APIs that read ICU data from the
# system. Ensure these paths are accessible in the sandbox to avoid segfaults
# during checkPhase.
sandboxProfile = ''
(allow file-read* (subpath "/usr/share/icu"))
'';
meta = with lib; {
description = "Connect A to B - Send Data";
homepage = "https://www.dumbpipe.dev/";
license = with licenses; [
asl20
mit
];
maintainers = with maintainers; [ cameronfyfe ];
mainProgram = "dumbpipe";
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "dummyhttp";
version = "1.1.2";
src = fetchFromGitHub {
owner = "svenstaro";
repo = "dummyhttp";
rev = "v${version}";
hash = "sha256-J8TOOLTNvm6udkPdYTrjrCX/3D35lXeFDc0H5kki+Uk=";
};
cargoHash = "sha256-566hk79oXApJm5p+gEgikV08n19hH1Tk36DvgPuQKLI=";
meta = with lib; {
description = "Super simple HTTP server that replies a fixed body with a fixed response code";
homepage = "https://github.com/svenstaro/dummyhttp";
license = with licenses; [ mit ];
maintainers = [ ];
mainProgram = "dummyhttp";
};
}

View File

@@ -0,0 +1,37 @@
# Tested with simple dump and restore -i, but complains that
# /nix/store/.../etc/dumpdates doesn't exist.
{
lib,
stdenv,
fetchurl,
pkg-config,
e2fsprogs,
ncurses,
readline,
}:
stdenv.mkDerivation rec {
pname = "dump";
version = "0.4b51";
src = fetchurl {
url = "mirror://sourceforge/dump/dump-${version}.tar.gz";
sha256 = "sha256-huaDpzNVNMkVzwpQUlPay/RrYiSnD79or3RgsWPkU+s=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
e2fsprogs
ncurses
readline
];
meta = with lib; {
homepage = "https://dump.sourceforge.io/";
description = "Linux Ext2 filesystem dump/restore utilities";
license = licenses.bsd3;
maintainers = [ ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
pkg-config,
hackrf,
libbladeRF,
libusb1,
limesuite,
ncurses,
rtl-sdr,
soapysdr-with-plugins,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dump1090";
version = "10.2";
src = fetchFromGitHub {
owner = "flightaware";
repo = "dump1090";
tag = "v${finalAttrs.version}";
hash = "sha256-kTJ8FMugBRJaxWas/jEj4E5TmVnNpNdhq4r2YFFwgTU=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
hackrf
libbladeRF
libusb1
ncurses
rtl-sdr
soapysdr-with-plugins
]
++ lib.optional stdenv.hostPlatform.isLinux limesuite;
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-implicit-function-declaration -Wno-int-conversion -Wno-unknown-warning-option";
buildFlags = [
"DUMP1090_VERSION=${finalAttrs.version}"
"showconfig"
"dump1090"
"view1090"
"faup1090"
];
doCheck = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share
cp -v dump1090 view1090 faup1090 $out/bin
cp -vr public_html $out/share/dump1090
runHook postInstall
'';
meta = {
description = "Simple Mode S decoder for RTLSDR devices";
homepage = "https://github.com/flightaware/dump1090";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
earldouglas
aciceri
];
mainProgram = "dump1090";
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
# tests
firefox-esr-unwrapped,
firefox-unwrapped,
thunderbird-unwrapped,
}:
let
pname = "dump_syms";
version = "2.3.5";
in
rustPlatform.buildRustPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "mozilla";
repo = "dump_syms";
rev = "v${version}";
hash = "sha256-zxYGxqnh6urXDC/ZQf3aFzBqOj5QNulyDpTsZ47BDkU=";
};
cargoHash = "sha256-gnXf6APcEJJKpKsqsBPLXlZddEt+6ENyt15iDw8XShc=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
checkFlags = [
# Disable tests that require network access
# ConnectError("dns error", Custom { kind: Uncategorized, error: "failed to lookup address information: Temporary failure in name resolution" })) }', src/windows/pdb.rs:725:56
"--skip windows::pdb::tests::test_ntdll"
"--skip windows::pdb::tests::test_oleaut32"
];
passthru.tests = {
inherit firefox-esr-unwrapped firefox-unwrapped thunderbird-unwrapped;
};
meta = {
changelog = "https://github.com/mozilla/dump_syms/blob/v${version}/CHANGELOG.md";
description = "Command-line utility for parsing the debugging information the compiler provides in ELF or stand-alone PDB files";
mainProgram = "dump_syms";
license = lib.licenses.asl20;
homepage = "https://github.com/mozilla/dump_syms/";
maintainers = with lib.maintainers; [ hexa ];
};
}

View File

@@ -0,0 +1,28 @@
From ab8bd63b32b963ddc7346a2dabfd39fba8bfba72 Mon Sep 17 00:00:00 2001
From: Paul Meyer <49727155+katexochen@users.noreply.github.com>
Date: Sun, 13 Aug 2023 14:13:21 +0200
Subject: [PATCH] make config path injectable during build
This way a config path can be added to the list during build by
defining the makro.
Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
---
dumpasn1.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dumpasn1.c b/dumpasn1.c
index e7bf268..94f1582 100644
--- a/dumpasn1.c
+++ b/dumpasn1.c
@@ -451,6 +451,10 @@ static const char *configPaths[] = {
/* General environment-based paths */
"$DUMPASN1_PATH/",
+ #ifdef DUMPASN1_CONFIG_PATH
+ DUMPASN1_CONFIG_PATH,
+ #endif /* DUMPASN1_CONFIG_PATH */
+
NULL
};
#endif /* OS-specific search paths */

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dumpasn1";
version = "20230207.0.0";
src = fetchFromGitHub {
owner = "katexochen";
repo = "dumpasn1";
rev = "v${finalAttrs.version}";
hash = "sha256-r40czSLdjCYbt73zK7exCoP/kMq6+pyJfz9LKJLLaXM=";
};
CFLAGS = ''-DDUMPASN1_CONFIG_PATH='"$(out)/etc/"' '';
makeFlags = [ "prefix=$(out)" ];
patches = [
# Allow adding a config file path during build via macro.
# Used to add the store path of the included config file through CFLAGS.
# This won't be merged upstream.
./configpath.patch
];
meta = with lib; {
description = "Display and debug ASN.1 data";
homepage = "https://github.com/katexochen/dumpasn1";
license = licenses.bsd2;
mainProgram = "dumpasn1";
maintainers = with maintainers; [ katexochen ];
platforms = platforms.linux ++ platforms.darwin;
};
})

View File

@@ -0,0 +1,68 @@
{
stdenv,
lib,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
cmake,
pkg-config,
libconfig,
liquid-dsp,
fftwSinglePrec,
glib,
soapysdr-with-plugins,
sqlite,
zeromq,
gperftools,
libacars,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dumphfdl";
version = "1.6.1";
src = fetchFromGitHub {
owner = "szpajder";
repo = "dumphfdl";
tag = "v${finalAttrs.version}";
hash = "sha256-M4WjcGA15Kp+Hpp+I2Ndcx+oBqaGxEeQLTPcSlugLwQ=";
};
buildInputs = [
fftwSinglePrec
liquid-dsp
glib
libconfig
soapysdr-with-plugins
sqlite
zeromq
gperftools
libacars
];
nativeBuildInputs = [
cmake
pkg-config
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/szpajder/dumphfdl";
changelog = "https://github.com/szpajder/dumphfdl/releases/tag/v${finalAttrs.version}";
description = "Decoder for Multichannel HFDL aircraft communication";
longDescription = ''
HFDL (High Frequency Data Link) is a protocol used for radio communications
between aircraft and ground stations. It is used to carry ACARS and AOC messages as well as
CPDLC (Controller-Pilot Data Link Communications) and ADS-C.
'';
license = lib.licenses.gpl3Plus;
mainProgram = "dumphfdl";
maintainers = [ lib.maintainers.mafo ];
platforms = with lib.platforms; linux ++ darwin;
badPlatforms = lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,56 @@
{
clang,
fetchFromGitHub,
lib,
lzo,
lz4,
stdenv,
ucl,
unstableGitUpdater,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dumpifs";
version = "0-unstable-2020-05-07";
src = fetchFromGitHub {
owner = "askac";
repo = "dumpifs";
rev = "b7bac90e8312eca2796f2003a52791899eb8dcd9";
hash = "sha256-vFiMKcPfowLQQZXlXbq5ZR1X6zr7u3iQwz3o4A6aQMY=";
};
nativeBuildInputs = [ clang ];
buildInputs = [
lzo
lz4
ucl
zlib
];
postUnpack = ''
rm source/{dumpifs,exMifsLzo,uuu,zzz}
'';
patches = [ ./package.patch ];
installPhase = ''
runHook preInstall
install -Dm755 dumpifs exMifsLz4 exMifsLzo fixdecifs fixencifs uuu zzz -t $out/bin
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Tool for those who are interested in hacking MIB2 firmware";
homepage = "https://github.com/askac/dumpifs";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ KSJ2000 ];
mainProgram = "dumpifs";
};
})

View File

@@ -0,0 +1,100 @@
diff --git a/exMifsLzo.c b/exMifsLzo.c
index 3173db5..a077bbf 100644
--- a/exMifsLzo.c
+++ b/exMifsLzo.c
@@ -73,8 +73,8 @@ int main(int argc, char **argv)
printf("Block count=%d Total Size=%d + 2048=%d (%x)\n", v2, v7, v7+2048, v7+2048);
v7=0;maxBlkSize=0;
if(lzo_init() != LZO_E_OK) {
- error(1, "decompression init failure");
- return 0;
+ fprintf(stderr, "decompression init failure");
+ exit(1);
}
for(readBlk=blockInfo;readBlk!=currBlockInfo;readBlk++)
diff --git a/fixdecifs.c b/fixdecifs.c
index 1404732..ebb44a3 100644
--- a/fixdecifs.c
+++ b/fixdecifs.c
@@ -7,6 +7,7 @@
#include "sys/image.h"
#include "sys/startup.h"
+#include <string.h>
#define ENDIAN_RET32(x) ((((x) >> 24) & 0xff) | \
(((x) >> 8) & 0xff00) | \
diff --git a/fixencifs.c b/fixencifs.c
index d52f0fa..d5f69c2 100644
--- a/fixencifs.c
+++ b/fixencifs.c
@@ -3,6 +3,7 @@
#include <stdarg.h>
#include "sys/image.h"
#include "sys/startup.h"
+#include <string.h>
#define ENDIAN_RET32(x) ((((x) >> 24) & 0xff) | \
(((x) >> 8) & 0xff00) | \
diff --git a/uuu.c b/uuu.c
index 7f8c712..f245a9b 100644
--- a/uuu.c
+++ b/uuu.c
@@ -1,12 +1,12 @@
#include <stdio.h>
#include <ucl/ucl.h>
-
#ifndef QNX
-#include <error.h>
#else
#define error(p,q,r) printf(r)
#endif
+#include <stdlib.h>
+
int main(int ac, char**av)
{
FILE *fpr, *fpw;
@@ -38,8 +38,8 @@ int main(int ac, char**av)
printf("buf[0-4] = %02X %02X %02X %02X, Package %d bytes \n", buf[0], buf[1], buf[2], buf[3], len);
status = ucl_nrv2b_99_compress(buf, len, out_buf, &out_len, NULL, 9, NULL, NULL);//= ucl_nrv2b_decompress_8(buf, len, out_buf, &out_len, NULL);
if(status != 0) {
- error(1, 0, "compression failure.\n");
- break;
+ fprintf(stderr, "compression failure.\n");
+ exit(1);
}
packSize[0] = (out_len >> 8) & 0xff;
packSize[1] = out_len & 0xff;
diff --git a/zzz.c b/zzz.c
index 0870840..d2d86e5 100644
--- a/zzz.c
+++ b/zzz.c
@@ -1,12 +1,13 @@
#include <stdio.h>
#ifndef QNX
#include <lzo/lzo1x.h>
-#include <error.h>
#else
#include <lzo1x.h>
#define error(p,q,r) printf(r)
#endif
+#include <stdlib.h>
+
int main(int ac, char**av)
{
FILE *fpr, *fpw;
@@ -40,8 +41,8 @@ retry:
//status = ucl_nrv2b_99_compress(buf, len, out_buf, &out_len, NULL, 9, NULL, NULL);//= ucl_nrv2b_decompress_8(buf, len, out_buf, &out_len, NULL);
status = lzo1x_999_compress(buf, len, out_buf, &out_len, work);
if(status != 0) {
- error(1, 0, "compression failure.\n");
- break;
+ fprintf(stderr, "compression failure.\n");
+ exit(1);
}
if(out_len > 0xffff) {
printf("!!!! Packed size too big! Need retry!\n");

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "dumpnar";
version = "0-unstable-2023-01-01";
src = fetchFromGitHub {
owner = "stephank";
repo = "dumpnar";
rev = "7b05e204264183532e8592ad132f74ddf05bc428";
hash = "sha256-762vgCn2d6QoXRBjpe/SyHKgyQJAV0sEl1prcyf/ClE=";
};
installPhase = ''
mkdir -p $out/bin
cp dumpnar $out/bin/
'';
meta = with lib; {
homepage = "https://github.com/stephank/dumpnar";
description = "Minimal tool to produce a Nix NAR archive";
license = licenses.lgpl2Plus;
platforms = platforms.all;
maintainers = [ maintainers.stephank ];
mainProgram = "dumpnar";
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "dumptorrent";
version = "1.2";
src = fetchurl {
url = "mirror://sourceforge/dumptorrent/dumptorrent-${version}.tar.gz";
sha256 = "073h03bmpfdy15qh37lvppayld2747i4acpyk0pm5nf2raiak0zm";
};
postPatch = ''
substituteInPlace Makefile \
--replace "gcc" "$CC"
'';
installPhase = ''
mkdir -p $out/bin
cp ./dumptorrent $out/bin
'';
meta = with lib; {
description = "Dump .torrent file information";
homepage = "https://sourceforge.net/projects/dumptorrent/";
license = licenses.gpl2Only;
maintainers = [ maintainers.zohl ];
platforms = platforms.all;
mainProgram = "dumptorrent";
};
}

View File

@@ -0,0 +1,56 @@
{
stdenv,
lib,
fetchFromGitHub,
nix-update-script,
versionCheckHook,
cmake,
pkg-config,
glib,
soapysdr,
sdrplay,
sdrplaySupport ? false,
sqlite,
zeromq,
libacars,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dumpvdl2";
version = "2.4.0";
src = fetchFromGitHub {
owner = "szpajder";
repo = "dumpvdl2";
tag = "v${finalAttrs.version}";
hash = "sha256-kb8FLVuG9tSZta8nmaKRCRZinF1yy4+NNxD5s7X82Wk=";
};
buildInputs = [
glib
soapysdr
sqlite
zeromq
libacars
]
++ lib.optionals sdrplaySupport [ sdrplay ];
nativeBuildInputs = [
cmake
pkg-config
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/szpajder/dumpvdl2";
description = "VDL Mode 2 message decoder and protocol analyzer";
license = lib.licenses.gpl3Plus;
platforms = with lib.platforms; linux ++ darwin;
maintainers = [ lib.maintainers.mafo ];
mainProgram = "dumpvdl2";
};
})

View File

@@ -0,0 +1,77 @@
{
cmake,
desktopToDarwinBundle,
eigen,
fetchFromGitHub,
glm,
gobject-introspection,
gtkmm4,
lib,
libepoxy,
libossp_uuid,
librsvg,
libspnav,
libuuid,
libxml2,
meson,
ninja,
opencascade-occt_7_6,
pkg-config,
python3,
stdenv,
wrapGAppsHook3,
}:
let
opencascade-occt = opencascade-occt_7_6;
in
stdenv.mkDerivation (finalAttrs: {
pname = "dune3d";
version = "1.3.0";
src = fetchFromGitHub {
owner = "dune3d";
repo = "dune3d";
rev = "v${finalAttrs.version}";
hash = "sha256-9lBaenBxMoJgG5tMM+EZ87xcJ4HhFTA9RUNZt2Jx34Q=";
};
nativeBuildInputs = [
gobject-introspection
meson
ninja
pkg-config
wrapGAppsHook3
libxml2 # for xmllints
]
++ lib.optional stdenv.hostPlatform.isDarwin desktopToDarwinBundle;
buildInputs = [
cmake
eigen
glm
gtkmm4
libepoxy
librsvg
libspnav
(if stdenv.hostPlatform.isLinux then libuuid else libossp_uuid)
opencascade-occt
(python3.withPackages (pp: [
pp.pygobject3
]))
];
env.CASROOT = opencascade-occt;
meta = {
description = "3D CAD application";
homepage = "https://dune3d.org";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
_0x4A6F
jue89
];
mainProgram = "dune3d";
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,128 @@
{
stdenv,
lib,
fetchFromGitHub,
makeWrapper,
pkg-config,
which,
perl,
jq,
libXrandr,
coreutils,
cairo,
dbus,
systemd,
gdk-pixbuf,
glib,
libX11,
libXScrnSaver,
wayland,
wayland-protocols,
libXinerama,
libnotify,
pango,
xorgproto,
librsvg,
versionCheckHook,
nix-update-script,
withX11 ? true,
withWayland ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "dunst";
version = "1.13.0";
src = fetchFromGitHub {
owner = "dunst-project";
repo = "dunst";
tag = "v${finalAttrs.version}";
hash = "sha256-HPmIcOLoYDD1GEgTh1elA9xiZGFKt1In4vsAtRsOukE=";
};
nativeBuildInputs = [
perl
pkg-config
which
systemd
makeWrapper
];
buildInputs = [
cairo
dbus
gdk-pixbuf
glib
libnotify
pango
librsvg
]
++ lib.optionals withX11 [
libX11
libXScrnSaver
libXinerama
xorgproto
libXrandr
]
++ lib.optionals withWayland [
wayland
wayland-protocols
];
outputs = [
"out"
"man"
];
makeFlags = [
"PREFIX=$(out)"
"VERSION=$(version)"
"SYSCONFDIR=$(out)/etc"
"SERVICEDIR_DBUS=$(out)/share/dbus-1/services"
"SERVICEDIR_SYSTEMD=$(out)/lib/systemd/user"
]
++ lib.optional (!withX11) "X11=0"
++ lib.optional (!withWayland) "WAYLAND=0";
postInstall = ''
wrapProgram $out/bin/dunst \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
wrapProgram $out/bin/dunstctl \
--prefix PATH : "${
lib.makeBinPath [
coreutils
dbus
]
}"
substituteInPlace \
$out/share/zsh/site-functions/_dunstctl \
$out/share/bash-completion/completions/dunstctl \
$out/share/fish/vendor_completions.d/{dunstctl,dunstify}.fish \
--replace-fail "jq" "${lib.getExe jq}"
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Lightweight and customizable notification daemon";
homepage = "https://dunst-project.org/";
changelog = "https://github.com/dunst-project/dunst/blob/${finalAttrs.src.tag}/CHANGELOG.md";
license = lib.licenses.bsd3;
mainProgram = "dunst";
maintainers = with lib.maintainers; [
gepbird
];
# NOTE: 'unix' or even 'all' COULD work too, I'm not sure
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchurl,
pam,
openssl,
zlib,
}:
stdenv.mkDerivation rec {
pname = "duo-unix";
version = "2.2.0";
src = fetchurl {
url = "https://dl.duosecurity.com/duo_unix-${version}.tar.gz";
sha256 = "sha256-o5myAUg2tf+Yu7tB93EU/gZkGAHYtrEh6zyCiVJ2pmY=";
};
buildInputs = [
pam
openssl
zlib
];
configureFlags = [
"--with-pam=$(out)/lib/security"
"--prefix=$(out)"
"--sysconfdir=$(out)/etc/duo"
"--with-openssl=${openssl.dev}"
"--enable-lib64=no"
];
meta = {
description = "Duo Security Unix login integration";
homepage = "https://duosecurity.com";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.thoughtpolice ];
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
which,
openssl,
sqlite,
}:
# Instead of writing directly into $HOME, we change the default db location
# from $HOME/.dupd_sqlite to $HOME/.cache/dupd.sqlite3
stdenv.mkDerivation rec {
pname = "dupd";
version = "1.7.3";
src = fetchFromGitHub {
owner = "jvirkki";
repo = "dupd";
rev = version;
sha256 = "sha256-ZiQroJ5fjBCIjU+M8KRA0N3Mrg9h0NVtfYUIS4cYyhw=";
};
postPatch = ''
patchShebangs tests
# tests need HOME to write the database
export HOME=$TMPDIR
mkdir -p $HOME/.cache
for f in man/dupd man/dupd.1 src/main.c tests/test.56 tests/test.57 ; do
substituteInPlace $f --replace .dupd_sqlite .cache/dupd.sqlite3
done
'';
buildInputs = [
openssl
sqlite
];
nativeBuildInputs = [
perl
which
];
makeFlags = [
"INSTALL_PREFIX=$(out)"
];
enableParallelBuilding = true;
doCheck = true;
meta = with lib; {
description = "CLI utility to find duplicate files";
homepage = "http://www.virkki.com/dupd";
license = licenses.gpl3;
maintainers = with maintainers; [ peterhoeg ];
mainProgram = "dupd";
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "dupe-krill";
version = "1.4.9";
src = fetchFromGitHub {
owner = "kornelski";
repo = "dupe-krill";
rev = "v${version}";
hash = "sha256-ze9OQHNtujzn2rY24bmFUkz5AYsjoMrwqm4jyQoF53Y=";
};
cargoHash = "sha256-OMXxMWMQIYXe41sxM+KQRMRicH61dIXUe51zdXn8ZYM=";
meta = with lib; {
description = "Fast file deduplicator";
homepage = "https://github.com/kornelski/dupe-krill";
license = with licenses; [ mit ];
maintainers = with maintainers; [ urbas ];
mainProgram = "dupe-krill";
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
libbsd,
libgcrypt,
xxHash,
pkg-config,
glib,
linuxHeaders ? stdenv.cc.libc.linuxHeaders,
sqlite,
util-linux,
testers,
duperemove,
}:
stdenv.mkDerivation rec {
pname = "duperemove";
version = "0.15.2";
src = fetchFromGitHub {
owner = "markfasheh";
repo = "duperemove";
rev = "v${version}";
hash = "sha256-Y3HIqq61bLfZi4XR2RtSyuCPmcWrTxeWvqpTh+3hUjc=";
};
postPatch = ''
substituteInPlace util.c --replace \
"lscpu" "${lib.getBin util-linux}/bin/lscpu"
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libbsd
libgcrypt
glib
linuxHeaders
sqlite
util-linux
xxHash
];
makeFlags = [
"PREFIX=${placeholder "out"}"
"VERSION=v${version}"
];
passthru.tests.version = testers.testVersion {
package = duperemove;
command = "duperemove --version";
version = "v${version}";
};
meta = with lib; {
description = "Simple tool for finding duplicated extents and submitting them for deduplication";
homepage = "https://github.com/markfasheh/duperemove";
license = licenses.gpl2Only;
maintainers = with maintainers; [
thoughtpolice
];
platforms = platforms.linux;
mainProgram = "duperemove";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "duplicacy";
version = "3.2.5";
src = fetchFromGitHub {
owner = "gilbertchen";
repo = "duplicacy";
rev = "v${version}";
hash = "sha256-PS1vN5XkyihiiahIdzJmzdr1yyJMkzCpVbXgbZL2jHE=";
};
vendorHash = "sha256-4M/V4vP9XwHBkZ6UwsAxZ81YAzP4inuNC5yI+5ygQsA=";
doCheck = false;
meta = with lib; {
homepage = "https://duplicacy.com";
description = "New generation cloud backup tool";
platforms = platforms.linux ++ platforms.darwin;
license = lib.licenses.unfree;
maintainers = with maintainers; [
ffinkdevs
devusb
];
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchzip,
autoPatchelfHook,
gcc-unwrapped,
zlib,
lttng-ust_2_12,
icu,
openssl,
makeBinaryWrapper,
}:
let
_supportedPlatforms = {
"armv7l-linux" = "linux-arm7";
"x86_64-linux" = "linux-x64";
"aarch64-linux" = "linux-arm64";
};
_platform = _supportedPlatforms."${stdenv.hostPlatform.system}";
# nix --extra-experimental-features nix-command hash convert --to sri "sha256:`nix-prefetch-url --unpack https://updates.duplicati.com/stable/duplicati-2.1.0.5_stable_2025-03-04-linux-arm64-cli.zip`"
_fileHashForSystem = {
"armv7l-linux" = "sha256-FQQ07M0rwvxNkHPW6iK5WBTKgFrZ4LOP4vgINfmtq4k=";
"x86_64-linux" = "sha256-1QspF/A3hOtqd8bVbSqClJIHUN9gBrd18J5qvZJLkQE=";
"aarch64-linux" = "sha256-mSNInaCkNf1MBZK2M42SjJnYRtB5SyGMvSGSn5oH1Cs=";
};
in
stdenv.mkDerivation (finalAttrs: {
# TODO build duplicati from source https://github.com/duplicati/duplicati/blob/master/.github/workflows/build-packages.yml
pname = "duplicati";
version = "2.1.0.5";
channel = "stable";
buildDate = "2025-03-04";
src = fetchzip {
url =
with finalAttrs;
"https://updates.duplicati.com/stable/duplicati-${version}_${channel}_${buildDate}-${_platform}-cli.zip";
hash = _fileHashForSystem."${stdenv.hostPlatform.system}";
stripRoot = true;
};
nativeBuildInputs = [
autoPatchelfHook
makeBinaryWrapper
];
buildInputs = [
gcc-unwrapped
zlib
lttng-ust_2_12
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share}
cp -r * "$out/share/"
for file in $out/share/duplicati-*; do
makeBinaryWrapper "$file" "$out/bin/$(basename $file)" \
--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
icu
openssl
]
}
done
runHook postInstall
'';
meta = {
description = "Free backup client that securely stores encrypted, incremental, compressed backups on cloud storage services and remote file servers";
homepage = "https://www.duplicati.com/";
license = lib.licenses.lgpl21;
maintainers = with lib.maintainers; [
nyanloutre
bot-wxt1221
];
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
platforms = builtins.attrNames _supportedPlatforms;
};
})

View File

@@ -0,0 +1,15 @@
diff --git a/testing/functional/__init__.py b/testing/functional/__init__.py
index 6c82d2c7..22163fa3 100644
--- a/testing/functional/__init__.py
+++ b/testing/functional/__init__.py
@@ -94,8 +94,8 @@ class FunctionalTestCase(DuplicityTestCase):
for item in passphrase_input:
assert isinstance(item, str), f"item {os.fsdecode(item)} in passphrase_input is not unicode"
- # set python path to be dev directory
- os.environ["PYTHONPATH"] = _top_dir
+ # prepend dev directory to python path
+ os.environ["PYTHONPATH"] = _top_dir + ":" + os.environ["PYTHONPATH"]
cmd_list = []

View File

@@ -0,0 +1,180 @@
{
lib,
stdenv,
fetchFromGitLab,
python3,
librsync,
glib,
ncftp,
gnupg,
gnutar,
par2cmdline,
util-linux,
rsync,
makeWrapper,
wrapGAppsNoGuiHook,
gettext,
getconf,
testers,
nix-update-script,
}:
let
self = python3.pkgs.buildPythonApplication rec {
pname = "duplicity";
version = "3.0.5.1";
format = "setuptools";
src = fetchFromGitLab {
owner = "duplicity";
repo = "duplicity";
rev = "rel.${version}";
hash = "sha256-fL4rvXcLKfEXuy5LKpFjFu+P3be7/T342+BgeO/dfp8=";
};
patches = [
./keep-pythonpath-in-testing.patch
];
postPatch = ''
patchShebangs duplicity/__main__.py
# don't try to use gtar on darwin/bsd
substituteInPlace testing/functional/test_restart.py \
--replace-fail 'tarcmd = "gtar"' 'tarcmd = "tar"'
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
# tests try to access these files in the sandbox, but can't deal with EPERM
substituteInPlace testing/unit/test_globmatch.py \
--replace-fail /var/log /test/log
substituteInPlace testing/unit/test_selection.py \
--replace-fail /usr/bin /dev
'';
disabledTests = [
# fails on some unsupported backends, e.g.
# ************* Module duplicity.backends.swiftbackend
# duplicity/backends/swiftbackend.py:176: [E0401(import-error), SwiftBackend._put] Unable to import 'swiftclient.service'
"test_pylint"
"test_black"
];
nativeBuildInputs = [
makeWrapper
gettext
python3.pkgs.wrapPython
wrapGAppsNoGuiHook
python3.pkgs.setuptools-scm
python3.pkgs.pycodestyle
python3.pkgs.pylint
];
buildInputs = [
librsync
# For Gio typelib
glib
];
pythonPath =
with python3.pkgs;
[
b2sdk
boto3
cffi
cryptography
ecdsa
idna
pygobject3
fasteners
lockfile
paramiko
pyasn1
pycrypto
# Currently marked as broken.
# pydrive2
]
++ paramiko.optional-dependencies.invoke;
nativeCheckInputs = [
gnupg # Add 'gpg' to PATH.
gnutar # Add 'tar' to PATH.
librsync # Add 'rdiff' to PATH.
par2cmdline # Add 'par2' to PATH.
]
++ lib.optionals stdenv.hostPlatform.isLinux [
util-linux # Add 'setsid' to PATH.
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
getconf
]
++ (with python3.pkgs; [
lockfile
mock
pexpect
pytestCheckHook
fasteners
]);
# Prevent double wrapping, let the Python wrapper use the args in preFixup.
dontWrapGApps = true;
preFixup =
let
binPath = lib.makeBinPath (
[
gnupg
ncftp
rsync
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
getconf
]
);
in
''
makeWrapperArgsBak=("''${makeWrapperArgs[@]}")
makeWrapperArgs+=(
"''${gappsWrapperArgs[@]}"
--prefix PATH : "${binPath}"
)
'';
postFixup = ''
# Restore previous value for tests wrapping in preInstallCheck
makeWrapperArgs=("''${makeWrapperArgsBak[@]}")
'';
preCheck = ''
# tests need writable $HOME
HOME=$PWD/.home
wrapPythonProgramsIn "$PWD/testing/overrides/bin" "$pythonPath"
'';
doCheck = true;
passthru = {
updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"rel\\.(.*)"
];
};
tests.version = testers.testVersion {
package = self;
};
};
meta = with lib; {
changelog = "https://gitlab.com/duplicity/duplicity/-/blob/${src.rev}/CHANGELOG.md";
description = "Encrypted bandwidth-efficient backup using the rsync algorithm";
homepage = "https://duplicity.gitlab.io/duplicity-web/";
license = licenses.gpl2Plus;
mainProgram = "duplicity";
maintainers = with maintainers; [ corngood ];
};
};
in
self

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
coreutils,
python3,
duplicity,
gawk,
gnupg,
bash,
gnugrep,
txt2man,
makeWrapper,
which,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "duply";
version = "2.5.6";
src = fetchurl {
url = "mirror://sourceforge/project/ftplicity/duply%20%28simple%20duplicity%29/2.5.x/duply_${finalAttrs.version}.tgz";
hash = "sha256-DSSnjfbcgWIuWaA+4h7d/0HqpDoXqkJOyGapYX4rtP0=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ txt2man ];
postPatch = "patchShebangs .";
installPhase = ''
runHook preInstall
mkdir -p "$out/bin"
mkdir -p "$out/share/man/man1"
install -vD duply "$out/bin"
wrapProgram "$out/bin/duply" --prefix PATH : \
${lib.makeBinPath [
coreutils
python3
duplicity
gawk
gnupg
bash
gnugrep
txt2man
which
]}
"$out/bin/duply" txt2man > "$out/share/man/man1/duply.1"
runHook postInstall
'';
meta = {
description = "Shell front end for the duplicity backup tool";
mainProgram = "duply";
longDescription = ''
Duply is a shell front end for the duplicity backup tool
https://www.nongnu.org/duplicity. It greatly simplifies its usage by
implementing backup job profiles, batch commands and more. Who says
secure backups on non-trusted spaces are no child's play?
'';
homepage = "https://duply.net/";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.bjornfor ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,13 @@
diff --git i/Cargo.lock w/Cargo.lock
index e037758..e039531 100644
--- i/Cargo.lock
+++ w/Cargo.lock
@@ -106,7 +106,7 @@ dependencies = [
[[package]]
name = "dura"
-version = "0.2.0-snapshot"
+version = "0.2.0"
dependencies = [
"chrono",
"clap",

View File

@@ -0,0 +1,52 @@
{
lib,
fetchFromGitHub,
rustPlatform,
openssl,
pkg-config,
zlib,
}:
rustPlatform.buildRustPackage rec {
pname = "dura";
version = "0.2.0";
src = fetchFromGitHub {
owner = "tkellogg";
repo = "dura";
rev = "v${version}";
sha256 = "sha256-xAcFk7z26l4BYYBEw+MvbG6g33MpPUvnpGvgmcqhpGM=";
};
cargoHash = "sha256-Xci9168KqJf+mhx3k0d+nH6Ov5tqNtB6nxiL9BwVYjU=";
cargoPatches = [
./Cargo.lock.patch
];
doCheck = false;
buildInputs = [
openssl
zlib
];
nativeBuildInputs = [
pkg-config
];
meta = with lib; {
description = "Background process that saves uncommitted changes on git";
mainProgram = "dura";
longDescription = ''
Dura is a background process that watches your Git repositories and
commits your uncommitted changes without impacting HEAD, the current
branch, or the Git index (staged files). If you ever get into an
"oh snap!" situation where you think you just lost days of work,
checkout a "dura" branch and recover.
'';
homepage = "https://github.com/tkellogg/dura";
license = licenses.asl20;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "durden";
version = "0-unstable-2024-06-23";
src = fetchFromGitHub {
owner = "letoram";
repo = "durden";
rev = "dffb94b69355ffa9cda074c1d0a48af74b78c220";
hash = "sha256-sBhlBk4vAYwedw4VerUfY80SXbVoEDid54si6qwDeXs=";
};
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p ${placeholder "out"}/share/arcan/appl/
cp -a ./durden ${placeholder "out"}/share/arcan/appl/
runHook postInstall
'';
meta = {
homepage = "https://durden.arcan-fe.com/";
description = "Reference Desktop Environment for Arcan";
longDescription = ''
Durden is a desktop environment for the Arcan Display Server. It serves
both as a reference showcase on how to take advantage of some of the
features in Arcan, and as a very competent entry to the advanced-user side
of the desktop environment spectrum.
'';
license = with lib.licenses; [ bsd3 ];
maintainers = [ ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,66 @@
{
lib,
fetchFromGitHub,
rustPlatform,
installShellFiles,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (finalAttrs: {
# Originally, this package was under the attribute `du-dust`, since `dust` was taken.
# Since then, `dust` has been freed up, allowing this package to take that attribute.
# However in order for tools like `nix-env` to detect package updates, keep `du-dust` for pname.
pname = "du-dust";
version = "1.2.3";
src = fetchFromGitHub {
owner = "bootandy";
repo = "dust";
tag = "v${finalAttrs.version}";
hash = "sha256-AB7NTiH9Q2SNIxFXsVTPHFs+DDVRn3egk7rZKgtYs0c=";
# Remove unicode file names which leads to different checksums on HFS+
# vs. other filesystems because of unicode normalisation.
postFetch = ''
rm -r $out/tests/test_dir_unicode/
'';
};
cargoHash = "sha256-TE+VkMDcfTMSyclyRf1HiNF7Q+qgIVI5x/f8Cou/4I4=";
nativeBuildInputs = [ installShellFiles ];
checkFlags = [
# disable tests that depend on the unicode files we removed above
"--skip=test_show_files_by_type"
];
preCheck = ''
# These tests depend on the disk format of the build host.
rm tests/test_exact_output.rs
rm tests/tests_symlinks.rs
'';
postInstall = ''
installManPage man-page/dust.1
installShellCompletion completions/dust.{bash,fish} --zsh completions/_dust
'';
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/dust";
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "du, but more intuitive";
homepage = "https://github.com/bootandy/dust";
changelog = "https://github.com/bootandy/dust/releases/tag/v${finalAttrs.version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
defelo
];
mainProgram = "dust";
};
})

View File

@@ -0,0 +1,33 @@
{
stdenv,
lib,
fetchFromGitea,
}:
stdenv.mkDerivation {
pname = "dut";
version = "0-unstable-2024-07-31";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "201984";
repo = "dut";
rev = "041c6f26162c2286776fac246ddbda312da1563d";
hash = "sha256-YrBV5rG9rASI/5pwG3kcHoOvXBHhLJHvFFrvNhmGq2Y=";
};
installFlags = [
"DESTDIR=${placeholder "out"}"
"PREFIX="
];
meta = {
platforms = lib.platforms.all;
broken = stdenv.hostPlatform.isDarwin;
description = "Disk usage calculator for Linux";
homepage = "https://codeberg.org/201984/dut";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ errnoh ];
mainProgram = "dut";
};
}

View File

@@ -0,0 +1,31 @@
diff --git a/Makefile.in b/Makefile.in
index d5c9fda..a596462 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -14,10 +14,7 @@ DUTI_BUILD_DATE=@build_date@
CC= @CC@
FRAMEWORKS= -framework ApplicationServices -framework CoreFoundation
-OPTOPTS= -isysroot @macosx_sdk@ \
- @macosx_arches@ \
- -mmacosx-version-min=@macosx_dep_target@ \
- @OPTOPTS@
+OPTOPTS= @OPTOPTS@
LIBS= @LIBS@
LDFLAGS= @LDFLAGS@ ${LIBS}
diff --git a/configure.ac b/configure.ac
index 815f395..05caaed 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,8 +15,8 @@ AC_PROG_CC
AC_PROG_INSTALL
AC_CANONICAL_SYSTEM
-DUTI_CHECK_SDK
-DUTI_CHECK_DEPLOYMENT_TARGET
+#DUTI_CHECK_SDK
+#DUTI_CHECK_DEPLOYMENT_TARGET
# function checks
AC_CHECK_FUNC(strlcpy,have_strlcpy=yes,)

View File

@@ -0,0 +1,41 @@
{
stdenv,
lib,
fetchFromGitHub,
autoreconfHook,
}:
stdenv.mkDerivation {
pname = "duti";
version = "1.5.5pre";
src = fetchFromGitHub {
owner = "moretension";
repo = "duti";
rev = "fe3d3dc411bcea6af7a8cbe53c0e08ed5ecacdb2";
sha256 = "1pg4i6ghpib2gy1sqpml7dbnhr1vbr43fs2pqkd09i4w3nmgpic9";
};
patches = [
./buildConfigure.patch
];
nativeBuildInputs = [ autoreconfHook ];
meta = with lib; {
description = "Command-line tool to select default applications for document types and URL schemes on Mac OS X";
longDescription = ''
duti is a command-line utility capable of setting default applications for
various document types on Mac OS X, using Apple's Uniform Type Identifiers. A
UTI is a unique string describing the format of a file's content. For instance,
a Microsoft Word document has a UTI of com.microsoft.word.doc. Using duti, the
user can change which application acts as the default handler for a given UTI.
'';
maintainers = with maintainers; [
matthewbauer
n-hass
];
platforms = platforms.darwin;
license = licenses.publicDomain;
homepage = "https://github.com/moretension/duti/";
};
}

View File

@@ -0,0 +1,32 @@
{
fetchFromGitHub,
lib,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "dutree";
version = "0.2.18";
src = fetchFromGitHub {
owner = "nachoparker";
repo = "dutree";
rev = "v${version}";
sha256 = "17lm8jd07bi499mywg2iq669im34j4x4yhc8a3adxn12f8j0dfg7";
# test directory has files with unicode names which causes hash mismatches
# It is also not used by any tests or parts of build process
postFetch = ''
rm -r $out/test
'';
};
cargoHash = "sha256-P3h7C6hXKhYBaf0CKlsB+4tnfj/1Aw1iFSlvMNGbSYI=";
meta = with lib; {
description = "Tool to analyze file system usage written in Rust";
homepage = "https://github.com/nachoparker/dutree";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ figsoda ];
mainProgram = "dutree";
};
}