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,40 @@
{
lib,
stdenv,
fetchFromGitHub,
nix-update-script,
ocamlPackages,
darwin,
}:
let
inherit (ocamlPackages) buildDunePackage camomile;
in
buildDunePackage rec {
pname = "headache";
version = "1.08";
src = fetchFromGitHub {
owner = "frama-c";
repo = "headache";
rev = "v${version}";
sha256 = "sha256-UXQIIsCyJZN4qos7Si7LLm9vQueOduUmLeYHuyT2GZo=";
};
nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin darwin.sigtool;
propagatedBuildInputs = [
camomile
];
passthru.updateScript = nix-update-script { };
meta = with lib; {
homepage = "https://github.com/frama-c/headache";
description = "Lightweight tool for managing headers in source code files";
mainProgram = "headache";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ niols ];
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
cmake,
pkg-config,
libmicrohttpd,
curl,
openssl,
jsoncpp,
libxml2,
gst_all_1,
boost,
websocketpp,
libadwaita,
gtkmm4,
libsecret,
fetchFromGitLab,
wrapGAppsHook4,
xdg-utils,
youtube-dl,
ffmpeg,
}:
stdenv.mkDerivation rec {
pname = "headlines";
version = "0.7.2";
src = fetchFromGitLab {
owner = "caveman250";
repo = "Headlines";
rev = version;
hash = "sha256-wamow0UozX5ecKbXWOgsWCerInL4J0gK0+Muf+eoO9k=";
};
nativeBuildInputs = [
cmake
pkg-config
wrapGAppsHook4
];
buildInputs = [
libmicrohttpd
curl
openssl
jsoncpp
libxml2
boost
websocketpp
libadwaita
gtkmm4
libsecret
]
++ (with gst_all_1; [
gstreamer
gst-libav
gst-plugins-base
(gst-plugins-good.override { gtkSupport = true; })
gst-plugins-bad
]);
preFixup = ''
gappsWrapperArgs+=(
--prefix PATH : "${
lib.makeBinPath [
xdg-utils
youtube-dl
ffmpeg
]
}"
)
'';
meta = with lib; {
description = "GTK4 / Libadwaita Reddit client written in C++";
homepage = "https://gitlab.com/caveman250/Headlines";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ chuangzhu ];
mainProgram = "headlines";
};
}

View File

