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,38 @@
{
lib,
stdenv,
fetchurl,
ladspaH,
}:
stdenv.mkDerivation rec {
pname = "AMB-plugins";
version = "0.8.1";
src = fetchurl {
url = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
sha256 = "0x4blm4visjqj0ndqr0cg776v3b7lvplpc8cgi9n51llhavn0jpl";
};
buildInputs = [ ladspaH ];
patchPhase = ''
sed -i 's@/usr/bin/install@install@g' Makefile
sed -i 's@/bin/rm@rm@g' Makefile
sed -i 's@/usr/lib/ladspa@$(out)/lib/ladspa@g' Makefile
sed -i 's@g++@$(CXX)@g' Makefile
'';
preInstall = "mkdir -p $out/lib/ladspa";
meta = {
description = "Set of ambisonics ladspa plugins";
longDescription = ''
Mono and stereo to B-format panning, horizontal rotator, square, hexagon and cube decoders.
'';
version = version;
homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/ladspa/index.html";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.magnetophon ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,14 @@
diff --git a/AM2RLauncher/AM2RLauncherLib/Profile.cs b/AM2RLauncher/AM2RLauncherLib/Profile.cs
index 8186350..2f9de2a 100644
--- a/AM2RLauncher/AM2RLauncherLib/Profile.cs
+++ b/AM2RLauncher/AM2RLauncherLib/Profile.cs
@@ -796,7 +796,8 @@ public static class Profile
UseShellExecute = false,
WorkingDirectory = gameDirectory,
#if NOAPPIMAGE
- FileName = $"{gameDirectory}/runner"
+ FileName = "am2r-run",
+ Arguments = "./runner"
#else
FileName = $"{gameDirectory}/AM2R.AppImage"
#endif

152
pkgs/by-name/am/am2rlauncher/deps.json generated Normal file
View File

@@ -0,0 +1,152 @@
[
{
"pname": "AtkSharp",
"version": "3.24.24.34",
"hash": "sha256-GrOzO4YDMKJNHAnqLF+c44iGYlvazGTOuRLUnuLbwco="
},
{
"pname": "CairoSharp",
"version": "3.24.24.34",
"hash": "sha256-/80xbYSPU8+6twoXRjES8PtV7dKB6fQoe6EqBmawzV8="
},
{
"pname": "Eto.Forms",
"version": "2.7.1",
"hash": "sha256-OdGDlkKST1qlO4p/jIrX6qVfyywK7wqiY97+Yqtt68M="
},
{
"pname": "Eto.Platform.Gtk",
"version": "2.7.1",
"hash": "sha256-2msf/Dxo+rxVmJBl57ofWd9cON4YDH8eLl4icXRBPyY="
},
{
"pname": "GdkSharp",
"version": "3.24.24.34",
"hash": "sha256-pQOp2jft19vVN+gSjD0tHfNGucss7ruy1xyys6IHHWQ="
},
{
"pname": "GioSharp",
"version": "3.24.24.34",
"hash": "sha256-/fZBfaKXlrdBuNh1/h0s1++5Ek4OnznXvzJx0uTbHQo="
},
{
"pname": "GLibSharp",
"version": "3.24.24.34",
"hash": "sha256-eAYUYNHF37nIJnk7aRffzBj8b/rluqXERYy358YAd08="
},
{
"pname": "GtkSharp",
"version": "3.24.24.34",
"hash": "sha256-i0XZfzUt9GNaZD1uXNd8x+pb1mPJqYrxQd15XOuHSAA="
},
{
"pname": "LibGit2Sharp",
"version": "0.27.0",
"hash": "sha256-/4Vr5pXvq1J+5kb4jvd7JkFQ5aiUF1InOViSe53KDFk="
},
{
"pname": "LibGit2Sharp.NativeBinaries",
"version": "2.0.319",
"hash": "sha256-jvbiwXrsqzzqnMiUQa3oqGshXeDT1miIKFug4NG1pnY="
},
{
"pname": "log4net",
"version": "2.0.15",
"hash": "sha256-y44EvjW7ZFRCJ3xLa+AGBW81ZI1ZykOEpSVU8EHLAcc="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "2.0.0",
"hash": "sha256-IEvBk6wUXSdyCnkj6tHahOJv290tVVT8tyemYcR0Yro="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "5.0.0",
"hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="
},
{
"pname": "Microsoft.Win32.Registry",
"version": "5.0.0",
"hash": "sha256-9kylPGfKZc58yFqNKa77stomcoNnMeERXozWJzDcUIA="
},
{
"pname": "Microsoft.Win32.SystemEvents",
"version": "6.0.0",
"hash": "sha256-N9EVZbl5w1VnMywGXyaVWzT9lh84iaJ3aD48hIBk1zA="
},
{
"pname": "PangoSharp",
"version": "3.24.24.34",
"hash": "sha256-/KdH3SA/11bkwPe/AXRph4v4a2cjbUjDvo4+OhkJEOQ="
},
{
"pname": "System.ComponentModel.Annotations",
"version": "5.0.0",
"hash": "sha256-0pST1UHgpeE6xJrYf5R+U7AwIlH3rVC3SpguilI/MAg="
},
{
"pname": "System.Configuration.ConfigurationManager",
"version": "4.5.0",
"hash": "sha256-TICO+mteKMC+kUTF2ooLBv2E+pwoSa/4gwcbW4nwN7s="
},
{
"pname": "System.Configuration.ConfigurationManager",
"version": "6.0.0",
"hash": "sha256-fPV668Cfi+8pNWrvGAarF4fewdPVEDwlJWvJk0y+Cms="
},
{
"pname": "System.Drawing.Common",
"version": "6.0.0",
"hash": "sha256-/9EaAbEeOjELRSMZaImS1O8FmUe8j4WuFUw1VOrPyAo="
},
{
"pname": "System.Security.AccessControl",
"version": "4.5.0",
"hash": "sha256-AFsKPb/nTk2/mqH/PYpaoI8PLsiKKimaXf+7Mb5VfPM="
},
{
"pname": "System.Security.AccessControl",
"version": "5.0.0",
"hash": "sha256-ueSG+Yn82evxyGBnE49N4D+ngODDXgornlBtQ3Omw54="
},
{
"pname": "System.Security.AccessControl",
"version": "6.0.0",
"hash": "sha256-qOyWEBbNr3EjyS+etFG8/zMbuPjA+O+di717JP9Cxyg="
},
{
"pname": "System.Security.Cryptography.ProtectedData",
"version": "4.5.0",
"hash": "sha256-Z+X1Z2lErLL7Ynt2jFszku6/IgrngO3V1bSfZTBiFIc="
},
{
"pname": "System.Security.Cryptography.ProtectedData",
"version": "6.0.0",
"hash": "sha256-Wi9I9NbZlpQDXgS7Kl06RIFxY/9674S7hKiYw5EabRY="
},
{
"pname": "System.Security.Permissions",
"version": "4.5.0",
"hash": "sha256-Fa6dX6Gyse1A/RBoin8cVaHQePbfBvp6jjWxUXPhXKQ="
},
{
"pname": "System.Security.Permissions",
"version": "6.0.0",
"hash": "sha256-/MMvtFWGN/vOQfjXdOhet1gsnMgh6lh5DCHimVsnVEs="
},
{
"pname": "System.Security.Principal.Windows",
"version": "4.5.0",
"hash": "sha256-BkUYNguz0e4NJp1kkW7aJBn3dyH9STwB5N8XqnlCsmY="
},
{
"pname": "System.Security.Principal.Windows",
"version": "5.0.0",
"hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="
},
{
"pname": "System.Windows.Extensions",
"version": "6.0.0",
"hash": "sha256-N+qg1E6FDJ9A9L50wmVt3xPQV8ZxlG1xeXgFuxO+yfM="
}
]

View File

@@ -0,0 +1,52 @@
diff --git a/AM2RLauncher/AM2RLauncher.Gtk/AM2RLauncher.Gtk.csproj b/AM2RLauncher/AM2RLauncher.Gtk/AM2RLauncher.Gtk.csproj
index e5e6191..ab9f228 100644
--- a/AM2RLauncher/AM2RLauncher.Gtk/AM2RLauncher.Gtk.csproj
+++ b/AM2RLauncher/AM2RLauncher.Gtk/AM2RLauncher.Gtk.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
- <TargetFramework>net6.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<ApplicationIcon>icon64.ico</ApplicationIcon>
<RollForward>LatestMajor</RollForward>
<LangVersion>latest</LangVersion>
diff --git a/AM2RLauncher/AM2RLauncher.Mac/AM2RLauncher.Mac.csproj b/AM2RLauncher/AM2RLauncher.Mac/AM2RLauncher.Mac.csproj
index 2af5688..a91bb25 100644
--- a/AM2RLauncher/AM2RLauncher.Mac/AM2RLauncher.Mac.csproj
+++ b/AM2RLauncher/AM2RLauncher.Mac/AM2RLauncher.Mac.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net6.0-macos</TargetFramework>
+ <TargetFramework>net8.0-macos</TargetFramework>
<RuntimeIdentifiers>osx-x64;osx-arm64</RuntimeIdentifiers>
<SupportedOSPlatformVersion>10.14</SupportedOSPlatformVersion>
<RollForward>LatestMajor</RollForward>
diff --git a/AM2RLauncher/AM2RLauncher/AM2RLauncher.csproj b/AM2RLauncher/AM2RLauncher/AM2RLauncher.csproj
index be49446..34a842f 100644
--- a/AM2RLauncher/AM2RLauncher/AM2RLauncher.csproj
+++ b/AM2RLauncher/AM2RLauncher/AM2RLauncher.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>netstandard2.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<LangVersion>latest</LangVersion>
<ApplicationIcon>Resources\LauncherIcon.ico</ApplicationIcon>
<Authors>Lojemiru, Miepee</Authors>
diff --git a/AM2RLauncher/AM2RLauncherLib/AM2RLauncherLib.csproj b/AM2RLauncher/AM2RLauncherLib/AM2RLauncherLib.csproj
index 673ab7a..da3a019 100644
--- a/AM2RLauncher/AM2RLauncherLib/AM2RLauncherLib.csproj
+++ b/AM2RLauncher/AM2RLauncherLib/AM2RLauncherLib.csproj
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFramework>netstandard2.0</TargetFramework>
+ <TargetFramework>net8.0</TargetFramework>
<LangVersion>default</LangVersion>
<Configurations>Debug;Release</Configurations>
<Platforms>AnyCPU</Platforms>

View File

@@ -0,0 +1,131 @@
{
lib,
buildDotnetModule,
writeShellScript,
glibc,
gtk3,
libappindicator,
webkitgtk_4_0,
e2fsprogs,
libnotify,
libgit2,
openssl,
xdelta,
file,
openjdk,
patchelf,
fetchFromGitHub,
buildFHSEnv,
glib-networking,
wrapGAppsHook3,
gsettings-desktop-schemas,
dotnetCorePackages,
}:
let
am2r-run = buildFHSEnv {
name = "am2r-run";
multiArch = true;
multiPkgs =
pkgs: with pkgs; [
(lib.getLib stdenv.cc.cc)
xorg.libX11
xorg.libXext
xorg.libXrandr
xorg.libXxf86vm
curl
libGLU
libglvnd
openal
zlib
];
runScript = writeShellScript "am2r-run" ''
exec -- "$1" "$@"
'';
};
in
buildDotnetModule {
pname = "am2rlauncher";
version = "2.3.0-unstable-2023-11-08";
src = fetchFromGitHub {
owner = "AM2R-Community-Developers";
repo = "AM2RLauncher";
rev = "5d8b7d9b3de68e6215c10b9fd223b7f1d5e40dea";
hash = "sha256-/nHqo8jh3sOUngbpqdfiQjUWO/8Uzpc5jtW7Ep4q6Wg=";
};
dotnet-sdk = dotnetCorePackages.sdk_8_0;
projectFile = "AM2RLauncher/AM2RLauncher.Gtk/AM2RLauncher.Gtk.csproj";
nugetDeps = ./deps.json;
executables = "AM2RLauncher.Gtk";
runtimeDeps = [
glibc
gtk3
libappindicator
webkitgtk_4_0
e2fsprogs
libnotify
libgit2
openssl
];
nativeBuildInputs = [ wrapGAppsHook3 ];
buildInputs = [
gtk3
gsettings-desktop-schemas
glib-networking
];
patches = [
./am2r-run-binary.patch
./dotnet-8-upgrade.patch
];
dotnetFlags = [
''-p:DefineConstants="NOAPPIMAGE;NOAUTOUPDATE;PATCHOPENSSL"''
];
makeWrapperArgs = [
"--prefix"
"PATH"
":"
(lib.escapeShellArg (
lib.makeBinPath [
am2r-run
xdelta
file
openjdk
patchelf
]
))
];
postFixup = ''
mkdir -p $out/share/icons
install -Dm644 $src/AM2RLauncher/distribution/linux/AM2RLauncher.png $out/share/icons/AM2RLauncher.png
install -Dm644 $src/AM2RLauncher/distribution/linux/AM2RLauncher.desktop $out/share/applications/AM2RLauncher.desktop
# renames binary for desktop file
mv $out/bin/AM2RLauncher.Gtk $out/bin/AM2RLauncher
'';
meta = with lib; {
homepage = "https://github.com/AM2R-Community-Developers/AM2RLauncher";
description = "Front-end for dealing with AM2R updates and mods";
longDescription = ''
A front-end application that simplifies installing the latest
AM2R-Community-Updates, creating APKs for Android use, as well as Mods for
AM2R.
'';
license = licenses.gpl3Only;
maintainers = with maintainers; [ nsnelson ];
mainProgram = "AM2RLauncher";
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,105 @@
{
stdenv,
fetchurl,
lib,
cmake,
extra-cmake-modules,
pkg-config,
kdePackages,
fftw,
curl,
ffmpeg,
gdk-pixbuf,
gst_all_1,
libaio,
libmtp,
libsysprof-capture,
libunwind,
loudmouth,
lzo,
lz4,
mariadb-embedded,
snappy,
taglib,
taglib_extras,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "amarok";
version = "3.3.1";
src = fetchurl {
url = "mirror://kde/stable/amarok/${finalAttrs.version}/amarok-${finalAttrs.version}.tar.xz";
hash = "sha256-OW8uqToH25XI+762gNeAai5ZVKUgxSwFZIXBHeYznAE=";
};
outputs = [
"out"
"doc"
];
buildInputs = [
curl
fftw
ffmpeg
gdk-pixbuf
libaio
libmtp
libsysprof-capture
libunwind
loudmouth
lz4
lzo
mariadb-embedded
snappy
taglib
taglib_extras
]
++ (with kdePackages; [
qca
qt5compat
qtbase
qtdeclarative
qtwebengine
kcmutils
kcoreaddons
kdnssd
kio
kpackage
kstatusnotifieritem
ktexteditor
threadweaver
])
++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
]);
nativeBuildInputs = [
cmake
pkg-config
]
++ (with kdePackages; [
extra-cmake-modules
kdoctools
qttools
wrapQtAppsHook
]);
env.LANG = "C.UTF-8";
postInstall = ''
qtWrapperArgs+=(
--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
)
'';
meta = {
homepage = "https://amarok.kde.org";
description = "Powerful music player with an intuitive interface";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
mainProgram = "amarok";
};
})

View File

@@ -0,0 +1,46 @@
{
lib,
buildGoModule,
fetchFromGitHub,
pkg-config,
libpostalWithData,
}:
buildGoModule rec {
pname = "amass";
version = "5.0.1";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libpostalWithData ];
src = fetchFromGitHub {
owner = "OWASP";
repo = "Amass";
tag = "v${version}";
hash = "sha256-uAuBWzEwppnmYacfPI7MZUW+7PdSs3EqYm1WQI4fthQ=";
};
vendorHash = "sha256-/AowoZfOk2tib996oC2hsMnzbe/CVbCBesTWXp6xE6Y=";
# https://github.com/OWASP/Amass/issues/640
doCheck = false;
meta = {
description = "In-Depth DNS Enumeration and Network Mapping";
longDescription = ''
The OWASP Amass tool suite obtains subdomain names by scraping data
sources, recursive brute forcing, crawling web archives,
permuting/altering names and reverse DNS sweeping. Additionally, Amass
uses the IP addresses obtained during resolution to discover associated
netblocks and ASNs. All the information is then used to build maps of the
target networks.
'';
homepage = "https://owasp.org/www-project-amass/";
changelog = "https://github.com/OWASP/Amass/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
kalbasit
fab
];
mainProgram = "amass";
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
amazon-cloudwatch-agent,
buildGoModule,
fetchFromGitHub,
nix-update-script,
nixosTests,
stdenv,
versionCheckHook,
}:
buildGoModule rec {
pname = "amazon-cloudwatch-agent";
version = "1.300059.0";
src = fetchFromGitHub {
owner = "aws";
repo = "amazon-cloudwatch-agent";
tag = "v${version}";
hash = "sha256-xon1M3xusoFngeZ2CJprS1z4fcrWeKCKaAtAfv4SBWw=";
};
vendorHash = "sha256-79BaMjl1bzQcl3FUvpwRsPneQRyfabU481eLgWA1U6Y=";
# See the list in https://github.com/aws/amazon-cloudwatch-agent/blob/v1.300049.1/Makefile#L68-L77.
subPackages = [
"cmd/config-downloader"
"cmd/config-translator"
"cmd/amazon-cloudwatch-agent"
# Broken since it hardcodes the package install path. See https://github.com/aws/amazon-cloudwatch-agent/issues/1319.
# "cmd/start-amazon-cloudwatch-agent"
"cmd/amazon-cloudwatch-agent-config-wizard"
];
# See https://github.com/aws/amazon-cloudwatch-agent/blob/v1.300049.1/Makefile#L57-L64.
#
# Needed for "amazon-cloudwatch-agent -version" to not show "Unknown".
postInstall = ''
echo v${version} > $out/bin/CWAGENT_VERSION
'';
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/amazon-cloudwatch-agent";
versionCheckProgramArg = "-version";
passthru = {
tests = lib.optionalAttrs stdenv.hostPlatform.isLinux {
inherit (nixosTests) amazon-cloudwatch-agent;
};
updateScript = nix-update-script { };
};
meta = {
description = "CloudWatch Agent enables you to collect and export host-level metrics and logs on instances running Linux or Windows server";
homepage = "https://github.com/aws/amazon-cloudwatch-agent";
license = lib.licenses.mit;
mainProgram = "amazon-cloudwatch-agent";
maintainers = with lib.maintainers; [ pmw ];
};
}

