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,61 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
openssl,
nix-update-script,
versionCheckHook,
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ip2asn";
version = "0.1.2";
src = fetchFromGitHub {
owner = "x123";
repo = "ip2asn";
tag = finalAttrs.version;
hash = "sha256-2wuxBwllrkPdmmBCt7DPQ38E2k3igAjbICun51bhopY=";
};
cargoHash = "sha256-fYg0aIU8usueMg6cMWUcwMIFCinHdm6H7k9ywZGYfg8=";
passthru.updateScript = nix-update-script { };
cargoBuildFlags = [
"-p"
"ip2asn-cli"
];
# disable network based tests that download data
cargoTestFlags = [
"-p"
"ip2asn-cli"
"--"
"--skip"
"auto_update_tests::test_auto_update_triggers_download"
"--skip"
"auto_update_tests::test_auto_update_skips_check_for_recent_cache"
];
doInstallCheck = true;
nativeInstallCheckInputs = [ versionCheckHook ];
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
];
meta = {
description = "CLI tool for mapping IP addresses to Autonomous System information";
homepage = "https://github.com/x123/ip2asn/tree/master/ip2asn-cli";
changelog = "https://github.com/x123/ip2asn/blob/${finalAttrs.version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ x123 ];
mainProgram = "ip2asn";
};
})

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "ip2location-c";
version = "8.7.0";
src = fetchFromGitHub {
owner = "chrislim2888";
repo = "IP2Location-C-Library";
rev = version;
sha256 = "sha256-kp0tNZPP9u2xxFOmBAdivsVLtyF66o38H6eRrs2/S/Y=";
};
nativeBuildInputs = [
autoreconfHook
];
enableParallelBuilding = true;
# Checks require a database, which require registration (although sample
# databases are available, downloading them for just 1 test seems excessive):
doCheck = false;
meta = with lib; {
description = "Library to look up locations of host names and IP addresses";
mainProgram = "ip2location";
longDescription = ''
A C library to find the country, region, city,coordinates,
zip code, time zone, ISP, domain name, connection type, area code,
weather, MCC, MNC, mobile brand name, elevation and usage type of
any IP address or host name in the IP2Location databases.
'';
homepage = "https://www.ip2location.com/developers/c";
license = with licenses; [
gpl3Plus
lgpl3Plus
];
maintainers = [ ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "ip2location";
version = "7.0.0";
src = fetchurl {
sha256 = "05zbc02z7vm19byafi05i1rnkxc6yrfkhnm30ly68zzyipkmzx1l";
url = "https://www.ip2location.com/downloads/ip2location-${version}.tar.gz";
};
enableParallelBuilding = true;
doCheck = true;
meta = with lib; {
description = "Look up locations of host names and IP addresses";
longDescription = ''
A command-line tool to find the country, region, city,coordinates,
zip code, time zone, ISP, domain name, connection type, area code,
weather, MCC, MNC, mobile brand name, elevation and usage type of
any IP address or host name in the IP2Location databases.
'';
homepage = "https://www.ip2location.com/free/applications";
license = with licenses; [
gpl3Plus
lgpl3Plus
];
platforms = platforms.linux;
mainProgram = "ip2location";
};
}

View File

@@ -0,0 +1,81 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
meson,
ninja,
pkg-config,
yaml-cpp,
systemd,
python3Packages,
asciidoc,
libxslt,
docbook_xml_dtd_45,
docbook_xsl,
libxml2,
docbook5,
mesonEmulatorHook,
}:
stdenv.mkDerivation rec {
pname = "ip2unix";
version = "2.2.1";
src = fetchFromGitHub {
owner = "nixcloud";
repo = "ip2unix";
rev = "v${version}";
hash = "sha256-+p5wQbX35LAjZ4vIE4AhI4M6gQ7gVviqf9jJDAr9xg8";
};
patches = [
# https://github.com/nixcloud/ip2unix/pull/35
# fix out of range string_view access
(fetchpatch {
url = "https://github.com/nixcloud/ip2unix/commit/050ddf76b4b925f27e255fbb820b0700407ceb2b.patch";
hash = "sha256-5vaLmZmwuiMGV4KnVhuDSnXG1a390aBU51TShwpaMLs=";
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
asciidoc
libxslt.bin
docbook_xml_dtd_45
docbook_xsl
libxml2.bin
docbook5
python3Packages.pytest
python3Packages.pytest-timeout
systemd
]
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ];
buildInputs = [ yaml-cpp ];
doCheck = true;
doInstallCheck = true;
installCheckPhase = ''
found=0
for man in "$out/share/man/man1"/ip2unix.1*; do
test -s "$man" && found=1
done
if [ $found -ne 1 ]; then
echo "ERROR: Manual page hasn't been generated." >&2
exit 1
fi
'';
meta = {
homepage = "https://github.com/nixcloud/ip2unix";
description = "Turn IP sockets into Unix domain sockets";
platforms = lib.platforms.linux;
license = lib.licenses.lgpl3;
maintainers = [ lib.maintainers.aszlig ];
mainProgram = "ip2unix";
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
stdenv,
fetchFromGitHub,
libusb1,
}:
stdenv.mkDerivation rec {
pname = "ipad_charge";
version = "2015-02-03";
src = fetchFromGitHub {
sha256 = "0f40hqx1dbqpwrhyf42h5982jwqv8j5zp5hwwakz6600hyqvnnz7";
rev = "bb24e1c3a79016cfdffb9d28189485766d655ec6";
repo = "ipad_charge";
owner = "mkorenkov";
};
buildInputs = [ libusb1 ];
doInstallCheck = true;
postPatch = ''
substituteInPlace Makefile \
--replace " -o root -g root" "" \
--replace "/usr" "$out" \
--replace "/etc/udev" "$out/lib/udev"
substituteInPlace *.rules \
--replace "/usr" "$out"
'';
enableParallelBuilding = true;
preInstall = ''
mkdir -p $out/{bin,lib/udev/rules.d}
'';
meta = with lib; {
inherit (src.meta) homepage;
description = "Apple device USB charging utility for Linux";
longDescription = ''
USB charging control utility used to enable/disable charging of an Apple
device connected to USB port. For a list of supported devices, see
https://github.com/mkorenkov/ipad_charge#supported-devices.
'';
license = licenses.gpl2Plus;
platforms = platforms.linux;
mainProgram = "ipad_charge";
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation {
pname = "ipaexfont";
version = "004.01";
src = fetchzip {
url = "https://moji.or.jp/wp-content/ipafont/IPAexfont/IPAexfont00401.zip";
hash = "sha256-/87qJIb+v4qrtDy+ApfXxh59reOk+6RhGqFN98mc+8Q=";
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/opentype
runHook postInstall
'';
meta = {
description = "Japanese font package with Mincho and Gothic fonts";
longDescription = ''
IPAex font is a Japanese font developed by the Information-technology
Promotion Agency of Japan. It provides both Mincho and Gothic fonts,
suitable for both display and printing.
This is the successor to the IPA fonts.
'';
homepage = "https://moji.or.jp/ipafont/";
license = lib.licenses.ipa;
maintainers = with lib.maintainers; [ stephen-huan ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation {
pname = "ipafont";
version = "003.03";
src = fetchzip {
url = "https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip";
hash = "sha256-EzUNKuDNHr0NIXiqX09w99wtz1r2pZurR/izdgzTcAs=";
};
installPhase = ''
runHook preInstall
install -Dm644 *.ttf -t $out/share/fonts/opentype
runHook postInstall
'';
meta = {
description = "Japanese font package with Mincho and Gothic fonts";
longDescription = ''
IPAFont is a Japanese font developed by the Information-technology
Promotion Agency of Japan. It provides both Mincho and Gothic fonts,
suitable for both display and printing.
'';
homepage = "https://moji.or.jp/ipafont/";
license = lib.licenses.ipa;
maintainers = [ lib.maintainers.auntie ];
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitea,
installShellFiles,
}:
buildGoModule rec {
pname = "ipam";
version = "0.3.0-1";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "lauralani";
repo = "ipam";
rev = "v${version}";
hash = "sha256-6gOkBjXgaMMWFRXFTSBY9YaNPdMRyLl8wy7BT/5vHio=";
};
nativeBuildInputs = [
installShellFiles
];
vendorHash = "sha256-l8eeeYv41yUPQ1dyJY4Jo3uvULrc1B/buGlMxYSdhCA=";
ldflags = [
"-s"
"-w"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd ipam \
--bash <($out/bin/ipam completion bash) \
--fish <($out/bin/ipam completion fish) \
--zsh <($out/bin/ipam completion zsh)
'';
meta = {
description = "Cli based IPAM written in Go with PowerDNS support";
homepage = "https://ipam.lauka.net/";
changelog = "https://codeberg.org/lauralani/ipam/releases/tag/v${version}";
license = lib.licenses.gpl3Plus;
maintainers = [ ];
mainProgram = "ipam";
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nix-update-script,
testers,
ipatool,
}:
buildGoModule rec {
pname = "ipatool";
version = "2.2.0";
src = fetchFromGitHub {
owner = "majd";
repo = "ipatool";
rev = "v${version}";
hash = "sha256-z6f5PNxAH+8mS2kWjhST0LFhwTR01m7rR5O95ee+p2E=";
};
vendorHash = "sha256-f6mXTePiM5kZUdrYqvbN5pyNp1OGNMeJZMUJ3pvaRrc=";
ldflags = [
"-s"
"-w"
"-X github.com/majd/ipatool/v2/cmd.version=${version}"
];
# go generate ./... fails because of a missing module: github.com/golang/mock/mockgen
# which is required to run the tests, check if next release fixes it.
# preCheck = ''
# go generate ./...
# '';
doCheck = false;
passthru = {
updateScript = nix-update-script { };
tests.version = testers.testVersion {
inherit version;
package = ipatool;
command = "ipatool --version";
};
};
meta = with lib; {
description = "Command-line tool that allows searching and downloading app packages (known as ipa files) from the iOS App Store";
homepage = "https://github.com/majd/ipatool";
changelog = "https://github.com/majd/ipatool/blob/${src.rev}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ gaelreyrol ];
mainProgram = "ipatool";
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchurl,
perl,
ncurses,
}:
stdenv.mkDerivation rec {
version = "20210215.5a9cb02";
pname = "ipbt";
src = fetchurl {
url = "https://www.chiark.greenend.org.uk/~sgtatham/ipbt/ipbt-${version}.tar.gz";
sha256 = "0w6blpv22jjivzr58y440zv6djvi5iccdmj4y2md52fbpjngmsha";
};
nativeBuildInputs = [ perl ];
buildInputs = [ ncurses ];
meta = with lib; {
description = "High-tech ttyrec player for Unix";
homepage = "https://www.chiark.greenend.org.uk/~sgtatham/ipbt/";
license = licenses.mit;
maintainers = [ maintainers.tckmn ];
platforms = platforms.unix;
mainProgram = "ipbt";
};
}

View File

@@ -0,0 +1,74 @@
{
lib,
stdenv,
bash,
cacert,
boost186,
pugixml,
python3,
python3Packages,
fetchFromGitHub,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ipbus-uhal";
version = "2.8.16";
src = fetchFromGitHub {
owner = "ipbus";
repo = "ipbus-software";
rev = "v${finalAttrs.version}";
hash = "sha256-R+a9VmONyWh3BEYoMjRcXKv+3HaNcKbJDnYH1hXHdPg=";
};
nativeBuildInputs = [
cacert
(python3.withPackages (ps: [
ps.distutils
ps.pybind11
]))
];
buildInputs = [
boost186
pugixml
python3.pkgs.distutils
python3.pkgs.pybind11
];
postPatch = ''
substituteInPlace config/Makefile.macros --replace-fail \
'SHELL := /bin/bash' ""
patchShebangs --build uhal/config/install.sh
patchShebangs --build uhal/tests/setup.sh
patchShebangs --build scripts/doxygen/api_uhal.sh
patchShebangs --build config/progress.sh
patchShebangs --build config/Makefile.macros
'';
enableParallelBuilding = true;
makeFlags = [
"Set=uhal"
"CXX=${stdenv.cc.targetPrefix}c++"
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,include}
make Set=uhal install prefix=$out/bin includedir=$out/include
runHook postInstall
'';
meta = {
description = "Software which pairs with ipbus-firmware";
longDescription = ''
Software that provide a reliable high-performance
control link for particle-physics or other electronics,
by implementing a simple A32/D32 control protocol
for reading and modifying memory-mapped resources
within FPGA-based hardware devices.
'';
platforms = lib.platforms.linux;
homepage = "https://ipbus.web.cern.ch/";
maintainers = [ lib.maintainers.bashsu ];
mainProgram = "ipbus-uhal";
};
})

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitLab,
meson,
ninja,
pkg-config,
ronn,
withGeo ? true,
geoip,
}:
# In order for the geoip part to work, you need to set up a link from
# geoip.dataDir to a directory containing the data files This would typically be
# /var/lib/geoip-databases pointing to geoip-legacy/share/GeoIP
stdenv.mkDerivation rec {
pname = "ipcalc";
version = "1.0.3";
src = fetchFromGitLab {
owner = "ipcalc";
repo = "ipcalc";
rev = version;
hash = "sha256-9eaR1zG8tjSGlkpyY1zTHAVgN5ypuyRfeRq6ct6zsLU=";
};
patches = [
# disable tests which fail in NixOS sandbox (trying to access the network)
./sandbox_tests.patch
];
# technically not needed as we do not support the paid maxmind databases, but
# keep it around if someone wants to add support and /usr/share/GeoIP is
# broken anyway
postPatch = ''
substituteInPlace ipcalc-maxmind.c \
--replace /usr/share/GeoIP /var/lib/GeoIP
'';
nativeBuildInputs = [
meson
ninja
pkg-config
ronn
];
buildInputs = [ geoip ];
mesonFlags = [
"-Duse_geoip=${if withGeo then "en" else "dis"}abled"
"-Duse_maxminddb=disabled"
# runtime linking doesn't work on NixOS anyway
"-Duse_runtime_linking=disabled"
];
doCheck = true;
meta = with lib; {
description = "Simple IP network calculator";
homepage = "https://gitlab.com/ipcalc/ipcalc";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ peterhoeg ];
platforms = platforms.unix;
mainProgram = "ipcalc";
};
}

View File

@@ -0,0 +1,59 @@
diff --git a/tests/meson.build b/tests/meson.build
index 536c169..0ce23f1 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -64,54 +64,6 @@ test('RandomIPv6Explicit',
ipcalc.full_path() + ' -6 -r 24' + '|grep Address'
]
)
-test('HostnameIPv6Localhost',
- testrunner,
- args : [
- '--test-outfile',
- ipcalc.full_path() + ' -6 -o localhost',
- files('hostname-localhost-ipv6')
- ]
-)
-test('HostnameIPv4Localhost',
- testrunner,
- args : [
- '--test-outfile',
- ipcalc.full_path() + ' -4 -o localhost',
- files('hostname-localhost-ipv4')
- ]
-)
-test('HostnameIPv4LocalhostJson',
- testrunner,
- args : [
- '--test-outfile',
- ipcalc.full_path() + ' -j -4 -o localhost',
- files('hostname-localhost-ipv4-json')
- ]
-)
-test('IPIPv6Localhost',
- testrunner,
- args : [
- '--test-outfile',
- ipcalc.full_path() + ' -h ::1',
- files('ip-localhost-ipv6')
- ]
-)
-test('IPIPv4Localhost',
- testrunner,
- args : [
- '--test-outfile',
- ipcalc.full_path() + ' -h 127.0.0.1',
- files('ip-localhost-ipv4')
- ]
-)
-test('IPIPv4LocalhostJson',
- testrunner,
- args : [
- '--test-outfile',
- ipcalc.full_path() + ' -j -h 127.0.0.1',
- files('ip-localhost-ipv4-json')
- ]
-)
# --class-prefix tests
test('AssignClassPrefix12',
testrunner,

View File

@@ -0,0 +1,118 @@
{
lib,
stdenv,
makeDesktopItem,
fetchFromGitHub,
pkg-config,
copyDesktopItems,
cairo,
freetype,
ghostscriptX,
gsl,
libjpeg,
libpng,
libspiro,
lua5,
qt6Packages,
texliveSmall,
qhull,
zlib,
withTeXLive ? true,
withQVoronoi ? false,
buildPackages,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ipe";
version = "7.2.30";
src = fetchFromGitHub {
owner = "otfried";
repo = "ipe";
tag = "v${finalAttrs.version}";
hash = "sha256-bvwEgEP/cinigixJr8e964sm6secSK+7Ul7WFfwM0gE=";
};
nativeBuildInputs = [
pkg-config
copyDesktopItems
qt6Packages.wrapQtAppsHook
];
buildInputs = [
cairo
freetype
ghostscriptX
gsl
libjpeg
libpng
libspiro
lua5
]
++ (with qt6Packages; [
qtbase
qtsvg
zlib
])
++ (lib.optionals withTeXLive [
texliveSmall
])
++ (lib.optionals withQVoronoi [
qhull
]);
makeFlags = [
"-C src"
"IPEPREFIX=${placeholder "out"}"
"LUA_PACKAGE=lua"
"MOC=${buildPackages.qt6Packages.qtbase}/libexec/moc"
"IPE_NO_SPELLCHECK=1" # qtSpell is not yet packaged
]
++ (lib.optionals withQVoronoi [
"IPEQVORONOI=1"
"QHULL_CFLAGS=-I${qhull}/include/libqhull_r"
]);
qtWrapperArgs = lib.optionals withTeXLive [ "--prefix PATH : ${lib.makeBinPath [ texliveSmall ]}" ];
enableParallelBuilding = true;
desktopItems = [
(makeDesktopItem {
name = "ipe";
desktopName = "Ipe";
genericName = "Drawing editor";
comment = "A drawing editor for creating figures in PDF format";
exec = "ipe";
icon = "ipe";
mimeTypes = [
"text/xml"
"application/pdf"
];
categories = [
"Graphics"
"Qt"
];
startupNotify = true;
startupWMClass = "ipe";
})
];
postInstall = ''
mkdir -p $out/share/icons/hicolor/128x128/apps
ln -s $out/share/ipe/${finalAttrs.version}/icons/icon_128x128.png $out/share/icons/hicolor/128x128/apps/ipe.png
'';
meta = {
description = "Editor for drawing figures";
homepage = "http://ipe.otfried.org"; # https not available
license = lib.licenses.gpl3Plus;
longDescription = ''
Ipe is an extensible drawing editor for creating figures in PDF and Postscript format.
It supports making small figures for inclusion into LaTeX-documents
as well as presentations in PDF.
'';
maintainers = with lib.maintainers; [ ttuegel ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
rustPlatform,
makeWrapper,
iperf3,
}:
rustPlatform.buildRustPackage rec {
pname = "iperf3d";
version = "1.0.0";
src = fetchFromGitHub {
owner = "wobcom";
repo = "iperf3d";
rev = "v${version}";
hash = "sha256-pMwGoBgFRVY+H51k+YCamzHgBoaJVwEVqY0CvMPvE0w=";
};
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
wrapProgram $out/bin/iperf3d --prefix PATH : ${iperf3}/bin
'';
cargoHash = "sha256-eijsPyoe3/+yR5kRmzk0dH62gTAFFURTVT8wN6Iy0HI=";
meta = with lib; {
description = "Iperf3 client and server wrapper for dynamic server ports";
mainProgram = "iperf3d";
homepage = "https://github.com/wobcom/iperf3d";
license = licenses.mit;
maintainers = with maintainers; [ netali ];
teams = [ teams.wdz ];
};
}

View File

@@ -0,0 +1,53 @@
{
stdenv,
lib,
fetchFromGitHub,
bash,
wget,
makeWrapper,
}:
stdenv.mkDerivation {
pname = "ipfetch";
version = "0-unstable-2024-02-02";
src = fetchFromGitHub {
owner = "trakBan";
repo = "ipfetch";
rev = "09b61e0d1d316dbcfab798dd00bc3f9ceb02431d";
sha256 = "sha256-RlbNIDRuf4sFS2zw4fIkTu0mB7xgJfPMDIk1I3UYXLk=";
};
strictDeps = true;
buildInputs = [
bash
wget
];
nativeBuildInputs = [ makeWrapper ];
postPatch = ''
patchShebangs --host ipfetch
# Not only does `/usr` have to be replaced but also `/flags` needs to be added because with Nix the script is broken without this. The `/flags` is somehow not needed if you install via the install script in the source repository.
substituteInPlace ./ipfetch --replace-fail /usr/share/ipfetch $out/usr/share/ipfetch/flags
'';
installPhase = ''
mkdir -p $out/bin
mkdir -p $out/usr/share/ipfetch/
cp -r flags $out/usr/share/ipfetch/
cp ipfetch $out/bin/ipfetch
wrapProgram $out/bin/ipfetch --prefix PATH : ${
lib.makeBinPath [
bash
wget
]
}
'';
meta = with lib; {
description = "Neofetch but for ip addresses";
mainProgram = "ipfetch";
homepage = "https://github.com/trakBan/ipfetch";
license = licenses.gpl3Only;
platforms = platforms.all;
maintainers = with maintainers; [ annaaurora ];
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "ipfs-cluster";
version = "1.1.4";
vendorHash = "sha256-VVejr6B7eDNNQF34PS/PaQ50mBNZgzJS50aNzbLJgCg=";
src = fetchFromGitHub {
owner = "ipfs-cluster";
repo = "ipfs-cluster";
rev = "v${version}";
hash = "sha256-mdLrLiRNudpQ8i0lvwoNAqhSWJ8VMEC1ZRxXHWHpqLY=";
};
meta = with lib; {
description = "Allocate, replicate, and track Pins across a cluster of IPFS daemons";
homepage = "https://ipfscluster.io";
license = licenses.mit;
maintainers = with maintainers; [
Luflosi
jglukasik
];
};
}

View File

@@ -0,0 +1,27 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "ipfs-upload-client";
version = "0.1.2";
src = fetchFromGitHub {
owner = "infura";
repo = "ipfs-upload-client";
rev = "v${version}";
hash = "sha256-BT/LC+PKzAjxM7P2Iis28OlJmrZRbCwfd6kPEL3oaaI=";
};
vendorHash = "sha256-YzIUoN/B4TBlAfmvORrR9Gy+lMzwlaePm8yBoMsPaYU=";
meta = with lib; {
description = "Minimal CLI tool to upload files and directories to IPFS via Infura's IPFS or another API endpoint";
homepage = "https://github.com/INFURA/ipfs-upload-client";
license = licenses.mit;
maintainers = with maintainers; [ matthewcroughan ];
mainProgram = "ipfs-upload-client";
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
buildGoModule,
fetchFromGitHub,
nixosTests,
nix-update-script,
}:
buildGoModule rec {
pname = "ipget";
version = "0.12.0";
src = fetchFromGitHub {
owner = "ipfs";
repo = "ipget";
rev = "v${version}";
hash = "sha256-7/wXrjnd7YD2qhVvP0yBMJDkDZjxJC1vZcQuqVd44rU=";
};
vendorHash = "sha256-b6Lulzi7zgO0VdWboxi5Vibx8cjuZ6r6O1PJvYubZu4=";
postPatch = ''
# main module (github.com/ipfs/ipget) does not contain package github.com/ipfs/ipget/sharness/dependencies
rm -r sharness/dependencies/
'';
doCheck = false;
passthru.tests = {
inherit (nixosTests) ipget;
};
passthru.updateScript = nix-update-script { };
meta = with lib; {
description = "Retrieve files over IPFS and save them locally";
homepage = "https://ipfs.io/";
license = licenses.mit;
maintainers = with maintainers; [ Luflosi ];
mainProgram = "ipget";
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
fetchFromGitHub,
python3Packages,
}:
python3Packages.buildPythonApplication rec {
pname = "ipgrep";
version = "1.0.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "jedisct1";
repo = "ipgrep";
rev = version;
hash = "sha256-NrhcUFQM+L66KaDRRpAoC+z5s54a+1fqEepTRXVZ5Qs=";
};
patchPhase = ''
mkdir -p ipgrep
substituteInPlace setup.py \
--replace-fail "'scripts': []" "'scripts': { 'ipgrep.py' }"
'';
build-system = with python3Packages; [
setuptools
];
dependencies = with python3Packages; [
pycares
urllib3
requests
];
meta = with lib; {
description = "Extract, defang, resolve names and IPs from text";
mainProgram = "ipgrep.py";
longDescription = ''
ipgrep extracts possibly obfuscated host names and IP addresses
from text, resolves host names, and prints them, sorted by ASN.
'';
license = licenses.mit;
maintainers = with maintainers; [ leenaars ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "ipinfo";
version = "3.3.1";
src = fetchFromGitHub {
owner = pname;
repo = "cli";
rev = "refs/tags/${pname}-${version}";
hash = "sha256-sdQdCP2NotrdeqYrSd9c6sExFeuX54I4fxJfEyULPuk=";
};
vendorHash = null;
# Tests require network access
doCheck = false;
meta = {
description = "Command Line Interface for the IPinfo API";
homepage = "https://github.com/ipinfo/cli";
changelog = "https://github.com/ipinfo/cli/releases/tag/ipinfo-${version}";
license = with lib.licenses; [ asl20 ];
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitHub,
cargo,
meson,
ninja,
pkg-config,
rustPlatform,
rustc,
wrapGAppsHook4,
desktop-file-utils,
libadwaita,
}:
stdenv.mkDerivation rec {
pname = "iplan";
version = "1.9.2";
src = fetchFromGitHub {
owner = "iman-salmani";
repo = "iplan";
rev = "v${version}";
hash = "sha256-BIoxaE8c3HmvPjgj4wcZK9YFTZ0wr9338AIdYEoAiqs=";
};
cargoDeps = rustPlatform.fetchCargoVendor {
inherit pname version src;
hash = "sha256-ATEm7RYfW9nYtTDAx580tvokVUIS7BL9mA65aEeJJvk=";
};
nativeBuildInputs = [
cargo
meson
ninja
pkg-config
rustPlatform.cargoSetupHook
rustc
wrapGAppsHook4
desktop-file-utils
];
buildInputs = [
libadwaita
];
meta = with lib; {
description = "Your plan for improving personal life and workflow";
homepage = "https://github.com/iman-salmani/iplan";
license = licenses.gpl3Plus;
mainProgram = "iplan";
maintainers = with maintainers; [ aleksana ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
python3Packages,
fetchFromGitHub,
meson,
ninja,
pkg-config,
gobject-introspection,
wrapGAppsHook4,
desktop-file-utils,
libadwaita,
}:
python3Packages.buildPythonPackage rec {
pname = "iplookup-gtk";
version = "0.4.1";
pyproject = false; # Built with meson
src = fetchFromGitHub {
owner = "Bytezz";
repo = "IPLookup-gtk";
tag = "v${version}";
hash = "sha256-WXLT7ThuD4/alb44mkGNLJjZPiWgNmSUqsRiO+cjdPk=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
gobject-introspection
wrapGAppsHook4
desktop-file-utils
];
buildInputs = [
libadwaita
];
dependencies = with python3Packages; [
pygobject3
];
dontWrapGApps = true;
preFixup = ''
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
'';
meta = {
description = "Find info about an IP address";
homepage = "https://github.com/Bytezz/IPLookup-gtk";
changelog = "https://github.com/Bytezz/IPLookup-gtk/releases/tag/${src.tag}";
license = lib.licenses.gpl3Plus;
mainProgram = "iplookup";
maintainers = with lib.maintainers; [ aleksana ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchzip,
}:
stdenv.mkDerivation rec {
pname = "ipmicfg";
version = "1.34.0";
buildVersion = "220906";
src = fetchzip {
url = "https://www.supermicro.com/Bios/sw_download/481/IPMICFG_${version}_build.${buildVersion}.zip";
hash = "sha256-ZumCXuR7M2Ep7maBOBFk0UsxyRo4fBkf+9AVmkz4AF0=";
};
installPhase = ''
mkdir -p "$out/bin" "$out/opt/ipmicfg"
cp Linux/64bit/* "$out/opt/ipmicfg"
patchelf \
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
--set-rpath "${lib.makeLibraryPath [ stdenv.cc.cc ]}" \
"$out/opt/ipmicfg/IPMICFG-Linux.x86_64"
ln -s "$out/opt/ipmicfg/IPMICFG-Linux.x86_64" "$out/bin/ipmicfg"
'';
dontPatchShebangs = true; # There are no scripts and it complains about null bytes.
meta = with lib; {
description = "Supermicro IPMI configuration tool";
homepage = "http://www.supermicro.com/products/nfo/ipmi.cfm";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
platforms = [ "x86_64-linux" ];
maintainers = with maintainers; [ sorki ];
};
}

View File

@@ -0,0 +1,55 @@
{
stdenv,
lib,
fetchFromGitea,
autoreconfHook,
pkg-config,
openssl,
readline,
fetchurl,
}:
let
iana-enterprise-numbers = fetchurl {
url = "https://web.archive.org/web/20250113140800id_/https://www.iana.org/assignments/enterprise-numbers.txt";
hash = "sha256-aRgBEfZYwoL6YnU3aD0WYeMnJD5ZCj34S/9aQyzBIO4=";
};
in
stdenv.mkDerivation {
pname = "ipmitool";
version = "1.8.19-unstable-2025-02-18";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "IPMITool";
repo = "ipmitool";
rev = "3c91e6d91ec6090fe548c55ef301c33ff20c8ed8";
hash = "sha256-7R3jmPPd8+yKs7Q1vlU/ZaZusZVB0s+xc1HGeLyLdk0=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
openssl
readline
];
configureFlags = [ "--disable-registry-download" ];
postInstall = ''
# Install to path reported in configure as "Set IANA PEN dictionary search path to ..."
install -Dm444 ${iana-enterprise-numbers} $out/share/misc/enterprise-numbers
'';
meta = {
description = "Command-line interface to IPMI-enabled devices";
mainProgram = "ipmitool";
license = lib.licenses.bsd3;
homepage = "https://codeberg.org/IPMITool/ipmitool";
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ fpletz ];
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchurl,
openssl,
}:
stdenv.mkDerivation rec {
pname = "ipmiutil";
version = "3.2.1";
src = fetchurl {
url = "mirror://sourceforge/project/ipmiutil/ipmiutil-${version}.tar.gz";
sha256 = "sha256-BIEbLmV/+YzTHkS5GnAMnzPEyd2To2yPyYfeH0fCQCQ=";
};
buildInputs = [ openssl ];
preBuild = ''
sed -e "s@/usr@$out@g" -i Makefile */Makefile */*/Makefile
sed -e "s@/etc@$out/etc@g" -i Makefile */Makefile */*/Makefile
sed -e "s@/var@$out/var@g" -i Makefile */Makefile */*/Makefile
'';
env.NIX_CFLAGS_COMPILE = "-fno-stack-protector";
meta = with lib; {
description = "Easy-to-use IPMI server management utility";
homepage = "https://ipmiutil.sourceforge.net/";
maintainers = with maintainers; [ raskin ];
platforms = platforms.linux;
license = licenses.bsd3;
downloadPage = "https://sourceforge.net/projects/ipmiutil/files/ipmiutil/";
};
}

View File

@@ -0,0 +1,111 @@
{
lib,
stdenv,
fetchurl,
makeDesktopItem,
makeWrapper,
patchelf,
fontconfig,
freetype,
gcc,
gcc-unwrapped,
iputils,
psmisc,
xorg,
}:
stdenv.mkDerivation rec {
pname = "IPMIView";
version = "2.21.0";
buildVersion = "221118";
src = fetchurl {
url = "https://www.supermicro.com/wftp/utility/IPMIView/Linux/IPMIView_${version}_build.${buildVersion}_bundleJRE_Linux_x64.tar.gz";
hash = "sha256-ZN0vadGbjGj9U2wPqvHLjS9fsk3DNCbXoNvzUfnn8IM=";
};
nativeBuildInputs = [
patchelf
makeWrapper
];
buildPhase =
with xorg;
let
stunnelBinary =
if stdenv.hostPlatform.system == "x86_64-linux" then
"linux/stunnel64"
else if stdenv.hostPlatform.system == "i686-linux" then
"linux/stunnel32"
else
throw "IPMIView is not supported on this platform";
in
''
runHook preBuild
patchelf --set-rpath "${
lib.makeLibraryPath [
libX11
libXext
libXrender
libXtst
libXi
]
}" ./jre/lib/libawt_xawt.so
patchelf --set-rpath "${lib.makeLibraryPath [ freetype ]}" ./jre/lib/libfontmanager.so
patchelf --set-rpath "${gcc.cc}/lib:$out/jre/lib/jli" --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./jre/bin/java
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" ./BMCSecurity/${stunnelBinary}
runHook postBuild
'';
desktopItem = makeDesktopItem rec {
name = "IPMIView";
exec = "IPMIView";
desktopName = name;
genericName = "Supermicro BMC manager";
categories = [ "Network" ];
};
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp -R . $out/
ln -s ${desktopItem}/share $out/share
# LD_LIBRARY_PATH: fontconfig is used from java code
# PATH: iputils is used for ping, and psmisc is for killall
# WORK_DIR: unfortunately the ikvm related binaries are loaded from
# and user configuration is written to files in the CWD
makeWrapper $out/jre/bin/java $out/bin/IPMIView \
--set LD_LIBRARY_PATH "${
lib.makeLibraryPath [
fontconfig
gcc-unwrapped.lib
]
}" \
--prefix PATH : "$out/jre/bin:${iputils}/bin:${psmisc}/bin" \
--add-flags "-jar $out/IPMIView20.jar" \
--run 'WORK_DIR=''${XDG_DATA_HOME:-~/.local/share}/ipmiview
mkdir -p $WORK_DIR
ln -snf '$out'/iKVM.jar '$out'/iKVM_ssl.jar '$out'/libiKVM* '$out'/libSharedLibrary* $WORK_DIR
cd $WORK_DIR'
runHook postInstall
'';
meta = with lib; {
sourceProvenance = with sourceTypes; [
binaryBytecode
binaryNativeCode
];
license = licenses.unfree;
maintainers = with maintainers; [ vlaci ];
platforms = [
"x86_64-linux"
"i686-linux"
];
mainProgram = "IPMIView";
};
}

View File

@@ -0,0 +1,78 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
blas,
lapack,
gfortran,
enableAMPL ? true,
libamplsolver,
enableMUMPS ? true,
mumps,
mpi,
enableSPRAL ? true,
spral,
}:
assert (!blas.isILP64) && (!lapack.isILP64);
stdenv.mkDerivation rec {
pname = "ipopt";
version = "3.14.19";
src = fetchFromGitHub {
owner = "coin-or";
repo = "Ipopt";
rev = "releases/${version}";
sha256 = "sha256-85fUBMwQtG+RWQYk9YzdZYK3CYcDKgWroo4blhVWBzE=";
};
CXXDEFS = [
"-DHAVE_RAND"
"-DHAVE_CSTRING"
"-DHAVE_CSTDIO"
];
configureFlags =
lib.optionals enableAMPL [
"--with-asl-cflags=-I${libamplsolver}/include"
"--with-asl-lflags=-lamplsolver"
]
++ lib.optionals enableMUMPS [
"--with-mumps-cflags=-I${mumps}/include"
"--with-mumps-lflags=-ldmumps"
]
++ lib.optionals enableSPRAL [
"--with-spral-cflags=-I${spral}/include"
"--with-spral-lflags=-lspral"
];
nativeBuildInputs = [
pkg-config
gfortran
];
buildInputs = [
blas
lapack
]
++ lib.optionals enableAMPL [ libamplsolver ]
++ lib.optionals enableMUMPS [
mumps
mpi
]
++ lib.optionals enableSPRAL [ spral ];
enableParallelBuilding = true;
meta = {
description = "Software package for large-scale nonlinear optimization";
homepage = "https://projects.coin-or.org/Ipopt";
license = lib.licenses.epl10;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
nim65s
qbisi
];
};
}

View File

@@ -0,0 +1,59 @@
{
buildGoModule,
avahi,
libusb1,
pkg-config,
lib,
fetchFromGitHub,
ronn,
}:
buildGoModule rec {
pname = "ipp-usb";
version = "0.9.30";
src = fetchFromGitHub {
owner = "openprinting";
repo = "ipp-usb";
rev = version;
sha256 = "sha256-LcThjiN/MRk4ISWWRT4g/eLvuhzM8pIDAcSlM5us3nQ=";
};
postPatch = ''
# rebuild with patched paths
rm ipp-usb.8
substituteInPlace Makefile --replace "install: all" "install: man"
substituteInPlace systemd-udev/ipp-usb.service --replace "/sbin" "$out/bin"
for i in Makefile paths.go ipp-usb.8.md; do
substituteInPlace $i --replace "/usr" "$out"
substituteInPlace $i --replace "/var/ipp-usb" "/var/lib/ipp-usb"
done
'';
nativeBuildInputs = [
pkg-config
ronn
];
buildInputs = [
libusb1
avahi
];
vendorHash = null;
doInstallCheck = true;
postInstall = ''
# to accomodate the makefile
cp $out/bin/ipp-usb .
make install DESTDIR=$out
'';
meta = {
description = "Daemon to use the IPP everywhere protocol with USB printers";
mainProgram = "ipp-usb";
homepage = "https://github.com/OpenPrinting/ipp-usb";
maintainers = [ lib.maintainers.symphorien ];
platforms = lib.platforms.linux;
license = lib.licenses.bsd2;
};
}

View File

@@ -0,0 +1,128 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
buildPackages,
bison,
flex,
pkg-config,
db,
iptables,
elfutils,
libmnl,
libbpf,
python3,
gitUpdater,
pkgsStatic,
}:
stdenv.mkDerivation rec {
pname = "iproute2";
version = "6.16.0";
src = fetchurl {
url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
hash = "sha256-WQDMwV+aw797fq6B3rWTcSPfNemTR6fxGiKBhILwqNA=";
};
patches = [
(fetchpatch {
name = "color-assume-background-is-dark-if-unknown.patch";
url = "https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/patch/?id=cc0f1109d2864686180ba2ce6fba5fcb3bf437bf";
hash = "sha256-BGD70cXKnDvk7IEU5RQA+pn1dErWjgr74GeSkYtFXoI=";
})
(fetchpatch {
name = "color-do-not-use-dark-blue-in-dark-background-palette.patch";
url = "https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/patch/?id=46a4659313c2610427a088d8f03b731819f2b87a";
hash = "sha256-TXrmGZNsYWdYLsLoBXZEr3cd8HT4EhRg+jACRrC0gKE=";
})
(fetchurl {
name = "musl-endian.patch";
url = "https://lore.kernel.org/netdev/20240712191209.31324-1-contact@hacktivis.me/raw";
hash = "sha256-MX+P+PSEh6XlhoWgzZEBlOV9aXhJNd20Gi0fJCcSZ5E=";
})
(fetchurl {
name = "musl-basename.patch";
url = "https://lore.kernel.org/netdev/20240804161054.942439-1-dilfridge@gentoo.org/raw";
hash = "sha256-47obv6mIn/HO47lt47slpTAFDxiQ3U/voHKzIiIGCTM=";
})
];
postPatch = ''
substituteInPlace Makefile \
--replace "CC := gcc" "CC ?= $CC"
'';
outputs = [
"out"
"dev"
];
configureFlags = [
"--color"
"auto"
];
makeFlags = [
"PREFIX=$(out)"
"SBINDIR=$(out)/sbin"
"DOCDIR=$(TMPDIR)/share/doc/${pname}" # Don't install docs
"HDRDIR=$(dev)/include/iproute2"
]
++ lib.optionals stdenv.hostPlatform.isStatic [
"SHARED_LIBS=n"
# all build .so plugins:
"TC_CONFIG_NO_XT=y"
]
++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
"HOSTCC=$(CC_FOR_BUILD)"
];
buildFlags = [
"CONFDIR=/etc/iproute2"
];
installFlags = [
"CONFDIR=$(out)/etc/iproute2"
];
depsBuildBuild = [ buildPackages.stdenv.cc ]; # netem requires $HOSTCC
nativeBuildInputs = [
bison
flex
pkg-config
];
buildInputs = [
db
iptables
libmnl
python3
]
# needed to uploaded bpf programs
++ lib.optionals (!stdenv.hostPlatform.isStatic) [
elfutils
libbpf
];
enableParallelBuilding = true;
passthru.updateScript = gitUpdater {
# No nicer place to find latest release.
url = "https://git.kernel.org/pub/scm/network/iproute2/iproute2.git";
rev-prefix = "v";
};
# needed for nixos-anywhere
passthru.tests.static = pkgsStatic.iproute2;
meta = with lib; {
homepage = "https://wiki.linuxfoundation.org/networking/iproute2";
description = "Collection of utilities for controlling TCP/IP networking and traffic control in Linux";
platforms = platforms.linux;
license = licenses.gpl2Only;
maintainers = with maintainers; [
fpletz
globin
];
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitHub,
darwin,
makeWrapper,
python3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "iproute2mac";
version = "1.6.0";
src = fetchFromGitHub {
owner = "brona";
repo = "iproute2mac";
tag = "v${finalAttrs.version}";
hash = "sha256-aemeZnZlnmIKdLz5Myjn51dYTvfovFPQeytJbNxbI4E=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ python3 ];
postPatch = ''
substituteInPlace src/iproute2mac.py \
--replace-fail /sbin/ifconfig ${darwin.network_cmds}/bin/ifconfig \
--replace-fail /sbin/route ${darwin.network_cmds}/bin/route \
--replace-fail /usr/sbin/netstat ${darwin.network_cmds}/bin/netstat \
--replace-fail /usr/sbin/ndp ${darwin.network_cmds}/bin/ndp \
--replace-fail /usr/sbin/arp ${darwin.network_cmds}/bin/arp \
--replace-fail /usr/sbin/networksetup ${darwin.network_cmds}/bin/networksetup
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin $out/libexec
install -D -m 755 src/iproute2mac.py $out/libexec/iproute2mac.py
install -D -m 755 src/ip.py $out/libexec/ip
install -D -m 755 src/bridge.py $out/libexec/bridge
makeWrapper $out/libexec/ip $out/bin/ip
makeWrapper $out/libexec/bridge $out/bin/bridge
runHook postInstall
'';
meta = {
homepage = "https://github.com/brona/iproute2mac";
description = "CLI wrapper for basic network utilites on Mac OS X inspired with iproute2 on Linux systems - ip command";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jiegec ];
platforms = lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,67 @@
{
lib,
stdenv,
fetchFromGitLab,
ocamlPackages,
eprover,
z3,
zlib,
}:
stdenv.mkDerivation {
pname = "iprover";
version = "3.8.1";
src = fetchFromGitLab {
owner = "korovin";
repo = "iprover";
rev = "f61edb113b705606c7314dc4dce0687832c3169f";
hash = "sha256-XXqbEoYKjoktE3ZBEIEFjLhA1B75zhnfPszhe8SvbI8=";
};
postPatch = ''
substituteInPlace configure --replace Linux Debian
'';
strictDeps = true;
nativeBuildInputs = [
eprover
]
++ (with ocamlPackages; [
ocaml
findlib
]);
buildInputs = [
zlib
ocamlPackages.z3
z3
]
++ (with ocamlPackages; [
ocamlgraph
yojson
zarith
]);
preConfigure = "patchShebangs .";
installPhase = ''
runHook preInstall
mkdir -p "$out/bin"
cp iproveropt "$out/bin"
echo -e "#! ${stdenv.shell}\\n$out/bin/iproveropt --clausifier \"${eprover}/bin/eprover\" --clausifier_options \" --tstp-format --silent --cnf \" \"\$@\"" > "$out"/bin/iprover
chmod a+x "$out"/bin/iprover
runHook postInstall
'';
meta = with lib; {
description = "Automated first-order logic theorem prover";
homepage = "http://www.cs.man.ac.uk/~korovink/iprover/";
maintainers = with maintainers; [
raskin
];
platforms = platforms.linux;
license = licenses.gpl3;
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchurl,
jdk,
jre,
swt,
makeWrapper,
xorg,
dpkg,
gtk3,
glib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ipscan";
version = "3.9.2";
src = fetchurl {
url = "https://github.com/angryip/ipscan/releases/download/${finalAttrs.version}/ipscan_${finalAttrs.version}_amd64.deb";
hash = "sha256-5H6QCT7Z3EOJks/jLBluTCgJbqpRMW5iheds9nl4ktU=";
};
nativeBuildInputs = [
dpkg
makeWrapper
];
buildInputs = [ jdk ];
installPhase = ''
mkdir -p $out/share
cp usr/lib/ipscan/ipscan-linux64-${finalAttrs.version}.jar $out/share/${finalAttrs.pname}-${finalAttrs.version}.jar
makeWrapper ${jre}/bin/java $out/bin/ipscan \
--prefix LD_LIBRARY_PATH : "$out/lib/:${
lib.makeLibraryPath [
swt
xorg.libXtst
gtk3
glib
]
}" \
--add-flags "-Xmx256m -cp $out/share/${finalAttrs.pname}-${finalAttrs.version}.jar:${swt}/jars/swt.jar net.azib.ipscan.Main"
mkdir -p $out/share/applications
cp usr/share/applications/ipscan.desktop $out/share/applications/ipscan.desktop
substituteInPlace $out/share/applications/ipscan.desktop --replace "/usr/bin" "$out/bin"
mkdir -p $out/share/pixmaps
cp usr/share/pixmaps/ipscan.png $out/share/pixmaps/ipscan.png
'';
meta = {
description = "Angry IP Scanner - fast and friendly network scanner";
mainProgram = "ipscan";
homepage = "https://angryip.org";
downloadPage = "https://github.com/angryip/ipscan/releases/tag/${finalAttrs.version}";
changelog = "https://github.com/angryip/ipscan/blob/${finalAttrs.version}/CHANGELOG";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.gpl2Only;
platforms = [ "x86_64-linux" ];
maintainers = with lib.maintainers; [
kylesferrazza
totoroot
];
};
})

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libmnl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ipset";
version = "7.24";
src = fetchurl {
url = "https://ipset.netfilter.org/ipset-${finalAttrs.version}.tar.bz2";
hash = "sha256-++NCTf8iLBy15cNNOLZFJLIhfOgCJsFP3LsTsp6jYRI=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libmnl ];
configureFlags = [ "--with-kmod=no" ];
meta = with lib; {
homepage = "https://ipset.netfilter.org/";
description = "Administration tool for IP sets";
license = licenses.gpl2Plus;
platforms = platforms.linux;
mainProgram = "ipset";
};
})

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchFromGitHub,
ncurses,
}:
stdenv.mkDerivation rec {
version = "1.2.2";
pname = "iptraf-ng";
src = fetchFromGitHub {
owner = "iptraf-ng";
repo = "iptraf-ng";
rev = "v${version}";
sha256 = "sha256-SM1cJYNnZlGl3eWaYd8DlPrV4AL9nck1tjdOn0CHVUw=";
};
buildInputs = [ ncurses ];
makeFlags = [
"DESTDIR=$(out)"
"prefix=/usr"
"sbindir=/bin"
];
hardeningDisable = [ "format" ];
meta = with lib; {
description = "Console-based network monitoring utility (fork of iptraf)";
longDescription = ''
IPTraf-ng is a console-based network monitoring utility. IPTraf-ng
gathers data like TCP connection packet and byte counts, interface
statistics and activity indicators, TCP/UDP traffic breakdowns, and LAN
station packet and byte counts. IPTraf-ng features include an IP traffic
monitor which shows TCP flag information, packet and byte counts, ICMP
details, OSPF packet types, and oversized IP packet warnings; interface
statistics showing IP, TCP, UDP, ICMP, non-IP and other IP packet counts,
IP checksum errors, interface activity and packet size counts; a TCP and
UDP service monitor showing counts of incoming and outgoing packets for
common TCP and UDP application ports, a LAN statistics module that
discovers active hosts and displays statistics about their activity; TCP,
UDP and other protocol display filters so you can view just the traffic
you want; logging; support for Ethernet, FDDI, ISDN, SLIP, PPP, and
loopback interfaces; and utilization of the built-in raw socket interface
of the Linux kernel, so it can be used on a wide variety of supported
network cards.
'';
homepage = "https://github.com/iptraf-ng/iptraf-ng";
license = licenses.gpl2Only;
platforms = platforms.linux;
maintainers = with maintainers; [ devhell ];
mainProgram = "iptraf-ng";
};
}

View File

@@ -0,0 +1,82 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
meson,
ninja,
pkg-config,
cli11,
eigen,
hidrd,
inih,
microsoft-gsl,
spdlog,
systemd,
udevCheckHook,
}:
stdenv.mkDerivation rec {
pname = "iptsd";
version = "3";
src = fetchFromGitHub {
owner = "linux-surface";
repo = "iptsd";
tag = "v${version}";
hash = "sha256-3z3A9qywmsSW1tlJ6LePC5wudM/FITTAFyuPkbHlid0=";
};
nativeBuildInputs = [
cmake
meson
ninja
pkg-config
udevCheckHook
];
dontUseCmakeConfigure = true;
buildInputs = [
cli11
eigen
hidrd
inih
microsoft-gsl
spdlog
systemd
];
doInstallCheck = true;
# Original installs udev rules and service config into global paths
postPatch = ''
substituteInPlace etc/meson.build \
--replace-fail "install_dir: unitdir" "install_dir: '$out/etc/systemd/system'" \
--replace-fail "install_dir: rulesdir" "install_dir: '$out/etc/udev/rules.d'"
substituteInPlace etc/scripts/iptsd-find-service \
--replace-fail "systemd-escape" "${lib.getExe' systemd "systemd-escape"}"
substituteInPlace etc/udev/50-iptsd.rules.in \
--replace-fail "/bin/systemd-escape" "${lib.getExe' systemd "systemd-escape"}"
'';
mesonFlags = [
"-Dservice_manager=systemd"
"-Dsample_config=false"
"-Ddebug_tools="
"-Db_lto=false" # plugin needed to handle lto object -> undefined reference to ...
];
meta = {
changelog = "https://github.com/linux-surface/iptsd/releases/tag/v${version}";
description = "Userspace daemon for Intel Precise Touch & Stylus";
homepage = "https://github.com/linux-surface/iptsd";
license = lib.licenses.gpl2Plus;
mainProgram = "iptsd";
maintainers = with lib.maintainers; [
tomberek
dotlambda
];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchurl,
libnetfilter_conntrack,
ncurses,
}:
stdenv.mkDerivation rec {
pname = "iptstate";
version = "2.2.7";
src = fetchurl {
url = "https://github.com/jaymzh/iptstate/releases/download/v${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-iW3wYCiFRWomMfeV1jT8ITEeUF+MkQNI5jEoYPIJeVU=";
};
buildInputs = [
libnetfilter_conntrack
ncurses
];
meta = with lib; {
description = "Conntrack top like tool";
mainProgram = "iptstate";
homepage = "https://github.com/jaymzh/iptstate";
platforms = platforms.linux;
maintainers = with maintainers; [ trevorj ];
downloadPage = "https://github.com/jaymzh/iptstate/releases";
license = licenses.zlib;
};
installPhase = ''
install -m755 -D iptstate $out/bin/iptstate
'';
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
autoPatchelfHook,
expat,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ipu6-camera-bins";
version = "unstable-2025-06-27";
src = fetchFromGitHub {
repo = "ipu6-camera-bins";
owner = "intel";
rev = "30e87664829782811a765b0ca9eea3a878a7ff29";
hash = "sha256-YPPzuK13o2jnRSB3ORoMUU5E9/IifKVSetAqZHRofhw=";
};
nativeBuildInputs = [
autoPatchelfHook
(lib.getLib stdenv.cc.cc)
expat
zlib
];
installPhase = ''
runHook preInstall
mkdir -p $out
cp --no-preserve=mode --recursive \
lib \
include \
$out/
# There is no LICENSE file in the src
# install -m 0644 -D LICENSE $out/share/doc/LICENSE
runHook postInstall
'';
postFixup = ''
for lib in $out/lib/lib*.so.*; do \
lib=''${lib##*/}; \
ln -s $lib $out/lib/''${lib%.*}; \
done
for pcfile in $out/lib/pkgconfig/*.pc; do
substituteInPlace $pcfile \
--replace 'prefix=/usr' "prefix=$out"
done
'';
meta = with lib; {
description = "IPU firmware and proprietary image processing libraries";
homepage = "https://github.com/intel/ipu6-camera-bins";
license = licenses.issl;
sourceProvenance = with sourceTypes; [
binaryFirmware
];
maintainers = [ ];
platforms = [ "x86_64-linux" ];
};
})

View File

@@ -0,0 +1,76 @@
{
lib,
stdenv,
fetchFromGitHub,
getopt,
ip2location-c,
openssl,
perl,
libmaxminddb ? null,
geolite-legacy ? null,
}:
stdenv.mkDerivation rec {
pname = "ipv6calc";
version = "4.4.0";
src = fetchFromGitHub {
owner = "pbiering";
repo = "ipv6calc";
rev = version;
sha256 = "sha256-+u+7XdW0bS3nE5djdy7I1/NHZdXU9QKukZAvTkWsCK0=";
};
buildInputs = [
libmaxminddb
geolite-legacy
getopt
ip2location-c
openssl
perl
];
postPatch = ''
patchShebangs *.sh */*.sh
for i in {,databases/}lib/Makefile.in; do
substituteInPlace $i --replace "/sbin/ldconfig" "ldconfig"
done
'';
configureFlags = [
"--prefix=${placeholder "out"}"
"--libdir=${placeholder "out"}/lib"
"--datadir=${placeholder "out"}/share"
"--disable-bundled-getopt"
"--disable-bundled-md5"
"--disable-dynamic-load"
"--enable-shared"
]
++ lib.optionals (libmaxminddb != null) [
"--enable-mmdb"
]
++ lib.optionals (geolite-legacy != null) [
"--with-geoip-db=${geolite-legacy}/share/GeoIP"
]
++ lib.optionals (ip2location-c != null) [
"--enable-ip2location"
];
enableParallelBuilding = true;
meta = with lib; {
description = "Calculate/manipulate (not only) IPv6 addresses";
longDescription = ''
ipv6calc is a small utility to manipulate (not only) IPv6 addresses and
is able to do other tricky things. Intentions were convering a given
IPv6 address into compressed format, convering a given IPv6 address into
the same format like shown in /proc/net/if_inet6 and (because it was not
difficult) migrating the Perl program ip6_int into.
Now only one utiltity is needed to do a lot.
'';
homepage = "http://www.deepspace6.net/projects/ipv6calc.html";
license = licenses.gpl2Only;
maintainers = [ ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libnl,
popt,
gnugrep,
}:
stdenv.mkDerivation rec {
pname = "ipvsadm";
version = "1.31";
src = fetchurl {
url = "mirror://kernel/linux/utils/kernel/ipvsadm/${pname}-${version}.tar.xz";
sha256 = "1nyzpv1hx75k9lh0vfxfhc0p2fpqaqb38xpvs8sn88m1nljmw2hs";
};
postPatch = ''
substituteInPlace Makefile --replace "-lnl" "$(pkg-config --libs libnl-genl-3.0)"
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libnl
popt
];
# Disable parallel build, errors:
# *** No rule to make target 'libipvs/libipvs.a', needed by 'ipvsadm'. Stop.
enableParallelBuilding = false;
preBuild = ''
makeFlagsArray+=(
INCLUDE=$(pkg-config --cflags libnl-genl-3.0)
BUILD_ROOT=$out
MANDIR=share/man
)
'';
postInstall = ''
sed -i -e "s|^PATH=.*|PATH=$out/bin:${gnugrep}/bin|" $out/sbin/ipvsadm-{restore,save}
'';
meta = with lib; {
description = "Linux Virtual Server support programs";
homepage = "http://www.linuxvirtualserver.org/software/ipvs.html";
license = licenses.gpl2Plus;
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,158 @@
{
stdenv,
lib,
fetchFromGitHub,
unstableGitUpdater,
buildPackages,
mtools,
openssl,
perl,
xorriso,
xz,
syslinux,
embedScript ? null,
additionalTargets ? { },
additionalOptions ? [ ],
firmwareBinary ? "ipxe.efirom",
}:
let
targets =
additionalTargets
// lib.optionalAttrs stdenv.hostPlatform.isx86_64 {
"bin-x86_64-efi/ipxe.efi" = null;
"bin-x86_64-efi/ipxe.efirom" = null;
"bin-x86_64-efi/ipxe.usb" = "ipxe-efi.usb";
"bin-x86_64-efi/snp.efi" = null;
}
// lib.optionalAttrs stdenv.hostPlatform.isx86 {
"bin/ipxe.dsk" = null;
"bin/ipxe.usb" = null;
"bin/ipxe.iso" = null;
"bin/ipxe.lkrn" = null;
"bin/undionly.kpxe" = null;
}
// lib.optionalAttrs stdenv.hostPlatform.isAarch32 {
"bin-arm32-efi/ipxe.efi" = null;
"bin-arm32-efi/ipxe.efirom" = null;
"bin-arm32-efi/ipxe.usb" = "ipxe-efi.usb";
"bin-arm32-efi/snp.efi" = null;
}
// lib.optionalAttrs stdenv.hostPlatform.isAarch64 {
"bin-arm64-efi/ipxe.efi" = null;
"bin-arm64-efi/ipxe.efirom" = null;
"bin-arm64-efi/ipxe.usb" = "ipxe-efi.usb";
"bin-arm64-efi/snp.efi" = null;
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "ipxe";
version = "1.21.1-unstable-2025-10-01";
nativeBuildInputs = [
mtools
openssl
perl
xorriso
xz
]
++ lib.optional stdenv.hostPlatform.isx86 syslinux;
depsBuildBuild = [ buildPackages.stdenv.cc ];
strictDeps = true;
src = fetchFromGitHub {
owner = "ipxe";
repo = "ipxe";
rev = "cf534975411051ea0ddcbea28347d8d643a36360";
hash = "sha256-B6lViDMH/VK+xdrDwaa1zIZUcfCF94hk+/UrdgVxk0c=";
};
# Calling syslinux on a FAT image isn't going to work on Aarch64.
postPatch = lib.optionalString stdenv.hostPlatform.isAarch64 ''
substituteInPlace src/util/genfsimg --replace " syslinux " " true "
'';
# Hardening is not possible due to assembler code.
hardeningDisable = [
"pic"
"stackprotector"
];
makeFlags = [
"ECHO_E_BIN_ECHO=echo"
"ECHO_E_BIN_ECHO_E=echo" # No /bin/echo here.
"CROSS=${stdenv.cc.targetPrefix}"
]
++ lib.optional (embedScript != null) "EMBED=${embedScript}";
enabledOptions = [
"PING_CMD"
"IMAGE_TRUST_CMD"
"DOWNLOAD_PROTO_HTTP"
"DOWNLOAD_PROTO_HTTPS"
]
++ additionalOptions;
configurePhase = ''
runHook preConfigure
for opt in ${lib.escapeShellArgs finalAttrs.enabledOptions}; do echo "#define $opt" >> src/config/general.h; done
substituteInPlace src/Makefile.housekeeping --replace '/bin/echo' echo
''
+ lib.optionalString stdenv.hostPlatform.isx86 ''
substituteInPlace src/util/genfsimg --replace /usr/lib/syslinux ${syslinux}/share/syslinux
''
+ ''
runHook postConfigure
'';
preBuild = "cd src";
buildFlags = lib.attrNames targets;
installPhase = ''
runHook preInstall
mkdir -p $out
${lib.concatStringsSep "\n" (
lib.mapAttrsToList (
from: to: if to == null then "cp -v ${from} $out" else "cp -v ${from} $out/${to}"
) targets
)}
''
+ lib.optionalString stdenv.hostPlatform.isx86 ''
# Some PXE constellations especially with dnsmasq are looking for the file with .0 ending
# let's provide it as a symlink to be compatible in this case.
ln -s undionly.kpxe $out/undionly.kpxe.0
''
+ ''
runHook postInstall
'';
enableParallelBuilding = true;
passthru = {
firmware = "${finalAttrs.finalPackage}/${firmwareBinary}";
updateScript = unstableGitUpdater {
tagPrefix = "v";
};
};
meta = {
description = "Network boot firmware";
homepage = "https://ipxe.org/";
license = with lib.licenses; [
bsd2
bsd3
gpl2Only
ubdlException
isc
mit
mpl11
];
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [ sigmasquadron ];
};
})