@@ -0,0 +1,60 @@
{
cargo-tauri,
fetchFromGitHub,
fetchYarnDeps,
lib,
nix-update-script,
nodejs,
pkg-config,
rustPlatform,
webkitgtk_4_1,
wrapGAppsHook3,
yarnConfigHook,
}:
rustPlatform.buildRustPackage rec {
pname = "headphones-toolbox";
version = "0.0.7";
tag = "test-tauri-v2-2";
src = fetchFromGitHub {
owner = "george-norton";
repo = "headphones-toolbox";
rev = "${tag}";
hash = "sha256-X2HTEPxvBzbhfN1vqQVk81Qk1Z+EV+7/SpjZrDHv+fM=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-Ln5U0KKsKm6ZLViZIWfBiBjm/mQNEIxaj4nTR55PcRg=";
};
cargoHash = "sha256-VgCxYYNBV45sTzouS5NE7nOUViPj0gJO7DSKlJSAT4U=";
cargoRoot = "src-tauri";
buildAndTestSubdir = cargoRoot;
nativeBuildInputs = [
cargo-tauri.hook
nodejs
pkg-config
wrapGAppsHook3
yarnConfigHook
];
buildInputs = [ webkitgtk_4_1 ];
passthru.updateScript = nix-update-script { };
meta = {
description = "UI for configuring Ploopy Headphones";
homepage = "https://github.com/ploopyco/headphones-toolbox/";
license = lib.licenses.gpl3Only;
mainProgram = "headphones-toolbox";
maintainers = with lib.maintainers; [
flacks
knarkzel
nyabinary
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
fetchFromGitHub,
python3,
makeWrapper,
}:
python3.pkgs.buildPythonApplication rec {
pname = "headphones";
version = "0.6.4";
format = "other";
src = fetchFromGitHub {
owner = "rembo10";
repo = "headphones";
rev = "v${version}";
sha256 = "0gv7rasjbm4rf9izghibgf5fbjykvzv0ibqc2in1naagjivqrpq4";
};
dontBuild = true;
doCheck = false;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/opt/headphones
cp -R {data,headphones,lib,Headphones.py} $out/opt/headphones
echo v${version} > $out/opt/headphones/version.txt
makeWrapper $out/opt/headphones/Headphones.py $out/bin/headphones
runHook postInstall
'';
meta = with lib; {
description = "Automatic music downloader for SABnzbd";
license = licenses.gpl3Plus;
homepage = "https://github.com/rembo10/headphones";
maintainers = with lib.maintainers; [ rembo10 ];
mainProgram = "headphones";
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
iana-etc,
libredirect,
nixosTests,
postgresql,
stdenv,
}:
buildGoModule rec {
pname = "headscale";
version = "0.26.1";
src = fetchFromGitHub {
owner = "juanfont";
repo = "headscale";
tag = "v${version}";
hash = "sha256-LnS6K3U4RgRRV4i92zcRZtLJF1QdbORQP9ZIis9u6rk=";
};
vendorHash = "sha256-dR8xmUIDMIy08lhm7r95GNNMAbXv4qSH3v9HR40HlNk=";
subPackages = [ "cmd/headscale" ];
ldflags = [
"-s"
"-w"
"-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}"
];
nativeBuildInputs = [ installShellFiles ];
nativeCheckInputs = [
libredirect.hook
postgresql
];
checkFlags = [ "-short" ];
preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/services=${iana-etc}/etc/services
'';
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd headscale \
--bash <($out/bin/headscale completion bash) \
--fish <($out/bin/headscale completion fish) \
--zsh <($out/bin/headscale completion zsh)
'';
passthru.tests = { inherit (nixosTests) headscale; };
meta = with lib; {
homepage = "https://github.com/juanfont/headscale";
description = "Open source, self-hosted implementation of the Tailscale control server";
longDescription = ''
Tailscale is a modern VPN built on top of Wireguard. It works like an
overlay network between the computers of your networks - using all kinds
of NAT traversal sorcery.
Everything in Tailscale is Open Source, except the GUI clients for
proprietary OS (Windows and macOS/iOS), and the
'coordination/control server'.
The control server works as an exchange point of Wireguard public keys for
the nodes in the Tailscale network. It also assigns the IP addresses of
the clients, creates the boundaries between each user, enables sharing
machines between users, and exposes the advertised routes of your nodes.
Headscale implements this coordination server.
'';
license = licenses.bsd3;
mainProgram = "headscale";
maintainers = with maintainers; [
kradalby
misterio77
];
};
}

View File

@@ -0,0 +1,73 @@
{
lib,
stdenv,
fetchFromGitHub,
headsetcontrol,
wrapGAppsHook3,
python3,
gtk3,
gobject-introspection,
libayatana-appindicator,
}:
stdenv.mkDerivation rec {
# The last versioned release is 1.0.0.0 from 2020, since then there were updates but no versioned release.
# This is not marked unstable because upstream encourages installation from source.
pname = "headset-charge-indicator";
version = "2021-08-15";
src = fetchFromGitHub {
owner = "centic9";
repo = "headset-charge-indicator";
rev = "6e20f81a4d6118c7385b831044c468af83103193";
sha256 = "sha256-eaAbqeFY+B3CcKJywC3vaRsWZNQENTbALc7L7uW0W6U=";
};
nativeBuildInputs = [
wrapGAppsHook3
gobject-introspection
];
buildInputs = [
(python3.withPackages (ps: with ps; [ pygobject3 ]))
headsetcontrol
gtk3
libayatana-appindicator
];
installPhase = ''
mkdir -p $out/bin
cp $src/headset-charge-indicator.py $out/bin/headset-charge-indicator.py
chmod +x $out/bin/headset-charge-indicator.py
substituteInPlace \
$out/bin/headset-charge-indicator.py \
--replace "default='headsetcontrol'" "default='${headsetcontrol}/bin/headsetcontrol'"
cat << EOF > ${pname}.desktop
[Desktop Entry]
Name=Wireless headset app-indicator
Categories=Application;System
Exec=$out/bin/headset-charge-indicator.py
Terminal=false
Type=Application
X-GNOME-AutoRestart=true
X-GNOME-Autostart-enabled=true
EOF
mkdir -p $out/share/applications
mkdir -p $out/etc/xdg/autostart
cp ${pname}.desktop $out/share/applications/${pname}.desktop
cp ${pname}.desktop $out/etc/xdg/autostart/${pname}.desktop
'';
meta = with lib; {
homepage = "https://github.com/centic9/headset-charge-indicator";
description = "App-indicator for GNOME desktops for controlling some features of various wireless headsets";
longDescription = "A simple app-indicator for GNOME desktops to display the battery charge of some wireless headsets which also allows to control some functions like LEDs, sidetone and others.";
platforms = platforms.linux;
maintainers = with maintainers; [ zebreus ];
license = licenses.bsd2;
mainProgram = "headset-charge-indicator.py";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchurl,
dpkg,
makeWrapper,
electron,
}:
stdenv.mkDerivation rec {
pname = "headset";
version = "4.2.1";
src = fetchurl {
url = "https://github.com/headsetapp/headset-electron/releases/download/v${version}/headset_${version}_amd64.deb";
hash = "sha256-81gsIq74sggauE6g8pM6z05KTmsbe49CZa9aRQEDwMo=";
};
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [
makeWrapper
dpkg
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/share/headset
cp -R usr/share/{applications,icons} $out/share
cp -R usr/lib/headset/resources/app.asar $out/share/headset/
makeWrapper ${electron}/bin/electron $out/bin/headset \
--add-flags $out/share/headset/app.asar
runHook postInstall
'';
meta = with lib; {
description = "Simple music player for YouTube and Reddit";
homepage = "https://headsetapp.co/";
license = licenses.mit;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ muscaln ];
mainProgram = "headset";
};
}

View File

@@ -0,0 +1,45 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
hidapi,
udevCheckHook,
}:
stdenv.mkDerivation rec {
pname = "headsetcontrol";
version = "3.1.0";
src = fetchFromGitHub {
owner = "Sapd";
repo = "HeadsetControl";
rev = version;
sha256 = "sha256-9LUqYV0MMTtlFYZCEn81kML5F46GDYWYwoKpO0UORcQ=";
};
nativeBuildInputs = [
cmake
udevCheckHook
];
buildInputs = [
hidapi
];
doInstallCheck = true;
meta = with lib; {
description = "Sidetone and Battery status for Logitech G930, G533, G633, G933 SteelSeries Arctis 7/PRO 2019 and Corsair VOID (Pro)";
longDescription = ''
A tool to control certain aspects of USB-connected headsets on Linux. Currently,
support is provided for adjusting sidetone, getting battery state, controlling
LEDs, and setting the inactive time.
'';
homepage = "https://github.com/Sapd/HeadsetControl";
license = licenses.gpl3Plus;
mainProgram = "headsetcontrol";
maintainers = with maintainers; [ leixb ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,44 @@
{
stdenv,
lib,
fetchFromGitHub,
json_c,
libbsd,
}:
stdenv.mkDerivation rec {
pname = "health-check";
version = "0.04.01";
src = fetchFromGitHub {
owner = "ColinIanKing";
repo = "health-check";
rev = "V${version}";
hash = "sha256-sBhFH9BNRQ684ydqh8p4TtFwO+Aygu4Ke4+/nNMlZ/E=";
};
buildInputs = [
json_c
libbsd
];
makeFlags = [
"JSON_OUTPUT=y"
"FNOTIFY=y"
];
installFlags = [
"BINDIR=${placeholder "out"}/bin"
"MANDIR=${placeholder "out"}/share/man/man8"
"BASHDIR=${placeholder "out"}/share/bash-completion/completions"
];
meta = with lib; {
description = "Process monitoring tool";
mainProgram = "health-check";
homepage = "https://github.com/ColinIanKing/health-check";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = with maintainers; [ dtzWill ];
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchFromGitLab,
meson,
ninja,
pkg-config,
rustPlatform,
rustc,
cargo,
wrapGAppsHook4,
blueprint-compiler,
libadwaita,
libsecret,
tinysparql,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "health";
version = "0.95.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "health";
rev = version;
hash = "sha256-PrNPprSS98yN8b8yw2G6hzTSaoE65VbsM3q7FVB4mds=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-eR1ZGtTZQNhofFUEjI7IX16sMKPJmAl7aIFfPJukecg=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
rustc
cargo
wrapGAppsHook4
blueprint-compiler
];
buildInputs = [
libadwaita
libsecret
tinysparql
];
env.NIX_CFLAGS_COMPILE = toString (
lib.optionals stdenv.cc.isClang [
"-Wno-error=incompatible-function-pointer-types"
]
);
passthru = {
updateScript = nix-update-script { };
};
meta = with lib; {
description = "Health tracking app for the GNOME desktop";
homepage = "https://apps.gnome.org/app/dev.Cogitri.Health";
license = licenses.gpl3Plus;
mainProgram = "dev.Cogitri.Health";
teams = [ lib.teams.gnome-circle ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,102 @@
{
lib,
writeText,
fetchFromGitHub,
nixosTests,
python3,
}:
let
py = python3.override {
self = py;
packageOverrides = final: prev: {
django = prev.django_5;
};
};
in
py.pkgs.buildPythonApplication rec {
pname = "healthchecks";
version = "3.11.2";
format = "other";
src = fetchFromGitHub {
owner = "healthchecks";
repo = "healthchecks";
tag = "v${version}";
sha256 = "sha256-EHXxb5T5+WFvhBZQ6d6abSzpBEUBz6F1ftqMWECmdpg=";
};
propagatedBuildInputs = with py.pkgs; [
aiosmtpd
apprise
cronsim
django
django-compressor
django-stubs-ext
fido2
minio
oncalendar
psycopg2
pycurl
pydantic
pyjwt
pyotp
segno
statsd
whitenoise
];
secrets = [
"DB_PASSWORD"
"DISCORD_CLIENT_SECRET"
"EMAIL_HOST_PASSWORD"
"LINENOTIFY_CLIENT_SECRET"
"MATRIX_ACCESS_TOKEN"
"PD_APP_ID"
"PUSHBULLET_CLIENT_SECRET"
"PUSHOVER_API_TOKEN"
"S3_SECRET_KEY"
"SECRET_KEY"
"SLACK_CLIENT_SECRET"
"TELEGRAM_TOKEN"
"TRELLO_APP_KEY"
"TWILIO_AUTH"
];
localSettings = writeText "local_settings.py" ''
import os
STATIC_ROOT = os.getenv("STATIC_ROOT")
${lib.concatLines (
map (secret: ''
${secret}_FILE = os.getenv("${secret}_FILE")
if ${secret}_FILE:
with open(${secret}_FILE, "r") as file:
${secret} = file.readline()
'') secrets
)}
'';
installPhase = ''
mkdir -p $out/opt/healthchecks
cp -r . $out/opt/healthchecks
chmod +x $out/opt/healthchecks/manage.py
cp ${localSettings} $out/opt/healthchecks/hc/local_settings.py
'';
passthru = {
# PYTHONPATH of all dependencies used by the package
pythonPath = py.pkgs.makePythonPath propagatedBuildInputs;
tests = {
inherit (nixosTests) healthchecks;
};
};
meta = with lib; {
homepage = "https://github.com/healthchecks/healthchecks";
description = "Cron monitoring tool written in Python & Django";
license = licenses.bsd3;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitLab,
cmake,
makeBinaryWrapper,
zlib,
boost,
libunwind,
elfutils,
sparsehash,
zstd,
kdePackages,
}:
stdenv.mkDerivation {
pname = "heaptrack";
version = "1.5.0-unstable-2025-07-21";
src = fetchFromGitLab {
domain = "invent.kde.org";
owner = "sdk";
repo = "heaptrack";
rev = "9db5d53df554959478575e080648f6854d362faf";
hash = "sha256-8NLpp/+PK3wIB5Sx0Z1185DCDQ18zsGj9Wp5YNKgX8E=";
};
nativeBuildInputs = [
cmake
kdePackages.extra-cmake-modules
makeBinaryWrapper
kdePackages.wrapQtAppsHook
];
buildInputs = [
zlib
boost
libunwind
sparsehash
zstd
]
++ (with kdePackages; [
qtbase
kio
kitemmodels
threadweaver
kconfigwidgets
kcoreaddons
kdiagram
])
++ lib.optionals stdenv.hostPlatform.isLinux [
elfutils
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
makeWrapper \
$out/Applications/KDE/heaptrack_gui.app/Contents/MacOS/heaptrack_gui \
$out/bin/heaptrack_gui
'';
meta = with lib; {
description = "Heap memory profiler for Linux";
homepage = "https://github.com/KDE/heaptrack";
license = licenses.lgpl21Plus;
mainProgram = "heaptrack_gui";
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
rustPlatform,
coreutils,
}:
rustPlatform.buildRustPackage rec {
pname = "heatseeker";
version = "1.7.3";
src = fetchFromGitHub {
owner = "rschmitt";
repo = "heatseeker";
rev = "v${version}";
sha256 = "sha256-ZKwRXtfIYEblsGjSSiVCl9XztM43rzBofQpPNGMPu+w=";
};
cargoHash = "sha256-X4OTzgInh0D+EYCPkN2qyizzhARIOGwxJ2N9ZcrX/Ak=";
# https://github.com/rschmitt/heatseeker/issues/42
# I've suggested using `/usr/bin/env stty`, but doing that isn't quite as simple
# as a substitution, and this works since we have the path to coreutils stty.
patchPhase = ''
substituteInPlace src/screen/unix.rs --replace "/bin/stty" "${coreutils}/bin/stty"
'';
# some tests require a tty, this variable turns them off for Travis CI,
# which we can also make use of
TRAVIS = "true";
meta = with lib; {
description = "General-purpose fuzzy selector";
homepage = "https://github.com/rschmitt/heatseeker";
license = licenses.mit;
maintainers = [ ];
mainProgram = "hs";
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "heatshrink";
version = "0.4.1";
src = fetchFromGitHub {
owner = "atomicobject";
repo = "heatshrink";
rev = "v${finalAttrs.version}";
hash = "sha256-Nm9/+JFMDXY1N90hmNFGh755V2sXSRQ4VBN9f8TcsGk=";
};
patches = [
# Add CMake build script, wanted by prusa-slicer and libbgcode, which are the only users of this library.
(fetchpatch {
url = "https://github.com/atomicobject/heatshrink/commit/0886e9ca76552b8e325841e2b820b4563e5d5aba.patch";
hash = "sha256-13hy4+/RDaaKgQcdaSbACvMfElUIskvJ+owXqm40feY=";
})
];
nativeBuildInputs = [
cmake
];
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
echo "Hello world" | \
$out/bin/heatshrink -e - | \
$out/bin/heatshrink -d - | \
grep "Hello world"
runHook postInstallCheck
'';
meta = with lib; {
description = "Data compression/decompression library for embedded/real-time systems";
homepage = "https://github.com/atomicobject/heatshrink";
license = licenses.isc;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.all;
mainProgram = "heatshrink";
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
fetchFromGitHub,
stdenv,
rustPlatform,
pkg-config,
cmake,
openssl,
autoconf,
automake,
unstableGitUpdater,
sqlite,
}:
rustPlatform.buildRustPackage rec {
pname = "hebbot";
version = "2.1-unstable-2024-09-20";
src = fetchFromGitHub {
owner = "haecker-felix";
repo = "hebbot";
rev = "4c7152a3ce88ecfbac06f823abd4fd849e0c30d1";
hash = "sha256-y+KpxiEzVAggFoPvTOy0IEmAo2V6mOpM0VzEScUOtsM=";
};
cargoHash = "sha256-xRTl6Z6sn44yaEIFxG2vVKlbruDmOS2CdPZeVmWYOoA=";
nativeBuildInputs = [
pkg-config
cmake
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
autoconf
automake
];
buildInputs = [
openssl
];
env = {
OPENSSL_NO_VENDOR = 1;
};
NIX_CFLAGS_LINK = [
"-L${lib.getLib openssl}/lib"
"-L${lib.getLib sqlite}/lib"
];
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "Matrix bot which can generate \"This Week in X\" like blog posts ";
homepage = "https://github.com/haecker-felix/hebbot";
changelog = "https://github.com/haecker-felix/hebbot/releases/tag/v${version}";
license = with lib.licenses; [ agpl3Only ];
mainProgram = "hebbot";
maintainers = with lib.maintainers; [ a-kenji ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "hebcal";
version = "5.9.4";
src = fetchFromGitHub {
owner = "hebcal";
repo = "hebcal";
tag = "v${finalAttrs.version}";
hash = "sha256-6SyK5BKVMGcqEFy3tbPBPqmZYp9/DD8A3VUNpAsihEM=";
};
vendorHash = null;
preBuild = ''
make dcity.go
'';
doCheck = true;
meta = {
homepage = "https://hebcal.github.io";
description = "Perpetual Jewish Calendar";
longDescription = "Hebcal is a program which prints out the days in the Jewish calendar for a given Gregorian year. Hebcal is fairly flexible in terms of which events in the Jewish calendar it displays.";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.hhm ];
platforms = lib.platforms.all;
mainProgram = "hebcal";
};
})

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "hecate";
version = "unstable-2022-05-03";
src = fetchFromGitHub {
owner = "evanmiller";
repo = "hecate";
rev = "7637250f4b2c5b777418b35fa11276d11d5128b0";
sha256 = "sha256-8L0ukzPF7aECCeZfwZYKcJAJLpPgotkVJ+OSdwQUjhw=";
};
vendorHash = "sha256-eyMrTrNarNCB3w8EOeJBmCbVxpMZy25sQ19icVARU1M=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
inherit (src.meta) homepage;
description = "Terminal hex editor";
longDescription = "The Hex Editor From Hell!";
license = with licenses; [ mit ];
maintainers = with maintainers; [ ramkromberg ];
mainProgram = "hecate";
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
makeBinaryWrapper,
wget,
jq,
curl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hedgedoc-cli";
version = "1.0-unstable-2025-05-01";
src = fetchFromGitHub {
owner = "hedgedoc";
repo = "cli";
rev = "defeac80ca97fedcb19bdcddc516fd8f6e55fe8c";
hash = "sha256-7E5Ka6SEPRg2O4+bJ6g3gSDMLnPMzg5Lbslgvt6gNEg=";
};
nativeBuildInputs = [
makeBinaryWrapper
];
installPhase = ''
runHook preInstall
makeWrapper $src/bin/codimd $out/bin/hedgedoc-cli \
--prefix PATH : ${
lib.makeBinPath [
jq
wget
curl
]
}
runHook postInstall
'';
checkPhase = ''
runHook preCheck
hedgedoc-cli help
runHook postCheck
'';
meta = {
description = "Hedgedoc CLI";
homepage = "https://github.com/hedgedoc/cli";
license = lib.licenses.agpl3Only;
mainProgram = "hedgedoc-cli";
maintainers = [ ];
};
})

View File

@@ -0,0 +1,27 @@
{
"@esbuild/aix-ppc64@npm:0.25.2": "3b5ee5599a8446074bd6aad732c5f2833a4b77e8af62cfcdee7508ded661daa054c481c2fa69f5341e65cc8846a2b3f026ffca12934cb24d76df93e4800e2979",
"@esbuild/android-arm64@npm:0.25.2": "556d958ea6f33073669a8a41645b0e51cecb2c0788ece8827a8752e666fd178ae28b2f9749b8a968f1e9c66b09dab7933be8d8b53e391ea9eca7bddf3f53b26a",
"@esbuild/android-arm@npm:0.25.2": "0ce9f260216520a4d53c2736b60e8e55b8c6569b944555cb7840fbe2ff16278d4e6591aedcbc38b3f69a6d98167367f36bba1d35b41d725e4d68a67f942e2a28",
"@esbuild/android-x64@npm:0.25.2": "57d0c438a3bcc25db5aa89c9d9b60827d3ee6d9553234d95a16f52f8a7780778e5e7a9975374e4d37a81e600d2b8f32bd46d5633bb83bcd958ee2f5162d1359b",
"@esbuild/darwin-arm64@npm:0.25.2": "e148927428c0c5d69e681ee8d4b47e0bcc5116296c47c41ed44068d686a0568b23dc493dc47b4d103e7b21894fafbaf5c2d64bf2420a5d6b6b22f71bf6c2fb08",
"@esbuild/darwin-x64@npm:0.25.2": "2bc37a902d7828f3973d28f486bcf26da13f6f421122348fc510551a4674bc706eb8e6f692ccd3d887523c373580b3228797f2fd73d641b2e106a6d44e3f20c7",
"@esbuild/freebsd-arm64@npm:0.25.2": "431ddf98e7c0b7c6a7d1a689454ab449df8eaacca242442153a4f149017d6bd03e16b7fda01e9fe26316d135176d74f5de09e9a21357648c320a3211a1c862a2",
"@esbuild/freebsd-x64@npm:0.25.2": "21545ec11969db7ed091819b63c88a9c4490edce8a98d64718f79352a5001927d1d85e6261170562850afdb5a7a2182ccf3d936eab0db615e51188ab6f95789b",
"@esbuild/linux-arm64@npm:0.25.2": "332ba0533f2a2bba21dfb3c9130f9a1cef5b420da29f67116e7fbff4cfd12039d06646b4a636952b873b22129a4e5c6ea6ea9b57286949980add7bab5d6684c1",
"@esbuild/linux-arm@npm:0.25.2": "a89613faa8ce9f307eea4c2b4ada8cdb56e378716d5250fc163674032bfbdda8b8aacc730c6b5fa05b5e5bff04a9a11dd02934d69b2233ecf0ff58af4ef5bb45",
"@esbuild/linux-ia32@npm:0.25.2": "5907824945c067f092bb28807080a2617b5208583ef71b2091d57b6039df182735ba62ee0142e993260d80df3a5b7ae88c0fff28f2e4efd8254dd34de2f4ad95",
"@esbuild/linux-loong64@npm:0.25.2": "ed521bfa81db13fc628455fc0feec4e75150ed2248013baaf8fa7d6d278295d3a2b09196c79169b7331e50e6d3abf86ee5773ad28f8d5914bbe4034758a424c2",
"@esbuild/linux-mips64el@npm:0.25.2": "9961d5853e7ff048ae2cb3997136f96ca5180dcc483e88e2ae0d34ca8ec097af3cc7d7c8ac6303a3cf2582eadbe905fa97a38dd9b402f82b9e104a0070f04b79",
"@esbuild/linux-ppc64@npm:0.25.2": "9ee2360fa976e7c0e16b09fd551fba232e19ede65a326544d16bcae0c399e2937b853eab5649a52589e483c77dbc4ab5e082177ee70e6fd2de53c421314ea458",
"@esbuild/linux-riscv64@npm:0.25.2": "e6bff41e76d44a8d6f27a53b2aeb98c771f6215590d411a1b6b682aa41c96cc9ed8baa6d17412d09419b10778dc40ca75b6cfe71dc8e24f1bf5c1e7793e2c560",
"@esbuild/linux-s390x@npm:0.25.2": "34ca97c2506f1a1e646bc74f7cfff7bc7990052c3a2ade963c010c6bff6ae6135b9788f7972af2fb47e1a5380b26b8ca1b7a6c3f2bc9eaa7c9e7fdf227e38ab0",
"@esbuild/linux-x64@npm:0.25.2": "ac2c60f9dcbf9c55f66aef618b2a3218ddde92aad764aa6645b94b50c8c6242f1f97a0af956759738bca97686918dd71a0cfc82c73eadb0ab921918c9927a627",
"@esbuild/netbsd-arm64@npm:0.25.2": "6d820e86cbf10d305520ed7dbf4358bd4d75d333de39c100156dcc5619446916b4d5a1c1e07b838d22f6013aaf57bdd93187f2e97b1357a426e94e91b485e0e1",
"@esbuild/netbsd-x64@npm:0.25.2": "89153d1753254cd88f12b9e088a79398dcee11c0a1349a0886b54dd2db0ae2faf64ac0e364494f0cbd64163320cff94f02fc1fe827ff950daa0a27e50ef84a27",
"@esbuild/openbsd-arm64@npm:0.25.2": "71ede4e8f1086bece4e6d528b46ee3a493e0d33d749d5ac9050afd5471465badce7f36f1d04c1edddec75fde49e1229adb0f7758bcd508219a7598086b9a3c5c",
"@esbuild/openbsd-x64@npm:0.25.2": "95d90426c96d27980340d29c6d83f79ea2a22008041a5366c81820275ce36ba95ad0bf5e89ee199747a5921953587e7dcdc2e5a97368dec4efbcfc83ab5be4ee",
"@esbuild/sunos-x64@npm:0.25.2": "da59382e27897f98ee7261651eff1bcf42b1d659b078e500f664ef18137d70298f0bc0a50cf5af2311931e5b0454c6d3756a0ff9e560ab0a754ea56b0f04768c",
"@esbuild/win32-arm64@npm:0.25.2": "39f9a30d00a788ef168d7186f366397f7c471f1db3328efc0b9ff0861475f8a4484723b60ab6ab04c3bb27ebcdc8632e4883c28b5fa93b0606dd9f85f7904043",
"@esbuild/win32-ia32@npm:0.25.2": "74a7726d21a347faa1debdcd540e77fa5af9f96d5e0d625f2752d24a1616ac0fdea6582a0499935d9d964ee4c7a57ad8f30c6fe355089af2095bd0e41b70ea49",
"@esbuild/win32-x64@npm:0.25.2": "1e3f44cc53acaff9d45e2cded9811c750b7eb946f7b76d1fec66b862a89da800f9291269607d7cbb8d7e6068504571904d93a0813692e74fbae1fc321fe46440"
}

View File

@@ -0,0 +1,90 @@
{
lib,
stdenv,
fetchFromGitHub,
gitMinimal,
cacert,
makeBinaryWrapper,
nodejs,
python3,
nixosTests,
yarn-berry_4,
writableTmpDirAsHomeHook,
}:
let
version = "1.10.3";
src = fetchFromGitHub {
owner = "hedgedoc";
repo = "hedgedoc";
tag = version;
hash = "sha256-hXcPcGj+efvRVt3cHQc9KttE0/DOD9Bul6f3cY4ofgs=";
};
missingHashes = ./missing-hashes.json;
in
stdenv.mkDerivation {
pname = "hedgedoc";
inherit version src missingHashes;
offlineCache = yarn-berry_4.fetchYarnBerryDeps {
inherit src missingHashes;
hash = "sha256-V7ptquAohv0t5oA+3iTvlQOZoEtY5xWyhSoJP8jwYI8=";
};
nativeBuildInputs = [
makeBinaryWrapper
(python3.withPackages (ps: with ps; [ setuptools ])) # required to build sqlite3 bindings
yarn-berry_4
yarn-berry_4.yarnBerryConfigHook
];
buildInputs = [
nodejs # for shebangs
];
buildPhase = ''
runHook preBuild
yarn run build
# Delete scripts that are not useful for NixOS
rm bin/{heroku,setup}
patchShebangs bin/*
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/share/hedgedoc
cp -r {app.js,bin,lib,locales,node_modules,package.json,public} $out/share/hedgedoc
for bin in $out/share/hedgedoc/bin/*; do
makeWrapper $bin $out/bin/$(basename $bin) \
--set NODE_ENV production \
--set NODE_PATH "$out/share/hedgedoc/lib/node_modules"
done
makeWrapper ${nodejs}/bin/node $out/bin/hedgedoc \
--add-flags $out/share/hedgedoc/app.js \
--set NODE_ENV production \
--set NODE_PATH "$out/share/hedgedoc/lib/node_modules"
runHook postInstall
'';
passthru = {
tests = { inherit (nixosTests) hedgedoc; };
};
meta = {
description = "Realtime collaborative markdown notes on all platforms";
license = lib.licenses.agpl3Only;
homepage = "https://hedgedoc.org";
mainProgram = "hedgedoc";
maintainers = with lib.maintainers; [ SuperSandro2000 ];
platforms = lib.platforms.linux;
};
}

837
pkgs/by-name/he/hedgemodmanager/deps.json generated Normal file
View File

@@ -0,0 +1,837 @@
[
{
"pname": "Avalonia",
"version": "11.2.3",
"hash": "sha256-NUoyXJkIsgbkcKFVb10VRafM4ViHs801c/7vhu3ssUY="
},
{
"pname": "Avalonia.Angle.Windows.Natives",
"version": "2.1.22045.20230930",
"hash": "sha256-RxPcWUT3b/+R3Tu5E5ftpr5ppCLZrhm+OTsi0SwW3pc="
},
{
"pname": "Avalonia.BuildServices",
"version": "0.0.29",
"hash": "sha256-WPHRMNowRnYSCh88DWNBCltWsLPyOfzXGzBqLYE7tRY="
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "11.2.3",
"hash": "sha256-z3ZHxVSOoOjqq+5G71jnGN1Y0i3YpAkox7cj3lNr6kg="
},
{
"pname": "Avalonia.Controls.DataGrid",
"version": "11.2.3",
"hash": "sha256-jIJvuYN0iym/WeOC0C7z5xj5kCZSXGoeLQ/q5qQfewM="
},
{
"pname": "Avalonia.Desktop",
"version": "11.2.3",
"hash": "sha256-srtZi+kDbhRtMl33l91zssBWETU5oHodKbbWyfEsb/I="
},
{
"pname": "Avalonia.Diagnostics",
"version": "11.2.3",
"hash": "sha256-DIGkaBff+C3BLwedw5xteR5lfzb6ecxiLt12eJVgLQc="
},
{
"pname": "Avalonia.Fonts.Inter",
"version": "11.2.3",
"hash": "sha256-ySsCXVpjqjCX/uYkwluSfrAoBtuq9k7fC1bFjxKC9/Q="
},
{
"pname": "Avalonia.FreeDesktop",
"version": "11.2.3",
"hash": "sha256-3sNemBmZE06w2ul87T5HrEeHUxXMOa9MfQhpI4AoxDY="
},
{
"pname": "Avalonia.HtmlRenderer",
"version": "11.0.0",
"hash": "sha256-DBD113eQJNHeEgFmx/tVRSnHxhGBQIKWVKxr1QRilr4="
},
{
"pname": "Avalonia.Native",
"version": "11.2.3",
"hash": "sha256-2Gp98NGWcrILqF+P5PDMPRdsMby/lZiT3eWAUskFim8="
},
{
"pname": "Avalonia.Remote.Protocol",
"version": "11.2.3",
"hash": "sha256-dSeu7rnTD9rIvlyro2iFS52oi0vvfeaGV3kDm90BkKw="
},
{
"pname": "Avalonia.Skia",
"version": "11.2.3",
"hash": "sha256-QBp8wTA92hGwbmNSVL4gsjrqA9CfwDPgdTiOEqcogGA="
},
{
"pname": "Avalonia.Themes.Fluent",
"version": "11.2.3",
"hash": "sha256-DRl+267mUtJDUJpreUj6BxDLGGYGkEEo5vDGtGguoC8="
},
{
"pname": "Avalonia.Themes.Simple",
"version": "11.2.3",
"hash": "sha256-UF15yTDzHmqd33siH3TJxmxaonA51dzga+hmCUahn1k="
},
{
"pname": "Avalonia.Win32",
"version": "11.2.3",
"hash": "sha256-xKFKObvqdJaQjphEktRJvzmAoDEsKg3WqlEG31V3qLE="
},
{
"pname": "Avalonia.X11",
"version": "11.2.3",
"hash": "sha256-SD4dmpKx4l8YOyUnrA0fnf2Bb+tHSNyARh7GAtHyg60="
},
{
"pname": "CommunityToolkit.Mvvm",
"version": "8.4.0",
"hash": "sha256-a0D550q+ffreU9Z+kQPdzJYPNaj1UjgyPofLzUg02ZI="
},
{
"pname": "HarfBuzzSharp",
"version": "7.3.0.3",
"hash": "sha256-1vDIcG1aVwVABOfzV09eAAbZLFJqibip9LaIx5k+JxM="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "7.3.0.3",
"hash": "sha256-HW5r16wdlgDMbE/IfE5AQGDVFJ6TS6oipldfMztx+LM="
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "7.3.0.3",
"hash": "sha256-UpAVfRIYY8Wh8xD4wFjrXHiJcvlBLuc2Xdm15RwQ76w="
},
{
"pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "7.3.0.3",
"hash": "sha256-jHrU70rOADAcsVfVfozU33t/5B5Tk0CurRTf4fVQe3I="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "7.3.0.3",
"hash": "sha256-v/PeEfleJcx9tsEQAo5+7Q0XPNgBqiSLNnB2nnAGp+I="
},
{
"pname": "Markdig",
"version": "0.40.0",
"hash": "sha256-GJqbAhZZjCCnY2Cg3N4KaDVKc/IPdXgkWmTjQRvX5Jw="
},
{
"pname": "Material.Icons",
"version": "2.2.0",
"hash": "sha256-Gw2a7oXicf3yQKEgRdwBJ0DubMvf8iEkn6GtcLF9zJM="
},
{
"pname": "Material.Icons.Avalonia",
"version": "2.2.0",
"hash": "sha256-RkYaULaVMjm2HJV23gGRHomv6jI0dE/lIk1AWwkWJKA="
},
{
"pname": "MicroCom.Runtime",
"version": "0.11.0",
"hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="
},
{
"pname": "Microsoft.AspNetCore.App.Ref",
"version": "6.0.36",
"hash": "sha256-9jDkWbjw/nd8yqdzVTagCuqr6owJ/DUMi4BlUZT4hWU="
},
{
"pname": "Microsoft.AspNetCore.App.Runtime.linux-arm64",
"version": "6.0.36",
"hash": "sha256-JQULJyF0ivLoUU1JaFfK/HHg+/qzpN7V2RR2Cc+WlQ4="
},
{
"pname": "Microsoft.AspNetCore.App.Runtime.linux-x64",
"version": "6.0.36",
"hash": "sha256-zUsVIpV481vMLAXaLEEUpEMA9/f1HGOnvaQnaWdzlyY="
},
{
"pname": "Microsoft.CodeAnalysis.Analyzers",
"version": "3.3.4",
"hash": "sha256-qDzTfZBSCvAUu9gzq2k+LOvh6/eRvJ9++VCNck/ZpnE="
},
{
"pname": "Microsoft.CodeAnalysis.Common",
"version": "4.6.0",
"hash": "sha256-4koWiniIrv4ZBmS9SZb3347KaejKKh11n7CRj9fkc2M="
},
{
"pname": "Microsoft.CodeAnalysis.CSharp",
"version": "4.6.0",
"hash": "sha256-OCxUWSolVrmP2bs2SX9WLjb/U8Box8s1Tayk05/n2/k="
},
{
"pname": "Microsoft.NETCore.App.Host.linux-arm64",
"version": "6.0.36",
"hash": "sha256-9lC/LYnthYhjkWWz2kkFCvlA5LJOv11jdt59SDnpdy0="
},
{
"pname": "Microsoft.NETCore.App.Host.linux-x64",
"version": "6.0.36",
"hash": "sha256-VFRDzx7LJuvI5yzKdGmw/31NYVbwHWPKQvueQt5xc10="
},
{
"pname": "Microsoft.NETCore.App.Ref",
"version": "6.0.36",
"hash": "sha256-9LZgVoIFF8qNyUu8kdJrYGLutMF/cL2K82HN2ywwlx8="
},
{
"pname": "Microsoft.NETCore.App.Runtime.linux-arm64",
"version": "6.0.36",
"hash": "sha256-k3rxvUhCEU0pVH8KgEMtkPiSOibn+nBh+0zT2xIfId8="
},
{
"pname": "Microsoft.NETCore.App.Runtime.linux-x64",
"version": "6.0.36",
"hash": "sha256-U8wJ2snSDFqeAgDVLXjnniidC7Cr5aJ1/h/BMSlyu0c="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
},
{
"pname": "Microsoft.NETCore.Targets",
"version": "1.1.0",
"hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="
},
{
"pname": "Microsoft.Win32.Primitives",
"version": "4.3.0",
"hash": "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg="
},
{
"pname": "Mono.Cecil",
"version": "0.11.5",
"hash": "sha256-nPFwbzW08gnCjadBdgi+16MHYhsPAXnFIliveLxGaNA="
},
{
"pname": "Nerdbank.GitVersioning",
"version": "3.6.133",
"hash": "sha256-AEnBQaGGPMBmZJjZrdWARq/jY4SluuPIsKBbvfNEvLE="
},
{
"pname": "NETStandard.Library",
"version": "1.6.1",
"hash": "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw="
},
{
"pname": "NETStandard.Library",
"version": "2.0.3",
"hash": "sha256-Prh2RPebz/s8AzHb2sPHg3Jl8s31inv9k+Qxd293ybo="
},
{
"pname": "PeNet",
"version": "4.1.1",
"hash": "sha256-TyVUt3NexLY7oDb+uYEXiZcMCpaMUmzF41UvdLWXsDk="
},
{
"pname": "PeNet.Asn1",
"version": "2.0.1",
"hash": "sha256-ypIptb5VOAa4GHvVdd1no1CoyiOKOegFs52tZHj435I="
},
{
"pname": "runtime.any.System.Collections",
"version": "4.3.0",
"hash": "sha256-4PGZqyWhZ6/HCTF2KddDsbmTTjxs2oW79YfkberDZS8="
},
{
"pname": "runtime.any.System.Diagnostics.Tools",
"version": "4.3.0",
"hash": "sha256-8yLKFt2wQxkEf7fNfzB+cPUCjYn2qbqNgQ1+EeY2h/I="
},
{
"pname": "runtime.any.System.Diagnostics.Tracing",
"version": "4.3.0",
"hash": "sha256-dsmTLGvt8HqRkDWP8iKVXJCS+akAzENGXKPV18W2RgI="
},
{
"pname": "runtime.any.System.Globalization",
"version": "4.3.0",
"hash": "sha256-PaiITTFI2FfPylTEk7DwzfKeiA/g/aooSU1pDcdwWLU="
},
{
"pname": "runtime.any.System.Globalization.Calendars",
"version": "4.3.0",
"hash": "sha256-AYh39tgXJVFu8aLi9Y/4rK8yWMaza4S4eaxjfcuEEL4="
},
{
"pname": "runtime.any.System.IO",
"version": "4.3.0",
"hash": "sha256-vej7ySRhyvM3pYh/ITMdC25ivSd0WLZAaIQbYj/6HVE="
},
{
"pname": "runtime.any.System.Reflection",
"version": "4.3.0",
"hash": "sha256-ns6f++lSA+bi1xXgmW1JkWFb2NaMD+w+YNTfMvyAiQk="
},
{
"pname": "runtime.any.System.Reflection.Extensions",
"version": "4.3.0",
"hash": "sha256-Y2AnhOcJwJVYv7Rp6Jz6ma0fpITFqJW+8rsw106K2X8="
},
{
"pname": "runtime.any.System.Reflection.Primitives",
"version": "4.3.0",
"hash": "sha256-LkPXtiDQM3BcdYkAm5uSNOiz3uF4J45qpxn5aBiqNXQ="
},
{
"pname": "runtime.any.System.Resources.ResourceManager",
"version": "4.3.0",
"hash": "sha256-9EvnmZslLgLLhJ00o5MWaPuJQlbUFcUF8itGQNVkcQ4="
},
{
"pname": "runtime.any.System.Runtime",
"version": "4.3.0",
"hash": "sha256-qwhNXBaJ1DtDkuRacgHwnZmOZ1u9q7N8j0cWOLYOELM="
},
{
"pname": "runtime.any.System.Runtime.Handles",
"version": "4.3.0",
"hash": "sha256-PQRACwnSUuxgVySO1840KvqCC9F8iI9iTzxNW0RcBS4="
},
{
"pname": "runtime.any.System.Runtime.InteropServices",
"version": "4.3.0",
"hash": "sha256-Kaw5PnLYIiqWbsoF3VKJhy7pkpoGsUwn4ZDCKscbbzA="
},
{
"pname": "runtime.any.System.Text.Encoding",
"version": "4.3.0",
"hash": "sha256-Q18B9q26MkWZx68exUfQT30+0PGmpFlDgaF0TnaIGCs="
},
{
"pname": "runtime.any.System.Text.Encoding.Extensions",
"version": "4.3.0",
"hash": "sha256-6MYj0RmLh4EVqMtO/MRqBi0HOn5iG4x9JimgCCJ+EFM="
},
{
"pname": "runtime.any.System.Threading.Tasks",
"version": "4.3.0",
"hash": "sha256-agdOM0NXupfHbKAQzQT8XgbI9B8hVEh+a/2vqeHctg4="
},
{
"pname": "runtime.any.System.Threading.Timer",
"version": "4.3.0",
"hash": "sha256-BgHxXCIbicVZtpgMimSXixhFC3V+p5ODqeljDjO8hCs="
},
{
"pname": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-LXUPLX3DJxsU1Pd3UwjO1PO9NM2elNEDXeu2Mu/vNps="
},
{
"pname": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-qeSqaUI80+lqw5MK4vMpmO0CZaqrmYktwp6L+vQAb0I="
},
{
"pname": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-SrHqT9wrCBsxILWtaJgGKd6Odmxm8/Mh7Kh0CUkZVzA="
},
{
"pname": "runtime.native.System",
"version": "4.3.0",
"hash": "sha256-ZBZaodnjvLXATWpXXakFgcy6P+gjhshFXmglrL5xD5Y="
},
{
"pname": "runtime.native.System.IO.Compression",
"version": "4.3.0",
"hash": "sha256-DWnXs4vlKoU6WxxvCArTJupV6sX3iBbZh8SbqfHace8="
},
{
"pname": "runtime.native.System.Net.Http",
"version": "4.3.0",
"hash": "sha256-c556PyheRwpYhweBjSfIwEyZHnAUB8jWioyKEcp/2dg="
},
{
"pname": "runtime.native.System.Security.Cryptography.Apple",
"version": "4.3.0",
"hash": "sha256-2IhBv0i6pTcOyr8FFIyfPEaaCHUmJZ8DYwLUwJ+5waw="
},
{
"pname": "runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-Jy01KhtcCl2wjMpZWH+X3fhHcVn+SyllWFY8zWlz/6I="
},
{
"pname": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-wyv00gdlqf8ckxEdV7E+Ql9hJIoPcmYEuyeWb5Oz3mM="
},
{
"pname": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-zi+b4sCFrA9QBiSGDD7xPV27r3iHGlV99gpyVUjRmc4="
},
{
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple",
"version": "4.3.0",
"hash": "sha256-serkd4A7F6eciPiPJtUyJyxzdAtupEcWIZQ9nptEzIM="
},
{
"pname": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-gybQU6mPgaWV3rBG2dbH6tT3tBq8mgze3PROdsuWnX0="
},
{
"pname": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-VsP72GVveWnGUvS/vjOQLv1U80H2K8nZ4fDAmI61Hm4="
},
{
"pname": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-4yKGa/IrNCKuQ3zaDzILdNPD32bNdy6xr5gdJigyF5g="
},
{
"pname": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-HmdJhhRsiVoOOCcUvAwdjpMRiyuSwdcgEv2j9hxi+Zc="
},
{
"pname": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-pVFUKuPPIx0edQKjzRon3zKq8zhzHEzko/lc01V/jdw="
},
{
"pname": "runtime.unix.Microsoft.Win32.Primitives",
"version": "4.3.0",
"hash": "sha256-LZb23lRXzr26tRS5aA0xyB08JxiblPDoA7HBvn6awXg="
},
{
"pname": "runtime.unix.System.Console",
"version": "4.3.0",
"hash": "sha256-AHkdKShTRHttqfMjmi+lPpTuCrM5vd/WRy6Kbtie190="
},
{
"pname": "runtime.unix.System.Diagnostics.Debug",
"version": "4.3.0",
"hash": "sha256-ReoazscfbGH+R6s6jkg5sIEHWNEvjEoHtIsMbpc7+tI="
},
{
"pname": "runtime.unix.System.IO.FileSystem",
"version": "4.3.0",
"hash": "sha256-Pf4mRl6YDK2x2KMh0WdyNgv0VUNdSKVDLlHqozecy5I="
},
{
"pname": "runtime.unix.System.Net.Primitives",
"version": "4.3.0",
"hash": "sha256-pHJ+I6i16MV6m77uhTC6GPY6jWGReE3SSP3fVB59ti0="
},
{
"pname": "runtime.unix.System.Net.Sockets",
"version": "4.3.0",
"hash": "sha256-IvgOeA2JuBjKl5yAVGjPYMPDzs9phb3KANs95H9v1w4="
},
{
"pname": "runtime.unix.System.Private.Uri",
"version": "4.3.0",
"hash": "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs="
},
{
"pname": "runtime.unix.System.Runtime.Extensions",
"version": "4.3.0",
"hash": "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4="
},
{
"pname": "SharpCompress",
"version": "0.39.0",
"hash": "sha256-Me88MMn5NUiw5bugFKCKFRnFSXQKIFZJ+k97Ex6jgZE="
},
{
"pname": "SkiaSharp",
"version": "2.88.9",
"hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24="
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.9",
"hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A="
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "2.88.9",
"hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g="
},
{
"pname": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.9",
"hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY="
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "2.88.9",
"hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="
},
{
"pname": "System.AppContext",
"version": "4.3.0",
"hash": "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg="
},
{
"pname": "System.Buffers",
"version": "4.3.0",
"hash": "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk="
},
{
"pname": "System.Buffers",
"version": "4.5.1",
"hash": "sha256-wws90sfi9M7kuCPWkv1CEYMJtCqx9QB/kj0ymlsNaxI="
},
{
"pname": "System.Buffers",
"version": "4.6.0",
"hash": "sha256-c2QlgFB16IlfBms5YLsTCFQ/QeKoS6ph1a9mdRkq/Jc="
},
{
"pname": "System.Collections",
"version": "4.3.0",
"hash": "sha256-afY7VUtD6w/5mYqrce8kQrvDIfS2GXDINDh73IjxJKc="
},
{
"pname": "System.Collections.Concurrent",
"version": "4.3.0",
"hash": "sha256-KMY5DfJnDeIsa13DpqvyN8NkReZEMAFnlmNglVoFIXI="
},
{
"pname": "System.Collections.Immutable",
"version": "7.0.0",
"hash": "sha256-9an2wbxue2qrtugYES9awshQg+KfJqajhnhs45kQIdk="
},
{
"pname": "System.Console",
"version": "4.3.0",
"hash": "sha256-Xh3PPBZr0pDbDaK8AEHbdGz7ePK6Yi1ZyRWI1JM6mbo="
},
{
"pname": "System.Diagnostics.Debug",
"version": "4.3.0",
"hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM="
},
{
"pname": "System.Diagnostics.DiagnosticSource",
"version": "4.3.0",
"hash": "sha256-OFJRb0ygep0Z3yDBLwAgM/Tkfs4JCDtsNhwDH9cd1Xw="
},
{
"pname": "System.Diagnostics.Tools",
"version": "4.3.0",
"hash": "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y="
},
{
"pname": "System.Diagnostics.Tracing",
"version": "4.3.0",
"hash": "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q="
},
{
"pname": "System.Globalization",
"version": "4.3.0",
"hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="
},
{
"pname": "System.Globalization.Calendars",
"version": "4.3.0",
"hash": "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc="
},
{
"pname": "System.Globalization.Extensions",
"version": "4.3.0",
"hash": "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk="
},
{
"pname": "System.IO",
"version": "4.3.0",
"hash": "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="
},
{
"pname": "System.IO.Compression",
"version": "4.3.0",
"hash": "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA="
},
{
"pname": "System.IO.Compression.ZipFile",
"version": "4.3.0",
"hash": "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs="
},
{
"pname": "System.IO.FileSystem",
"version": "4.3.0",
"hash": "sha256-vNIYnvlayuVj0WfRfYKpDrhDptlhp1pN8CYmlVd2TXw="
},
{
"pname": "System.IO.FileSystem.Primitives",
"version": "4.3.0",
"hash": "sha256-LMnfg8Vwavs9cMnq9nNH8IWtAtSfk0/Fy4s4Rt9r1kg="
},
{
"pname": "System.IO.Pipelines",
"version": "8.0.0",
"hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE="
},
{
"pname": "System.Linq",
"version": "4.3.0",
"hash": "sha256-R5uiSL3l6a3XrXSSL6jz+q/PcyVQzEAByiuXZNSqD/A="
},
{
"pname": "System.Linq.Expressions",
"version": "4.3.0",
"hash": "sha256-+3pvhZY7rip8HCbfdULzjlC9FPZFpYoQxhkcuFm2wk8="
},
{
"pname": "System.Memory",
"version": "4.5.5",
"hash": "sha256-EPQ9o1Kin7KzGI5O3U3PUQAZTItSbk9h/i4rViN3WiI="
},
{
"pname": "System.Net.Http",
"version": "4.3.0",
"hash": "sha256-UoBB7WPDp2Bne/fwxKF0nE8grJ6FzTMXdT/jfsphj8Q="
},
{
"pname": "System.Net.NameResolution",
"version": "4.3.0",
"hash": "sha256-eGZwCBExWsnirWBHyp2sSSSXp6g7I6v53qNmwPgtJ5c="
},
{
"pname": "System.Net.Primitives",
"version": "4.3.0",
"hash": "sha256-MY7Z6vOtFMbEKaLW9nOSZeAjcWpwCtdO7/W1mkGZBzE="
},
{
"pname": "System.Net.Sockets",
"version": "4.3.0",
"hash": "sha256-il7dr5VT/QWDg/0cuh+4Es2u8LY//+qqiY9BZmYxSus="
},
{
"pname": "System.Numerics.Vectors",
"version": "4.4.0",
"hash": "sha256-auXQK2flL/JpnB/rEcAcUm4vYMCYMEMiWOCAlIaqu2U="
},
{
"pname": "System.ObjectModel",
"version": "4.3.0",
"hash": "sha256-gtmRkWP2Kwr3nHtDh0yYtce38z1wrGzb6fjm4v8wN6Q="
},
{
"pname": "System.Private.Uri",
"version": "4.3.0",
"hash": "sha256-fVfgcoP4AVN1E5wHZbKBIOPYZ/xBeSIdsNF+bdukIRM="
},
{
"pname": "System.Reflection",
"version": "4.3.0",
"hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY="
},
{
"pname": "System.Reflection.Emit",
"version": "4.3.0",
"hash": "sha256-5LhkDmhy2FkSxulXR+bsTtMzdU3VyyuZzsxp7/DwyIU="
},
{
"pname": "System.Reflection.Emit.ILGeneration",
"version": "4.3.0",
"hash": "sha256-mKRknEHNls4gkRwrEgi39B+vSaAz/Gt3IALtS98xNnA="
},
{
"pname": "System.Reflection.Emit.Lightweight",
"version": "4.3.0",
"hash": "sha256-rKx4a9yZKcajloSZHr4CKTVJ6Vjh95ni+zszPxWjh2I="
},
{
"pname": "System.Reflection.Extensions",
"version": "4.3.0",
"hash": "sha256-mMOCYzUenjd4rWIfq7zIX9PFYk/daUyF0A8l1hbydAk="
},
{
"pname": "System.Reflection.Metadata",
"version": "7.0.0",
"hash": "sha256-GwAKQhkhPBYTqmRdG9c9taqrKSKDwyUgOEhWLKxWNPI="
},
{
"pname": "System.Reflection.Primitives",
"version": "4.3.0",
"hash": "sha256-5ogwWB4vlQTl3jjk1xjniG2ozbFIjZTL9ug0usZQuBM="
},
{
"pname": "System.Reflection.TypeExtensions",
"version": "4.3.0",
"hash": "sha256-4U4/XNQAnddgQIHIJq3P2T80hN0oPdU2uCeghsDTWng="
},
{
"pname": "System.Resources.ResourceManager",
"version": "4.3.0",
"hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo="
},
{
"pname": "System.Runtime",
"version": "4.3.0",
"hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "6.0.0",
"hash": "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I="
},
{
"pname": "System.Runtime.Extensions",
"version": "4.3.0",
"hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o="
},
{
"pname": "System.Runtime.Handles",
"version": "4.3.0",
"hash": "sha256-KJ5aXoGpB56Y6+iepBkdpx/AfaJDAitx4vrkLqR7gms="
},
{
"pname": "System.Runtime.InteropServices",
"version": "4.3.0",
"hash": "sha256-8sDH+WUJfCR+7e4nfpftj/+lstEiZixWUBueR2zmHgI="
},
{
"pname": "System.Runtime.InteropServices.RuntimeInformation",
"version": "4.3.0",
"hash": "sha256-MYpl6/ZyC6hjmzWRIe+iDoldOMW1mfbwXsduAnXIKGA="
},
{
"pname": "System.Runtime.Numerics",
"version": "4.3.0",
"hash": "sha256-P5jHCgMbgFMYiONvzmaKFeOqcAIDPu/U8bOVrNPYKqc="
},
{
"pname": "System.Security.Claims",
"version": "4.3.0",
"hash": "sha256-Fua/rDwAqq4UByRVomAxMPmDBGd5eImRqHVQIeSxbks="
},
{
"pname": "System.Security.Cryptography.Algorithms",
"version": "4.3.0",
"hash": "sha256-tAJvNSlczYBJ3Ed24Ae27a55tq/n4D3fubNQdwcKWA8="
},
{
"pname": "System.Security.Cryptography.Cng",
"version": "4.3.0",
"hash": "sha256-u17vy6wNhqok91SrVLno2M1EzLHZm6VMca85xbVChsw="
},
{
"pname": "System.Security.Cryptography.Csp",
"version": "4.3.0",
"hash": "sha256-oefdTU/Z2PWU9nlat8uiRDGq/PGZoSPRgkML11pmvPQ="
},
{
"pname": "System.Security.Cryptography.Encoding",
"version": "4.3.0",
"hash": "sha256-Yuge89N6M+NcblcvXMeyHZ6kZDfwBv3LPMDiF8HhJss="
},
{
"pname": "System.Security.Cryptography.OpenSsl",
"version": "4.3.0",
"hash": "sha256-DL+D2sc2JrQiB4oAcUggTFyD8w3aLEjJfod5JPe+Oz4="
},
{
"pname": "System.Security.Cryptography.Pkcs",
"version": "8.0.1",
"hash": "sha256-KMNIkJ3yQ/5O6WIhPjyAIarsvIMhkp26A6aby5KkneU="
},
{
"pname": "System.Security.Cryptography.Primitives",
"version": "4.3.0",
"hash": "sha256-fnFi7B3SnVj5a+BbgXnbjnGNvWrCEU6Hp/wjsjWz318="
},
{
"pname": "System.Security.Cryptography.X509Certificates",
"version": "4.3.0",
"hash": "sha256-MG3V/owDh273GCUPsGGraNwaVpcydupl3EtPXj6TVG0="
},
{
"pname": "System.Security.Principal",
"version": "4.3.0",
"hash": "sha256-rjudVUHdo8pNJg2EVEn0XxxwNo5h2EaYo+QboPkXlYk="
},
{
"pname": "System.Security.Principal.Windows",
"version": "4.3.0",
"hash": "sha256-mbdLVUcEwe78p3ZnB6jYsizNEqxMaCAWI3tEQNhRQAE="
},
{
"pname": "System.Text.Encoding",
"version": "4.3.0",
"hash": "sha256-GctHVGLZAa/rqkBNhsBGnsiWdKyv6VDubYpGkuOkBLg="
},
{
"pname": "System.Text.Encoding.CodePages",
"version": "7.0.0",
"hash": "sha256-eCKTVwumD051ZEcoJcDVRGnIGAsEvKpfH3ydKluHxmo="
},
{
"pname": "System.Text.Encoding.Extensions",
"version": "4.3.0",
"hash": "sha256-vufHXg8QAKxHlujPHHcrtGwAqFmsCD6HKjfDAiHyAYc="
},
{
"pname": "System.Text.RegularExpressions",
"version": "4.3.0",
"hash": "sha256-VLCk1D1kcN2wbAe3d0YQM/PqCsPHOuqlBY1yd2Yo+K0="
},
{
"pname": "System.Threading",
"version": "4.3.0",
"hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="
},
{
"pname": "System.Threading.Tasks",
"version": "4.3.0",
"hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="
},
{
"pname": "System.Threading.Tasks.Extensions",
"version": "4.3.0",
"hash": "sha256-X2hQ5j+fxcmnm88Le/kSavjiGOmkcumBGTZKBLvorPc="
},
{
"pname": "System.Threading.Tasks.Extensions",
"version": "4.5.4",
"hash": "sha256-owSpY8wHlsUXn5xrfYAiu847L6fAKethlvYx97Ri1ng="
},
{
"pname": "System.Threading.ThreadPool",
"version": "4.3.0",
"hash": "sha256-wW0QdvssRoaOfQLazTGSnwYTurE4R8FxDx70pYkL+gg="
},
{
"pname": "System.Threading.Timer",
"version": "4.3.0",
"hash": "sha256-pmhslmhQhP32TWbBzoITLZ4BoORBqYk25OWbru04p9s="
},
{
"pname": "System.Xml.ReaderWriter",
"version": "4.3.0",
"hash": "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA="
},
{
"pname": "System.Xml.XDocument",
"version": "4.3.0",
"hash": "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI="
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.20.0",
"hash": "sha256-CRW/tkgsuBiBJfRwou12ozRQsWhHDooeP88E5wWpWJw="
},
{
"pname": "ValveKeyValue",
"version": "0.12.0.391",
"hash": "sha256-N7yCM2srP1SFxcqYRjk9dt4pPHdxIetfpw2UMe7kOes="
},
{
"pname": "ZstdSharp.Port",
"version": "0.8.4",
"hash": "sha256-4bFUNK++6yUOnY7bZQiibClSJUQjH0uIiUbQLBtPWbo="
}
]

View File

@@ -0,0 +1,53 @@
{
lib,
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub,
nix-update-script,
}:
buildDotnetModule (finalAttrs: {
pname = "hedgemodmanager";
version = "8.0.0-beta4";
src = fetchFromGitHub {
owner = "hedge-dev";
repo = "HedgeModManager";
tag = finalAttrs.version;
hash = "sha256-1uwcpeyOxwKI0fyAmchYEMqStF52wXkCZej+ZQ+aFeY=";
};
projectFile = "Source/HedgeModManager.UI/HedgeModManager.UI.csproj";
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
postPatch = ''
substituteInPlace flatpak/hedgemodmanager.desktop --replace-fail "/app/bin/HedgeModManager.UI" "HedgeModManager.UI"
'';
# https://github.com/hedge-dev/HedgeModManager/blob/8.0.0-beta4/flatpak/io.github.hedge_dev.hedgemodmanager.yml#L53-L55
postInstall = ''
install -Dm644 flatpak/hedgemodmanager.png $out/share/icons/hicolor/256x256/apps/io.github.hedge_dev.hedgemodmanager.png
install -Dm644 flatpak/hedgemodmanager.metainfo.xml $out/share/metainfo/io.github.hedge_dev.hedgemodmanager.metainfo.xml
install -Dm644 flatpak/hedgemodmanager.desktop $out/share/applications/io.github.hedge_dev.hedgemodmanager.desktop
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version"
"unstable"
];
};
meta = {
mainProgram = "HedgeModManager.UI";
description = "Mod manager for Hedgehog Engine games";
homepage = "https://github.com/hedge-dev/HedgeModManager";
changelog = "https://github.com/hedge-dev/HedgeModManager/releases/tag/${finalAttrs.version}";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,148 @@
{
stdenv,
SDL2_image,
SDL2_ttf,
SDL2_net,
fpc,
haskell,
ffmpeg,
libglut,
lib,
fetchurl,
cmake,
pkg-config,
lua5_1,
SDL2,
SDL2_mixer,
zlib,
libpng,
libGL,
libGLU,
physfs,
qt5,
withServer ? true,
}:
let
inherit (qt5) qtbase qttools wrapQtAppsHook;
ghc = haskell.packages.ghc94.ghcWithPackages (
pkgs: with pkgs; [
SHA
bytestring
entropy
hslogger
network
pkgs.zlib
random
regex-tdfa
sandi
utf8-string
vector
]
);
in
stdenv.mkDerivation (finalAttrs: {
pname = "hedgewars";
version = "1.0.3";
src = fetchurl {
url = "https://hedgewars.org/download/releases/hedgewars-src-${finalAttrs.version}.tar.bz2";
hash = "sha256-xcGHfAuuE1THXSuVJ7b5qfeemZMuXQix9vfeFwgGYTA=";
};
nativeBuildInputs = [
cmake
pkg-config
qttools
wrapQtAppsHook
];
buildInputs = [
SDL2_ttf
SDL2_net
SDL2
SDL2_mixer
SDL2_image
fpc
lua5_1
ffmpeg
libglut
physfs
qtbase
]
++ lib.optional withServer ghc;
cmakeFlags = [
"-DNOVERSIONINFOUPDATE=ON"
"-DNOSERVER=${if withServer then "OFF" else "ON"}"
];
NIX_LDFLAGS = lib.concatMapStringsSep " " (e: "-rpath ${e}/lib") [
SDL2.out
SDL2_image
SDL2_mixer
SDL2_net
SDL2_ttf
libGL
libGLU
libpng.out
lua5_1
physfs
zlib.out
];
qtWrapperArgs = [
"--prefix LD_LIBRARY_PATH : ${
lib.makeLibraryPath [
libGL
libGLU
libglut
physfs
]
}"
];
meta = {
description = "Funny turn-based artillery game, featuring fighting hedgehogs";
homepage = "https://hedgewars.org/";
license = with lib.licenses; [
gpl2Only
# Assets
fdl12Only
# Fonts
bitstreamVera
asl20
];
longDescription = ''
Each player controls a team of several hedgehogs. During the course of
the game, players take turns with one of their hedgehogs. They then use
whatever tools and weapons are available to attack and kill the
opponents' hedgehogs, thereby winning the game. Hedgehogs may move
around the terrain in a variety of ways, normally by walking and jumping
but also by using particular tools such as the "Rope" or "Parachute", to
move to otherwise inaccessible areas. Each turn is time-limited to
ensure that players do not hold up the game with excessive thinking or
moving.
A large variety of tools and weapons are available for players during
the game: Grenade, Cluster Bomb, Bazooka, UFO, Homing Bee, Shotgun,
Desert Eagle, Fire Punch, Baseball Bat, Dynamite, Mine, Rope, Pneumatic
pick, Parachute. Most weapons, when used, cause explosions that deform
the terrain, removing circular chunks. The landscape is an island
floating on a body of water, or a restricted cave with water at the
bottom. A hedgehog dies when it enters the water (either by falling off
the island, or through a hole in the bottom of it), it is thrown off
either side of the arena or when its health is reduced, typically from
contact with explosions, to zero (the damage dealt to the attacked
hedgehog or hedgehogs after a player's or CPU turn is shown only when
all movement on the battlefield has ceased).'';
maintainers = with lib.maintainers; [
kragniz
fpletz
];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "hednsextractor";
version = "1.0.7";
src = fetchFromGitHub {
owner = "HuntDownProject";
repo = "HEDnsExtractor";
tag = "v${version}";
hash = "sha256-Uj5TNQ+X0+ip1DcLanMmFzr5ROuXhuZJSPF9tile+ZQ=";
};
vendorHash = "sha256-8yD/yHSqesyS71YeRBv4ARyXyIbTcan7YjBeKBrg0Vc=";
ldflags = [
"-s"
"-w"
];
meta = {
description = "Tool suite for hunting suspicious targets, expose domains and phishing discovery";
homepage = "https://github.com/HuntDownProject/HEDnsExtractor";
changelog = "https://github.com/HuntDownProject/HEDnsExtractor/releases/tag/v${version}";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "hednsextractor";
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
}:
rustPlatform.buildRustPackage rec {
pname = "heh";
version = "0.6.1";
src = fetchFromGitHub {
owner = "ndd7xv";
repo = "heh";
rev = "v${version}";
hash = "sha256-eqWBTylvXqGhWdSGHdTM1ZURSD5pkUBoBOvBJ5zmJ7w=";
};
cargoHash = "sha256-Sk/eL5Pza9L8GLBxqL9SqMT7KDWZenMjV+sGYaWUnzo=";
meta = with lib; {
description = "Cross-platform terminal UI used for modifying file data in hex or ASCII";
homepage = "https://github.com/ndd7xv/heh";
changelog = "https://github.com/ndd7xv/heh/releases/tag/${src.rev}";
license = with licenses; [ mit ];
maintainers = with maintainers; [ piturnah ];
mainProgram = "heh";
};
}

View File

@@ -0,0 +1,7 @@
{
heimdall,
}:
heimdall.override {
enableGUI = true;
}

View File

@@ -0,0 +1,43 @@
{
fetchFromGitHub,
buildGoModule,
lib,
}:
let
version = "0.16.7";
in
buildGoModule {
pname = "heimdall-proxy";
inherit version;
src = fetchFromGitHub {
owner = "dadrus";
repo = "heimdall";
tag = "v${version}";
hash = "sha256-YFqaCXx/x2LfdqaJZFTGkK/k7qIRWKXA1t/KZeWLDGw=";
};
vendorHash = "sha256-E/tdRS96rPWZHwtG22TFB1p7CUaFsya7nI8cAEuYvJo=";
tags = [ "sqlite" ];
subPackages = [ "." ];
env.CGO_ENABLED = 0;
# Pass versioning information via ldflags
ldflags = [
"-s"
"-w"
"-X github.com/dadrus/heimdall/version.Version=${version}"
];
meta = {
description = "Cloud native Identity Aware Proxy and Access Control Decision service";
homepage = "https://dadrus.github.io/heimdall";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ albertilagan ];
mainProgram = "heimdall";
};
}

View File

@@ -0,0 +1,22 @@
From d0382de78c43c47b8ae3326d979cbbd028b66735 Mon Sep 17 00:00:00 2001
From: Tim Schumacher <timschumi@gmx.de>
Date: Fri, 13 Jun 2025 00:29:46 +0200
Subject: [PATCH] Install the macOS bundle to the install prefix
---
heimdall-frontend/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/heimdall-frontend/CMakeLists.txt b/heimdall-frontend/CMakeLists.txt
index 6ccb9b1..6fa3054 100644
--- a/heimdall-frontend/CMakeLists.txt
+++ b/heimdall-frontend/CMakeLists.txt
@@ -83,4 +83,4 @@ target_link_libraries(heimdall-frontend z)
install (TARGETS heimdall-frontend
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- BUNDLE DESTINATION /Applications)
+ BUNDLE DESTINATION ${CMAKE_INSTALL_PREFIX}/Applications)
--
2.49.0

View File

@@ -0,0 +1,77 @@
{
cmake,
enableGUI ? false,
fetchFromSourcehut,
gitUpdater,
lib,
libusb1,
pkg-config,
qt6,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "heimdall";
version = "2.2.2";
src = fetchFromSourcehut {
owner = "~grimler";
repo = "Heimdall";
rev = "v${finalAttrs.version}";
hash = "sha256-ga2hAZhsKosEG//qXEf+1vhJYtsHwyq6QvMlZaSFIgQ=";
};
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
patches = [
./0001-Install-the-macOS-bundle-to-the-install-prefix.patch
];
outputs = [
"out"
"udev"
];
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
]
++ lib.optional enableGUI qt6.wrapQtAppsHook;
buildInputs = [
(libusb1.override { withStatic = stdenv.hostPlatform.isWindows; })
]
++ lib.optional enableGUI qt6.qtbase;
preInstall = ''
mkdir -p $udev/lib/udev/rules.d
install -m644 -t $udev/lib/udev/rules.d $src/heimdall/60-heimdall.rules
'';
doInstallCheck = true;
# heimdall cli looked up from PATH by gui
preFixup = lib.optional enableGUI ''
qtWrapperArgs+=(--prefix PATH : "$out/bin")
'';
cmakeFlags = [
(lib.cmakeBool "DISABLE_FRONTEND" (!enableGUI))
];
meta = {
description = "Cross-platform open-source tool suite used to flash firmware onto Samsung Galaxy devices";
homepage = "https://git.sr.ht/~grimler/Heimdall";
license = lib.licenses.mit;
mainProgram =
(if enableGUI then "heimdall-frontend" else "heimdall")
+ lib.optionalString stdenv.hostPlatform.isWindows ".exe";
maintainers = with lib.maintainers; [
surfaceflinger
timschumi
];
platforms = with lib.platforms; unix ++ windows;
};
})

View File

@@ -0,0 +1,52 @@
{
lib,
fetchFromGitHub,
nix-update-script,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "heisenbridge";
version = "1.15.4";
format = "pyproject";
src = fetchFromGitHub {
owner = "hifi";
repo = "heisenbridge";
tag = "v${version}";
sha256 = "sha256-Aan3dtixy1xT9kPU/XxgbUvri9NS/WKiO/atmpPY/m8=";
};
postPatch = ''
echo "${version}" > heisenbridge/version.txt
'';
build-system = with python3.pkgs; [
setuptools
];
pythonRelaxDeps = [
"irc"
];
dependencies = with python3.pkgs; [
irc
ruamel-yaml
mautrix
python-socks
];
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
];
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Bouncer-style Matrix-IRC bridge";
homepage = "https://github.com/hifi/heisenbridge";
license = licenses.mit;
maintainers = [ maintainers.sumnerevans ];
mainProgram = "heisenbridge";
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication {
pname = "hekatomb";
version = "1.5.14-unstable-2024-02-14";
pyproject = true;
src = fetchFromGitHub {
owner = "ProcessusT";
repo = "HEKATOMB";
rev = "8cd372fd5d93e8b43c2cbe2ab2cada635f00e9dd";
hash = "sha256-2juP2SuCfY4z2J27BlodrsP+29BjGxKDIDOW0mmwCPY=";
};
pythonRelaxDeps = [
"impacket"
];
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
propagatedBuildInputs = with python3.pkgs; [
chardet
dnspython
impacket
ldap3
pycryptodomex
];
# Project has no tests
doCheck = false;
pythonImportsCheck = [
"hekatomb"
];
meta = with lib; {
description = "Tool to connect to LDAP directory to retrieve informations";
homepage = "https://github.com/ProcessusT/HEKATOMB";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fab ];
mainProgram = "hekatomb";
};
}

View File

@@ -0,0 +1,73 @@
{
lib,
stdenv,
fetchFromGitHub,
alsa-lib,
freetype,
xorg,
curl,
libGL,
libjack2,
zenity,
pkg-config,
makeWrapper,
}:
stdenv.mkDerivation rec {
pname = "helio-workstation";
version = "3.16";
src = fetchFromGitHub {
owner = "helio-fm";
repo = "helio-workstation";
tag = version;
fetchSubmodules = true;
hash = "sha256-JzJA9Y710upgzvsgPEV9QzpRUTYI0i2yi6thnUAcrL0=";
};
buildInputs = [
alsa-lib
freetype
xorg.libX11
xorg.libXext
xorg.libXinerama
xorg.libXrandr
xorg.libXcursor
xorg.libXcomposite
curl
libGL
libjack2
zenity
];
nativeBuildInputs = [
pkg-config
makeWrapper
];
preBuild = ''
cd Projects/LinuxMakefile
substituteInPlace Makefile --replace alsa "alsa jack"
'';
buildFlags = [ "CONFIG=Release64" ];
installPhase = ''
mkdir -p $out/bin
install -Dm755 build/helio $out/bin
wrapProgram $out/bin/helio --prefix PATH ":" ${zenity}/bin
mkdir -p $out/share
cp -r ../Deployment/Linux/Debian/x64/usr/share/* $out/share
substituteInPlace $out/share/applications/Helio.desktop \
--replace "/usr/bin/helio" "$out/bin/helio"
'';
meta = with lib; {
description = "One music sequencer for all major platforms, both desktop and mobile";
mainProgram = "helio";
homepage = "https://helio.fm/";
license = licenses.gpl3Only;
maintainers = [ maintainers.suhr ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,33 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "heliocron";
version = "1.0.0";
src = fetchFromGitHub {
owner = "mfreeborn";
repo = "heliocron";
rev = "v${version}";
hash = "sha256-tqwVYIU8RXb1hiKnP7AlkxHsMhbAlwSmPGyFFMHIbAo=";
};
cargoHash = "sha256-rQriNb/njEUBUmCUy5NKEfOYkOLy9i7ClU0vR72udOo=";
meta = {
description = "Execute tasks relative to sunset, sunrise and other solar events";
longDescription = "A simple command line application that integrates with `cron` to execute tasks relative to sunset, sunrise and other such solar events.";
homepage = "https://github.com/mfreeborn/heliocron";
changelog = "https://github.com/mfreeborn/heliocron/releases/tag/v${version}";
license = with lib.licenses; [
mit
asl20
];
maintainers = with lib.maintainers; [ TheColorman ];
mainProgram = "heliocron";
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,78 @@
{
stdenv,
lib,
fetchFromGitHub,
bun,
makeBinaryWrapper,
}:
let
pin = lib.importJSON ./pin.json;
src = fetchFromGitHub {
owner = "leona";
repo = "helix-gpt";
rev = pin.version;
hash = pin.srcHash;
};
node_modules = stdenv.mkDerivation {
pname = "helix-gpt-node_modules";
inherit src;
version = pin.version;
impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
"GIT_PROXY_COMMAND"
"SOCKS_SERVER"
];
nativeBuildInputs = [ bun ];
dontConfigure = true;
buildPhase = ''
bun install --no-progress --frozen-lockfile
'';
installPhase = ''
mkdir -p $out/node_modules
cp -R ./node_modules $out
'';
outputHash = pin."${stdenv.system}";
outputHashAlgo = "sha256";
outputHashMode = "recursive";
};
in
stdenv.mkDerivation {
pname = "helix-gpt";
version = pin.version;
inherit src;
nativeBuildInputs = [ makeBinaryWrapper ];
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/bin
ln -s ${node_modules}/node_modules $out
cp -R ./* $out
# bun is referenced naked in the package.json generated script
makeBinaryWrapper ${bun}/bin/bun $out/bin/helix-gpt \
--prefix PATH : ${lib.makeBinPath [ bun ]} \
--add-flags "run --prefer-offline --no-install --cwd $out ./src/app.ts"
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/leona/helix-gpt";
changelog = "https://github.com/leona/helix-gpt/releases/tag/${src.rev}";
description = "Code completion LSP for Helix with support for Copilot + OpenAI";
mainProgram = "helix-gpt";
maintainers = with maintainers; [ happysalada ];
license = with licenses; [ mit ];
platforms = [
"x86_64-linux"
"x86_64-darwin"
"aarch64-darwin"
"aarch64-linux"
];
};
}

View File

@@ -0,0 +1,8 @@
{
"version": "0.34",
"srcHash": "sha256-F2E+B4kKLpX4g/iCv0i71hSx4xdV6fdkwksslELdZUQ=",
"x86_64-linux": "sha256-V/h1tAoKo4fLlR/QmzZb7LpeIab2lmE792rQpWDdMXw=",
"x86_64-darwin": "sha256-Pd/nC15uYjwZPvrIfcQRljAuGQiIBDAKSShB1C+eevY=",
"aarch64-darwin": "sha256-Pd/nC15uYjwZPvrIfcQRljAuGQiIBDAKSShB1C+eevY=",
"aarch64-linux": "sha256-V/h1tAoKo4fLlR/QmzZb7LpeIab2lmE792rQpWDdMXw="
}

View File

@@ -0,0 +1,67 @@
{
fetchzip,
lib,
rustPlatform,
git,
installShellFiles,
versionCheckHook,
nix-update-script,
}:
rustPlatform.buildRustPackage (final: {
pname = "helix";
version = "25.07.1";
# This release tarball includes source code for the tree-sitter grammars,
# which is not ordinarily part of the repository.
src = fetchzip {
url = "https://github.com/helix-editor/helix/releases/download/${final.version}/helix-${final.version}-source.tar.xz";
hash = "sha256-Pj/lfcQXRWqBOTTWt6+Gk61F9F1UmeCYr+26hGdG974=";
stripRoot = false;
};
cargoHash = "sha256-Mf0nrgMk1MlZkSyUN6mlM5lmTcrOHn3xBNzmVGtApEU=";
nativeBuildInputs = [
git
installShellFiles
];
env.HELIX_DEFAULT_RUNTIME = "${placeholder "out"}/lib/runtime";
postInstall = ''
# not needed at runtime
rm -r runtime/grammars/sources
mkdir -p $out/lib
cp -r runtime $out/lib
installShellCompletion contrib/completion/hx.{bash,fish,zsh}
mkdir -p $out/share/{applications,icons/hicolor/256x256/apps}
cp contrib/Helix.desktop $out/share/applications
cp contrib/helix.png $out/share/icons/hicolor/256x256/apps
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgram = "${placeholder "out"}/bin/hx";
versionCheckProgramArg = "--version";
doInstallCheck = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Post-modern modal text editor";
homepage = "https://helix-editor.com";
changelog = "https://github.com/helix-editor/helix/blob/${final.version}/CHANGELOG.md";
license = lib.licenses.mpl20;
mainProgram = "hx";
maintainers = with lib.maintainers; [
danth
yusdacra
zowoq
];
};
})

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
python3,
makeWrapper,
}:
stdenv.mkDerivation {
pname = "hellmaker";
version = "0-unstable-2023-03-18";
src = fetchFromGitHub {
owner = "0xNinjaCyclone";
repo = "hellMaker";
rev = "2e9efe2aed9412f67a8606544392a2df10d3a2d0";
hash = "sha256-zbtzlYGCLW/lt7GJvMHao/MZhdghNBQCQsjUImL1RC4=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,share/hellmaker}
cp -R * $out/share/hellmaker
makeWrapper ${python3.interpreter} $out/bin/hellmaker \
--set PYTHONPATH "$PYTHONPATH:$out/share/hellmaker/hellMaker.py" \
--add-flags "$out/share/hellmaker/hellMaker.py"
runHook postInstall
'';
meta = {
description = "Generate FUD backdoors";
homepage = "https://github.com/0xNinjaCyclone/hellMaker";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ tochiaha ];
mainProgram = "hellmaker";
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,21 @@
{
cmake,
lib,
ninja,
stdenv,
}:
stdenv.mkDerivation {
name = "hello-cpp";
src = ./src;
nativeBuildInputs = [
cmake
ninja
];
meta = {
description = "Basic sanity check that C++ and cmake infrastructure are working";
platforms = lib.platforms.all;
maintainers = stdenv.meta.maintainers or [ ];
mainProgram = "hello-cpp";
};
}

View File

@@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.10)
project(hello-cpp)
add_executable(hello-cpp main.cpp)
install(TARGETS hello-cpp)

View File

@@ -0,0 +1,6 @@
#include <iostream>
int main(int argc, char *argv[]) {
std::cout << "Hello, C++\n";
return 0;
}

View File

@@ -0,0 +1,46 @@
{
lib,
buildGoModule,
}:
buildGoModule {
name = "hello-go";
src = ./src;
vendorHash = null;
env.CGO_ENABLED = 0;
# go installs binary into $out/bin/$GOOS_$GOARCH/hello-go in cross compilation
postInstall = ''
[[ -f "$out/bin/hello-go" ]] || ln -s ./''${GOOS}_''${GOARCH}/hello-go $out/bin/hello-go
'';
meta = {
description = "Simple program printing hello world in Go";
longDescription = ''
hello-go is a simple program printing "Hello, world!" written in Go,
aiming at testing programs that involves analyzing executables or
emulating foreign architectures, without pulling in a heavy cross
toolchain.
Specify target platform by setting GOOS and GOARCH:
```nix
hello-go.overrideAttrs (previousAttrs: {
env = previousAttrs.env or { } // {
GOOS = "linux";
GOARCH = "arm64";
};
})
```
See https://pkg.go.dev/internal/platform#pkg-variables for a list
of available platforms.
'';
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ aleksana ];
mainProgram = "hello-go";
};
}

View File

@@ -0,0 +1,3 @@
module hello-go
go 1.22.7

View File

@@ -0,0 +1,7 @@
package main
import "fmt"
func main() {
fmt.Println("Hello, world!")
}

View File

@@ -0,0 +1,28 @@
{
lib,
stdenv,
runtimeShell,
}:
stdenv.mkDerivation {
pname = "example-unfree-package";
version = "1.0";
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin
cat > $out/bin/hello-unfree << EOF
#!${runtimeShell}
echo "Hello, you are running an unfree system!"
EOF
chmod +x $out/bin/hello-unfree
'';
meta = {
description = "Example package with unfree license (for testing)";
license = lib.licenses.unfree;
maintainers = [ lib.maintainers.oxij ];
mainProgram = "hello-unfree";
};
}

View File

@@ -0,0 +1,53 @@
{
stdenv,
lib,
fetchFromGitHub,
imagemagick,
pkg-config,
wayland-scanner,
wayland,
wayland-protocols,
unstableGitUpdater,
}:
stdenv.mkDerivation {
pname = "hello-wayland";
version = "0-unstable-2024-03-04";
src = fetchFromGitHub {
owner = "emersion";
repo = "hello-wayland";
rev = "5f3a35def81116f0a74fcaf5a421d66c6700482d";
hash = "sha256-gcLR8gosQlPPgFrxqmRQ6/59RjAfJNX6CcsYP+L+A58=";
};
separateDebugInfo = true;
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [
imagemagick
pkg-config
wayland-scanner
];
buildInputs = [
wayland
wayland-protocols
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
install hello-wayland $out/bin
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = with lib; {
description = "Hello world Wayland client";
homepage = "https://github.com/emersion/hello-wayland";
maintainers = with maintainers; [ qyliss ];
license = licenses.mit;
platforms = platforms.linux;
mainProgram = "hello-wayland";
};
}

View File

@@ -0,0 +1,60 @@
{
callPackage,
lib,
stdenv,
fetchurl,
nixos,
testers,
versionCheckHook,
hello,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hello";
version = "2.12.2";
src = fetchurl {
url = "mirror://gnu/hello/hello-${finalAttrs.version}.tar.gz";
hash = "sha256-WpqZbcKSzCTc9BHO6H6S9qrluNE72caBm0x6nc4IGKs=";
};
# The GNU Hello `configure` script detects how to link libiconv but fails to actually make use of that.
# Unfortunately, this cannot be a patch to `Makefile.am` because `autoreconfHook` causes a gettext
# infrastructure mismatch error when trying to build `hello`.
env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
NIX_LDFLAGS = "-liconv";
};
doCheck = true;
doInstallCheck = true;
nativeInstallCheckInputs = [
versionCheckHook
];
# Give hello some install checks for testing purpose.
postInstallCheck = ''
stat "''${!outputBin}/bin/${finalAttrs.meta.mainProgram}"
'';
passthru.tests = {
version = testers.testVersion { package = hello; };
};
passthru.tests.run = callPackage ./test.nix { hello = finalAttrs.finalPackage; };
meta = {
description = "Program that produces a familiar, friendly greeting";
longDescription = ''
GNU Hello is a program that prints "Hello, world!" when you run it.
It is fully customizable.
'';
homepage = "https://www.gnu.org/software/hello/manual/";
changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${finalAttrs.version}";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ stv0g ];
mainProgram = "hello";
platforms = lib.platforms.all;
identifiers.cpeParts.vendor = "gnu";
};
})

View File

@@ -0,0 +1,10 @@
{ runCommand, hello }:
runCommand "hello-test-run"
{
nativeBuildInputs = [ hello ];
}
''
diff -U3 --color=auto <(hello) <(echo 'Hello, world!')
touch $out
''

View File

@@ -0,0 +1,33 @@
{
stdenv,
lib,
fetchFromGitHub,
makeWrapper,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hellwal";
version = "1.0.7";
src = fetchFromGitHub {
owner = "danihek";
repo = "hellwal";
tag = "v${finalAttrs.version}";
hash = "sha256-1oF+v3sEHf8DT7yLiWRYDppNx1LpiCNrm0IQ2IWIBLU=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
install -Dm755 hellwal -t $out/bin
mkdir -p $out/share/docs/hellwal
cp -r templates themes $out/share/docs/hellwal
'';
meta = {
homepage = "https://github.com/danihek/hellwal";
description = "Fast, extensible color palette generator";
longDescription = ''
Pywal-like color palette generator, but faster and in C.
'';
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ danihek ];
mainProgram = "hellwal";
};
})

View File

@@ -0,0 +1,40 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "helm-dashboard";
version = "1.3.3";
src = fetchFromGitHub {
owner = "komodorio";
repo = "helm-dashboard";
rev = "v${version}";
sha256 = "sha256-hjIo2AEXNcFK0z4op59NnC2R8GspF5t808DZ72AxgMw=";
};
vendorHash = "sha256-ROffm1SGYnhUcp46nzQ951eaeQdO1pb+f8AInm0eSq0=";
# tests require internet access
doCheck = false;
ldflags = [
"-s"
"-w"
"-X main.version=v${version}"
];
meta = {
description = "Simplified way of working with Helm";
mainProgram = "helm-dashboard";
longDescription = ''
Helm Dashboard is an open-source project which offers a UI-driven way to view the installed Helm charts,
see their revision history and corresponding k8s resources.
'';
homepage = "https://github.com/komodorio/helm-dashboard/";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ qjoly ];
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "helm-docs";
version = "1.14.2";
src = fetchFromGitHub {
owner = "norwoodj";
repo = "helm-docs";
rev = "v${version}";
hash = "sha256-a7alzjh+vjJPw/g9yaYkOUvwpgiqCrtKTBkV1EuGYtk=";
};
vendorHash = "sha256-9VSjxnc804A+PTMy0ZoNWNkHAjh3/kMK0XoEfI/LgEY=";
subPackages = [ "cmd/helm-docs" ];
ldflags = [
"-w"
"-s"
"-X main.version=${version}"
];
meta = with lib; {
homepage = "https://github.com/norwoodj/helm-docs";
description = "Tool for automatically generating markdown documentation for Helm charts";
mainProgram = "helm-docs";
license = licenses.gpl3Only;
maintainers = with maintainers; [ sagikazarmark ];
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
testers,
helm-ls,
}:
buildGoModule rec {
pname = "helm-ls";
version = "0.4.1";
src = fetchFromGitHub {
owner = "mrjosh";
repo = "helm-ls";
rev = "v${version}";
hash = "sha256-z+gSD7kcDxgJPoYQ7HjokJONjgAAuIIkg1VGyV3v01k=";
};
vendorHash = "sha256-w/BWPbpSYum0SU8PJj76XiLUjTWO4zNQY+khuLRK0O8=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X main.Version=${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
mv $out/bin/helm-ls $out/bin/helm_ls
installShellCompletion --cmd helm_ls \
--bash <($out/bin/helm_ls completion bash) \
--fish <($out/bin/helm_ls completion fish) \
--zsh <($out/bin/helm_ls completion zsh)
'';
passthru.tests.version = testers.testVersion {
package = helm-ls;
command = "helm_ls version";
};
meta = {
description = "Language server for Helm";
changelog = "https://github.com/mrjosh/helm-ls/releases/tag/v${version}";
homepage = "https://github.com/mrjosh/helm-ls";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ stehessel ];
mainProgram = "helm_ls";
};
}

View File

@@ -0,0 +1,97 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
xorg,
freetype,
alsa-lib,
curl,
libjack2,
lv2,
pkg-config,
libGLU,
libGL,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "helm";
version = "0.9.0";
src = fetchFromGitHub {
owner = "mtytel";
repo = "helm";
tag = "v${finalAttrs.version}";
hash = "sha256-pI1umrJGMRBB3ifiWrInG7/Rwn+8j9f8iKkzC/cW2p8=";
};
buildInputs = [
xorg.libX11
xorg.libXcomposite
xorg.libXcursor
xorg.libXext
xorg.libXinerama
xorg.libXrender
xorg.libXrandr
freetype
alsa-lib
curl
libjack2
libGLU
libGL
lv2
];
nativeBuildInputs = [ pkg-config ];
CXXFLAGS = [
"-DHAVE_LROUND"
"-fpermissive"
];
enableParallelBuilding = true;
makeFlags = [ "DESTDIR=${placeholder "out"}" ];
patches = [
# gcc9 compatibility https://github.com/mtytel/helm/pull/233
(fetchpatch {
url = "https://github.com/mtytel/helm/commit/cb611a80bd5a36d31bfc31212ebbf79aa86c6f08.patch";
hash = "sha256-s0eiE5RziZGdInSUOYWR7duvQnFmqf8HO+E7lnVCQsQ=";
})
];
postPatch = ''
substituteInPlace Makefile \
--replace-fail "usr/" ""
substituteInPlace src/common/load_save.cpp \
--replace-fail "/usr/share/" "$out/share/"
'';
meta = {
homepage = "https://tytel.org/helm";
description = "Free, cross-platform, polyphonic synthesizer";
longDescription = ''
A free, cross-platform, polyphonic synthesizer.
Features:
32 voice polyphony
Interactive visual interface
Powerful modulation system with live visual feedback
Dual oscillators with cross modulation and up to 15 oscillators each
Unison and Harmony mode for oscillators
Oscillator feedback and saturation for waveshaping
12 different waveforms
7 filter types with keytracking
2 monophonic and 1 polyphonic LFO
Step sequencer
Lots of modulation sources including polyphonic aftertouch
Simple arpeggiator
Effects: Formant filter, stutter, delay
'';
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [
magnetophon
bot-wxt1221
];
platforms = lib.platforms.linux;
mainProgram = "helm";
};
})

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
installShellFiles,
makeWrapper,
pluginsDir ? null,
}:
buildGoModule rec {
pname = "helmfile";
version = "1.1.7";
src = fetchFromGitHub {
owner = "helmfile";
repo = "helmfile";
rev = "v${version}";
hash = "sha256-DOLlibBuwzP31ZMakcuaeG/fdMDOXqgd8PKts4/gFVo=";
};
vendorHash = "sha256-l7KQ67Rx2lsaUkpTHBJM6PRqqTdbwkkaeOhsUxj1MMI=";
proxyVendor = true; # darwin/linux hash mismatch
doCheck = false;
subPackages = [ "." ];
ldflags = [
"-s"
"-w"
"-X go.szostok.io/version.version=v${version}"
];
nativeBuildInputs = [ installShellFiles ] ++ lib.optional (pluginsDir != null) makeWrapper;
postInstall =
lib.optionalString (pluginsDir != null) ''
wrapProgram $out/bin/helmfile \
--set HELM_PLUGINS "${pluginsDir}"
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd helmfile \
--bash <($out/bin/helmfile completion bash) \
--fish <($out/bin/helmfile completion fish) \
--zsh <($out/bin/helmfile completion zsh)
'';
meta = {
description = "Declarative spec for deploying Helm charts";
mainProgram = "helmfile";
longDescription = ''
Declaratively deploy your Kubernetes manifests, Kustomize configs,
and charts as Helm releases in one shot.
'';
homepage = "https://helmfile.readthedocs.io/";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
pneumaticat
yurrriq
];
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
unzip,
puredata,
}:
stdenv.mkDerivation {
name = "helmholtz";
src = fetchurl {
url = "https://www.katjaas.nl/helmholtz/helmholtz~.zip";
name = "helmholtz.zip";
curlOpts = "--user-agent ''";
sha256 = "0h1fj7lmvq9j6rmw33rb8k0byxb898bi2xhcwkqalb84avhywgvs";
};
nativeBuildInputs = [ unzip ];
buildInputs = [ puredata ];
unpackPhase = ''
unzip $src
mv helmholtz~/src/helmholtz\~.cpp .
mv helmholtz~/src/Helmholtz.cpp .
mv helmholtz~/src/include/ .
mv helmholtz~/src/Makefile .
rm -rf helmholtz~/src/
rm helmholtz~/helmholtz~.pd_darwin
rm helmholtz~/helmholtz~.pd_linux
rm helmholtz~/helmholtz~.dll
rm -rf __MACOSX
'';
patchPhase = ''
mkdir -p $out/helmholtz~
sed -i "s@current: pd_darwin@current: pd_linux@g" Makefile
sed -i "s@-Wl@@g" Makefile
sed -i "s@\$(NAME).pd_linux \.\./\$(NAME).pd_linux@helmholtz~.pd_linux $out/helmholtz~/@g" Makefile
'';
installPhase = ''
cp -r helmholtz~/ $out/
'';
meta = {
broken = (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
description = "Time domain pitch tracker for Pure Data";
homepage = "http://www.katjaas.nl/helmholtz/helmholtz.html";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "helmsman";
version = "4.0.1";
src = fetchFromGitHub {
owner = "mkubaczyk";
repo = "helmsman";
rev = "v${finalAttrs.version}";
sha256 = "sha256-As0YjqMdPCgIzYWB1Wf3R11mwj6CglWZdvCRzlHDvkw=";
};
subPackages = [ "cmd/helmsman" ];
vendorHash = "sha256-A5wFoOvBbjBv4F5Ul91GF9/l+8QXh9Xmmvhk5qNmems=";
doCheck = false;
meta = with lib; {
description = "Helm Charts (k8s applications) as Code tool";
mainProgram = "helmsman";
homepage = "https://github.com/Praqma/helmsman";
license = licenses.mit;
maintainers = with maintainers; [
lynty
sarcasticadmin
];
};
})

View File

@@ -0,0 +1,165 @@
LD_PRELOAD by itself only works with Cygwin builtin functions, but
textdomain() and friends come from libintl. In order to override
those functions, we have to "replace" cygintl-?.dll since functions are
bound to a DLL name at link time. Our replacement will be used since
it is loaded first by LD_PRELOAD.
But as we are making this *the* libintl, we need to provide
pass-throughs for the other functions which we're not overriding,
otherwise Locale::gettext won't load (not to mention the program
that we're trying to help2man).
--- help2man-1.46.5/Makefile.in 2014-10-09 13:03:01.000000000 +0200
+++ help2man-1.46.5/Makefile.in 2015-05-12 14:46:52.995521900 +0200
@@ -76,7 +76,8 @@
fi
install_preload: install_dirs preload
- $(INSTALL_PROGRAM) $(preload).so $(DESTDIR)$(pkglibdir)
+ $(INSTALL_PROGRAM) lib/cygintl-9.dll $(DESTDIR)$(pkglibdir)
+ ln -sf cygintl-9.dll $(DESTDIR)$(pkglibdir)/$(preload).so
install_l10n: install_dirs msg_l10n man_l10n info_l10n
set -e; \
@@ -144,7 +146,9 @@
preload: $(preload).so
$(preload).so: $(srcdir)/$(preload).c
- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -fPIC -shared $? $(LIBS)
+ mkdir -p lib
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o lib/cygintl-9.dll -shared $? $(LIBS)
+ ln -sf lib/cygintl-9.dll $@
man: $(target).1
$(target).1: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL
--- help2man-1.46.5/bindtextdomain.c 2009-11-13 00:01:34.000000000 -0600
+++ help2man-1.46.5/bindtextdomain.c 2011-12-29 00:24:33.608078600 -0600
@@ -27,12 +27,34 @@ static char *(*r_textdomain)(char const
static char *(*r_bindtextdomain)(char const *, char const *) = 0;
static char *(*r_bind_textdomain_codeset)(char const *, char const *) = 0;
+#ifdef __CYGWIN__
+static void *RTLD_NEXT = 0;
+static char *(*r_gettext)(const char *) = 0;
+static char *(*r_dgettext)(const char *, const char *) = 0;
+static char *(*r_dcgettext)(const char *, const char *, int) = 0;
+static char *(*r_ngettext)(const char *, const char *, unsigned long int) = 0;
+static char *(*r_dngettext)(const char *, const char *, const char *,
+ unsigned long int) = 0;
+static char *(*r_dcngettext)(const char *, const char *, const char *,
+ unsigned long int, int) = 0;
+static char *(*r_setlocale)(int, const char *) = 0;
+
+#define SYM(sym) libintl_ ## sym
+#else
+#define SYM(sym) sym
+#endif
+
void setup()
{
static int done = 0;
if (done++)
return;
+#ifdef __CYGWIN__
+ if (!(RTLD_NEXT = dlopen("/usr/bin/cygintl-9.dll", RTLD_LAZY)))
+ die("libintl8 not found");
+#endif
+
if (!(e_textdomain = getenv("TEXTDOMAIN")))
die("TEXTDOMAIN not set");
@@ -48,9 +70,19 @@ void setup()
if (!(r_bind_textdomain_codeset = dlsym(RTLD_NEXT,
"bind_textdomain_codeset")))
die("can't find symbol \"bind_textdomain_codeset\"");
+
+#ifdef __CYGWIN__
+ r_gettext = dlsym(RTLD_NEXT, "libintl_gettext");
+ r_dgettext = dlsym(RTLD_NEXT, "libintl_dgettext");
+ r_dcgettext = dlsym(RTLD_NEXT, "libintl_dcgettext");
+ r_ngettext = dlsym(RTLD_NEXT, "libintl_ngettext");
+ r_dngettext = dlsym(RTLD_NEXT, "libintl_dngettext");
+ r_dcngettext = dlsym(RTLD_NEXT, "libintl_dcngettext");
+ r_setlocale = dlsym(RTLD_NEXT, "libintl_setlocale");
+#endif
}
-char *textdomain(char const *domainname)
+char *SYM(textdomain)(char const *domainname)
{
char *r;
setup();
@@ -61,7 +93,7 @@ char *textdomain(char const *domainname)
return r;
}
-char *bindtextdomain(char const *domainname, char const *dirname)
+char *SYM(bindtextdomain)(char const *domainname, char const *dirname)
{
char const *dir = dirname;
setup();
@@ -71,7 +103,7 @@ char *bindtextdomain(char const *domainn
return r_bindtextdomain(domainname, dir);
}
-char *bind_textdomain_codeset(char const *domainname, char const *codeset)
+char *SYM(bind_textdomain_codeset)(char const *domainname, char const *codeset)
{
char *r;
setup();
@@ -81,3 +113,54 @@ char *bind_textdomain_codeset(char const
return r;
}
+
+#ifdef __CYGWIN__
+
+char *libintl_gettext(const char *msgid)
+{
+ setup();
+ return r_gettext(msgid);
+}
+
+char *libintl_dgettext (const char *domainname, const char *msgid)
+{
+ setup();
+ return r_dgettext(domainname, msgid);
+}
+
+char *libintl_dcgettext (const char *domainname, const char *msgid,
+ int category)
+{
+ setup();
+ return r_dcgettext (domainname, msgid, category);
+}
+
+char *libintl_ngettext (const char *msgid1, const char *msgid2,
+ unsigned long int n)
+{
+ setup();
+ return r_ngettext (msgid1, msgid2, n);
+}
+
+char *libintl_dngettext (const char *domainname, const char *msgid1,
+ const char *msgid2, unsigned long int n)
+{
+ setup();
+ return r_dngettext (domainname, msgid1, msgid2, n);
+}
+
+char *libintl_dcngettext (const char *domainname,
+ const char *msgid1, const char *msgid2,
+ unsigned long int n, int category)
+{
+ setup();
+ return r_dcngettext (domainname, msgid1, msgid2, n, category);
+}
+
+char *libintl_setlocale (int i, const char *s)
+{
+ setup();
+ return r_setlocale (i, s);
+}
+
+#endif

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchurl,
perlPackages,
gettext,
libintl,
}:
# Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as
# files.
stdenv.mkDerivation rec {
pname = "help2man";
version = "1.49.3";
src = fetchurl {
url = "mirror://gnu/help2man/help2man-${version}.tar.xz";
sha256 = "sha256-TX5P3vLspq/geiaCFRzqeHgeCk6PliIULZ9wwIOi/U8=";
};
strictDeps = true;
enableParallelBuilding = true;
nativeBuildInputs = [
gettext
perlPackages.perl
perlPackages.LocaleGettext
];
buildInputs = [
perlPackages.LocaleGettext
libintl
];
configureFlags = [
"--enable-nls"
];
doCheck = false; # target `check' is missing
patches = lib.optional stdenv.hostPlatform.isCygwin ./1.40.4-cygwin-nls.patch;
# We don't use makeWrapper here because it uses substitutions our
# bootstrap shell can't handle.
postInstall = ''
mv $out/bin/help2man $out/bin/.help2man-wrapped
cat > $out/bin/help2man <<EOF
#! $SHELL -e
export PERL5LIB=\''${PERL5LIB:+:}${perlPackages.LocaleGettext}/${perlPackages.perl.libPrefix}
${lib.optionalString stdenv.hostPlatform.isCygwin ''export PATH=\''${PATH:+:}${gettext}/bin''}
exec -a \$0 $out/bin/.help2man-wrapped "\$@"
EOF
chmod +x $out/bin/help2man
'';
meta = with lib; {
description = "Generate man pages from `--help' output";
mainProgram = "help2man";
longDescription = ''
help2man produces simple manual pages from the --help and --version output of other commands.
'';
homepage = "https://www.gnu.org/software/help2man/";
license = licenses.gpl3Plus;
platforms = platforms.all;
maintainers = with maintainers; [ pSub ];
};
}

View File

@@ -0,0 +1,43 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation {
name = "helvetica-neue-lt-std";
version = "2014.08.16"; # date of most recent file in distribution
src = fetchzip {
url = "https://web.archive.org/web/20190823153624/http://ephifonts.com/downloads/helvetica-neue-lt-std.zip";
stripRoot = false;
hash = "sha256-ytoTTrnwN1lMw/gTxS4DRAq+tV5WzB2xHP4vVxLZ1ZI=";
};
installPhase = ''
runHook preInstall
install -Dm644 'Helvetica Neue LT Std'/*.otf -t $out/share/fonts/opentype
runHook postInstall
'';
meta = with lib; {
homepage = "https://web.archive.org/web/20190926040940/http://www.ephifonts.com/free-helvetica-font-helvetica-neue-lt-std.html";
description = "Helvetica Neue LT Std font";
longDescription = ''
Helvetica Neue Lt Std is one of the most highly rated and complete
fonts of all time. Developed in early 1983, this font has well
camouflaged heights and weights. The structure of the word is uniform
throughout all the characters.
The legibility with Helvetica Neue LT Std is said to have improved as
opposed to other fonts. The tail of it is much longer in this
font. The numbers are well spaced and defined with high accuracy. The
punctuation marks are heavily detailed as well.
'';
license = licenses.unfree;
platforms = platforms.all;
maintainers = with maintainers; [ romildo ];
};
}

View File

@@ -0,0 +1,63 @@
{
lib,
cargo,
desktop-file-utils,
fetchFromGitLab,
glib,
gtk4,
libadwaita,
meson,
ninja,
pipewire,
pkg-config,
rustPlatform,
rustc,
stdenv,
wrapGAppsHook4,
}:
stdenv.mkDerivation rec {
pname = "helvum";
version = "0.5.1";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "pipewire";
repo = "helvum";
rev = version;
hash = "sha256-9vlzLPpyZ9qtCEbCDvYhWDcV+8T63ukdos1l2U6fD+E=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-rwhhbEaUg7IiszmJUFh4vQV7cYyyh3tqr1z4QgmwIDY=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
cargo
rustc
rustPlatform.bindgenHook
wrapGAppsHook4
];
buildInputs = [
desktop-file-utils
glib
gtk4
libadwaita
pipewire
];
meta = with lib; {
description = "GTK patchbay for pipewire";
homepage = "https://gitlab.freedesktop.org/pipewire/helvum";
license = licenses.gpl3Only;
maintainers = with maintainers; [ fufexan ];
platforms = platforms.linux;
mainProgram = "helvum";
};
}

View File

@@ -0,0 +1,67 @@
{
lib,
stdenvNoCC,
fetchzip,
jdk_headless,
makeWrapper,
buildPackages,
javaOpts ? "-XX:+UseZGC",
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "hentai-at-home";
version = "1.6.4";
src = fetchzip {
url = "https://repo.e-hentai.org/hath/HentaiAtHome_${finalAttrs.version}_src.zip";
hash = "sha512-dcHWZiU0ySLlEhZeK1n2T/dyO6Wk9eS7CpZRSfzY3KvHrPBthQnaFrarSopPXJan1+zWROu1pEff1WSr5+HO4Q==";
stripRoot = false;
};
nativeBuildInputs = [
jdk_headless
makeWrapper
];
LANG = "en_US.UTF-8";
LOCALE_ARCHIVE = lib.optionalString (
stdenvNoCC.buildPlatform.libc == "glibc"
) "${buildPackages.glibcLocales}/lib/locale/locale-archive";
makeFlags = [ "all" ];
enableParallelBuilding = false;
installPhase = ''
runHook preInstall
mkdir -p $out/share/java
cp build/HentaiAtHome.jar $out/share/java
mkdir -p $out/bin
makeWrapper ${jdk_headless}/bin/java $out/bin/HentaiAtHome \
--add-flags "${javaOpts} -jar $out/share/java/HentaiAtHome.jar"
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
runHook preInstallCheck
pushd $(mktemp -d)
$out/bin/HentaiAtHome
popd
runHook postInstallCheck
'';
strictDeps = true;
meta = with lib; {
homepage = "https://ehwiki.org/wiki/Hentai@Home";
description = "Open-source P2P gallery distribution system which reduces the load on the E-Hentai Galleries";
license = licenses.gpl3;
maintainers = with maintainers; [ terrorjack ];
mainProgram = "HentaiAtHome";
platforms = jdk_headless.meta.platforms;
};
})

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchurl,
cmake,
}:
stdenv.mkDerivation rec {
pname = "hepmc";
version = "2.06.11";
src = fetchurl {
url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC-${version}.tar.gz";
sha256 = "1pp89bs05nv60wjk1690ndwh4dsd5mk20bzsd4a2lklysdifvb6f";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = [
"-Dmomentum:STRING=GEV"
"-Dlength:STRING=MM"
];
meta = with lib; {
description = "HepMC package is an object oriented event record written in C++ for High Energy Physics Monte Carlo Generators";
license = licenses.lgpl21;
homepage = "http://hepmc.web.cern.ch/hepmc/";
platforms = platforms.unix;
maintainers = with maintainers; [ veprbl ];
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
appimageTools,
fetchurl,
}:
let
pname = "heptabase";
version = "1.74.3";
src = fetchurl {
url = "https://github.com/heptameta/project-meta/releases/download/v${version}/Heptabase-${version}.AppImage";
hash = "sha256-PzWQmDNji3dl24U9yIKelW7ge9w4rosgjj55RbCHI/Q=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -Dm444 ${appimageContents}/project-meta.desktop -T $out/share/applications/heptabase.desktop
install -m 444 -D ${appimageContents}/usr/share/icons/hicolor/0x0/apps/project-meta.png $out/share/icons/hicolor/512x512/apps/${pname}.png
substituteInPlace $out/share/applications/heptabase.desktop \
--replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=heptabase %U' \
--replace-fail 'Icon=project-meta' 'Icon=${pname}'
'';
meta = {
changelog = "https://github.com/heptameta/project-meta/releases/tag/v${version}";
description = "Visual note-taking tool for learning complex topics";
homepage = "https://heptabase.com/";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
mainProgram = "heptabase";
platforms = [ "x86_64-linux" ];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitLab,
makeWrapper,
ocamlPackages,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "heptagon";
version = "1.05.00";
src = fetchFromGitLab {
domain = "gitlab.inria.fr";
owner = "synchrone";
repo = "heptagon";
rev = "v${finalAttrs.version}";
hash = "sha256-b4O48MQT3Neh8a1Z5wRgS701w6XrwpsbSMprlqTT+CE=";
};
patches = [
(fetchpatch {
url = "https://gitlab.inria.fr/synchrone/heptagon/-/commit/f10405e385ca25dc737727e0c210a44986929bf0.patch";
hash = "sha256-Sn55jEoRDYnEUg4SjuBDCNN4TNl2Dwn1fTjb9O8O1bo=";
})
];
strictDeps = true;
nativeBuildInputs = with ocamlPackages; [
camlp4
findlib
makeWrapper
menhir
ocaml
ocamlbuild
];
buildInputs = with ocamlPackages; [
camlp4
lablgtk
menhirLib
ocamlgraph
];
# the heptagon library in lib/heptagon is not executable
postInstall = ''
find $out/lib/heptagon -type f -exec chmod -x {} \;
'';
postFixup = with ocamlPackages; ''
wrapProgram $out/bin/hepts \
--prefix CAML_LD_LIBRARY_PATH : "${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2"
'';
meta = with lib; {
description = "Compiler for the Heptagon/BZR synchronous programming language";
homepage = "https://gitlab.inria.fr/synchrone/heptagon";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ wegank ];
mainProgram = "heptc";
platforms = platforms.unix;
};
})

View File

@@ -0,0 +1,47 @@
{
stdenv,
lib,
fetchFromGitHub,
libX11,
libXft,
freetype,
patches ? [ ],
extraLibs ? [ ],
}:
stdenv.mkDerivation rec {
pname = "herbe";
version = "1.0.0";
src = fetchFromGitHub {
owner = "dudik";
repo = "herbe";
rev = version;
sha256 = "0358i5jmmlsvy2j85ij7m1k4ar2jr5lsv7y1c58dlf9710h186cv";
};
inherit patches;
postPatch = ''
sed -i 's_/usr/include/freetype2_${freetype.dev}/include/freetype2_' Makefile
'';
buildInputs = [
libX11
libXft
freetype
]
++ extraLibs;
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Daemon-less notifications without D-Bus";
homepage = "https://github.com/dudik/herbe";
license = licenses.mit;
# NOTE: Could also work on 'unix'.
platforms = platforms.linux;
maintainers = with maintainers; [ wishfort36 ];
mainProgram = "herbe";
};
}

View File

@@ -0,0 +1,137 @@
{
lib,
stdenv,
fetchurl,
cmake,
pkg-config,
python3,
libX11,
libXext,
libXinerama,
libXrandr,
libXft,
libXrender,
libXdmcp,
libXfixes,
freetype,
asciidoc,
xdotool,
xorgserver,
xsetroot,
xterm,
runtimeShell,
fetchpatch,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "herbstluftwm";
version = "0.9.5";
src = fetchurl {
url = "https://herbstluftwm.org/tarballs/herbstluftwm-${version}.tar.gz";
sha256 = "sha256-stRgCQnlvs5a1jgY37MLsZ/SrJ9ShHsaenStQEBxgQU=";
};
outputs = [
"out"
"doc"
"man"
];
cmakeFlags = [
"-DCMAKE_INSTALL_SYSCONF_PREFIX=${placeholder "out"}/etc"
];
nativeBuildInputs = [
cmake
pkg-config
];
depsBuildBuild = [
asciidoc
];
buildInputs = [
libX11
libXext
libXinerama
libXrandr
libXft
libXrender
libXdmcp
libXfixes
freetype
];
patches = [
./test-path-environment.patch
# Adjust tests for compatibility with gcc 12 (https://github.com/herbstluftwm/herbstluftwm/issues/1512)
# Can be removed with the next release (>0.9.5).
(fetchpatch {
url = "https://github.com/herbstluftwm/herbstluftwm/commit/8678168c7a3307b1271e94974e062799e745ab40.patch";
hash = "sha256-uI6ErfDitT2Tw0txx4lMSBn/jjiiyL4Qw6AJa/CTh1E=";
})
# Fix tests with recent Xorg, can be removed with the next release (<0.9.5)
# Details here: https://github.com/herbstluftwm/herbstluftwm/issues/1560
(fetchpatch {
url = "https://github.com/herbstluftwm/herbstluftwm/commit/1a6e8ee24eac671569f54bfec22ab47ff285a52c.patch";
hash = "sha256-srulWJQ9zTR4Kdxo40AdHND4nexDe2PDSR69yWsOpVA=";
})
];
postPatch = ''
patchShebangs doc/gendoc.py
# fix /etc/xdg/herbstluftwm paths in documentation and scripts
grep -rlZ /etc/xdg/herbstluftwm share/ doc/ scripts/ | while IFS="" read -r -d "" path; do
substituteInPlace "$path" --replace /etc/xdg/herbstluftwm $out/etc/xdg/herbstluftwm
done
# fix shebang in generated scripts
substituteInPlace tests/conftest.py --replace "/usr/bin/env bash" ${runtimeShell}
substituteInPlace tests/test_herbstluftwm.py --replace "/usr/bin/env bash" ${runtimeShell}
'';
doCheck = true;
nativeCheckInputs = [
(python3.withPackages (
ps: with ps; [
ewmh
pytest
xlib
]
))
xdotool
xorgserver
xsetroot
xterm
python3.pkgs.pytestCheckHook
];
# make the package's module available
preCheck = ''
export PYTHONPATH="$PYTHONPATH:../python"
'';
enabledTestPaths = [ "../tests" ];
disabledTests = [
"test_autostart" # $PATH problems
"test_wmexec_to_other" # timeouts in sandbox
"test_rules" # timeouts
];
passthru = {
tests.herbstluftwm = nixosTests.herbstluftwm;
};
meta = with lib; {
description = "Manual tiling window manager for X";
homepage = "https://herbstluftwm.org/";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = with maintainers; [ thibautmarty ];
};
}

View File

@@ -0,0 +1,10 @@
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -43,6 +43,7 @@
self.next_client_id = 0
self.env = {
'DISPLAY': display,
+ 'PATH': os.environ['PATH']
}
self.env = extend_env_with_whitelist(self.env)
self.hlwm_process = hlwm_process

View File

@@ -0,0 +1,92 @@
{
crun,
git,
gnutar,
gzip,
haskell,
haskellPackages,
lib,
makeBinaryWrapper,
nixos,
openssh,
stdenv,
testers,
}:
let
inherit (haskell.lib.compose) overrideCabal addBuildTools justStaticExecutables;
inherit (lib) makeBinPath;
bundledBins = [
gnutar
gzip
git
openssh
]
++ lib.optional stdenv.hostPlatform.isLinux crun;
pkg =
# justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
overrideCabal (o: {
postInstall = ''
${o.postInstall or ""}
${lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
remove-references-to -t ${haskellPackages.hercules-ci-cnix-expr} $out/bin/hercules-ci-agent
remove-references-to -t ${haskellPackages.hercules-ci-cnix-expr} $out/bin/hercules-ci-agent-worker
''}
mkdir -p $out/libexec
mv $out/bin/hercules-ci-agent $out/libexec
makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${lib.escapeShellArg (makeBinPath bundledBins)}
'';
}) (addBuildTools [ makeBinaryWrapper ] (justStaticExecutables haskellPackages.hercules-ci-agent));
in
pkg.overrideAttrs (
finalAttrs: o: {
meta = o.meta // {
position = toString ./package.nix + ":1";
};
passthru = o.passthru // {
tests = {
version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "hercules-ci-agent --help";
};
}
// lib.optionalAttrs (stdenv.hostPlatform.isLinux) {
# Does not test the package, but evaluation of the related NixOS module.
nixos-simple-config =
(nixos {
boot.loader.grub.enable = false;
fileSystems."/".device = "bogus";
services.hercules-ci-agent.enable = true;
# Dummy value for testing only.
system.stateVersion = lib.trivial.release; # TEST ONLY
}).config.system.build.toplevel;
nixos-many-options-config =
(nixos (
{ pkgs, ... }:
{
boot.loader.grub.enable = false;
fileSystems."/".device = "bogus";
services.hercules-ci-agent = {
enable = true;
package = pkgs.hercules-ci-agent;
settings = {
workDirectory = "/var/tmp/hci";
binaryCachesPath = "/var/keys/binary-caches.json";
labels.foo.bar.baz = "qux";
labels.qux = [
"q"
"u"
];
apiBaseUrl = "https://hci.dev.biz.example.com";
concurrentTasks = 42;
};
};
# Dummy value for testing only.
system.stateVersion = lib.trivial.release; # TEST ONLY
}
)).config.system.build.toplevel;
};
};
}
)

View File

@@ -0,0 +1,161 @@
{
lib,
stdenv,
fetchFromGitHub,
runCommand,
libtool,
cmake,
zlib,
bzip2,
enableRexx ? stdenv.hostPlatform.isLinux,
regina,
}:
let
herculesCpu = if stdenv.hostPlatform.isx86 then "x86" else stdenv.hostPlatform.qemuArch;
herculesBits = if stdenv.hostPlatform.is32bit then "32" else "64";
herculesLibDir = if stdenv.hostPlatform.isx86 then "lib" else "lib/${herculesCpu}";
mkExtPkg =
depName: attrFn:
(stdenv.mkDerivation {
pname = "hercules-${depName}";
postPatch = ''
patchShebangs build
sed -i build \
-e "s%_tool=.*$%_tool=${cmake}/bin/cmake%" \
-e "s/CPUS=.*$/CPUS=$NIX_BUILD_CORES/"
'';
dontUseCmakeConfigure = true;
buildPhase = ''
mkdir ../build $out
# In source builds are not allowed.
cd ../build
../source/build \
--pkgname ${depName} \
--cpu ${herculesCpu} \
--arch ${herculesBits} \
--install "$out"
'';
nativeBuildInputs = [ cmake ];
enableParallelBuilding = true;
meta = with lib; {
description = "Hercules ${depName} library";
license = lib.licenses.free; # Mixture of Public Domain, ICU (MIT compatible) and others
maintainers = with maintainers; [
anna328p
vifino
];
};
}).overrideAttrs
(default: attrFn default);
crypto = mkExtPkg "crypto" (default: {
version = "1.0.0";
src = fetchFromGitHub {
owner = "SDL-Hercules-390";
repo = "crypto";
rev = "9ac58405c2b91fb7cd230aed474dc7059f0fcad9";
hash = "sha256-hWNowhKP26+HMIL4facOCrZAJ1bR0rRTRc+2R9AM2cc=";
};
});
decNumber = mkExtPkg "decNumber" (default: {
version = "3.68.0";
src = fetchFromGitHub {
owner = "SDL-Hercules-390";
repo = "decNumber";
rev = "995184583107625015bb450228a5f3fb781d9502";
hash = "sha256-3PAJ+HZasf3fr6F1cmqIk+Jjv3Gzkki7AFrAHBaEATo=";
};
});
softFloat = mkExtPkg "SoftFloat" (default: {
version = "3.5.0";
src = fetchFromGitHub {
owner = "SDL-Hercules-390";
repo = "SoftFloat";
rev = "e053494d988ec0648c92f683abce52597bfae745";
hash = "sha256-1UCRYzf24U3zniKnatPvYKSmTEsx3YCrtv1tBR5lvw8=";
};
});
telnet = mkExtPkg "telnet" (default: {
version = "1.0.0";
src = fetchFromGitHub {
owner = "SDL-Hercules-390";
repo = "telnet";
rev = "384b2542dfc9af67ca078e2bc13487a8fc234a3f";
hash = "sha256-dPgLK7nsRZsqY4fVMdlcSHKC2xkGdNmayyK2FW5CNiI=";
};
});
extpkgs = runCommand "hercules-extpkgs" { } ''
OUTINC="$out/include"
OUTLIB="$out/${herculesLibDir}"
mkdir -p "$OUTINC" "$OUTLIB"
for dep in "${crypto}" "${decNumber}" "${softFloat}" "${telnet}"; do
ln -s $dep/include/* "$OUTINC"
ln -s $dep/${herculesLibDir}/* "$OUTLIB"
done
'';
in
stdenv.mkDerivation rec {
pname = "hercules";
version = "4.8";
src = fetchFromGitHub {
owner = "SDL-Hercules-390";
repo = "hyperion";
rev = "Release_${version}";
hash = "sha256-3Go5m4/K8d4Vu7Yi8ULQpX83d44fu9XzmG/gClWeUKo=";
};
postPatch = ''
patchShebangs _dynamic_version
'';
nativeBuildInputs = [ libtool ];
buildInputs = [
(lib.getOutput "lib" libtool)
zlib
bzip2
extpkgs
]
++ lib.optionals enableRexx [
regina
];
configureFlags = [
"--enable-extpkgs=${extpkgs}"
"--without-included-ltdl"
"--enable-ipv6"
"--enable-cckd-bzip2"
"--enable-het-bzip2"
]
++ lib.optionals enableRexx [
"--enable-regina-rexx"
];
meta = with lib; {
homepage = "https://sdl-hercules-390.github.io/html/";
description = "IBM mainframe emulator";
longDescription = ''
Hercules is an open source software implementation of the mainframe
System/370 and ESA/390 architectures, in addition to the latest 64-bit
z/Architecture. Hercules runs under Linux, Windows, Solaris, FreeBSD, and
Mac OS X.
'';
license = licenses.qpl;
maintainers = with maintainers; [
anna328p
vifino
];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "hermit";
version = "2.0";
src = fetchzip {
url = "https://pcaro.es/d/otf-${pname}-${version}.tar.gz";
stripRoot = false;
hash = "sha256-RYXZ2yJ8BIxsgeEwhXz7g0NnWG3kMPZoJaOLMUQyWWQ=";
};
installPhase = ''
runHook preInstall
install -m444 -Dt $out/share/fonts/opentype *.otf
runHook postInstall
'';
meta = with lib; {
description = "Monospace font designed to be clear, pragmatic and very readable";
homepage = "https://pcaro.es/p/hermit";
license = licenses.ofl;
maintainers = [ ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,35 @@
{
buildGoModule,
fetchFromGitHub,
lib,
}:
buildGoModule rec {
pname = "hermit";
version = "0.46.1";
src = fetchFromGitHub {
rev = "v${version}";
owner = "cashapp";
repo = "hermit";
hash = "sha256-snwqR9gtdUYmSNWcs+dur/6enuBG0HZ94cL6YoQFG1w=";
};
vendorHash = "sha256-bko9N3dbxe4K98BdG78lYYipAgAtGntrEAgoLeOY1NM=";
subPackages = [ "cmd/hermit" ];
ldflags = [
"-X main.version=${version}"
"-X main.channel=stable"
];
meta = with lib; {
homepage = "https://cashapp.github.io/hermit";
description = "Manages isolated, self-bootstrapping sets of tools in software projects";
license = licenses.asl20;
maintainers = with maintainers; [ cbrewster ];
platforms = platforms.unix;
mainProgram = "hermit";
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
gitUpdater,
fetchFromGitHub,
cmake,
pkgsCross,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "heroic-epic-integration";
version = "0.3";
src = fetchFromGitHub {
owner = "Etaash-mathamsetty";
repo = "heroic-epic-integration";
tag = "v${finalAttrs.version}";
hash = "sha256-Zn0MsaQd8Ro6eu8IQkMcLNGLVTUukwajkn8PRLfB+Yw=";
};
nativeBuildInputs = [
cmake
pkgsCross.mingwW64.buildPackages.gcc
];
cmakeFlags = [ (lib.cmakeFeature "CMAKE_TOOLCHAIN_FILE" "../windows.cmake") ];
installPhase = ''
runHook preInstall
mkdir $out
cp heroic-epic-integration.exe $out/EpicGamesLauncher.exe
runHook postInstall
'';
meta = {
description = "Wrapper process for games launched through Heroic Games Launcher";
longDescription = ''
This is a Windows executable that pretends to be EpicGamesLauncher.exe for
games that expect it to be their parent process.
'';
homepage = "https://github.com/Etaash-mathamsetty/heroic-epic-integration";
changelog = "https://github.com/Etaash-mathamsetty/heroic-epic-integration/releases/tag/v${finalAttrs.version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ aidalgol ];
};
passthru.updateScript = gitUpdater { };
})

View File

@@ -0,0 +1,13 @@
diff --git a/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts b/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts
index ebef6aa4..c8bd853d 100644
--- a/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts
+++ b/src/backend/shortcuts/nonesteamgame/nonesteamgame.ts
@@ -252,7 +252,7 @@ async function addNonSteamGame(props: {
// add new Entry
const newEntry = {} as ShortcutEntry
newEntry.AppName = props.gameInfo.title
- newEntry.Exe = `"${app.getPath('exe')}"`
+ newEntry.Exe = `"heroic"`
newEntry.StartDir = `"${process.cwd()}"`
if (isFlatpak) {

View File

@@ -0,0 +1,45 @@
{
lib,
gitUpdater,
fetchFromGitHub,
python3Packages,
}:
let
version = "0.20.37";
in
python3Packages.buildPythonApplication {
pname = "legendary-heroic";
inherit version;
format = "pyproject";
src = fetchFromGitHub {
owner = "Heroic-Games-Launcher";
repo = "legendary";
rev = version;
sha256 = "sha256-mOys7lOPrrzBUBMIM/JvKygFQ/qIGD68BDNigk5BCIo=";
};
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
requests
filelock
];
pythonImportsCheck = [ "legendary" ];
meta = with lib; {
description = "Free and open-source Epic Games Launcher alternative";
longDescription = ''
This is the Heroic Games Launcher's fork of legendary.
'';
homepage = "https://github.com/Heroic-Games-Launcher/legendary";
license = licenses.gpl3;
maintainers = with maintainers; [ aidalgol ];
mainProgram = "legendary";
};
passthru.updateScript = gitUpdater { };
}

View File

@@ -0,0 +1,135 @@
{
lib,
callPackage,
stdenv,
fetchFromGitHub,
# Pinned, because our FODs are not guaranteed to be stable between major versions.
pnpm_10,
nodejs,
python3,
makeWrapper,
# Electron updates frequently break Heroic, so pin same version as upstream, or newest non-EOL.
electron_36,
vulkan-helper,
gogdl,
nile,
comet-gog_heroic,
umu-launcher,
}:
let
legendary = callPackage ./legendary.nix { };
epic-integration = callPackage ./epic-integration.nix { };
comet-gog = comet-gog_heroic;
electron = electron_36;
in
stdenv.mkDerivation (finalAttrs: {
pname = "heroic-unwrapped";
version = "2.18.1";
src = fetchFromGitHub {
owner = "Heroic-Games-Launcher";
repo = "HeroicGamesLauncher";
tag = "v${finalAttrs.version}";
hash = "sha256-x792VA4PZleqUUgarh59JxJVXrvT95/rINYk8t9i3X0=";
};
pnpmDeps = pnpm_10.fetchDeps {
inherit (finalAttrs) pname version src;
fetcherVersion = 1;
hash = "sha256-F8H0eYltIJ0S8AX+2S3cR+v8dvePw09VWToVOLM8qII=";
};
nativeBuildInputs = [
nodejs
pnpm_10.configHook
python3
makeWrapper
];
patches = [
# Make Heroic create Steam shortcuts (to non-steam games) with the correct path to heroic.
./fix-non-steam-shortcuts.patch
# Fixes incorrect path to GalaxyCommunication.exe
./pr-4885.patch
];
env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
buildPhase = ''
runHook preBuild
# set nodedir to prevent node-gyp from downloading headers
export npm_config_nodedir=${electron.headers}
pnpm --offline electron-vite build
pnpm --offline electron-builder \
--linux \
--dir \
-c.asarUnpack="**/*.node" \
-c.electronDist=${electron.dist} \
-c.electronVersion=${electron.version}
runHook postBuild
'';
# --disable-gpu-compositing is to work around upstream bug
# https://github.com/electron/electron/issues/32317
installPhase = ''
runHook preInstall
mkdir -p "$out/opt/heroic"
cp -r dist/linux-unpacked/resources "$out/opt/heroic"
cp -r public "$out/opt/heroic/resources/app.asar.unpacked/build"
rm -rf "$out/opt/heroic/resources/app.asar.unpacked/build/bin"
mkdir -p \
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/linux" \
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/win32"
ln -s \
"${lib.getExe gogdl}" \
"${lib.getExe legendary}" \
"${lib.getExe nile}" \
"${lib.getExe comet-gog}" \
"${lib.getExe vulkan-helper}" \
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/linux"
# Don't symlink these so we don't confuse Windows applications under Wine/Proton.
cp \
"${comet-gog.dummy-service}/GalaxyCommunication.exe" \
"${epic-integration}/EpicGamesLauncher.exe" \
"$out/opt/heroic/resources/app.asar.unpacked/build/bin/x64/win32"
makeWrapper "${electron}/bin/electron" "$out/bin/heroic" \
--inherit-argv0 \
--set ELECTRON_FORCE_IS_PACKAGED 1 \
--suffix PATH ":" "${umu-launcher}/bin" \
--add-flags --disable-gpu-compositing \
--add-flags $out/opt/heroic/resources/app.asar \
--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}"
install -D "flatpak/com.heroicgameslauncher.hgl.desktop" "$out/share/applications/com.heroicgameslauncher.hgl.desktop"
install -D "src/frontend/assets/heroic-icon.svg" "$out/share/icons/hicolor/scalable/apps/com.heroicgameslauncher.hgl.svg"
substituteInPlace "$out/share/applications/com.heroicgameslauncher.hgl.desktop" \
--replace-fail "Exec=heroic-run --ozone-platform-hint=auto" "Exec=heroic"
runHook postInstall
'';
passthru = {
inherit epic-integration legendary;
};
meta = with lib; {
description = "Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac";
homepage = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher";
changelog = "https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/releases/tag/v${finalAttrs.version}";
license = licenses.gpl3Only;
maintainers = with maintainers; [ aidalgol ];
# Heroic may work on nix-darwin, but it needs a dedicated maintainer for the platform.
# It may also work on other Linux targets, but all the game stores only
# support x86 Linux, so it would require extra hacking to run games via QEMU
# user emulation. Upstream provide Linux builds only for x86_64.
platforms = [ "x86_64-linux" ];
mainProgram = "heroic";
};
})

View File

@@ -0,0 +1,71 @@
From a98cc23b288e13665c8698eec56e0653613946d7 Mon Sep 17 00:00:00 2001
From: Aidan Gauland <aidalgol@fastmail.net>
Date: Tue, 19 Aug 2025 09:45:55 +1200
Subject: [PATCH] [Fix] Run GalaxyComm executable path through fixAsarPath
---
src/backend/constants/paths.ts | 4 ++++
src/backend/launcher.ts | 15 +++++----------
2 files changed, 9 insertions(+), 10 deletions(-)
diff --git a/src/backend/constants/paths.ts b/src/backend/constants/paths.ts
index 1d05ce5b58..2e9cff1197 100644
--- a/src/backend/constants/paths.ts
+++ b/src/backend/constants/paths.ts
@@ -44,6 +44,10 @@ export const fakeEpicExePath = fixAsarPath(
join(publicDir, 'bin', 'x64', 'win32', 'EpicGamesLauncher.exe')
)
+export const galaxyCommunicationExePath = fixAsarPath(
+ join(publicDir, 'bin', 'x64', 'win32', 'GalaxyCommunication.exe')
+)
+
export const webviewPreloadPath = fixAsarPath(
join('file://', publicDir, 'webviewPreload.js')
)
diff --git a/src/backend/launcher.ts b/src/backend/launcher.ts
index a239cff927..2262dc35b2 100644
--- a/src/backend/launcher.ts
+++ b/src/backend/launcher.ts
@@ -80,7 +80,7 @@ import {
defaultWinePrefix,
fixesPath,
flatpakHome,
- publicDir,
+ galaxyCommunicationExePath,
runtimePath,
userHome
} from './constants/paths'
@@ -888,28 +888,23 @@ async function prepareWineLaunch(
try {
if (runner === 'gog' && experimentalFeatures?.cometSupport !== false) {
- const communicationSource = join(
- publicDir,
- 'bin/x64/win32/GalaxyCommunication.exe'
- )
-
- const galaxyCommPath =
+ const galaxyCommWinePath =
'C:\\ProgramData\\GOG.com\\Galaxy\\redists\\GalaxyCommunication.exe'
const communicationDest = await getWinePath({
- path: galaxyCommPath,
+ path: galaxyCommWinePath,
gameSettings,
variant: 'unix'
})
if (!existsSync(communicationDest)) {
mkdirSync(dirname(communicationDest), { recursive: true })
- await copyFile(communicationSource, communicationDest)
+ await copyFile(galaxyCommunicationExePath, communicationDest)
await runWineCommand({
commandParts: [
'sc',
'create',
'GalaxyCommunication',
- `binpath=${galaxyCommPath}`
+ `binpath=${galaxyCommWinePath}`
],
gameSettings,
protonVerb: 'runinprefix'

View File

@@ -0,0 +1,24 @@
{
steam,
heroic-unwrapped,
extraPkgs ? pkgs: [ ],
extraLibraries ? pkgs: [ ],
}:
steam.buildRuntimeEnv {
pname = "heroic";
inherit (heroic-unwrapped) version meta;
runScript = "heroic";
extraPkgs = pkgs: [ heroic-unwrapped ] ++ extraPkgs pkgs;
inherit extraLibraries;
extraInstallCommands = ''
mkdir -p $out/share
ln -s ${heroic-unwrapped}/share/applications $out/share
ln -s ${heroic-unwrapped}/share/icons $out/share
'';
privateTmp = false;
}

View File

@@ -0,0 +1,56 @@
{
stdenv,
lib,
fetchzip,
makeWrapper,
nodejs,
writeScript,
}:
stdenv.mkDerivation {
pname = "heroku";
version = "10.13.1";
src = fetchzip {
url = "https://cli-assets.heroku.com/versions/10.13.1/cf943a6/heroku-v10.13.1-cf943a6-linux-x64.tar.xz";
hash = "sha256-2nxM1XE+gvIUoA/AQLXt73V+ZM+WP245qAkGilnCqMk=";
};
nativeBuildInputs = [ makeWrapper ];
dontBuild = true;
installPhase = ''
mkdir -p $out/share/heroku $out/bin
cp -pr * $out/share/heroku
substituteInPlace $out/share/heroku/bin/run \
--replace "/usr/bin/env node" "${nodejs}/bin/node"
makeWrapper $out/share/heroku/bin/run $out/bin/heroku \
--set HEROKU_DISABLE_AUTOUPDATE 1
'';
passthru.updateScript = writeScript "update-heroku" ''
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. -i bash -p nix-prefetch curl jq common-updater-scripts
resp="$(
curl -L "https://cli-assets.heroku.com/versions/heroku-linux-x64-tar-xz.json" \
| jq '[to_entries[] | { version: .key, url: .value } | select(.version|contains("-")|not)] | sort_by(.version|split(".")|map(tonumber)) | .[-1]'
)"
url="$(jq <<<"$resp" .url --raw-output)"
version="$(jq <<<"$resp" .version --raw-output)"
hash="$(nix-prefetch fetchzip --url "$(jq <<<"$resp" .url --raw-output)")"
update-source-version heroku "$version" "$hash" "$url"
'';
meta = {
homepage = "https://devcenter.heroku.com/articles/heroku-cli";
description = "Everything you need to get started using Heroku";
mainProgram = "heroku";
maintainers = with lib.maintainers; [
aflatter
mirdhyn
];
license = lib.licenses.mit;
platforms = with lib.platforms; unix;
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
boost,
fastjet,
gfortran,
gsl,
lhapdf,
thepeg,
zlib,
autoconf,
automake,
libtool,
}:
stdenv.mkDerivation rec {
pname = "herwig";
version = "7.3.0";
src = fetchurl {
url = "https://www.hepforge.org/archive/herwig/Herwig-${version}.tar.bz2";
hash = "sha256-JiSBnS3/EFupUuobXPEutvSSbUlRd0pBkHaZ4vVnaGw=";
};
nativeBuildInputs = [
autoconf
automake
libtool
gfortran
];
buildInputs = [
boost
fastjet
gsl
thepeg
zlib
]
# There is a bug that requires for default PDF's to be present during the build
++ (with lhapdf.pdf_sets; [
CT14lo
CT14nlo
]);
postPatch = ''
patchShebangs ./
# Fix failing "make install" being unable to find HwEvtGenInterface.so
substituteInPlace src/defaults/decayers.in.in \
--replace "read EvtGenDecayer.in" ""
'';
configureFlags = [
"--with-thepeg=${thepeg}"
"--with-boost=${lib.getDev boost}"
];
enableParallelBuilding = true;
meta = with lib; {
description = "Multi-purpose particle physics event generator";
homepage = "https://herwig.hepforge.org/";
license = licenses.gpl3Only;
maintainers = with maintainers; [ veprbl ];
platforms = platforms.unix;
broken = stdenv.hostPlatform.isAarch64; # doesn't compile: ignoring return value of 'FILE* freopen...
};
}

View File

@@ -0,0 +1,53 @@
diff --git a/cmd/cluster_kubeconfig.go b/cmd/cluster_kubeconfig.go
index 54cc0c9..fab288a 100644
--- a/cmd/cluster_kubeconfig.go
+++ b/cmd/cluster_kubeconfig.go
@@ -6,7 +6,7 @@ import (
"io/ioutil"
"log"
"os"
- "os/user"
+ "path/filepath"
"strings"
"github.com/spf13/cobra"
@@ -52,9 +52,8 @@ Example 4: hetzner-kube cluster kubeconfig -n my-cluster -p > my-conf.yaml # pri
} else {
fmt.Println("create file")
- usr, _ := user.Current()
- dir := usr.HomeDir
- path := fmt.Sprintf("%s/.kube", dir)
+ dir, _ := os.UserHomeDir()
+ path := filepath.Join(dir, ".kube")
if _, err := os.Stat(path); os.IsNotExist(err) {
os.MkdirAll(path, 0755)
diff --git a/cmd/config.go b/cmd/config.go
index ce0f3e5..a03c4ba 100644
--- a/cmd/config.go
+++ b/cmd/config.go
@@ -8,7 +8,6 @@ import (
"io/ioutil"
"log"
"os"
- "os/user"
"path/filepath"
"github.com/hetznercloud/hcloud-go/hcloud"
@@ -28,13 +27,8 @@ type AppSSHClient struct {
// NewAppConfig creates a new AppConfig struct using the locally saved configuration file. If no local
// configuration file is found a new config will be created.
func NewAppConfig() AppConfig {
- usr, err := user.Current()
- if err != nil {
- return AppConfig{}
- }
- if usr.HomeDir != "" {
- DefaultConfigPath = filepath.Join(usr.HomeDir, ".hetzner-kube")
- }
+ dir, _ := os.UserHomeDir()
+ DefaultConfigPath = filepath.Join(dir, ".hetzner-kube")
appConf := AppConfig{
Context: context.Background(),

View File

@@ -0,0 +1,54 @@
{
lib,
buildGoModule,
fetchFromGitHub,
installShellFiles,
}:
buildGoModule rec {
pname = "hetzner-kube";
version = "0.5.1";
src = fetchFromGitHub {
owner = "xetys";
repo = "hetzner-kube";
rev = version;
hash = "sha256-XHvR+31yq0o3txMBHh2rCh2peDlG5Kh3hdl0LGm9D8c=";
};
patches = [
# Use $HOME instead of the OS user database.
# Upstream PR: https://github.com/xetys/hetzner-kube/pull/346
# Unfortunately, the PR patch does not apply against release.
./fix-home.patch
];
vendorHash = "sha256-sIjSu9U+uNc5dgt9Qg328W/28nX4F5d5zjUb7Y1xAso=";
doCheck = false;
ldflags = [
"-X github.com/xetys/hetzner-kube/cmd.version=${version}"
];
nativeBuildInputs = [
installShellFiles
];
postInstall = ''
# Need a writable home, because it fails if unable to write config.
export HOME=$TMP
$out/bin/hetzner-kube completion bash > hetzner-kube
$out/bin/hetzner-kube completion zsh > _hetzner-kube
installShellCompletion --zsh _hetzner-kube
installShellCompletion --bash hetzner-kube
'';
meta = {
description = "CLI tool for provisioning Kubernetes clusters on Hetzner Cloud";
mainProgram = "hetzner-kube";
homepage = "https://github.com/xetys/hetzner-kube";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ eliasp ];
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchurl,
ocamlPackages,
}:
stdenv.mkDerivation rec {
pname = "hevea";
version = "2.37";
src = fetchurl {
url = "https://hevea.inria.fr/distri/hevea-${version}.tar.gz";
sha256 = "sha256-tuk/B/WBedZbTrfoxKXV9otKJfEEwCmmL8kVTpPhr1k=";
};
strictDeps = true;
nativeBuildInputs = with ocamlPackages; [
ocaml
ocamlbuild
];
makeFlags = [ "PREFIX=$(out)" ];
meta = {
description = "Quite complete and fast LATEX to HTML translator";
homepage = "https://hevea.inria.fr/";
changelog = "https://github.com/maranget/hevea/raw/v${version}/CHANGES";
license = lib.licenses.qpl;
maintainers = with lib.maintainers; [ pSub ];
platforms = with lib.platforms; unix;
};
}

42
pkgs/by-name/he/hevi/deps.nix generated Normal file
View File

@@ -0,0 +1,42 @@
# generated by zon2nix (https://github.com/nix-community/zon2nix)
{
linkFarm,
fetchzip,
fetchgit,
}:
linkFarm "zig-packages" [
{
name = "12204a4669fa6e8ebb1720e3581a24c1a7f538f2f4ee3ebc91a9e36285c89572d761";
path = fetchgit {
url = "https://github.com/MFAshby/zig-lsp-kit.git";
rev = "1c07e3e3305f8dd6355735173321c344fc152d3e";
hash = "sha256-WBJ7hbc69W3mtzrMLwehcKccSbVe/8Dy9sX4IA4VbcY=";
};
}
{
name = "1220841471bd4891cbb199d27cc5e7e0fb0a5b7c5388a70bd24fa3eb7285755c396c";
path = fetchgit {
url = "https://github.com/kubkon/zig-yaml.git";
rev = "beddd5da24de91d430ca7028b00986f7745b13e9";
hash = "sha256-CJms2LjwoYNlbhapFYzvOImuaMH/zikllYeQ2/VlHi0=";
};
}
{
name = "12209cde192558f8b3dc098ac2330fc2a14fdd211c5433afd33085af75caa9183147";
path = fetchgit {
url = "https://github.com/ziglibs/known-folders.git";
rev = "0ad514dcfb7525e32ae349b9acc0a53976f3a9fa";
hash = "sha256-X+XkFj56MkYxxN9LUisjnkfCxUfnbkzBWHy9pwg5M+g=";
};
}
{
name = "1220c198cdaf6cb73fca6603cc5039046ed10de2e9f884cae9224ff826731df1c68d";
path = fetchgit {
url = "https://github.com/kristoff-it/ziggy";
rev = "ae30921d8c98970942d3711553aa66ff907482fe";
hash = "sha256-dZemnsmM0383HnA7zhykyO/DnG0mx+PVjjr9NiIfu4I=";
};
}
]

View File

@@ -0,0 +1,39 @@
{
callPackage,
fetchFromGitHub,
lib,
stdenv,
zig_0_13,
}:
let
zig = zig_0_13;
in
stdenv.mkDerivation (finalAttrs: {
pname = "hevi";
version = "1.1.0";
src = fetchFromGitHub {
owner = "Arnau478";
repo = "hevi";
tag = "v${finalAttrs.version}";
hash = "sha256-wnpuM2qlbeDIupDPQPKdWmjAKepCG0+u3uxcLDFB09w=";
};
nativeBuildInputs = [
zig.hook
];
postPatch = ''
ln -s ${callPackage ./deps.nix { }} $ZIG_GLOBAL_CACHE_DIR/p
'';
meta = {
description = "Hex viewer";
homepage = "https://github.com/Arnau478/hevi";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.jmbaur ];
mainProgram = "hevi";
inherit (zig.meta) platforms;
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
SDL,
SDL_mixer,
SDL_ttf,
}:
stdenv.mkDerivation rec {
pname = "hex-a-hop";
version = "1.1.0";
src = fetchzip {
url = "mirror://sourceforge/project/hexahop/${version}/hex-a-hop-${version}.tar.gz";
sha256 = "sha256-fBSvNtgNR0aNofbvoYpM1e8ww4ARlXIvrQUvJqVGLlY=";
};
icon = fetchurl {
# Fetched from dfa365a90be5c52ef21235a9e90a865b04da3ad4, remove in the next version when the file is included
url = "https://sourceforge.net/p/hexahop/code/ci/dfa365a90be5c52ef21235a9e90a865b04da3ad4/tree/data/hex-a-hop.png?format=raw";
sha256 = "sha256-Vh/1wwRmC2eSD/+mk1Oqt7EX4a4k++nUAbWQD2P2hNA=";
};
desktop = fetchurl {
# Fetched from e67385078e4f248a3877ee1066613d231c0d0eee, remove in the next version when the file is included
url = "https://sourceforge.net/p/hexahop/code/ci/e67385078e4f248a3877ee1066613d231c0d0eee/tree/data/hex-a-hop.desktop?format=raw";
sha256 = "sha256-j6gKRq+8b1NDwP1WcCaScfmwNxAl78CfK6pemROrRak=";
};
buildInputs = [
SDL
SDL_mixer
SDL_ttf
];
makeFlags = [ "PREFIX=$(out)" ];
postFixup = ''
install -Dm644 ${icon} $out/share/icons/${pname}.png
install -Dm644 ${desktop} $out/share/applications/${pname}.desktop
'';
meta = {
description = "Puzzle game based on hexagonal tiles";
mainProgram = "hex-a-hop";
homepage = "https://hexahop.sourceforge.net";
license = with lib.licenses; [
gpl2Plus # Main code
cc-by-30 # Assets
lgpl2Plus # i18n
lgpl3Plus # source files from Lips of Suna
];
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ rampoina ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
rustPlatform,
fetchFromGitHub,
testers,
hex,
}:
rustPlatform.buildRustPackage rec {
pname = "hex";
version = "0.6.0";
src = fetchFromGitHub {
owner = "sitkevij";
repo = "hex";
rev = "v${version}";
hash = "sha256-YctXDhCMJvDQLPsuhzdyYDUIlFE2vKltNtrFFeE7YE8=";
};
cargoHash = "sha256-3lrNZyQVP+gswbF+pqQmVIHg3bjiJ22y87PtTHDwIXs=";
passthru.tests.version = testers.testVersion {
package = hex;
version = "hx ${version}";
};
meta = {
description = "Futuristic take on hexdump, made in Rust";
homepage = "https://github.com/sitkevij/hex";
changelog = "https://github.com/sitkevij/hex/releases/tag/v${version}";
mainProgram = "hx";
license = lib.licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,2 @@
source 'https://rubygems.org'
gem 'hexapdf'

View File

@@ -0,0 +1,19 @@
GEM
remote: https://rubygems.org/
specs:
cmdparse (3.0.7)
geom2d (0.4.1)
hexapdf (1.0.2)
cmdparse (~> 3.0, >= 3.0.3)
geom2d (~> 0.4, >= 0.4.1)
openssl (>= 2.2.1)
openssl (3.2.0)
PLATFORMS
ruby
DEPENDENCIES
hexapdf
BUNDLED WITH
2.5.9

View File

@@ -0,0 +1,47 @@
{
cmdparse = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0f87jny4zk21iyrkyyw4kpnq8ymrwjay02ipagwapimy237cmigp";
type = "gem";
};
version = "3.0.7";
};
geom2d = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1nafcfznjqycxd062cais64ydgl99xddh4zy4hp7bwn4j3m9h2ga";
type = "gem";
};
version = "0.4.1";
};
hexapdf = {
dependencies = [
"cmdparse"
"geom2d"
"openssl"
];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "13dbscnf7c3jlghlkgl01b7hzgx2ps26m57qmhyv5g626n342i4c";
type = "gem";
};
version = "1.0.2";
};
openssl = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
type = "gem";
};
version = "3.2.0";
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
bundlerApp,
bundlerUpdateScript,
ruby,
}:
bundlerApp {
pname = "hexapdf";
exes = [ "hexapdf" ];
inherit ruby;
gemdir = ./.;
passthru.updateScript = bundlerUpdateScript "hexapdf";
meta = with lib; {
description = "Versatile PDF creation and manipulation library";
homepage = "https://hexapdf.gettalong.org/";
changelog = "https://github.com/gettalong/hexapdf/blob/master/CHANGELOG.md";
license = licenses.agpl3Only;
maintainers = with maintainers; [ bbenno ];
platforms = platforms.unix;
mainProgram = "hexapdf";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "hexbinhex";
version = "1.1";
src = fetchFromGitHub {
owner = "dj-on-github";
repo = "hexbinhex";
rev = "v${version}";
hash = "sha256-nfOmiF+t5QtAl1I7CSz26C9SGo7ZkdSziO2eiHbk6pA=";
};
preBuild = ''
substituteInPlace Makefile --replace '/usr/local' $out
mkdir -p $out/bin
''
+ lib.optionalString (!stdenv.hostPlatform.isx86_64) ''
sed -i s/-m64//g Makefile
'';
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
enableParallelBuilding = true;
meta = {
homepage = "https://github.com/dj-on-github/hexbinhex";
changelog = "https://github.com/dj-on-github/hexbinhex/releases/tag/${src.rev}";
description = ''
Six utility programs to convert between hex, binary, ascii-binary
and the oddball NIST format for 90B testing.
'';
license = lib.licenses.gpl2Only;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [
orichter
thillux
];
};
}

View File

@@ -0,0 +1,90 @@
{
dbus-glib,
desktop-file-utils,
enchant2,
fetchFromGitHub,
gtk2,
isocodes,
lib,
libcanberra-gtk2,
libnotify,
libproxy,
lua,
makeWrapper,
meson,
ninja,
openssl,
pciutils,
perl,
pkg-config,
python3Packages,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "hexchat";
version = "2.16.2";
src = fetchFromGitHub {
owner = "hexchat";
repo = "hexchat";
rev = "v${version}";
hash = "sha256-rgaXqXbBWlfSyz+CT0jRLyfGOR1cYYnRhEAu7AsaWus=";
};
#hexchat and hexchat-text loads enchant spell checking library at run time and so it needs to have route to the path
postPatch = ''
sed -i "s,libenchant-2.so.2,${enchant2}/lib/libenchant-2.so.2,g" src/fe-gtk/sexy-spell-entry.c
sed -i "/flag.startswith('-I')/i if flag.contains('no-such-path')\ncontinue\nendif" plugins/perl/meson.build
chmod +x meson_post_install.py
for f in meson_post_install.py \
plugins/perl/generate_header.py \
plugins/python/generate_plugin.py \
po/validate-textevent-translations \
src/common/make-te.py
do
patchShebangs $f
done
'';
mesonFlags = [
"-Dwith-lua=lua"
"-Dtext-frontend=true"
];
nativeBuildInputs = [
makeWrapper
meson
ninja
pkg-config
];
buildInputs = [
dbus-glib
desktop-file-utils
gtk2
isocodes
libcanberra-gtk2
libnotify
libproxy
lua
openssl
pciutils
perl
python3Packages.cffi
python3Packages.python
python3Packages.setuptools
];
postInstall = ''
wrapProgram $out/bin/hexchat --prefix PYTHONPATH : "$PYTHONPATH"
'';
meta = {
description = "Popular and easy to use graphical IRC (chat) client";
homepage = "https://hexchat.github.io/";
license = lib.licenses.gpl2;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ romildo ];
};
}

View File

@@ -0,0 +1,61 @@
{
stdenv,
lib,
fetchFromGitHub,
fetchpatch,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "hexcurse";
version = "1.60.0";
src = fetchFromGitHub {
owner = "LonnyGomes";
repo = "hexcurse";
rev = "v${version}";
sha256 = "17ckkxfzbqvvfdnh10if4aqdcq98q3vl6dn1v6f4lhr4ifnyjdlk";
};
buildInputs = [ ncurses ];
env.NIX_CFLAGS_COMPILE = toString [
"-Wno-error=stringop-overflow"
"-Wno-error=stringop-truncation"
];
patches = [
# gcc7 compat
(fetchpatch {
url = "https://github.com/LonnyGomes/hexcurse/commit/d808cb7067d1df067f8b707fabbfaf9f8931484c.patch";
sha256 = "0h8345blmc401c6bivf0imn4cwii67264yrzxg821r46wrnfvyi2";
})
# gcc7 compat
(fetchpatch {
url = "https://github.com/LonnyGomes/hexcurse/commit/716b5d58ac859cc240b8ccb9cbd79ace3e0593c1.patch";
sha256 = "0v6gbp6pjpmnzswlf6d97aywiy015g3kcmfrrkspsbb7lh1y3nix";
})
# Fix pending upstream inclusion for gcc10 -fno-common compatibility:
# https://github.com/LonnyGomes/hexcurse/pull/28
(fetchpatch {
name = "fno-common.patch";
url = "https://github.com/LonnyGomes/hexcurse/commit/9cf7c9dcd012656df949d06f2986b57db3a72bdc.patch";
sha256 = "1awsyxys4pd3gkkgyckgjg3njgqy07223kcmnpfdkidh2xb0s360";
})
# Fix pending upstream inclusion for ncurses-6.3 support:
# https://github.com/LonnyGomes/hexcurse/pull/40
(fetchpatch {
name = "ncurses-6.3.patch";
url = "https://github.com/LonnyGomes/hexcurse/commit/cb70d4a93a46102f488f471fad31a7cfc9fec025.patch";
sha256 = "19674zhhp7gc097kl4bxvi0gblq6jzjy8cw8961svbq5y3hv1v5y";
})
];
meta = with lib; {
description = "ncurses-based console hexeditor written in C";
homepage = "https://github.com/LonnyGomes/hexcurse";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = [ ];
mainProgram = "hexcurse";
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "hexd";
version = "1.1.0";
src = fetchFromGitHub {
owner = "FireyFly";
repo = "hexd";
rev = "v${version}";
sha256 = "sha256-b/dROBQVPEiMBTcu4MTi6Lf6ChkFZqZrJ1V0j54rrFY=";
};
makeFlags = [ "PREFIX=$(out)" ];
meta = with lib; {
description = "Colourful, human-friendly hexdump tool";
homepage = "https://github.com/FireyFly/hexd";
maintainers = [ maintainers.FireyFly ];
license = licenses.mit;
platforms = platforms.unix;
mainProgram = "hexd";
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "hexdiff";
version = "0-unstable-2018-01-24";
src = fetchFromGitHub {
owner = "ahroach";
repo = "hexdiff";
rev = "3e96f27e65167c619ede35ab04232163dc273e69";
sha256 = "sha256-G6Qi7e4o+0ahcslJ8UfJrdoc8NNkY+nl6kyDlkJCo9I=";
};
dontConfigure = true;
buildPhase = ''
runHook preBuild
$CC -o hexdiff hexdiff.c
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -D hexdiff -t $out/bin/
runHook postInstall
'';
meta = {
homepage = "https://github.com/ahroach/hexdiff";
description = "Terminal application for differencing two binary files, with color-coded output";
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ rogarb ];
platforms = lib.platforms.linux;
mainProgram = "hexdiff";
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
pname = "hexdino";
version = "0.1.3";
src = fetchFromGitHub {
owner = "Luz";
repo = "hexdino";
rev = version;
hash = "sha256-glbyftCJiP0/5trW7DOcVCU2q4ZH3zFK96eyGuYR8eY=";
};
cargoHash = "sha256-NfVtNoTDGx3MGOe+bUOCgjSs8ZTfxMSCTp09sXOfUPs=";
meta = with lib; {
description = "Hex editor with vim like keybindings written in Rust";
homepage = "https://github.com/Luz/hexdino";
license = licenses.mit;
maintainers = [ maintainers.luz ];
mainProgram = "hexdino";
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
ncurses,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hexedit";
version = "1.6";
src = fetchFromGitHub {
owner = "pixel";
repo = "hexedit";
rev = finalAttrs.version;
hash = "sha256-fIgPbr7qmxyEga2YaAD0+NBM8LeDm/tVAq99ub7aiAI=";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ ncurses ];
meta = {
description = "View and edit files in hexadecimal or in ASCII";
homepage = "http://rigaux.org/hexedit.html";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ sigmanificient ];
mainProgram = "hexedit";
};
})

View File

@@ -0,0 +1,39 @@
{
stdenv,
lib,
fetchurl,
undmg,
nix-update-script,
}:
let
urlSuffix = version: if lib.versions.patch == 0 then lib.versions.majorMinor version else version;
in
stdenv.mkDerivation rec {
pname = "hexfiend";
version = "2.17.1";
src = fetchurl {
url = "https://github.com/HexFiend/HexFiend/releases/download/v${version}/Hex_Fiend_${urlSuffix version}.dmg";
hash = "sha256-QpGmpxDpdS+sJtsNtp0VSAd9WJXaZiKTH4yDsDK8FSk=";
};
sourceRoot = "Hex Fiend.app";
nativeBuildInputs = [ undmg ];
installPhase = ''
mkdir -p "$out/Applications/Hex Fiend.app"
cp -R . "$out/Applications/Hex Fiend.app"
'';
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Open-source macOS hex editor";
homepage = "http://hexfiend.com/";
changelog = "https://hexfiend.github.io/HexFiend/ReleaseNotes.html";
license = licenses.bsd2;
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
maintainers = with maintainers; [ eliandoran ];
platforms = platforms.darwin;
};
}

View File

@@ -0,0 +1,42 @@
{
ant,
fetchFromGitHub,
jdk,
lib,
makeWrapper,
stdenv,
}:
stdenv.mkDerivation {
pname = "hexgui";
version = "0.10-unstable-2024-11-03";
src = fetchFromGitHub {
owner = "selinger";
repo = "hexgui";
rev = "444408f4411a4f13cbd90ac670f1dd344d35a948";
hash = "sha256-W5klRwVsSlrSp3Pw5D4uknIRjaNMv+OTUtXXTmd6P3I=";
};
nativeBuildInputs = [
ant
jdk
makeWrapper
];
buildPhase = ''
ant
'';
installPhase = ''
mkdir $out
mv bin lib $out
wrapProgram $out/bin/hexgui --prefix PATH : ${lib.makeBinPath [ jdk ]}
'';
meta = {
description = "GUI for the board game Hex";
mainProgram = "hexgui";
homepage = "https://github.com/selinger/hexgui";
license = lib.licenses.gpl3;
maintainers = [ lib.maintainers.ursi ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitLab,
pcsclite,
pth,
python3Packages,
}:
stdenv.mkDerivation rec {
pname = "hexio";
version = "1.1";
src = fetchFromGitLab {
owner = "vanrein";
repo = "hexio";
tag = "v${version}";
hash = "sha256-jp7VHT08Rhw5nUtNpqkRHDHT0R51PCBy0cKb1sI6zkg=";
};
strictDeps = true;
nativeBuildInputs = [ python3Packages.wrapPython ];
buildInputs = [
pcsclite
pth
];
postPatch = ''
substituteInPlace Makefile \
--replace-fail '-I/usr/local/include/PCSC/' '-I${lib.getDev pcsclite}/include/PCSC/' \
--replace-fail '-L/usr/local/lib/pth' '-I${pth}/lib/'
'';
installPhase = ''
mkdir -p $out/bin $out/lib $out/sbin $out/man
make DESTDIR=$out PREFIX=/ all
make DESTDIR=$out PREFIX=/ install
'';
postFixup = ''
wrapPythonPrograms
'';
meta = with lib; {
description = "Low-level I/O helpers for hexadecimal, tty/serial devices and so on";
homepage = "https://github.com/vanrein/hexio";
license = licenses.bsd2;
platforms = platforms.linux;
maintainers = with maintainers; [ leenaars ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
}:
buildNpmPackage rec {
pname = "hexo-cli";
version = "4.3.1";
src = fetchFromGitHub {
owner = "hexojs";
repo = "hexo-cli";
rev = "v${version}";
hash = "sha256-mtbg9Fa9LBqG/aNfm4yEo4ymuaxuqhymkO1q6mYA2Fs=";
};
npmDepsHash = "sha256-VCHG1YMPRwEBbwgscSv6V+fTNVRpsCxWeyO8co4Zy6k=";
installPhase = ''
runHook preInstall
mkdir -p $out
cp -r bin/ dist/ node_modules/ package.json $out/
runHook postInstall
'';
meta = {
description = "Command line interface for Hexo";
mainProgram = "hexo";
homepage = "https://hexo.io/";
license = lib.licenses.mit;
};
}

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