View File

@@ -0,0 +1,124 @@
{
lib,
stdenv,
bash,
coreutils,
curl,
fetchFromGitHub,
gnugrep,
gnused,
installShellFiles,
iproute2,
makeBinaryWrapper,
nix-update-script,
systemd,
udevCheckHook,
util-linuxMinimal,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "amazon-ec2-net-utils";
version = "2.6.0";
src = fetchFromGitHub {
owner = "amazonlinux";
repo = "amazon-ec2-net-utils";
tag = "v${finalAttrs.version}";
hash = "sha256-PtnRgNmVrIGndLjYjXWWx85z4oxjn637iZqXd6OSiQg=";
};
strictDeps = true;
nativeBuildInputs = [
installShellFiles
makeBinaryWrapper
udevCheckHook
];
buildInputs = [
bash
];
# See https://github.com/amazonlinux/amazon-ec2-net-utils/blob/v2.5.4/GNUmakefile#L26-L37.
installPhase = ''
runHook preInstall
mkdir -p $out
for file in bin/*.sh; do
install -D -m 755 "$file" $out/bin/$(basename --suffix ".sh" "$file")
substituteInPlace $out/bin/$(basename --suffix ".sh" "$file") \
--replace-fail AMAZON_EC2_NET_UTILS_LIBDIR $out/share/amazon-ec2-net-utils
done
substituteInPlace $out/bin/setup-policy-routes \
--replace-fail /lib/systemd ${systemd}/lib/systemd
wrapProgram $out/bin/setup-policy-routes \
--prefix PATH : ${
lib.makeBinPath [
coreutils
# bin/setup-policy-roots.sh sources lib/lib.sh which needs these.
#
# lib/lib.sh isn't executable so we can't use it with wrapProgram.
curl
gnugrep
gnused
iproute2
systemd
util-linuxMinimal
]
}
for file in lib/*.sh; do
install -D -m 644 -t $out/share/amazon-ec2-net-utils "$file"
done
substituteInPlace $out/share/amazon-ec2-net-utils/lib.sh \
--replace-fail /usr/lib/systemd $out/lib/systemd
for file in udev/*.rules; do
install -D -m 644 -t $out/lib/udev/rules.d "$file"
done
substituteInPlace $out/lib/udev/rules.d/99-vpc-policy-routes.rules \
--replace-fail /usr/bin/systemctl ${lib.getExe' systemd "systemctl"}
for file in systemd/network/*.network; do
install -D -m 644 -t $out/lib/systemd/network "$file"
done
for file in systemd/system/*.{service,timer}; do
install -D -m 644 -t $out/lib/systemd/system "$file"
done
substituteInPlace $out/lib/systemd/system/policy-routes@.service \
--replace-fail /usr/bin/setup-policy-routes $out/bin/setup-policy-routes
substituteInPlace $out/lib/systemd/system/refresh-policy-routes@.service \
--replace-fail /usr/bin/setup-policy-routes $out/bin/setup-policy-routes
installManPage doc/*.8
runHook postInstall
'';
doInstallCheck = true;
outputs = [
"out"
"man"
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Contains a set of utilities for managing elastic network interfaces on Amazon EC2";
homepage = "https://github.com/amazonlinux/amazon-ec2-net-utils";
license = lib.licenses.asl20;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ sielicki ];
};
})

View File

@@ -0,0 +1,119 @@
{
lib,
bash,
coreutils,
curl,
fetchFromGitHub,
gawk,
gnugrep,
gnused,
installShellFiles,
makeWrapper,
nix-update-script,
python3,
stdenv,
udevCheckHook,
util-linux,
}:
stdenv.mkDerivation rec {
pname = "amazon-ec2-utils";
version = "2.2.0";
src = fetchFromGitHub {
owner = "amazonlinux";
repo = "amazon-ec2-utils";
tag = "v${version}";
hash = "sha256-plTBh2LAXkYVSxN0IZJQuPr7QxD7+OAqHl/Zl8JPCmg=";
};
strictDeps = true;
nativeBuildInputs = [
installShellFiles
makeWrapper
udevCheckHook
];
buildInputs = [
bash
python3
];
installPhase = ''
mkdir $out
for file in {ebsnvme-id,ec2-metadata,ec2nvme-nsid,ec2udev-vbd}; do
install -D -m 755 -t $out/bin "$file"
done
wrapProgram $out/bin/ec2-metadata \
--prefix PATH : ${
lib.makeBinPath [
coreutils
curl
util-linux
]
}
wrapProgram $out/bin/ec2nvme-nsid \
--prefix PATH : ${
lib.makeBinPath [
coreutils
]
}
wrapProgram $out/bin/ec2udev-vbd \
--prefix PATH : ${
lib.makeBinPath [
coreutils
gnugrep
gnused
]
}
for file in *.rules; do
install -D -m 644 -t $out/lib/udev/rules.d "$file"
done
substituteInPlace $out/lib/udev/rules.d/{51-ec2-hvm-devices,70-ec2-nvme-devices}.rules \
--replace-fail /usr/sbin $out/bin
substituteInPlace $out/lib/udev/rules.d/53-ec2-read-ahead-kb.rules \
--replace-fail /bin/awk ${gawk}/bin/awk
installManPage doc/*.8
'';
outputs = [
"out"
"man"
];
doInstallCheck = true;
# We can't run `ec2-metadata` since it calls IMDS even with `--help`.
installCheckPhase = ''
runHook preInstallCheck
$out/bin/ebsnvme-id --help
runHook postInstallCheck
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Contains a set of utilities and settings for Linux deployments in EC2";
homepage = "https://github.com/amazonlinux/amazon-ec2-utils";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
anthonyroussel
arianvp
ketzacoatl
thefloweringash
];
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
amazon-ecr-credential-helper,
}:
buildGoModule rec {
pname = "amazon-ecr-credential-helper";
version = "0.10.1";
src = fetchFromGitHub {
owner = "awslabs";
repo = "amazon-ecr-credential-helper";
tag = "v${version}";
sha256 = "sha256-ZlGXcU3oh/90lP6AjeaFvroZGHUIm0TPoKiKaYMGifA=";
};
vendorHash = null;
modRoot = "./ecr-login";
ldflags = [
"-s"
"-w"
"-X github.com/awslabs/amazon-ecr-credential-helper/ecr-login/version.Version=${version}"
];
passthru.tests.version = testers.testVersion {
package = amazon-ecr-credential-helper;
command = "docker-credential-ecr-login -v";
};
meta = with lib; {
description = "Amazon ECR Docker Credential Helper is a credential helper for the Docker daemon that makes it easier to use Amazon Elastic Container Registry";
homepage = "https://github.com/awslabs/amazon-ecr-credential-helper";
license = licenses.asl20;
maintainers = with maintainers; [ kalbasit ];
mainProgram = "docker-credential-ecr-login";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "amazon-ecs-cli";
version = "1.21.0";
src =
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-v${version}";
sha256 = "sEHwhirU2EYwtBRegiIvN4yr7VKtmy7e6xx5gZOkuY0=";
}
else if stdenv.hostPlatform.system == "x86_64-darwin" then
fetchurl {
url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-darwin-amd64-v${version}";
sha256 = "1viala49sifpcmgn3jw24h5bkrlm4ffadjiqagbxj3lr0r78i9nm";
}
else
throw "Architecture not supported";
dontUnpack = true;
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/ecs-cli
chmod +x $out/bin/ecs-cli
''; # */
meta = with lib; {
homepage = "https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI.html";
description = "Amazon ECS command line interface";
longDescription = "The Amazon Elastic Container Service (Amazon ECS) command line interface (CLI) provides high-level commands to simplify creating, updating, and monitoring clusters and tasks from a local development environment.";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.asl20;
maintainers = with maintainers; [ Scriptkiddi ];
platforms = [
"x86_64-linux"
"x86_64-darwin"
];
mainProgram = "ecs-cli";
};
}

View File

@@ -0,0 +1,85 @@
{
lib,
fetchFromGitHub,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "amazon-q-cli";
version = "1.17.1";
src = fetchFromGitHub {
owner = "aws";
repo = "amazon-q-developer-cli";
tag = "v${finalAttrs.version}";
hash = "sha256-bRin4JKnBsWLvk+dIwHWAf4KKD1n6FOf2wICYNZpHd4=";
};
nativeBuildInputs = [
rustPlatform.bindgenHook
];
cargoHash = "sha256-Isa7kxnov4D+Sd7b4LJW52TIR864CDFkAjAHJoVQRcA=";
cargoBuildFlags = [
"-p"
"chat_cli"
];
postInstall = ''
install -m 0755 $out/bin/chat_cli $out/bin/amazon-q
rm -f $out/bin/chat_cli $out/bin/test_mcp_server
'';
cargoTestFlags = [
"-p"
"chat_cli"
];
# skip integration tests that have external dependencies
checkFlags = [
"--skip=cli::chat::tests::test_flow"
"--skip=cli::init::tests::test_prompts"
"--skip=debug_get_index"
"--skip=debug_list_intellij_variants"
"--skip=debug_refresh_auth_token"
"--skip=local_state_all"
"--skip=local_state_get"
"--skip=settings_all"
"--skip=settings_get"
"--skip=user_whoami"
"--skip=init_lint_bash_post_bash_profile"
"--skip=init_lint_bash_post_bashrc"
"--skip=init_lint_bash_pre_bash_profile"
"--skip=init_lint_bash_pre_bashrc"
"--skip=init_lint_fish_pre_00_fig_pre"
"--skip=init_lint_zsh_post_zprofile"
"--skip=init_lint_zsh_post_zshrc"
"--skip=init_lint_zsh_pre_zprofile"
"--skip=init_lint_zsh_pre_zshrc"
"--skip=telemetry::cognito::test::pools"
"--skip=auth::pkce::tests::test_pkce_flow_with_state_mismatch_throws_err"
"--skip=auth::pkce::tests::test_pkce_flow_completes_successfully"
"--skip=auth::pkce::tests::test_pkce_flow_with_authorization_redirect_error"
"--skip=auth::pkce::tests::test_pkce_flow_with_timeout"
"--skip=request::tests::request_test"
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
versionCheckProgram = "${placeholder "out"}/bin/amazon-q";
versionCheckProgramArg = "--version";
meta = {
description = "Amazon Q Developer AI coding agent CLI";
homepage = "https://github.com/aws/amazon-q-developer-cli";
license = with lib.licenses; [
mit
asl20
];
mainProgram = "amazon-q";
maintainers = [ lib.maintainers.jamesward ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,44 @@
From bea6307ec2a77d90d59c13940381d73ec0f05b70 Mon Sep 17 00:00:00 2001
From: Graham Christensen <graham@grahamc.com>
Date: Mon, 1 Mar 2021 10:57:44 -0500
Subject: [PATCH] Disable NIC tests that fail in the Nix sandbox.
---
agent/managedInstances/fingerprint/fingerprint_integ_test.go | 2 ++
agent/ssm/service_test.go | 1 +
2 files changed, 3 insertions(+)
diff --git a/agent/managedInstances/fingerprint/fingerprint_integ_test.go b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
index a1f969ff..631ea1f5 100644
--- a/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+++ b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
@@ -28,12 +28,14 @@ func TestHostnameInfo(t *testing.T) {
}
func TestPrimaryIpInfo(t *testing.T) {
+ t.Skip("The Nix build sandbox has no non-loopback IPs, causing this test to fail.");
ip, err := primaryIpInfo()
assert.NoError(t, err, "expected no error fetching the primary ip")
assert.NotEmpty(t, ip, "expected to fetch primary ip")
}
func TestMacAddrInfo(t *testing.T) {
+ t.Skip("The Nix build sandbox has no non-loopback interfaces, causing this test to fail.");
mac, err := macAddrInfo()
assert.NoError(t, err, "expected no error fetching the mac addr")
assert.NotEmpty(t, mac, "expected to fetch mac address")
diff --git a/agent/ssm/service_test.go b/agent/ssm/service_test.go
index f4b34f83..d8216dba 100644
--- a/agent/ssm/service_test.go
+++ b/agent/ssm/service_test.go
@@ -85,6 +85,7 @@ func (suite *SsmServiceTestSuite) TestUpdateEmptyInstanceInformation() {
// Test function for update instance information
// This function update the agent name, agent statuc, and agent version.
func (suite *SsmServiceTestSuite) TestUpdateInstanceInformation() {
+ suite.T().Skip("The Nix build sandbox has no interfaces for IP and MAC address reports.");
// Give mock value to test UpdateInstanceInformation, assert the error is nil, assert the log.Debug function get called.
response, err := suite.sdkService.UpdateInstanceInformation(suite.logMock, "2.2.3.2", "active", "Amazon-ssm-agent")
assert.Nil(suite.T(), err, "Err should be nil")
--
2.29.2

View File

@@ -0,0 +1,46 @@
From 473e3f8544915a35b3a45c548743978b34e5310e Mon Sep 17 00:00:00 2001
From: Cole Helbling <cole.e.helbling@outlook.com>
Date: Tue, 2 Mar 2021 00:24:00 -0800
Subject: [PATCH] version-gen: don't use unnecessary constants
This prevents the tool from being built with Nix, because this project
doesn't use Go modules (or something; I'm not really familiar with Go,
much less Go + Nix).
---
agent/version/versiongenerator/version-gen.go | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/agent/version/versiongenerator/version-gen.go b/agent/version/versiongenerator/version-gen.go
index d710effc..55c9a001 100644
--- a/agent/version/versiongenerator/version-gen.go
+++ b/agent/version/versiongenerator/version-gen.go
@@ -22,8 +22,6 @@ import (
"path/filepath"
"strings"
"text/template"
-
- "github.com/aws/amazon-ssm-agent/agent/appconfig"
)
const versiongoTemplate = `// This is an autogenerated file and should not be edited.
@@ -59,7 +57,7 @@ func main() {
versionStr := strings.TrimSpace(string(versionContent))
fmt.Printf("Agent Version: %v", versionStr)
- if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), appconfig.ReadWriteAccess); err != nil {
+ if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), 0600); err != nil {
log.Fatalf("Error writing to VERSION file. %v", err)
}
@@ -108,7 +106,7 @@ func main() {
releaseNoteOutFile := strings.Join(releaseNoteLines, "\n")
- if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), appconfig.ReadWriteAccess); err != nil {
+ if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), 0600); err != nil {
log.Fatalf("Error writing to RELEASENOTES.md file. %v", err)
}
--
2.30.0

View File

@@ -0,0 +1,182 @@
{
lib,
writeShellScriptBin,
buildGoModule,
makeWrapper,
darwin,
fetchFromGitHub,
coreutils,
net-tools,
util-linux,
stdenv,
dmidecode,
bashInteractive,
nix-update-script,
nixosTests,
testers,
amazon-ssm-agent,
}:
let
# Tests use lsb_release, so we mock it (the SSM agent used to not
# read from our /etc/os-release file, but now it does) because in
# reality, it won't (shouldn't) be used when active on a system with
# /etc/os-release. If it is, we fake the only two fields it cares about.
fake-lsb-release = writeShellScriptBin "lsb_release" ''
. /etc/os-release || true
case "$1" in
-i) echo "''${NAME:-unknown}";;
-r) echo "''${VERSION:-unknown}";;
esac
'';
binaries = {
"core" = "amazon-ssm-agent";
"agent" = "ssm-agent-worker";
"cli-main" = "ssm-cli";
"worker" = "ssm-document-worker";
"logging" = "ssm-session-logger";
"sessionworker" = "ssm-session-worker";
};
in
buildGoModule rec {
pname = "amazon-ssm-agent";
version = "3.3.2299.0";
src = fetchFromGitHub {
owner = "aws";
repo = "amazon-ssm-agent";
tag = version;
hash = "sha256-8jqsAGnfn6+a+Zs9XfIyHzG/+jPO+UoSVsm0GHthq3E=";
};
vendorHash = null;
patches = [
# Some tests use networking, so we skip them.
./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
# They used constants from another package that I couldn't figure
# out how to resolve, so hardcoded the constants.
./0002-version-gen-don-t-use-unnecessary-constants.patch
];
nativeBuildInputs = [
makeWrapper
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
darwin.DarwinTools
];
# See the list https://github.com/aws/amazon-ssm-agent/blob/3.2.2143.0/makefile#L121-L147
# The updater is not built because it cannot work on NixOS
subPackages = [
"core"
"agent"
"agent/cli-main"
"agent/framework/processor/executer/outofproc/sessionworker"
"agent/framework/processor/executer/outofproc/worker"
"agent/session/logging"
];
ldflags = [
"-s"
"-w"
];
postPatch = ''
printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh
substituteInPlace agent/platform/platform_unix.go \
--replace-fail "/usr/bin/uname" "${coreutils}/bin/uname" \
--replace-fail '"/bin", "hostname"' '"${net-tools}/bin/hostname"' \
--replace-fail '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"'
substituteInPlace agent/session/shell/shell_unix.go \
--replace-fail '"script"' '"${util-linux}/bin/script"'
substituteInPlace agent/rebooter/rebooter_unix.go \
--replace-fail "/sbin/shutdown" "shutdown"
echo "${version}" > VERSION
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \
--replace-fail /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode
'';
preBuild = ''
# Note: if this step fails, please patch the code to fix it! Please only skip
# tests if it is not feasible for the test to pass in a sandbox.
make quick-integtest
make pre-release
make pre-build
'';
installPhase = ''
runHook preInstall
declare -A map=(${
builtins.concatStringsSep " " (
lib.mapAttrsToList (name: value: "[\"${name}\"]=\"${value}\"") binaries
)
})
for key in ''${!map[@]}; do
install -D -m 0555 -T "$GOPATH/bin/''${key}" "$out/bin/''${map[''${key}]}"
done
# These templates retain their `.template` extensions on installation. The
# amazon-ssm-agent.json.template is required as default configuration when an
# amazon-ssm-agent.json isn't present. Here, we retain the template to show
# we're using the default configuration.
# seelog.xml isn't actually required to run, but it does ship as a template
# with debian packages, so it's here for reference. Future work in the nixos
# module could use this template and substitute a different log level.
install -D -m 0444 -t $out/etc/amazon/ssm amazon-ssm-agent.json.template
install -D -m 0444 -T seelog_unix.xml $out/etc/amazon/ssm/seelog.xml.template
runHook postInstall
'';
checkFlags = [
# Skip time dependent/flaky test
"-skip=TestSendStreamDataMessageWithStreamDataSequenceNumberMutexLocked"
"-skip=TestParallelAccessOfQueue"
];
postFixup = ''
wrapProgram $out/bin/amazon-ssm-agent \
--prefix PATH : "${lib.makeBinPath [ bashInteractive ]}"
'';
passthru = {
tests = {
inherit (nixosTests) amazon-ssm-agent;
version = testers.testVersion {
package = amazon-ssm-agent;
command = "amazon-ssm-agent --version";
};
};
updateScript = nix-update-script { };
};
__darwinAllowLocalNetworking = true;
meta = {
description = "Agent to enable remote management of your Amazon EC2 instance configuration";
changelog = "https://github.com/aws/amazon-ssm-agent/releases/tag/${version}";
homepage = "https://github.com/aws/amazon-ssm-agent";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
manveru
anthonyroussel
arianvp
];
};
}

View File

@@ -0,0 +1,29 @@
From cae2ad70d6202bc97623be8c7c123ee2736a4644 Mon Sep 17 00:00:00 2001
From: aleksana <me@aleksana.moe>
Date: Sun, 9 Mar 2025 21:19:27 +0800
Subject: [PATCH] replace_regex: remove bash word boundary when detecting
gnused
Bash linked against C libraries other than GLibc may not support GNU
extensions of POSIX Extended Regular Regex. For example,
> re='\bx'; [[ 'x' =~ $re ]] && echo "1"
does not output the same result on Linux/GLibc and macOS.
---
src/std/text.ab | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/std/text.ab b/src/std/text.ab
index fe071e33..82449a02 100644
--- a/src/std/text.ab
+++ b/src/std/text.ab
@@ -19,7 +19,7 @@ pub fun replace_regex(source: Text, search: Text, replace: Text, extended: Bool
// GNU sed versions 4.0 through 4.2 support extended regex syntax,
// but only via the "-r" option; use that if the version information
// contains "GNU sed".
- $ re='\bCopyright\b.+\bFree Software Foundation\b'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $
+ $ re='Copyright.+Free Software Foundation'; [[ \$(sed --version 2>/dev/null) =~ \$re ]] $
let flag = status == 0 then "-r" else "-E"
return $ echo "{source}" | sed "{flag}" -e "s/{search}/{replace}/g" $
} else {

View File

@@ -0,0 +1,83 @@
{
lib,
fetchFromGitHub,
rustPlatform,
bc,
util-linux,
gnused,
makeWrapper,
installShellFiles,
stdenv,
runCommand,
amber-lang,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "amber-lang";
version = "0.4.0-alpha";
src = fetchFromGitHub {
owner = "amber-lang";
repo = "amber";
tag = version;
hash = "sha256-N9G/2G8+vrpr1/K7XLwgW+X2oAyAaz4qvN+EbLOCU1Q=";
};
patches = [
# https://github.com/amber-lang/amber/pull/686
./fix_gnused_detection.patch
];
cargoHash = "sha256-e5+L7Qgd6hyqT1Pb9X7bVtRr+xm428Z5J4hhsYNnGtU=";
preConfigure = ''
substituteInPlace src/compiler.rs \
--replace-fail 'Command::new("/usr/bin/env")' 'Command::new("env")'
'';
nativeBuildInputs = [
makeWrapper
installShellFiles
];
nativeCheckInputs = [
bc
# 'rev' in generated bash script of test
# tests::validity::variable_ref_function_invocation
util-linux
];
checkFlags = [
"--skip=tests::extra::download"
"--skip=tests::formatter::all_exist"
];
postInstall = ''
wrapProgram "$out/bin/amber" --prefix PATH : "${lib.makeBinPath [ bc ]}"
''
+ lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd amber \
--bash <($out/bin/amber completion)
'';
passthru = {
updateScript = nix-update-script { };
tests.run = runCommand "amber-lang-eval-test" { nativeBuildInputs = [ amber-lang ]; } ''
diff -U3 --color=auto <(amber eval 'echo "Hello, World"') <(echo 'Hello, World')
touch $out
'';
};
meta = with lib; {
description = "Programming language compiled to bash";
homepage = "https://amber-lang.com";
license = licenses.gpl3Plus;
mainProgram = "amber";
maintainers = with maintainers; [
cafkafk
aleksana
];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
fetchFromGitHub,
rustPlatform,
}:
rustPlatform.buildRustPackage rec {
# Renaming it to amber-secret because another package named amber exists
pname = "amber-secret";
version = "0.1.7";
src = fetchFromGitHub {
owner = "fpco";
repo = "amber";
tag = "v${version}";
hash = "sha256-nduSnDhLvHpZD7Y1zeZC4nNL7P1qfLWc0yMpsdqrKHM=";
};
cargoHash = "sha256-Gwj0rnbKWifja5NJwskcrFpPoK15HjSQHXolGbgV784=";
meta = {
description = "Manage secret values in-repo via public key cryptography";
homepage = "https://github.com/fpco/amber";
changelog = "https://github.com/fpco/amber/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ psibi ];
mainProgram = "amber";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
ninja,
sassc,
gdk-pixbuf,
librsvg,
gtk_engines,
gtk-engine-murrine,
}:
stdenv.mkDerivation rec {
pname = "amber-theme";
version = "3.38-1";
src = fetchFromGitHub {
owner = "lassekongo83";
repo = "amber-theme";
tag = "v${version}";
sha256 = "sha256-OrdBeAD+gdIu6u8ESE9PtqYadSuJ8nx1Z8fB4D9y4W4=";
};
nativeBuildInputs = [
meson
ninja
sassc
];
buildInputs = [
gdk-pixbuf
librsvg
gtk_engines
];
propagatedUserEnvPkgs = [ gtk-engine-murrine ];
meta = with lib; {
description = "GTK, gnome-shell and Xfce theme based on Ubuntu Ambiance";
homepage = "https://github.com/lassekongo83/amber-theme";
license = licenses.gpl3Only;
platforms = platforms.linux;
maintainers = [ maintainers.romildo ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitHub,
rustPlatform,
libiconv,
}:
rustPlatform.buildRustPackage rec {
pname = "amber";
version = "0.6.0";
src = fetchFromGitHub {
owner = "dalance";
repo = "amber";
tag = "v${version}";
sha256 = "sha256-q0o2PQngbDLumck27V0bIiB35zesn55Y+MwK2GjNVWo=";
};
cargoHash = "sha256-UFuWD3phcKuayQITd85Sou4ygDBMzjrR39vWrlseYJQ=";
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
];
meta = with lib; {
description = "Code search-and-replace tool";
homepage = "https://github.com/dalance/amber";
license = with licenses; [ mit ];
maintainers = [ maintainers.bdesham ];
};
}

View File

@@ -0,0 +1,88 @@
{
lib,
stdenv,
fetchFromGitLab,
rustPlatform,
cargo,
desktop-file-utils,
appstream-glib,
meson,
ninja,
pkg-config,
reuse,
rustc,
m4,
wrapGAppsHook4,
glib,
gtk4,
gst_all_1,
libadwaita,
dbus,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "amberol";
version = "2025.1";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "World";
repo = "amberol";
tag = version;
hash = "sha256-vF6O7+cQFoYpO4MHHHuacwjP7AUqFQCVUivCSZO7v3o=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit src;
name = "amberol-${version}";
hash = "sha256-j/xkdLcmu02e+b8skx5U3uG2R2rIxwSJsYzyJ5tn5uU=";
};
postPatch = ''
patchShebangs build-aux
'';
nativeBuildInputs = [
appstream-glib
cargo
desktop-file-utils
m4
meson
ninja
pkg-config
reuse
rustc
rustPlatform.cargoSetupHook
wrapGAppsHook4
];
buildInputs = [
dbus
glib
gtk4
libadwaita
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
gst-libav
]);
passthru = {
updateScript = nix-update-script { };
};
meta = {
homepage = "https://gitlab.gnome.org/World/amberol";
description = "Small and simple sound and music player";
maintainers = with lib.maintainers; [ linsui ];
teams = [ lib.teams.gnome-circle ];
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
mainProgram = "amberol";
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/configure b/configure
index d96114619..119040151 100755
--- a/configure
+++ b/configure
@@ -1913,7 +1913,7 @@ set_default_version()
echo "${script_name}: determining default version string."
# Use what's in the version file as-is.
- version="AOCL-BLAS $(cat "${version_file}") Build $(date +%Y%m%d)"
+ version="AOCL-BLAS $(cat "${version_file}") Build $(date -d "@$SOURCE_DATE_EPOCH" +%Y%m%d)"
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
perl,
python3,
# Enable BLAS interface with 64-bit integer width.
blas64 ? false,
# Target architecture. "amdzen" compiles kernels for all Zen
# generations. To build kernels for specific Zen generations,
# use "zen", "zen2", "zen3", "zen4", or "zen5".
withArchitecture ? "amdzen",
# Enable OpenMP-based threading.
withOpenMP ? true,
}:
let
threadingSuffix = lib.optionalString withOpenMP "-mt";
blasIntSize = if blas64 then "64" else "32";
in
stdenv.mkDerivation (finalAttrs: {
pname = "amd-blis";
version = "5.1";
src = fetchFromGitHub {
owner = "amd";
repo = "blis";
rev = finalAttrs.version;
hash = "sha256-hqb/Q1CBqtC4AXqHNd7voewGUD675hJ9IwvP3Mn9b+M=";
};
patches = [
# Set the date stamp to $SOURCE_DATE_EPOCH
./build-date.patch
];
inherit blas64;
nativeBuildInputs = [
perl
python3
];
# Tests currently fail with non-Zen CPUs due to a floating point
# exception in one of the generic kernels. Try to re-enable the
# next release.
doCheck = false;
enableParallelBuilding = true;
configureFlags = [
"--enable-cblas"
"--blas-int-size=${blasIntSize}"
]
++ lib.optionals withOpenMP [ "--enable-threading=openmp" ]
++ [ withArchitecture ];
postPatch = ''
patchShebangs configure build/flatten-headers.py
'';
postInstall = ''
ls $out/lib
ln -s $out/lib/libblis${threadingSuffix}.so $out/lib/libblas.so.3
ln -s $out/lib/libblis${threadingSuffix}.so $out/lib/libcblas.so.3
ln -s $out/lib/libblas.so.3 $out/lib/libblas.so
ln -s $out/lib/libcblas.so.3 $out/lib/libcblas.so
'';
meta = {
description = "BLAS-compatible library optimized for AMD CPUs";
homepage = "https://developer.amd.com/amd-aocl/blas-library/";
license = lib.licenses.bsd3;
maintainers = [ lib.maintainers.markuskowa ];
platforms = [ "x86_64-linux" ];
};
})

View File

@@ -0,0 +1,74 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
gfortran,
python3,
amd-blis,
aocl-utils,
withOpenMP ? true,
blas64 ? false,
withAMDOpt ? true,
}:
stdenv.mkDerivation rec {
pname = "amd-libflame";
version = "5.1";
src = fetchFromGitHub {
owner = "amd";
repo = "libflame";
tag = version;
hash = "sha256-9Z0e6RCJfqQlq3oT4fBu8rwPH1OWEKQ52rVDa0Y0rJU=";
};
postPatch = ''
patchShebangs build
# Enforce reproducible build compiler flags
substituteInPlace CMakeLists.txt --replace '-mtune=native' ""
'';
env.NIX_CFLAGS_COMPILE = "-Wno-implicit-function-declaration";
passthru = {
inherit blas64;
};
nativeBuildInputs = [
cmake
gfortran
python3
];
buildInputs = [
amd-blis
aocl-utils
];
cmakeFlags = [
"-DLIBAOCLUTILS_LIBRARY_PATH=${lib.getLib aocl-utils}/lib/libaoclutils${stdenv.hostPlatform.extensions.sharedLibrary}"
"-DLIBAOCLUTILS_INCLUDE_PATH=${lib.getDev aocl-utils}/include"
"-DENABLE_BUILTIN_LAPACK2FLAME=ON"
"-DENABLE_CBLAS_INTERFACES=ON"
"-DENABLE_EXT_LAPACK_INTERFACE=ON"
]
++ lib.optional (!withOpenMP) "-DENABLE_MULTITHREADING=OFF"
++ lib.optional blas64 "-DENABLE_ILP64=ON"
++ lib.optional withAMDOpt "-DENABLE_AMD_OPT=ON";
postInstall = ''
ln -s $out/lib/libflame.so $out/lib/liblapack.so.3
ln -s $out/lib/libflame.so $out/lib/liblapacke.so.3
'';
meta = with lib; {
description = "LAPACK-compatible linear algebra library optimized for AMD CPUs";
homepage = "https://developer.amd.com/amd-aocl/blas-library/";
license = licenses.bsd3;
maintainers = [ maintainers.markuskowa ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
nix-update-script,
callPackage,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "amd-ucodegen";
version = "0-unstable-2017-06-07";
src = fetchFromGitHub {
owner = "AndyLavr";
repo = "amd-ucodegen";
rev = "0d34b54e396ef300d0364817e763d2c7d1ffff02";
hash = "sha256-pgmxzd8tLqdQ8Kmmhl05C5tMlCByosSrwx2QpBu3UB0=";
};
strictDeps = true;
patches = [
# Extract get_family function and validate processor family
# instead of processor ID
(fetchpatch {
name = "validate-family-not-id.patch";
url = "https://github.com/AndyLavr/amd-ucodegen/compare/0d34b54e396ef300d0364817e763d2c7d1ffff02...dobo90:amd-ucodegen:7a3c51e821df96910ecb05b22f3e4866b4fb85b2.patch";
hash = "sha256-jvsvu9QgXikwsxjPiTaRff+cOg/YQmKg1MYKyBoMRQI=";
})
];
installPhase = ''
runHook preInstall
install -Dm755 amd-ucodegen $out/bin/amd-ucodegen
runHook postInstall
'';
passthru = {
updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
tests.platomav = callPackage ./test-platomav.nix { amd-ucodegen = finalAttrs.finalPackage; };
};
meta = {
description = "Tool to generate AMD microcode files";
longDescription = ''
This tool can be used to generate AMD microcode containers as used by the
Linux kernel. It accepts raw AMD microcode files such as those generated
by [MCExtractor](https://github.com/platomav/MCExtractor.git) as input.
The generated output file can be installed in /lib/firmware/amd-ucode.
'';
homepage = "https://github.com/AndyLavr/amd-ucodegen";
license = lib.licenses.gpl2Only;
platforms = lib.platforms.unix;
mainProgram = "amd-ucodegen";
maintainers = with lib.maintainers; [ d-brasher ];
};
})

View File

@@ -0,0 +1,40 @@
{
stdenvNoCC,
fetchFromGitHub,
amd-ucodegen,
}:
stdenvNoCC.mkDerivation {
name = "amd-ucodegen-test-platomav";
meta.timeout = 60;
# Repository of dumped CPU microcodes
src = fetchFromGitHub {
owner = "platomav";
repo = "CPUMicrocodes";
rev = "dfc37d654cbe294acb0ec0274763321507dd7838";
hash = "sha256-Va+ErKID5iyKEee61tlrZwSpujxwMYPC+MAgZKUkrrM=";
};
nativeBuildInputs = [ amd-ucodegen ];
buildPhase = ''
runHook preBuild
echo -n "Test normal behavior with single input... "
[ "$(amd-ucodegen AMD/cpu00B40F40_ver0B40401A_2024-06-14_544DFCB8.bin)" \
== "CPU type 0xb40f40 [0xb440], file AMD/cpu00B40F40_ver0B40401A_2024-06-14_544DFCB8.bin" ]
echo "OK"
echo -n "Check output hash... "
[ "$(sha256sum microcode_amd_fam1ah.bin)" \
== "17f25ec78fa677803684e77ce01a21344b4b33463a964f61bae51b173543b190 microcode_amd_fam1ah.bin" ]
echo "OK"
echo -n "Ensure fail when bad processor ID... "
[ "$(amd-ucodegen AMD/cpu00000F00_ver02000008_2007-06-14_C3A923BB.bin 2>&1)" \
== "Bad processor ID 0x0n" ]
echo "OK"
touch $out
runHook postBuild
'';
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "amdctl";
version = "0.11";
src = fetchFromGitHub {
owner = "kevinlekiller";
repo = "amdctl";
tag = "v${version}";
hash = "sha256-2wBk/9aAD7ARMGbcVxk+CzEvUf8U4RS4ZwTCj8cHNNo=";
};
installPhase = ''
runHook preInstall
install -Dm755 amdctl $out/bin/amdctl
runHook postInstall
'';
meta = with lib; {
description = "Set P-State voltages and clock speeds on recent AMD CPUs on Linux";
mainProgram = "amdctl";
homepage = "https://github.com/kevinlekiller/amdctl";
license = licenses.gpl3Plus;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
dpkg,
autoPatchelfHook,
}:
let
amdgpuVersion = "6.1.3";
ubuntuVersion = "22.04";
in
stdenv.mkDerivation (finalAttrs: {
pname = "amdenc";
version = "1.0-1787253";
src = fetchurl {
url = "https://repo.radeon.com/amdgpu/${amdgpuVersion}/ubuntu/pool/proprietary/liba/libamdenc-amdgpu-pro/libamdenc-amdgpu-pro_${finalAttrs.version}.${ubuntuVersion}_amd64.deb";
hash = "sha256-RSkWQ3g++uKVrk5J9R8WA6qL0f+B2z8/mlflQ/cQZcg=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [ (lib.getLib stdenv.cc.cc) ];
installPhase = ''
runHook preInstall
install -Dm755 opt/amdgpu-pro/lib/x86_64-linux-gnu/* -t $out/lib
runHook postInstall
'';
meta = {
description = "AMD Encode Core Library";
homepage = "https://www.amd.com/en/support/download/drivers.html";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [ jopejoe1 ];
};
})

View File

@@ -0,0 +1,65 @@
{
lib,
rustPlatform,
fetchFromGitHub,
libdrm,
libX11,
libGL,
wayland,
wayland-protocols,
libxkbcommon,
libXrandr,
libXi,
libXcursor,
nix-update-script,
}:
rustPlatform.buildRustPackage rec {
pname = "amdgpu_top";
version = "0.11.0";
src = fetchFromGitHub {
owner = "Umio-Yasuno";
repo = "amdgpu_top";
tag = "v${version}";
hash = "sha256-ZXvTLzEjH+R59GqRzDcdtNI7MD7SpG89Wm32KdgEAgg=";
};
cargoHash = "sha256-L9vQHht7sZCosKTiMS77IG2WOOTmnMbLQqN8SInU6zM=";
buildInputs = [
libdrm
libX11
libGL
wayland
wayland-protocols
libxkbcommon
libXrandr
libXi
libXcursor
];
postInstall = ''
install -D ./assets/amdgpu_top.desktop -t $out/share/applications/
install -D ./assets/amdgpu_top-tui.desktop -t $out/share/applications/
'';
postFixup = ''
patchelf --set-rpath "${lib.makeLibraryPath buildInputs}" $out/bin/${pname}
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Tool to display AMDGPU usage";
homepage = "https://github.com/Umio-Yasuno/amdgpu_top";
changelog = "https://github.com/Umio-Yasuno/amdgpu_top/releases";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
geri1701
Gliczy
];
platforms = lib.platforms.linux;
mainProgram = "amdgpu_top";
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
fetchFromGitHub,
crystal_1_15,
versionCheckHook,
}:
let
# Use the same Crystal minor version as specified in upstream
crystal = crystal_1_15;
in
crystal.buildCrystalPackage rec {
pname = "ameba-ls";
version = "0.1.0";
src = fetchFromGitHub {
owner = "crystal-lang-tools";
repo = "ameba-ls";
tag = "v${version}";
hash = "sha256-TEHjR+34wrq24XJNLhWZCEzcDEMDlmUHv0iiF4Z6JlI=";
};
shardsFile = ./shards.nix;
crystalBinaries.ameba-ls.src = "src/ameba-ls.cr";
buildTargets = [
"ameba-ls"
];
# There are no actual tests
doCheck = false;
installPhase = ''
runHook preInstall
install -Dm555 bin/ameba-ls -t "$out/bin/"
runHook postInstall
'';
nativeInstallCheckInputs = [
versionCheckHook
];
doInstallCheck = true;
versionCheckProgram = "${placeholder "out"}/bin/ameba-ls";
versionCheckProgramArg = "--version";
meta = {
description = "Crystal language server powered by Ameba linter";
homepage = "https://github.com/crystal-lang-tools/ameba-ls";
changelog = "https://github.com/crystal-lang-tools/ameba-ls/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
kachick
];
mainProgram = "ameba-ls";
};
}

View File

@@ -0,0 +1,27 @@
{
ameba = {
url = "https://github.com/crystal-ameba/ameba.git";
rev = "a21dea0b44642f4fc87429283f8b0dd9f1e47a9f";
sha256 = "1kzr4ynd4r5w87y2czzrlir1dvqmv43ijm07804kgsy1g20k00fs";
};
larimar = {
url = "https://github.com/nobodywasishere/larimar.git";
rev = "97d37e665f7189a7ec35f54fb65003a8438d6cf0";
sha256 = "0s5hnfdybwbfk8sbjzrly2p6xppc5niww14h9cx00xkm8m1rlyj2";
};
lsprotocol = {
url = "https://github.com/nobodywasishere/lsprotocol-crystal.git";
rev = "28986890c7657af4aefea8355ca3f3c7fc2bc9dd";
sha256 = "0pccgq5g87mnvrhpgw3j22p3wgch8kp1svxcrbz2dha7zvgn65kj";
};
rwlock = {
url = "https://github.com/spider-gazelle/readers-writer.git";
tag = "v1.0.7";
sha256 = "1cs4ang50cza7sb5zh94rl1ppwcn9z1l8jjcsshhy4w72wkbqyny";
};
tree_sitter = {
url = "https://github.com/crystal-lang-tools/crystal-tree-sitter.git";
rev = "1d46ca231a641b30b8e7fbbae7eba050f7717a9f";
sha256 = "16g0ii3b3pmpnwmx2iz9dr1865pgfka7a724dfj62csjavqm5i1k";
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
fetchFromGitHub,
crystal,
coreutils,
}:
crystal.buildCrystalPackage rec {
pname = "ameba";
version = "1.6.4";
src = fetchFromGitHub {
owner = "crystal-ameba";
repo = "ameba";
tag = "v${version}";
hash = "sha256-2gEwgXjB6zcJQAdUGQfZFe8WcqT5fyb8Qbxk0qwn+c8=";
};
format = "make";
installFlags = [ "INSTALL_BIN=${coreutils}/bin/install" ];
meta = {
description = "Static code analysis tool for Crystal";
mainProgram = "ameba";
homepage = "https://crystal-ameba.github.io";
changelog = "https://github.com/crystal-ameba/ameba/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation rec {
pname = "amf-headers";
version = "1.4.36";
src = fetchFromGitHub {
owner = "GPUOpen-LibrariesAndSDKs";
repo = "AMF";
tag = "v${version}";
sha256 = "sha256-0PgWEq+329/EhI0/CgPsCkJ4CiTsFe56w2O+AcjVUdc=";
};
installPhase = ''
mkdir -p $out/include/AMF
cp -r amf/public/include/* $out/include/AMF
'';
meta = with lib; {
description = "Headers for The Advanced Media Framework (AMF)";
homepage = "https://github.com/GPUOpen-LibrariesAndSDKs/AMF";
license = licenses.mit;
maintainers = with maintainers; [ devusb ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchurl,
dpkg,
libdrm,
amdenc,
autoPatchelfHook,
}:
let
amdgpuVersion = "6.1.3";
ubuntuVersion = "22.04";
in
stdenv.mkDerivation (finalAttrs: {
pname = "amf";
version = "1.4.34-1787253";
src = fetchurl {
url = "https://repo.radeon.com/amdgpu/${amdgpuVersion}/ubuntu/pool/proprietary/a/amf-amdgpu-pro/amf-amdgpu-pro_${finalAttrs.version}.${ubuntuVersion}_amd64.deb";
hash = "sha256-5sMI0ktqQDTu5xOKP9T9vjaSIHQizF1wHhqJcVnY40c=";
};
nativeBuildInputs = [
dpkg
autoPatchelfHook
];
buildInputs = [
libdrm
amdenc
];
installPhase = ''
runHook preInstall
install -Dm755 opt/amdgpu-pro/lib/x86_64-linux-gnu/* -t $out/lib
runHook postInstall
'';
preFixup = ''
patchelf $out/lib/* --add-needed libamdenc64.so
'';
meta = {
description = "AMD's closed source Advanced Media Framework (AMF) driver";
homepage = "https://www.amd.com/en/support/download/drivers.html";
license = lib.licenses.unfree;
platforms = [ "x86_64-linux" ];
sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
maintainers = with lib.maintainers; [ jopejoe1 ];
};
})

View File

@@ -0,0 +1,34 @@
{
stdenv,
lib,
fetchFromGitHub,
buildGoModule,
}:
buildGoModule rec {
pname = "amfora";
version = "1.11.0";
src = fetchFromGitHub {
owner = "makeworld-the-better-one";
repo = "amfora";
tag = "v${version}";
hash = "sha256-6nY/wVqhSm+ZLA8ktrgmxoYiHK1r96aNbSf8+1YMXf8=";
};
vendorHash = "sha256-zZuFZtG0KKJ29t/9XyjRPIvyZqItxH2KwyKcAx3nuNM=";
postInstall = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
sed -i "s:amfora:$out/bin/amfora:" amfora.desktop
install -Dm644 amfora.desktop -t $out/share/applications
'';
meta = {
description = "Fancy terminal browser for the Gemini protocol";
mainProgram = "amfora";
homepage = "https://github.com/makeworld-the-better-one/amfora";
license = with lib.licenses; [ gpl3 ];
maintainers = with lib.maintainers; [ deifactor ];
changelog = "https://github.com/makeworld-the-better-one/amfora/blob/v${version}/CHANGELOG.md";
};
}

View File

@@ -0,0 +1,109 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
copyDesktopItems,
makeWrapper,
flac,
libmpeg2,
libmpg123,
libpng,
libserialport,
portmidi,
SDL2,
SDL2_image,
SDL2_ttf,
makeDesktopItem,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "amiberry";
version = "5.7.4";
src = fetchFromGitHub {
owner = "BlitterStudio";
repo = "amiberry";
tag = "v${finalAttrs.version}";
hash = "sha256-EOoVJYefX2pQ2Zz9bLD1RS47u/+7ZWTMwZYha0juF64=";
};
nativeBuildInputs = [
cmake
copyDesktopItems
makeWrapper
];
buildInputs = [
flac
libmpeg2
libmpg123
libpng
libserialport
portmidi
SDL2
SDL2_image
SDL2_ttf
];
enableParallelBuilding = true;
# Amiberry has traditionally behaved as a "Portable" app, meaning that it was designed to expect everything
# under the same directory. This is not compatible with Nix package conventions.
# The Amiberry behavior has changed since versions 5.7.4 and 6.3.4 (see
# https://github.com/BlitterStudio/amiberry/wiki/FAQ#q-where-does-amiberry-look-for-its-files-can-i-change-that
# for more information), however this is still not compatible with Nix packaging. The AMIBERRY_DATA_DIR can go
# in the nix store but the Amiberry configuration files must be stored in a user writable location.
# Fortunately Amiberry provides environment variables for specifying these locations which we can supply with the
# wrapper script below.
# One more caveat: Amiberry expects the configuration files path (AMIBERRY_HOME_DIR) to exist, otherwise it will
# fall back to behaving like a "Portable" app. The wrapper below ensures that the AMIBERRY_HOME_DIR path exists,
# preventing that fallback.
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp amiberry $out/bin/
cp -r abr data $out/
install -Dm444 data/amiberry.png $out/share/icons/hicolor/256x256/apps/amiberry.png
wrapProgram $out/bin/amiberry \
--set-default AMIBERRY_DATA_DIR $out \
--run 'AMIBERRY_HOME_DIR="$HOME/.amiberry"' \
--run 'mkdir -p \
$AMIBERRY_HOME_DIR/kickstarts \
$AMIBERRY_HOME_DIR/conf \
$AMIBERRY_HOME_DIR/nvram \
$AMIBERRY_HOME_DIR/plugins \
$AMIBERRY_HOME_DIR/screenshots \
$AMIBERRY_HOME_DIR/savestates \
$AMIBERRY_HOME_DIR/controllers \
$AMIBERRY_HOME_DIR/whdboot \
$AMIBERRY_HOME_DIR/lha \
$AMIBERRY_HOME_DIR/floppies \
$AMIBERRY_HOME_DIR/cdroms \
$AMIBERRY_HOME_DIR/harddrives'
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "amiberry";
desktopName = "Amiberry";
exec = "amiberry";
comment = "Amiga emulator";
icon = "amiberry";
categories = [
"System"
"Emulator"
];
})
];
meta = with lib; {
homepage = "https://github.com/BlitterStudio/amiberry";
description = "Optimized Amiga emulator for Linux/macOS";
license = licenses.gpl3;
platforms = platforms.linux;
maintainers = [ ];
mainProgram = "amiberry";
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchurl,
makeWrapper,
jre,
}:
stdenv.mkDerivation rec {
pname = "amidst";
version = "4.7";
src = fetchurl {
# TODO: Compile from src
url = "https://github.com/toolbox4minecraft/amidst/releases/download/v${version}/amidst-v${
lib.replaceStrings [ "." ] [ "-" ] version
}.jar";
sha256 = "sha256-oecRjD7JUuvFym8N/hSE5cbAFQojS6yxOuxpwWRlW9M=";
};
dontUnpack = true;
nativeBuildInputs = [
jre
makeWrapper
];
installPhase = ''
mkdir -p $out/{bin,lib/amidst}
cp $src $out/lib/amidst/amidst.jar
makeWrapper ${jre}/bin/java $out/bin/amidst \
--add-flags "-jar $out/lib/amidst/amidst.jar"
'';
meta = with lib; {
homepage = "https://github.com/toolbox4minecraft/amidst";
description = "Advanced Minecraft Interface and Data/Structure Tracking";
mainProgram = "amidst";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.gpl3Only;
maintainers = [ ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,34 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
pname = "amiri";
version = "1.003";
src = fetchzip {
url = "https://github.com/alif-type/amiri/releases/download/${version}/Amiri-${version}.zip";
hash = "sha256-BsYPMBlRdzlkvyleZIxGDuGjmqhDlEJ4udj8zoKUSzA=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts/truetype
mv *.ttf $out/share/fonts/truetype/
mkdir -p $out/share/doc/${pname}-${version}
mv {*.html,*.txt,*.md} $out/share/doc/${pname}-${version}/
runHook postInstall
'';
meta = with lib; {
description = "Classical Arabic typeface in Naskh style";
homepage = "https://www.amirifont.org/";
license = licenses.ofl;
maintainers = [ maintainers.vbgl ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitHub,
meson,
pkg-config,
ninja,
}:
stdenv.mkDerivation rec {
pname = "aml";
version = "0.3.0";
src = fetchFromGitHub {
owner = "any1";
repo = "aml";
tag = "v${version}";
sha256 = "sha256-BX+MRqvnwwLPhz22m0gfJ2EkW31KQEi/YTgOCMcQk2Q=";
};
nativeBuildInputs = [
meson
pkg-config
ninja
];
meta = with lib; {
description = "Another main loop";
inherit (src.meta) homepage;
license = licenses.isc;
platforms = platforms.unix;
maintainers = [ ];
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,187 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
fetchurl,
cmake,
pkg-config,
kdePackages,
qt6,
libsecret,
amneziawg-go,
openvpn,
shadowsocks-rust,
cloak-pt,
wireguard-tools,
libssh,
zlib,
openssl,
tun2socks,
xray,
nix-update-script,
bash,
}:
let
awg-vendored = amneziawg-go.overrideAttrs (
finalAttrs: prevAttrs: {
name = "amneziawg-go";
version = "0.2.13";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amneziawg-go";
tag = "v${finalAttrs.version}";
hash = "sha256-vXSPUGBMP37kXJ4Zn5TDLAzG8N+yO/IIj9nSKrZ+sFA=";
};
vendorHash = "sha256-9OtIb3UQXpAA0OzPhDIdb9lXZQHHiYCcmjHAU+vCtpk=";
}
);
amnezia-tun2socks = tun2socks.overrideAttrs (
finalAttrs: prevAttrs: {
pname = "amnezia-tun2socks";
version = "2.5.4";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amnezia-tun2socks";
tag = "v${finalAttrs.version}";
hash = "sha256-lHo7WtcqccBSHly6neuksh1gC7RCKxbFNX9KSKNNeK8=";
};
vendorHash = "sha256-VvOaTJ6dBFlbGZGxnHy2sCtds1tyhu6VsPewYpsDBiM=";
}
);
amnezia-xray = xray.overrideAttrs (
finalAttrs: prevAttrs: {
pname = "amnezia-xray";
version = "1.8.15";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amnezia-xray-core";
tag = "v${finalAttrs.version}";
hash = "sha256-3ZGkfGxYl9/yE7Q2CsJkFJ6xSGybBdq3DztQ0f4VsnY=";
};
vendorHash = "sha256-AimQsuBRhgpTY5rW8WRejCkx4s9Q9n+OuTf4XCrgpnE=";
}
);
amneziaPremiumConfig = fetchurl {
url = "https://raw.githubusercontent.com/amnezia-vpn/amnezia-client-lite/f45d6b242c1ac635208a72914e8df76ccb3aa44c/macos-signed-build.sh";
hash = "sha256-PnaPVPlyglUphhknWwP7ziuwRz+WOz0k9WRw6Q0nG2c=";
postFetch = ''
sed -nri '/PROD_AGW_PUBLIC_KEY|PROD_S3_ENDPOINT/p' $out
'';
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "amnezia-vpn";
version = "4.8.10.0";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amnezia-client";
tag = finalAttrs.version;
hash = "sha256-w1uBhp47XRinZpSuKeFaASOIOyjRDkDA81uqW4pK3F4=";
fetchSubmodules = true;
};
postPatch = ''
substituteInPlace client/platforms/linux/daemon/wireguardutilslinux.cpp \
--replace-fail 'm_tunnel.start(appPath.filePath("../../client/bin/wireguard-go"), wgArgs);' 'm_tunnel.start("${awg-vendored}/bin/amneziawg-go", wgArgs);'
substituteInPlace client/utilities.cpp \
--replace-fail 'return Utils::executable("../../client/bin/openvpn", true);' 'return Utils::executable("${openvpn}/bin/openvpn", false);' \
--replace-fail 'return Utils::executable("../../client/bin/tun2socks", true);' 'return Utils::executable("${amnezia-tun2socks}/bin/amnezia-tun2socks", false);' \
--replace-fail 'return Utils::usrExecutable("wg-quick");' 'return Utils::executable("${wireguard-tools}/bin/wg-quick", false);'
substituteInPlace client/protocols/xrayprotocol.cpp \
--replace-fail 'return Utils::executable(QString("xray"), true);' 'return Utils::executable(QString("${amnezia-xray}/bin/xray"), false);'
substituteInPlace client/protocols/openvpnovercloakprotocol.cpp \
--replace-fail 'return Utils::executable(QString("/ck-client"), true);' 'return Utils::executable(QString("${cloak-pt}/bin/ck-client"), false);'
substituteInPlace client/protocols/shadowsocksvpnprotocol.cpp \
--replace-fail 'return Utils::executable(QString("/ss-local"), true);' 'return Utils::executable(QString("${shadowsocks-rust}/bin/sslocal"), false);'
substituteInPlace client/configurators/openvpn_configurator.cpp \
--replace-fail ".arg(qApp->applicationDirPath());" ".arg(\"$out/libexec\");"
substituteInPlace client/ui/qautostart.cpp \
--replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "AmneziaVPN"
substituteInPlace deploy/installer/config/AmneziaVPN.desktop.in \
--replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "$out/share/pixmaps/AmneziaVPN.png"
substituteInPlace deploy/data/linux/AmneziaVPN.service \
--replace-fail "ExecStart=/opt/AmneziaVPN/service/AmneziaVPN-service.sh" "ExecStart=$out/bin/AmneziaVPN-service" \
--replace-fail "Environment=LD_LIBRARY_PATH=/opt/AmneziaVPN/client/lib" ""
substituteInPlace client/cmake/3rdparty.cmake \
--replace-fail 'set(LIBSSH_LIB_PATH "''${LIBSSH_ROOT_DIR}/linux/x86_64/libssh.a")' 'set(LIBSSH_LIB_PATH "${libssh}/lib/libssh.so")' \
--replace-fail 'set(ZLIB_LIB_PATH "''${LIBSSH_ROOT_DIR}/linux/x86_64/libz.a")' 'set(ZLIB_LIB_PATH "${zlib}/lib/libz.so")' \
--replace-fail 'set(OPENSSL_INCLUDE_DIR "''${OPENSSL_ROOT_DIR}/linux/include")' 'set(OPENSSL_INCLUDE_DIR "${openssl.dev}/include")' \
--replace-fail 'set(OPENSSL_LIB_SSL_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libssl.a")' 'set(OPENSSL_LIB_SSL_PATH "${openssl.out}/lib/libssl.so")' \
--replace-fail 'set(OPENSSL_LIB_CRYPTO_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libcrypto.a")' 'set(OPENSSL_LIB_CRYPTO_PATH "${openssl.out}/lib/libcrypto.so")' \
--replace-fail 'set(OPENSSL_USE_STATIC_LIBS TRUE)' 'set(OPENSSL_USE_STATIC_LIBS FALSE)'
substituteInPlace service/server/CMakeLists.txt \
--replace-fail 'set(OPENSSL_INCLUDE_DIR "''${OPENSSL_ROOT_DIR}/linux/include")' 'set(OPENSSL_INCLUDE_DIR "${openssl.dev}/include")' \
--replace-fail 'set(OPENSSL_LIB_CRYPTO_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libcrypto.a")' 'set(OPENSSL_LIB_CRYPTO_PATH "${openssl.out}/lib/libcrypto.so")' \
--replace-fail 'set(OPENSSL_USE_STATIC_LIBS TRUE)' 'set(OPENSSL_USE_STATIC_LIBS FALSE)'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
pkg-config
qt6.wrapQtAppsHook
];
buildInputs = [
bash
kdePackages.qt5compat
kdePackages.qtremoteobjects
kdePackages.qtsvg
libsecret
qt6.qtbase
qt6.qttools
];
preConfigure = ''
source ${amneziaPremiumConfig}
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/libexec $out/share/applications $out/share/pixmaps $out/lib/systemd/system
install -m555 client/AmneziaVPN service/server/AmneziaVPN-service $out/bin/
install -m555 ../deploy/data/linux/client/bin/update-resolv-conf.sh $out/libexec/
install -m444 ../AppDir/AmneziaVPN.desktop $out/share/applications/
install -m444 ../deploy/data/linux/AmneziaVPN.png $out/share/pixmaps/
install -m444 ../deploy/data/linux/AmneziaVPN.service $out/lib/systemd/system/
runHook postInstall
'';
passthru = {
inherit amnezia-tun2socks amnezia-xray awg-vendored;
updateScript = nix-update-script {
extraArgs = [
"--subpackage"
"amnezia-tun2socks"
"--subpackage"
"amnezia-xray"
"--subpackage"
"awg-vendored"
];
};
};
meta = with lib; {
description = "Amnezia VPN Client";
downloadPage = "https://amnezia.org/en/downloads";
homepage = "https://github.com/amnezia-vpn/amnezia-client";
license = licenses.gpl3;
mainProgram = "AmneziaVPN";
maintainers = with maintainers; [ sund3RRR ];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,44 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
}:
buildGoModule rec {
pname = "amneziawg-go";
version = "0.2.15";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amneziawg-go";
tag = "v${version}";
hash = "sha256-xz807BLNoh1sMfyDXMAXPU9mHSxfxI3k5ayEVQM+HH0=";
};
postPatch = ''
# Skip formatting tests
rm -f format_test.go
'';
vendorHash = "sha256-VYDc6oI0CqW1T3tVX0CWQLfLIOvqHCawVA8BWASWLLY=";
subPackages = [ "." ];
ldflags = [
"-s"
"-w"
];
strictDeps = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Userspace Go implementation of AmneziaWG";
homepage = "https://github.com/amnezia-vpn/amneziawg-go";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ averyanalex ];
mainProgram = "amneziawg-go";
};
}

View File

@@ -0,0 +1,87 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
bash,
procps,
iproute2,
iptables,
openresolv,
amneziawg-go,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "amneziawg-tools";
version = "1.0.20250903";
src = fetchFromGitHub {
owner = "amnezia-vpn";
repo = "amneziawg-tools";
tag = "v${finalAttrs.version}";
hash = "sha256-a5o49hx0HwB0PwlY1orp3ZI5zb5mpzHoRIhv9OdGSbU=";
};
sourceRoot = "${finalAttrs.src.name}/src";
outputs = [
"out"
"man"
];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ bash ];
makeFlags = [
"DESTDIR=${placeholder "out"}"
"PREFIX=/"
"WITH_BASHCOMPLETION=yes"
"WITH_SYSTEMDUNITS=yes"
"WITH_WGQUICK=yes"
];
postFixup = ''
substituteInPlace $out/lib/systemd/system/awg-quick@.service \
--replace-fail /usr/bin $out/bin
''
+ lib.optionalString stdenv.hostPlatform.isLinux ''
for f in $out/bin/*; do
# Which firewall and resolvconf implementations to use should be determined by the
# environment, we provide the "default" ones as fallback.
wrapProgram $f \
--prefix PATH : ${
lib.makeBinPath [
procps
iproute2
]
} \
--suffix PATH : ${
lib.makeBinPath [
iptables
openresolv
]
}
done
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
for f in $out/bin/*; do
wrapProgram $f \
--prefix PATH : ${lib.makeBinPath [ amneziawg-go ]}
done
'';
strictDeps = true;
passthru.updateScript = nix-update-script { };
meta = {
description = "Tools for configuring AmneziaWG";
homepage = "https://amnezia.org";
changelog = "https://github.com/amnezia-vpn/amneziawg-tools/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ averyanalex ];
platforms = lib.platforms.unix;
mainProgram = "awg";
};
})

View File

@@ -0,0 +1,74 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "amoco";
version = "2.9.8";
format = "pyproject";
src = fetchFromGitHub {
owner = "bdcht";
repo = "amoco";
tag = "v${version}";
hash = "sha256-3+1ssFyU7SKFJgDYBQY0kVjmTHOD71D2AjnH+4bfLXo=";
};
build-system = with python3.pkgs; [
setuptools
];
dependencies = with python3.pkgs; [
blessed
click
crysp
grandalf
pyparsing
tqdm
traitlets
];
optional-dependencies = {
app = with python3.pkgs; [
# ccrawl
ipython
prompt-toolkit
pygments
# pyside6
z3-solver
];
};
nativeCheckInputs = with python3.pkgs; [
pytestCheckHook
];
postPatch = ''
substituteInPlace setup.py \
--replace "'pytest-runner'," ""
'';
pythonRelaxDeps = [
"grandalf"
"crysp"
];
pythonImportsCheck = [
"amoco"
];
disabledTests = [
# AttributeError: 'str' object has no attribute '__dict__'
"test_func"
];
meta = with lib; {
description = "Tool for analysing binaries";
mainProgram = "amoco";
homepage = "https://github.com/bdcht/amoco";
license = licenses.gpl2Only;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromSourcehut,
port ? "1234",
}:
stdenv.mkDerivation {
pname = "among-sus-unstable";
version = "2021-05-19";
src = fetchFromSourcehut {
owner = "~martijnbraam";
repo = "among-sus";
rev = "554e60bf52e3fa931661b9414189a92bb8f69d78";
sha256 = "0j1158nczhvy5i1ykvzvhlv4ndhibgng0dq1lw2bmi8q6k1q1s0w";
};
patchPhase = ''
sed -i 's/port = 1234/port = ${port}/g' main.c
'';
installPhase = ''
mkdir -p $out/bin
install -Dm755 among-sus $out/bin
'';
meta = with lib; {
homepage = "https://git.sr.ht/~martijnbraam/among-sus";
description = "Among us, but it's a text adventure";
mainProgram = "among-sus";
license = licenses.agpl3Plus;
maintainers = [ maintainers.eyjhb ];
platforms = platforms.unix;
};
}

245
pkgs/by-name/am/amp-cli/package-lock.json generated Normal file
View File

@@ -0,0 +1,245 @@
{
"name": "amp-cli",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"dependencies": {
"@sourcegraph/amp": "^0.0.1759233723-gf92434"
}
},
"node_modules/@napi-rs/keyring": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring/-/keyring-1.1.9.tgz",
"integrity": "sha512-qjg04yaJ/gFqgG7wDqLlWBvZpsjvYDtwL+xOr2vSM2JrhojuIKsw7pH013U7xJOradTVGeQqhwqgZtt2IblgOw==",
"license": "MIT",
"engines": {
"node": ">= 10"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/Brooooooklyn"
},
"optionalDependencies": {
"@napi-rs/keyring-darwin-arm64": "1.1.9",
"@napi-rs/keyring-darwin-x64": "1.1.9",
"@napi-rs/keyring-freebsd-x64": "1.1.9",
"@napi-rs/keyring-linux-arm-gnueabihf": "1.1.9",
"@napi-rs/keyring-linux-arm64-gnu": "1.1.9",
"@napi-rs/keyring-linux-arm64-musl": "1.1.9",
"@napi-rs/keyring-linux-riscv64-gnu": "1.1.9",
"@napi-rs/keyring-linux-x64-gnu": "1.1.9",
"@napi-rs/keyring-linux-x64-musl": "1.1.9",
"@napi-rs/keyring-win32-arm64-msvc": "1.1.9",
"@napi-rs/keyring-win32-ia32-msvc": "1.1.9",
"@napi-rs/keyring-win32-x64-msvc": "1.1.9"
}
},
"node_modules/@napi-rs/keyring-darwin-arm64": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-darwin-arm64/-/keyring-darwin-arm64-1.1.9.tgz",
"integrity": "sha512-/lVnrSFrut+8pQC6IcqlfHKzcEmf2XvQDOZPB5X4vI23GrNXBd56EuBlFPdTBtx46A8Bn+Aqi6pS8cnprHtcCw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-darwin-x64": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-darwin-x64/-/keyring-darwin-x64-1.1.9.tgz",
"integrity": "sha512-G3PiFZTAFTzUnpSB31A/UaPjl48/3sDTLmLxaAZBEk7HcOyBnL31gA1YqhDCO7F2y5sD5TWiFiuID9MyqYOcjw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-freebsd-x64": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-freebsd-x64/-/keyring-freebsd-x64-1.1.9.tgz",
"integrity": "sha512-R4XbvRhEzQyOy4yM+SMDgk8BgkLPkIzXGwR6QR0wJ2YrPeBx3F2TrgdHfsIGSn/X5Axg/2UlrCiZVciZ5BmusA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"freebsd"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-arm-gnueabihf": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm-gnueabihf/-/keyring-linux-arm-gnueabihf-1.1.9.tgz",
"integrity": "sha512-UrKy110I+zQyBtw4HLVUqZ1jDq11K3PmQIYgWAJNwB5VQOj4IQ63zLxk4V01Jx4bNOJmGNlvHDJUAyh/lC5Yww==",
"cpu": [
"arm"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-arm64-gnu": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm64-gnu/-/keyring-linux-arm64-gnu-1.1.9.tgz",
"integrity": "sha512-yOrhVpNGexDYzybe3dhmHQRPBDjlZPtJDE+eGSi1JwEqYlWDB+4IWjRsetxnO63DhnMFRLeMTdwWghsYrA7VwA==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-arm64-musl": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-arm64-musl/-/keyring-linux-arm64-musl-1.1.9.tgz",
"integrity": "sha512-82EcuzoV/+Dxwi1HHhrEEprN5Ou7OsRKyTJSaRqiVuGvLaQDUhZX/4zXTTh4Pz24m22Q4aoJogafS31w8iKGGw==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-riscv64-gnu": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-riscv64-gnu/-/keyring-linux-riscv64-gnu-1.1.9.tgz",
"integrity": "sha512-Q1ar7DszC1X8FW6w7Ql7b72GFeAUxkTiOuxXChCFBy7eWCQSDrr52ZLroIowp82RmkQLZebnK+IwSssD2Ntoag==",
"cpu": [
"riscv64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-x64-gnu": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-x64-gnu/-/keyring-linux-x64-gnu-1.1.9.tgz",
"integrity": "sha512-LMvrYt1ho3pEDECssA7ATbcMDgayEUwwSD+UfrC7Hj1+C6dlvipwt5njwUDCno2OeXbjjisCo4CR9fDmXa4sZA==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-linux-x64-musl": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-linux-x64-musl/-/keyring-linux-x64-musl-1.1.9.tgz",
"integrity": "sha512-x2i/TgS2/fM+6LRj1MrtVC580sepz5GcxbSCXpttx2H58uZKBF0vVM9HDPHoKP2w5++fyrA17eltJNYN3Ob46A==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"linux"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-win32-arm64-msvc": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-arm64-msvc/-/keyring-win32-arm64-msvc-1.1.9.tgz",
"integrity": "sha512-14t6p8CTBNfGzLO5LXqurT+pAOf/ocGjOM/qiG/LW+jPkhyJYBNI9e3HKq3QX+ObbnxVpt4fAY02b4XLt7EWig==",
"cpu": [
"arm64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-win32-ia32-msvc": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-ia32-msvc/-/keyring-win32-ia32-msvc-1.1.9.tgz",
"integrity": "sha512-7+7aXz5op6PtOnWYcK1GYXWQlk2zfpdPt9taLqmCCVpk1g4m3Gw1wyKyQxjrg9clHWdNhdWxhFEA0osDxG8/Eg==",
"cpu": [
"ia32"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@napi-rs/keyring-win32-x64-msvc": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/@napi-rs/keyring-win32-x64-msvc/-/keyring-win32-x64-msvc-1.1.9.tgz",
"integrity": "sha512-P1wsSrSqDqvcXLL7yiH2RsO3De65wuEQj1ZjV9s1MHfEP5dIdriNYZfFsRBlOsl32GoK3qFzsuH5DTVviGEHSw==",
"cpu": [
"x64"
],
"license": "MIT",
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">= 10"
}
},
"node_modules/@sourcegraph/amp": {
"version": "0.0.1759233723-gf92434",
"resolved": "https://registry.npmjs.org/@sourcegraph/amp/-/amp-0.0.1759233723-gf92434.tgz",
"integrity": "sha512-ts+dHxSHfT7sXNAvlRHyp/jwjGvKs08lf+KHaZ/2pMcqnBf94d9g+8u/AoPzUfeFq0WDAbeMl2rV4TDaJAM3aQ==",
"dependencies": {
"@napi-rs/keyring": "1.1.9"
},
"bin": {
"amp": "dist/main.js"
},
"engines": {
"node": ">=20"
}
}
}
}

View File

@@ -0,0 +1,89 @@
{
lib,
buildNpmPackage,
fetchzip,
ripgrep,
makeWrapper,
testers,
}:
buildNpmPackage (finalAttrs: {
pname = "amp-cli";
version = "0.0.1759233723-gf92434";
src = fetchzip {
url = "https://registry.npmjs.org/@sourcegraph/amp/-/amp-${finalAttrs.version}.tgz";
hash = "sha256-r48Odw2PA9ei3WrCm+Q8eGXCY1TVzyrqJa9FLzW84vs=";
};
postPatch = ''
cp ${./package-lock.json} package-lock.json
# Create a minimal package.json with just the dependency we need (without devDependencies)
cat > package.json <<EOF
{
"name": "amp-cli",
"version": "0.0.0",
"license": "UNLICENSED",
"dependencies": {
"@sourcegraph/amp": "${finalAttrs.version}"
},
"bin": {
"amp": "./bin/amp-wrapper.js"
}
}
EOF
# Create wrapper bin directory
mkdir -p bin
# Create a wrapper script that will be installed by npm
cat > bin/amp-wrapper.js << EOF
#!/usr/bin/env node
import('@sourcegraph/amp/dist/main.js')
EOF
chmod +x bin/amp-wrapper.js
'';
npmDepsHash = "sha256-Al8JZ2g68ZvMTxDbZM9grKz7C217YJxnjWnO8o8ySnI=";
propagatedBuildInputs = [
ripgrep
];
nativeBuildInputs = [
makeWrapper
];
npmFlags = [
"--no-audit"
"--no-fund"
"--ignore-scripts"
];
# Disable build and prune steps
dontNpmBuild = true;
postInstall = ''
wrapProgram $out/bin/amp \
--prefix PATH : ${lib.makeBinPath [ ripgrep ]}
'';
passthru.updateScript = ./update.sh;
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "HOME=$(mktemp -d) amp --version";
};
meta = {
description = "CLI for Amp, an agentic coding agent in research preview from Sourcegraph";
homepage = "https://ampcode.com/";
downloadPage = "https://www.npmjs.com/package/@sourcegraph/amp";
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [
keegancsmith
burmudar
];
mainProgram = "amp";
};
})

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p nodePackages.npm nix-update
set -euo pipefail
version=$(npm view @sourcegraph/amp version)
# Generate updated lock file
cd "$(dirname "${BASH_SOURCE[0]}")"
npm i --package-lock-only @sourcegraph/amp@"$version"
rm -f package.json # package.json is not used by buildNpmPackage
# Update version and hashes
cd -
nix-update amp-cli --version "$version"

View File

@@ -0,0 +1,50 @@
{
lib,
fetchFromGitHub,
rustPlatform,
pkgsBuildBuild,
stdenv,
zlib,
writableTmpDirAsHomeHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "amp";
version = "0.7.1";
src = fetchFromGitHub {
owner = "jmacdonald";
repo = "amp";
tag = finalAttrs.version;
hash = "sha256-YK+HSWTtSVLK8n7NDiif3bBqp/dQW2UTYo3yYcZ5cIA=";
};
cargoHash = "sha256-6enFOmIAYOgOdoeA+pk37+BobI5AGPBxjp73Gd4C+gI=";
nativeBuildInputs = [
# git rev-parse --short HEAD
(pkgsBuildBuild.writeShellScriptBin "git" "echo 0000000")
];
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
zlib
];
# Needing libgit2 <=1.8.0
#env.LIBGIT2_NO_VENDOR = 1;
nativeCheckInputs = [
writableTmpDirAsHomeHook
];
meta = {
description = "Modern text editor inspired by Vim";
homepage = "https://amp.rs";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [
sb0
aleksana
];
mainProgram = "amp";
};
})

View File

@@ -0,0 +1,75 @@
{
copyDesktopItems,
fetchFromGitLab,
lib,
makeDesktopItem,
python3Packages,
qt5,
}:
let
pname = "amphetype";
version = "1.0.0";
description = "Advanced typing practice program";
in
python3Packages.buildPythonApplication {
format = "pyproject";
inherit pname version;
src = fetchFromGitLab {
owner = "franksh";
repo = "amphetype";
tag = "v${version}";
hash = "sha256-pve2f+XMfFokMCtW3KdeOJ9Ey330Gwv/dk1+WBtrBEQ=";
};
nativeBuildInputs = [
copyDesktopItems
qt5.wrapQtAppsHook
];
buildInputs = [
qt5.qtbase
qt5.qtwayland
];
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
editdistance
pyqt5
translitcodec
];
dontWrapQtApps = true;
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
'';
doCheck = false;
desktopItems = [
(makeDesktopItem {
name = "amphetype";
desktopName = "Amphetype";
genericName = "Typing Practice";
categories = [
"Education"
"Qt"
];
exec = "amphetype";
comment = description;
})
];
meta = with lib; {
inherit description;
mainProgram = "amphetype";
homepage = "https://gitlab.com/franksh/amphetype";
license = licenses.gpl3Only;
maintainers = with maintainers; [ rycee ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
fetchFromGitHub,
crystal,
openssl,
testers,
amqpcat,
}:
crystal.buildCrystalPackage rec {
pname = "amqpcat";
version = "1.0.0";
src = fetchFromGitHub {
owner = "cloudamqp";
repo = "amqpcat";
tag = "v${version}";
hash = "sha256-QLVFAcymj7dERbUiRcseiDuuKgrQ8n4LbkdhUyXPcWw=";
};
format = "shards";
shardsFile = ./shards.nix;
buildInputs = [ openssl ];
# Tests require network access
doCheck = false;
passthru.tests.version = testers.testVersion {
package = amqpcat;
};
meta = {
description = "CLI tool for publishing to and consuming from AMQP servers";
mainProgram = "amqpcat";
homepage = "https://github.com/cloudamqp/amqpcat";
license = lib.licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,12 @@
{
amq-protocol = {
url = "https://github.com/cloudamqp/amq-protocol.cr.git";
tag = "v1.1.14";
sha256 = "1pr5h3lxfhjmarfqpvfldn8d6425g3i56k4p4szk2jkffa0z38nz";
};
amqp-client = {
url = "https://github.com/cloudamqp/amqp-client.cr.git";
tag = "v1.2.3";
sha256 = "1pbiq5srni87hd8q2x3vs4s2hpajlzzlwgalgnmb35dcyih1ff9k";
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
unzip,
}:
stdenv.mkDerivation {
pname = "amrnb";
version = "11.0.0.0";
srcAmr = fetchurl {
url = "https://www.3gpp.org/ftp/Specs/latest/Rel-11/26_series/26104-b00.zip";
sha256 = "1wf8ih0hk7w20vdlnw7jb7w73v15hbxgbvmq4wq7h2ghn0j8ppr3";
};
src = fetchurl {
url = "http://www.penguin.cz/~utx/ftp/amr/amrnb-11.0.0.0.tar.bz2";
sha256 = "1qgiw02n2a6r32pimnd97v2jkvnw449xrqmaxiivjy2jcr5h141q";
};
nativeBuildInputs = [ unzip ];
configureFlags = [
"--cache-file=config.cache"
"--with-downloader=true"
];
postConfigure = ''
cp $srcAmr 26104-b00.zip
'';
meta = {
homepage = "http://www.penguin.cz/~utx/amr";
description = "AMR Narrow-Band Codec";
# The wrapper code is free, but not the libraries from 3gpp.
# It's a source code reference implementation with patents and licenses on
# some countries, not redistributable.
license = lib.licenses.unfree;
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchurl,
unzip,
}:
stdenv.mkDerivation rec {
pname = "amrwb";
version = "11.0.0.0";
srcAmr = fetchurl {
url = "http://www.3gpp.org/ftp/Specs/archive/26_series/26.204/26204-b00.zip";
sha256 = "1v4zhs6f1mf1xkrzhljh05890in0rpr5d5pcak9h4igxhd2c91f8";
};
src = fetchurl {
url = "http://www.penguin.cz/~utx/ftp/amr/amrwb-${version}.tar.bz2";
sha256 = "1p6m9nd08mv525w14py9qzs9zwsa5i3vxf5bgcmcvc408jqmkbsw";
};
nativeBuildInputs = [ unzip ];
configureFlags = [
"--cache-file=config.cache"
"--with-downloader=true"
];
postConfigure = ''
cp $srcAmr 26204-b00.zip
'';
meta = {
homepage = "http://www.penguin.cz/~utx/amr";
description = "AMR Wide-Band Codec";
# The wrapper code is free, but not the libraries from 3gpp.
# It's a source code reference implementation with patents and licenses on
# some countries, not redistributable.
license = lib.licenses.unfree;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
cairo,
fftw,
gtkmm2,
lv2,
lvtk,
pkg-config,
wafHook,
python3,
}:
stdenv.mkDerivation rec {
pname = "ams-lv2";
version = "1.2.2";
src = fetchFromGitHub {
owner = "blablack";
repo = "ams-lv2";
rev = version;
sha256 = "1lz2mvk4gqsyf92yxd3aaldx0d0qi28h4rnnvsaz4ls0ccqm80nk";
};
nativeBuildInputs = [
pkg-config
wafHook
python3
];
buildInputs = [
cairo
fftw
gtkmm2
lv2
lvtk
];
postPatch = ''
# U was removed in python 3.11 because it had no effect
substituteInPlace waflib/*.py \
--replace "m='rU" "m='r"
'';
meta = with lib; {
description = "LV2 port of the internal modules found in Alsa Modular Synth";
homepage = "https://github.com/blablack/ams-lv2";
license = licenses.gpl3;
maintainers = [ ];
platforms = platforms.linux;
# Build uses `-msse` and `-mfpmath=sse`
badPlatforms = [ "aarch64-linux" ];
# `ModuleNotFoundError: No module named 'imp'`
broken = true;
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchgit,
alsa-lib,
ladspaH,
libjack2,
fftw,
zita-alsa-pcmi,
qt5,
pkg-config,
autoreconfHook,
}:
stdenv.mkDerivation {
pname = "ams";
version = "unstable-2019-04-27";
src = fetchgit {
url = "https://git.code.sf.net/p/alsamodular/ams.git";
sha256 = "0qdyz5llpa94f3qx1xi1mz97vl5jyrj1mqff28p5g9i5rxbbk8z9";
rev = "3250bbcfea331c4fcb9845305eebded80054973d";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
qt5.wrapQtAppsHook
];
buildInputs = [
alsa-lib
ladspaH
libjack2
fftw
zita-alsa-pcmi
]
++ (with qt5; [
qtbase
qttools
]);
meta = with lib; {
description = "Realtime modular synthesizer for ALSA";
mainProgram = "ams";
homepage = "https://alsamodular.sourceforge.net";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ sjfloat ];
};
}

View File

@@ -0,0 +1,56 @@
{
fetchFromGitHub,
lib,
stdenv,
makeWrapper,
gtk3,
openssl,
perl,
perlPackages,
pkg-config,
vte,
withGamt ? false,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "amtterm";
version = "1.7-1-unstable-2023-10-27";
buildInputs =
(with perlPackages; [
perl
SOAPLite
])
++ [ openssl ]
++ lib.optionals withGamt [
gtk3
vte
];
nativeBuildInputs = [
makeWrapper
pkg-config
];
src = fetchFromGitHub {
owner = "kraxel";
repo = "amtterm";
rev = "ed5da502cbb150982ad982211ad9475414b8689a";
hash = "sha256-JwS2agmJJ6VcGLkNbkFRb5bzKV8el1DMDjalmLnOdE8=";
};
makeFlags = [
"prefix=$(out)"
"STRIP="
"USE_OPENSSL=1"
];
postInstall = "wrapProgram $out/bin/amttool --prefix PERL5LIB : $PERL5LIB";
meta = {
description = "Intel AMT® SoL client + tools";
homepage = "https://www.kraxel.org/cgit/amtterm/";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,111 @@
{
monolithic ? true, # build monolithic amule
enableDaemon ? false, # build amule daemon
httpServer ? false, # build web interface for the daemon
client ? false, # build amule remote gui
fetchFromGitHub,
fetchpatch,
stdenv,
lib,
cmake,
zlib,
wxGTK32,
perl,
cryptopp,
libupnp,
boost186, # Not using boost leads to crashes with gtk3
gettext,
libpng,
pkg-config,
makeWrapper,
libX11,
}:
# daemon and client are not build monolithic
assert monolithic || (!monolithic && (enableDaemon || client || httpServer));
stdenv.mkDerivation rec {
pname =
"amule"
+ lib.optionalString httpServer "-web"
+ lib.optionalString enableDaemon "-daemon"
+ lib.optionalString client "-gui";
version = "2.3.3";
src = fetchFromGitHub {
owner = "amule-project";
repo = "amule";
tag = version;
sha256 = "1nm4vxgmisn1b6l3drmz0q04x067j2i8lw5rnf0acaapwlp8qwvi";
};
patches = [
(fetchpatch {
url = "https://sources.debian.org/data/main/a/amule/1%3A2.3.3-3/debian/patches/wx3.2.patch";
hash = "sha256-OX5Ef80bL+dQqHo2OBLZvzMUrU6aOHfsF7AtoE1r7rs=";
})
];
nativeBuildInputs = [
cmake
gettext
makeWrapper
pkg-config
];
buildInputs = [
zlib
wxGTK32
perl
cryptopp.dev
libupnp
boost186
]
++ lib.optional httpServer libpng
++ lib.optional client libX11;
cmakeFlags = [
"-DBUILD_MONOLITHIC=${if monolithic then "ON" else "OFF"}"
"-DBUILD_DAEMON=${if enableDaemon then "ON" else "OFF"}"
"-DBUILD_REMOTEGUI=${if client then "ON" else "OFF"}"
"-DBUILD_WEBSERVER=${if httpServer then "ON" else "OFF"}"
# building only the daemon fails when these are not set... this is
# due to mistakes in the Amule cmake code, but it does not cause
# extra code to be built...
"-Dwx_NEED_GUI=ON"
"-Dwx_NEED_ADV=ON"
"-Dwx_NEED_NET=ON"
];
postPatch = ''
echo "find_package(Threads)" >> cmake/options.cmake
'';
# aMule will try to `dlopen' libupnp and libixml, so help it
# find them.
postInstall = lib.optionalString monolithic ''
wrapProgram $out/bin/amule \
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libupnp ]}
'';
meta = with lib; {
description = "Peer-to-peer client for the eD2K and Kademlia networks";
longDescription = ''
aMule is an eMule-like client for the eD2k and Kademlia
networks, supporting multiple platforms. Currently aMule
(officially) supports a wide variety of platforms and operating
systems, being compatible with more than 60 different
hardware+OS configurations. aMule is entirely free, its
sourcecode released under the GPL just like eMule, and includes
no adware or spyware as is often found in proprietary P2P
applications.
'';
homepage = "https://github.com/amule-project/amule";
license = licenses.gpl2Plus;
maintainers = [ ];
platforms = platforms.unix;
# Undefined symbols for architecture arm64: "_FSFindFolder"
broken = stdenv.hostPlatform.isDarwin;
};
}