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,37 @@
{
lib,
fetchFromGitHub,
buildGoModule,
nix-update-script,
}:
buildGoModule rec {
pname = "os-agent";
version = "1.7.2";
src = fetchFromGitHub {
owner = "home-assistant";
repo = "os-agent";
tag = "${version}";
hash = "sha256-nny4gmSW8U9jdW//GXTn/zlmRhMbhf+4dbxju9Qs7zA=";
};
vendorHash = "sha256-9boWe/mvJ/C/I8B7b4hJgz2dEDgpKCNTE/8pVAsNTxg=";
ldFlags = [
"-X main.version="
];
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Daemon allowing to control OS features through D-Bus";
homepage = "https://github.com/home-assistant/os-agent";
changelog = "https://github.com/home-assistant/os-agent/releases/tag/${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ genga898 ];
mainProgram = "os-agent";
};
}

View File

@@ -0,0 +1,91 @@
{
lib,
stdenv,
fetchFromGitLab,
makeWrapper,
nixosTests,
# optional dependencies, the command(s) they provide
coreutils, # mktemp
grub2, # grub-mount and grub-probe
cryptsetup, # cryptsetup
libuuid, # blkid and blockdev
systemd, # udevadm
ntfs3g, # ntfs3g
dmraid, # dmraid
lvm2, # lvs
}:
stdenv.mkDerivation rec {
version = "1.83";
pname = "os-prober";
src = fetchFromGitLab {
domain = "salsa.debian.org";
owner = "installer-team";
repo = "os-prober";
rev = version;
sha256 = "sha256-cTufM82YE1L7d3kIOtncICInBPEw4o4NzQXB4uDrMKI=";
};
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
# executables
install -Dt $out/bin os-prober linux-boot-prober
install -Dt $out/lib newns
install -Dt $out/share common.sh
# probes
case "${stdenv.hostPlatform.system}" in
i686*|x86_64*) ARCH=x86;;
powerpc*) ARCH=powerpc;;
arm*) ARCH=arm;;
*) ARCH=other;;
esac;
for probes in os-probes os-probes/mounted os-probes/init linux-boot-probes linux-boot-probes/mounted; do
install -Dt $out/lib/$probes $probes/common/*;
if [ -e "$probes/$ARCH" ]; then
mkdir -p $out/lib/$probes
cp -r $probes/$ARCH/* $out/lib/$probes;
fi;
done
if [ $ARCH = "x86" ]; then
cp -r os-probes/mounted/powerpc/20macosx $out/lib/os-probes/mounted;
fi;
'';
postFixup = ''
for file in $(find $out -type f ! -name newns) ; do
substituteInPlace $file \
--replace /usr/share/os-prober/ $out/share/ \
--replace /usr/lib/os-probes/ $out/lib/os-probes/ \
--replace /usr/lib/linux-boot-probes/ $out/lib/linux-boot-probes/ \
--replace /usr/lib/os-prober/ $out/lib/
done;
for file in $out/bin/*; do
wrapProgram $file \
--suffix PATH : ${
lib.makeBinPath [
grub2
systemd
coreutils
cryptsetup
libuuid
ntfs3g
lvm2
dmraid
]
} \
--run "[ -d /var/lib/os-prober ] || mkdir /var/lib/os-prober"
done;
'';
passthru.tests = {
os-prober = nixosTests.os-prober;
};
meta = with lib; {
description = "Utility to detect other OSs on a set of drives";
homepage = "http://packages.debian.org/source/sid/os-prober";
license = licenses.gpl2Plus;
mainProgram = "os-prober";
maintainers = with maintainers; [ symphorien ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
pname = "osc-cli";
version = "1.11.0";
pyproject = true;
src = fetchFromGitHub {
owner = "outscale";
repo = "osc-cli";
rev = "v${version}";
hash = "sha256-7WXy+1NHwFvYmyi5xGfWpq/mbVGJ3WkgP5WQd5pvcC0=";
};
build-system = [
python3.pkgs.setuptools
];
pythonRelaxDeps = [
"defusedxml"
];
dependencies = with python3.pkgs; [
defusedxml
fire
requests
typing-extensions
xmltodict
];
# Skipping tests as they require working access and secret keys
doCheck = false;
meta = with lib; {
description = "Official Outscale CLI providing connectors to Outscale API";
homepage = "https://github.com/outscale/osc-cli";
license = licenses.bsd3;
maintainers = with maintainers; [ nicolas-goudry ];
mainProgram = "osc-cli";
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "osc";
version = "0.4.8";
src = fetchFromGitHub {
owner = "theimpostor";
repo = "osc";
tag = "v${version}";
hash = "sha256-XVFNcQH4MFZKmuOD9b3t320/hE+s+3igjlyHBWGKr0Q=";
};
vendorHash = "sha256-k+4m9y7oAZqTr8S0zldJk5FeI3+/nN9RggKIfiyxzDI=";
meta = {
description = "Command line tool to access the system clipboard from anywhere using the ANSI OSC52 sequence";
longDescription = ''
osc provides the commands osc copy, which copies stdin to the system clipboard, and osc paste, which outputs system clipboard contents to stdout.
System clipboard access includes writing (i.e. copy) and reading (i.e. paste), even while logged into a remote machine via ssh.
'';
homepage = "https://github.com/theimpostor/osc";
changelog = "https://github.com/theimpostor/osc/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ harryposner ];
mainProgram = "osc";
};
}

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
qt5,
fetchFromGitLab,
libGLU,
nix-update-script,
}:
stdenv.mkDerivation rec {
pname = "oscar";
version = "1.6.1";
src = fetchFromGitLab {
owner = "CrimsonNape";
repo = "OSCAR-code";
rev = "v${version}";
hash = "sha256-idooSDmozMtf0akhbaQP1aBIv6Ae9UMhMmN1P48u7FE=";
};
buildInputs = [
qt5.qtbase
qt5.qttools
qt5.qtserialport
libGLU
];
nativeBuildInputs = [
qt5.wrapQtAppsHook
qt5.qmake
];
postPatch = ''
substituteInPlace oscar/oscar.pro --replace "/bin/bash" "${stdenv.shell}"
'';
qmakeFlags = [ "OSCAR_QT.pro" ];
installPhase = ''
runHook preInstall
install -d $out/bin
install -d $out/share/OSCAR/Help
install -d $out/share/OSCAR/Html
install -d $out/share/OSCAR/Translations
install -d $out/share/icons/OSCAR
install -d $out/share/applications
install -T oscar/OSCAR $out/bin/OSCAR
# help browser was removed 'temporarily' in https://gitlab.com/pholy/OSCAR-code/-/commit/57c3e4c33ccdd2d0eddedbc24c0e4f2969da3841
# install oscar/Help/* $out/share/OSCAR/Help
install oscar/Html/* $out/share/OSCAR/Html
install oscar/Translations/* $out/share/OSCAR/Translations
install -T Building/Linux/OSCAR.png $out/share/icons/OSCAR/OSCAR.png
install -T Building/Linux/OSCAR.desktop $out/share/applications/OSCAR.desktop
runHook postInstall
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex"
"^v([0-9.]+)$"
];
};
meta = with lib; {
homepage = "https://www.sleepfiles.com/OSCAR/";
description = "Software for reviewing and exploring data produced by CPAP and related machines used in the treatment of sleep apnea";
mainProgram = "OSCAR";
license = licenses.gpl3Only;
maintainers = [ maintainers.roconnor ];
# Someone needs to create a suitable installPhase for Darwin and Windows.
# See https://gitlab.com/pholy/OSCAR-code/-/tree/master/Building.
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
stdenv,
nix-update-script,
fetchFromGitHub,
fetchpatch,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "oscar64";
version = "1.32.263";
src = fetchFromGitHub {
owner = "drmortalwombat";
repo = "oscar64";
tag = "v${finalAttrs.version}";
hash = "sha256-g8HUJcoI7fBmypPO79QYiOdhIYh1/sctSaEC8RLaM+s=";
};
# FIXME: can be removed whenever the version is bumped.
patches = [
(fetchpatch {
url = "https://github.com/drmortalwombat/oscar64/commit/3b0f954144e36903fd396c099714722f9fa2430a.patch";
hash = "sha256-6S7Gx9pZSNBHxX9uyS0zApe263dUo5DGviEczpP1FpQ=";
})
(fetchpatch {
url = "https://github.com/drmortalwombat/oscar64/commit/744f496f0f71fae098063a1f3ed71722d31f7b1a.patch";
hash = "sha256-84UBgVuKN7HMdkQfWUXMCfQSNqAe2QQ2yiifEN1JuOU=";
})
];
postPatch = ''
substituteInPlace ./oscar64.1 \
--replace-fail "/usr/local/bin/oscar64" "$out/bin/oscar64" \
--replace-fail "/usr/local/share/oscar64/" "$out/include/oscar64"
'';
enableParallelBuilding = true;
makeFlags = [
"-C ./make"
"prefix=$(out)"
];
buildTarget = "compiler";
doCheck = true;
checkTarget = "check";
passthru.updateScript = nix-update-script { };
meta = {
description = "Optimizing small memory C compiler, assembler, and runtime for C64";
homepage = "https://github.com/drmortalwombat/oscar64";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.nekowinston ];
mainProgram = "oscar64";
platforms = lib.platforms.unix;
# FIXME: enable aarch64-linux for the next version.
broken = stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux;
};
})

View File

@@ -0,0 +1,60 @@
{
fetchFromGitHub,
lib,
nix-update-script,
openssl,
openvr,
openxr-loader,
pkg-config,
rustPlatform,
versionCheckHook,
}:
rustPlatform.buildRustPackage rec {
pname = "oscavmgr";
version = "25.2";
src = fetchFromGitHub {
owner = "galister";
repo = "oscavmgr";
tag = "v${version}";
hash = "sha256-592qj0dHn0fbIFt4Y+1TESIOUpwXcJ2tnlKNcYuxriQ=";
};
cargoHash = "sha256-1/jjZ1jkLvE/L1lHFL3RCx3ox2w15WWDp6aQJOtFkcU=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
openssl
openxr-loader
];
nativeInstallCheckInputs = [ versionCheckHook ];
doInstallCheck = true;
postPatch = ''
alvr_session=$(echo $cargoDepsCopy/alvr_session-*/)
substituteInPlace "$alvr_session/build.rs" \
--replace-fail \
'alvr_filesystem::workspace_dir().join("openvr/headers/openvr_driver.h")' \
'"${openvr}/include/openvr/openvr_driver.h"'
'';
passthru.updateScript = nix-update-script { };
meta = {
description = "Face tracking & utilities for Resonite and VRChat";
homepage = "https://github.com/galister/oscavmgr";
changelog = "https://github.com/galister/oscavmgr/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
pandapip1
Scrumplex
];
mainProgram = "oscavmgr";
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
python3Packages,
fetchFromGitHub,
}:
python3Packages.buildPythonApplication rec {
pname = "oscclip";
version = "0.4.1";
format = "pyproject";
src = fetchFromGitHub {
owner = "rumpelsepp";
repo = "oscclip";
rev = "v${version}";
sha256 = "sha256-WQvZn+SWamEqEXPutIZVDZTIczybtHUG9QsN8XxUeg8=";
};
nativeBuildInputs = with python3Packages; [ poetry-core ];
meta = with lib; {
description = "Program that allows to copy/paste from a terminal using osc-52 control sequences";
longDescription = ''
oscclip provides two commands: osc-copy and osc-paste. These commands allow to interact with the clipboard through the terminal directly.
This means that they work through ssh sessions for example (given that the terminal supports osc-52 sequences).
'';
homepage = "https://github.com/rumpelsepp/oscclip";
license = licenses.gpl3Only;
maintainers = with maintainers; [
rumpelsepp
traxys
];
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
intltool,
glib,
gtk2,
dbus-glib,
libappindicator-gtk2,
libnotify,
python3,
runtimeShell,
}:
stdenv.mkDerivation rec {
pname = "osdlyrics";
version = "0.5.15";
src = fetchFromGitHub {
owner = "osdlyrics";
repo = "osdlyrics";
rev = version;
hash = "sha256-4jEF1LdMwaLNF6zvzAuGW8Iu4dzhrFLutX69LwSjTAI=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
intltool
];
buildInputs = [
glib
gtk2
dbus-glib
libappindicator-gtk2
libnotify
python3.pkgs.wrapPython
(python3.withPackages (
pp: with pp; [
chardet
dbus-python
pycurl
pygobject3
]
))
];
postFixup = ''
extractExecLine() {
serviceFile=$1
program=$2
execLine=$(grep --only-matching --perl-regexp 'Exec=\K(.+)' "$serviceFile")
echo "#!${runtimeShell}" > "$program"
echo "exec $execLine" >> "$program"
chmod +x "$program"
substituteInPlace "$serviceFile" \
--replace "Exec=$execLine" "Exec=$program"
}
# Extract the exec line into a separate program so that it can be wrapped.
mkdir -p "$out/libexec/osdlyrics/"
for svcFile in "$out/share/dbus-1/services"/*; do
svc=$(basename "$svcFile" ".service")
if grep "python" "$svcFile"; then
extractExecLine "$svcFile" "$out/libexec/osdlyrics/$svc"
fi
done
for p in "$out/bin/osdlyrics-create-lyricsource" "$out/bin/osdlyrics-daemon" "$out/libexec/osdlyrics"/*; do
wrapProgram "$p" \
--prefix PYTHONPATH : "$out/${python3.sitePackages}"
done
'';
meta = with lib; {
description = "Standalone lyrics fetcher/displayer";
homepage = "https://github.com/osdlyrics/osdlyrics";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ pedrohlc ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,45 @@
{
cmake,
fetchFromGitHub,
lib,
libsForQt5,
openscenegraph,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "osgQt";
version = "3.5.7-unstable-2025-10-08";
src = fetchFromGitHub {
owner = "openscenegraph";
repo = "osgQt";
rev = "effd111b747d786d4937de93973188a48eee3412";
hash = "sha256-+rjy2a266p755Mbfk6jRApiERpOL8axHklK0cYokX40=";
};
buildInputs = [ libsForQt5.qtbase ];
nativeBuildInputs = [
cmake
libsForQt5.wrapQtAppsHook
];
propagatedBuildInputs = [ openscenegraph ];
cmakeFlags = [
"-DDESIRED_QT_VERSION=5"
"-DOpenGL_GL_PREFERENCE=GLVND"
];
meta = {
description = "Qt bindings for OpenSceneGraph";
homepage = "https://github.com/openscenegraph/osgQt";
license = with lib.licenses; [
lgpl21Only
wxWindowsException31
];
maintainers = [ lib.maintainers.nim65s ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "oshka";
version = "0.4.1";
src = fetchFromGitHub {
owner = "k1LoW";
repo = "oshka";
rev = "v${version}";
sha256 = "sha256-fpWhqFK5h/U7DCC/SyhAlMyCMhjZHRLMlwakvlhOd3w=";
};
vendorHash = "sha256-ZBI3WDXfJKBEF2rmUN3LvOOPT1185dHmj88qJKsdUiE=";
ldflags = [
"-w"
"-s"
"-X github.com/k1LoW/oshka/version.Version=${version}"
];
# Tests requires a running Docker instance
doCheck = false;
meta = with lib; {
description = "Tool for extracting nested CI/CD supply chains and executing commands";
mainProgram = "oshka";
homepage = "https://github.com/k1LoW/oshka";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,67 @@
{
stdenv,
lib,
fetchFromGitHub,
gfortran,
pkg-config,
blas,
zlib,
bzip2,
coin-utils,
withGurobi ? false,
gurobi,
withCplex ? false,
cplex,
}:
stdenv.mkDerivation rec {
pname = "osi";
version = "0.108.11";
src = fetchFromGitHub {
owner = "coin-or";
repo = "Osi";
rev = "releases/${version}";
hash = "sha256-3aTO7JGEOP/RCOZ1X9b68rrtv6T78euf1TYGTjyXSRE=";
};
buildInputs = [
blas
zlib
bzip2
coin-utils
]
++ lib.optional withGurobi gurobi
++ lib.optional withCplex cplex;
nativeBuildInputs = [
gfortran
pkg-config
];
configureFlags =
lib.optionals withGurobi [
"--with-gurobi-incdir=${gurobi}/include"
"--with-gurobi-lib=-lgurobi${gurobi.libSuffix}"
]
++ lib.optionals withCplex [
"--with-cplex-incdir=${cplex}/cplex/include/ilcplex"
"--with-cplex-lib=-lcplex${cplex.libSuffix}"
];
NIX_LDFLAGS = lib.optionalString withCplex "-L${cplex}/cplex/bin/${cplex.libArch}";
# Compile errors
env.NIX_CFLAGS_COMPILE = "-Wno-cast-qual";
hardeningDisable = [ "format" ];
enableParallelBuilding = true;
passthru = { inherit withGurobi withCplex; };
meta = with lib; {
description = "Abstract base class to a generic linear programming (LP) solver";
homepage = "https://github.com/coin-or/Osi";
license = licenses.epl20;
platforms = platforms.unix;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
meson,
ninja,
gettext,
glib,
libxml2,
perl,
python3,
libxslt,
libarchive,
bzip2,
xz,
json-glib,
libsoup_3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "osinfo-db-tools";
version = "1.12.0";
src = fetchurl {
url = "https://releases.pagure.org/libosinfo/osinfo-db-tools-${finalAttrs.version}.tar.xz";
hash = "sha256-8zFfZ10Ydw8l3qjtBLILj8gO+wD2DDfuXoFfnDd25/M=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
perl
python3
];
buildInputs = [
glib
json-glib
libxml2
libxslt
libarchive
bzip2
xz
libsoup_3
];
meta = {
description = "Tools for managing the osinfo database";
homepage = "https://libosinfo.org/";
changelog = "https://gitlab.com/libosinfo/osinfo-db-tools/-/blob/v${finalAttrs.version}/NEWS";
license = lib.licenses.lgpl2Plus;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.bjornfor ];
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchurl,
osinfo-db-tools,
gettext,
libxml2,
}:
stdenv.mkDerivation rec {
pname = "osinfo-db";
version = "20250606";
src = fetchurl {
url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
hash = "sha256-mUCqR98pgHPFHc+KTcyFX0lKuGTCTNvaRr2JeVc1f+E=";
};
nativeBuildInputs = [
osinfo-db-tools
gettext
libxml2
];
installPhase = ''
osinfo-db-import --dir "$out/share/osinfo" "${src}"
'';
meta = {
description = "Osinfo database of information about operating systems for virtualization provisioning tools";
homepage = "https://gitlab.com/libosinfo/osinfo-db/";
changelog = "https://gitlab.com/libosinfo/osinfo-db/-/commits/v${version}";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.bjornfor ];
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/osmgpsmap-1.0.pc.in b/osmgpsmap-1.0.pc.in
index 86efb3c..da6d1a9 100644
--- a/osmgpsmap-1.0.pc.in
+++ b/osmgpsmap-1.0.pc.in
@@ -6,6 +6,7 @@ includedir=@includedir@
Name: @PACKAGE_NAME@
Description: Moving map widget using openstreet map data
Version: @PACKAGE_VERSION@
-Requires: gtk+-3.0 libsoup-3.0
+Requires: gtk+-3.0
+Requires.private: libsoup-3.0
Libs: -L${libdir} -losmgpsmap-1.0
Cflags: -I${includedir}/osmgpsmap-1.0

View File

@@ -0,0 +1,79 @@
{
cairo,
fetchpatch2,
fetchzip,
glib,
libsoup_3,
gnome-common,
gtk3,
gobject-introspection,
autoreconfHook,
gtk-doc,
pkg-config,
lib,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "osm-gps-map";
version = "1.2.0";
src = fetchzip {
url = "https://github.com/nzjrs/osm-gps-map/releases/download/${finalAttrs.version}/osm-gps-map-${finalAttrs.version}.tar.gz";
sha256 = "sha256-ciw28YXhR+GC6B2VPC+ZxjyhadOk3zYGuOssSgqjwH0=";
};
patches = [
# libsoup 2 is EOL
# 1. 0001-Drop-support-for-libsoup-older-than-2.42.patch
(fetchpatch2 {
url = "https://salsa.debian.org/debian-gis-team/osm-gps-map/-/raw/debian/1.2.0-4/debian/patches/0001-Drop-support-for-libsoup-older-than-2.42.patch";
hash = "sha256-9KSqXV1ZO21nERlhp0/nZkMuGuMpsr1RfszKkTjyvSo=";
})
# 2. port-to-libsoup3.patch
(fetchpatch2 {
url = "https://salsa.debian.org/debian-gis-team/osm-gps-map/-/raw/debian/1.2.0-4/debian/patches/0001-Port-to-libsoup3.patch";
hash = "sha256-/Ss/rGm08UXmSpDMNGlS79eQ35sOyU8vAMC9eEBOgKg=";
excludes = [ ".github/*" ];
})
# 3. fix autoconf checks
./port-configure-to-libsoup3.patch
# libsoup is only used internally
# it should only be listed as private requirement
# https://github.com/nzjrs/osm-gps-map/pull/108
./dont-require-libsoup.patch
];
outputs = [
"out"
"dev"
"doc"
];
nativeBuildInputs = [
autoreconfHook
gtk-doc
pkg-config
gobject-introspection
gnome-common
];
buildInputs = [
cairo
glib
libsoup_3
];
propagatedBuildInputs = [
gtk3
];
meta = {
description = "GTK widget for displaying OpenStreetMap tiles";
homepage = "https://nzjrs.github.io/osm-gps-map";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ hrdinka ];
platforms = lib.platforms.linux ++ lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,150 @@
From 6a06cf897cd749dae0f68498893c7b6a45faf381 Mon Sep 17 00:00:00 2001
From: Paul Joubert <paul@trespaul.com>
Date: Tue, 29 Jul 2025 23:13:52 +0200
Subject: [PATCH] patch configure
---
configure | 60 +++++++++++++++++++++++++++----------------------------
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/configure b/configure
index ed557fe..d89e384 100755
--- a/configure
+++ b/configure
@@ -672,8 +672,8 @@ OS_WIN32_FALSE
OS_WIN32_TRUE
GTHREAD_LIBS
GTHREAD_CFLAGS
-SOUP24_LIBS
-SOUP24_CFLAGS
+SOUP30_LIBS
+SOUP30_CFLAGS
CAIRO_LIBS
CAIRO_CFLAGS
GTK_LIBS
@@ -836,8 +836,8 @@ GTK_CFLAGS
GTK_LIBS
CAIRO_CFLAGS
CAIRO_LIBS
-SOUP24_CFLAGS
-SOUP24_LIBS
+SOUP30_CFLAGS
+SOUP30_LIBS
GTHREAD_CFLAGS
GTHREAD_LIBS
GTKDOC_DEPS_CFLAGS
@@ -1524,9 +1524,9 @@ Some influential environment variables:
CAIRO_CFLAGS
C compiler flags for CAIRO, overriding pkg-config
CAIRO_LIBS linker flags for CAIRO, overriding pkg-config
- SOUP24_CFLAGS
- C compiler flags for SOUP24, overriding pkg-config
- SOUP24_LIBS linker flags for SOUP24, overriding pkg-config
+ SOUP30_CFLAGS
+ C compiler flags for SOUP30, overriding pkg-config
+ SOUP30_LIBS linker flags for SOUP30, overriding pkg-config
GTHREAD_CFLAGS
C compiler flags for GTHREAD, overriding pkg-config
GTHREAD_LIBS
@@ -12719,19 +12719,19 @@ $as_echo "yes" >&6; }
fi
pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsoup-2.4" >&5
-$as_echo_n "checking for libsoup-2.4... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsoup-3.0" >&5
+$as_echo_n "checking for libsoup-3.0... " >&6; }
-if test -n "$SOUP24_CFLAGS"; then
- pkg_cv_SOUP24_CFLAGS="$SOUP24_CFLAGS"
+if test -n "$SOUP30_CFLAGS"; then
+ pkg_cv_SOUP30_CFLAGS="$SOUP30_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libsoup-2.4") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-3.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsoup-3.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_SOUP24_CFLAGS=`$PKG_CONFIG --cflags "libsoup-2.4" 2>/dev/null`
+ pkg_cv_SOUP30_CFLAGS=`$PKG_CONFIG --cflags "libsoup-3.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -12739,16 +12739,16 @@ fi
else
pkg_failed=untried
fi
-if test -n "$SOUP24_LIBS"; then
- pkg_cv_SOUP24_LIBS="$SOUP24_LIBS"
+if test -n "$SOUP30_LIBS"; then
+ pkg_cv_SOUP30_LIBS="$SOUP30_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-2.4\""; } >&5
- ($PKG_CONFIG --exists --print-errors "libsoup-2.4") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsoup-3.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsoup-3.0") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_SOUP24_LIBS=`$PKG_CONFIG --libs "libsoup-2.4" 2>/dev/null`
+ pkg_cv_SOUP30_LIBS=`$PKG_CONFIG --libs "libsoup-3.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
else
pkg_failed=yes
@@ -12769,22 +12769,22 @@ else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- SOUP24_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsoup-2.4" 2>&1`
+ SOUP30_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsoup-3.0" 2>&1`
else
- SOUP24_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsoup-2.4" 2>&1`
+ SOUP30_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsoup-3.0" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
- echo "$SOUP24_PKG_ERRORS" >&5
+ echo "$SOUP30_PKG_ERRORS" >&5
- as_fn_error $? "Package requirements (libsoup-2.4) were not met:
+ as_fn_error $? "Package requirements (libsoup-3.0) were not met:
-$SOUP24_PKG_ERRORS
+$SOUP30_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
-Alternatively, you may set the environment variables SOUP24_CFLAGS
-and SOUP24_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables SOUP30_CFLAGS
+and SOUP30_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
@@ -12795,15 +12795,15 @@ as_fn_error $? "The pkg-config script could not be found or is too old. Make su
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
-Alternatively, you may set the environment variables SOUP24_CFLAGS
-and SOUP24_LIBS to avoid the need to call pkg-config.
+Alternatively, you may set the environment variables SOUP30_CFLAGS
+and SOUP30_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; }
else
- SOUP24_CFLAGS=$pkg_cv_SOUP24_CFLAGS
- SOUP24_LIBS=$pkg_cv_SOUP24_LIBS
+ SOUP30_CFLAGS=$pkg_cv_SOUP30_CFLAGS
+ SOUP30_LIBS=$pkg_cv_SOUP30_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
--
2.50.1

View File

@@ -0,0 +1,90 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
expat,
fmt,
proj,
bzip2,
cli11,
zlib,
boost,
libpq,
python3,
withLuaJIT ? false,
lua,
luajit,
libosmium,
nlohmann_json,
opencv,
potrace,
protozero,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "osm2pgsql";
version = "2.2.0";
src = fetchFromGitHub {
owner = "osm2pgsql-dev";
repo = "osm2pgsql";
rev = finalAttrs.version;
hash = "sha256-ZKSyMNc+EHY4QBTLtUiWiTMEcmAAbrV1xqxmvNF96f8=";
};
postPatch = ''
# Remove bundled libraries
rm -r contrib
'';
nativeBuildInputs = [ cmake ];
buildInputs = [
boost
bzip2
cli11
expat
fmt
libosmium
libpq
nlohmann_json
opencv
potrace
proj
protozero
(python3.withPackages (
p: with p; [
psycopg2
pyosmium
]
))
zlib
]
++ lib.optional withLuaJIT luajit
++ lib.optional (!withLuaJIT) lua;
cmakeFlags = [
(lib.cmakeBool "EXTERNAL_LIBOSMIUM" true)
(lib.cmakeBool "EXTERNAL_PROTOZERO" true)
(lib.cmakeBool "EXTERNAL_FMT" true)
(lib.cmakeBool "WITH_LUAJIT" withLuaJIT)
];
passthru.tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
};
meta = {
description = "OpenStreetMap data to PostgreSQL converter";
homepage = "https://osm2pgsql.org";
license = lib.licenses.gpl2Plus;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
jglukasik
das-g
];
teams = [ lib.teams.geospatial ];
};
})

View File

@@ -0,0 +1,34 @@
{
lib,
stdenv,
fetchFromGitLab,
autoreconfHook,
zlib,
}:
stdenv.mkDerivation rec {
pname = "osmctools";
version = "0.9";
src = fetchFromGitLab {
owner = "osm-c-tools";
repo = "osmctools";
rev = version;
sha256 = "1m8d3r1q1v05pkr8k9czrmb4xjszw6hvgsf3kn9pf0v14gpn4r8f";
};
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ zlib ];
meta = with lib; {
description = "Command line tools for transforming Open Street Map files";
homepage = [
"https://wiki.openstreetmap.org/wiki/osmconvert"
"https://wiki.openstreetmap.org/wiki/osmfilter"
"https://wiki.openstreetmap.org/wiki/osmupdate"
];
maintainers = with maintainers; [ sikmir ];
platforms = platforms.unix;
license = licenses.agpl3Only;
};
}

View File

@@ -0,0 +1,42 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
alsa-lib,
libX11,
}:
stdenv.mkDerivation rec {
pname = "osmid";
version = "0.8.0";
src = fetchFromGitHub {
owner = "llloret";
repo = "osmid";
rev = "v${version}";
sha256 = "1s1wsrp6g6wb0y61xzxvaj59mwycrgy52r4h456086zkz10ls6hw";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
alsa-lib
libX11
];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp {m2o,o2m} $out/bin/
runHook postInstall
'';
meta = with lib; {
homepage = "https://github.com/llloret/osmid";
description = "Lightweight, portable, easy to use tool to convert MIDI to OSC and OSC to MIDI";
license = licenses.mit;
maintainers = with maintainers; [ c0deaddict ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
installShellFiles,
pandoc,
boost,
bzip2,
expat,
libosmium,
lz4,
nlohmann_json,
protozero,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "osmium-tool";
version = "1.18.0";
src = fetchFromGitHub {
owner = "osmcode";
repo = "osmium-tool";
tag = "v${finalAttrs.version}";
hash = "sha256-6CT5vhzZtGZDr3mCgtpI8AGXn+Iiasf9SxUV6qN9+I8=";
};
nativeBuildInputs = [
cmake
installShellFiles
pandoc
];
buildInputs = [
boost
bzip2
expat
libosmium
lz4
nlohmann_json
protozero
zlib
];
doCheck = true;
postInstall = ''
installShellCompletion --zsh ../zsh_completion/_osmium
'';
meta = {
description = "Multipurpose command line tool for working with OpenStreetMap data based on the Osmium library";
homepage = "https://osmcode.org/osmium-tool/";
changelog = "https://github.com/osmcode/osmium-tool/blob/v${finalAttrs.version}/CHANGELOG.md";
license = with lib.licenses; [
gpl3Plus
mit
bsd3
];
maintainers = with lib.maintainers; [ das-g ];
teams = [ lib.teams.geospatial ];
mainProgram = "osmium";
};
})

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
libosmoabis,
libosmo-netif,
libosmo-sigtran,
osmo-mgw,
}:
stdenv.mkDerivation rec {
pname = "osmo-bsc";
version = "1.13.2";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-bsc";
rev = version;
hash = "sha256-YSCbVqELh/id9sK4G5xF8riYXhwFtXU/lXMlH6XxvXY=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
libosmoabis
libosmo-netif
libosmo-sigtran
osmo-mgw
];
enableParallelBuilding = true;
meta = {
description = "GSM Base Station Controller";
homepage = "https://projects.osmocom.org/projects/osmobsc";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
mainProgram = "osmo-bsc";
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
libosmoabis,
libosmo-netif,
}:
stdenv.mkDerivation rec {
pname = "osmo-bts";
version = "1.9.0";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-bts";
rev = version;
hash = "sha256-SvlkIvdyrXlaSJl+LbHovhIlnxsxpufJCy1wVCZbjWM=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
libosmoabis
libosmo-netif
];
enableParallelBuilding = true;
meta = {
description = "Osmocom GSM Base Transceiver Station (BTS)";
homepage = "https://osmocom.org/projects/osmobts";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
}:
stdenv.mkDerivation rec {
pname = "osmo-ggsn";
version = "1.13.0";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-ggsn";
rev = version;
hash = "sha256-qsBjoLyMlRgUjhX1tyI/MoHGmww1XUT3OMH4dVZzLU4=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
];
enableParallelBuilding = true;
meta = {
description = "Osmocom Gateway GPRS Support Node (GGSN), successor of OpenGGSN";
homepage = "https://osmocom.org/projects/openggsn";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
mainProgram = "osmo-ggsn";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
libosmoabis,
sqlite,
}:
stdenv.mkDerivation rec {
pname = "osmo-hlr";
version = "1.9.1";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-hlr";
rev = version;
hash = "sha256-yi4sgcX8WOWz7qw/jGvVCtIYe867uBzLps8gdG6ziOA=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
libosmoabis
sqlite
];
enableParallelBuilding = true;
meta = {
description = "Osmocom implementation of 3GPP Home Location Registr (HLR)";
homepage = "https://osmocom.org/projects/osmo-hlr";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
mainProgram = "osmo-hlr";
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
lksctp-tools,
libosmo-netif,
libasn1c,
libosmo-sigtran,
osmo-iuh,
osmo-mgw,
}:
let
inherit (stdenv.hostPlatform) isLinux;
in
stdenv.mkDerivation rec {
pname = "osmo-hnbgw";
version = "1.4.0";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-hnbgw";
rev = version;
hash = "sha256-OWCAiU4mK57e5gm6QOovwmoFAaCG1d8ZYpkP4isIqvI=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
lksctp-tools
libosmo-netif
libasn1c
libosmo-sigtran
osmo-iuh
osmo-mgw
];
enableParallelBuilding = true;
meta = {
description = "Osmocom Home NodeB Gateway, for attaching femtocells to the 3G CN (OsmoMSC, OsmoSGSN)";
mainProgram = "osmo-hnbgw";
homepage = "https://osmocom.org/projects/osmohnbgw";
license = lib.licenses.agpl3Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
lksctp-tools,
libasn1c,
libosmoabis,
libosmo-netif,
libosmo-sigtran,
osmo-iuh,
}:
let
inherit (stdenv.hostPlatform) isLinux;
in
stdenv.mkDerivation rec {
pname = "osmo-hnodeb";
version = "0.1.1";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-hnodeb";
rev = version;
hash = "sha256-Izivyw2HqRmrM68ehGqlIkJeuZ986d1WQ0yr6NWWTdA=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
lksctp-tools
libasn1c
libosmoabis
libosmo-netif
libosmo-sigtran
osmo-iuh
];
enableParallelBuilding = true;
meta = {
description = "Upper layers implementation of HomeNodeB for 3G/UMTS";
mainProgram = "osmo-hnodeb";
homepage = "https://osmocom.org/projects/osmo-hnodeb";
license = lib.licenses.agpl3Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
lksctp-tools,
libosmo-netif,
libosmo-sigtran,
libasn1c,
python3,
}:
let
inherit (stdenv.hostPlatform) isLinux;
in
stdenv.mkDerivation rec {
pname = "osmo-iuh";
version = "1.6.0";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-iuh";
rev = version;
hash = "sha256-3ADn0GSoXPXL1gD79JjD2hXNBN/v8aaEKgf5qFNGEJs=";
};
prePatch = ''
substituteInPlace src/../asn1/utils/asn1tostruct.py \
--replace '#!/usr/bin/env python3' '#!${python3}/bin/python3'
'';
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
python3
];
buildInputs = [
libosmocore
lksctp-tools
libosmo-netif
libosmo-sigtran
libasn1c
];
enableParallelBuilding = true;
meta = {
description = "Osmocom IuH library";
homepage = "https://osmocom.org/projects/osmohnbgw/wiki";
license = lib.licenses.agpl3Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
libosmo-netif,
libosmoabis,
}:
stdenv.mkDerivation rec {
pname = "osmo-mgw";
version = "1.14.0";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-mgw";
rev = version;
hash = "sha256-Y/98K81US6McNu+JEJtMluJTvsv0DHJiyjMPJz8/35o=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
libosmo-netif
libosmoabis
];
enableParallelBuilding = true;
meta = {
description = "Osmocom Media Gateway (MGW). speaks RTP and E1 as well as MGCP";
mainProgram = "osmo-mgw";
homepage = "https://osmocom.org/projects/osmo-mgw";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
sqlite,
libosmoabis,
libosmo-netif,
libosmo-sigtran,
osmo-mgw,
osmo-hlr,
lksctp-tools,
}:
stdenv.mkDerivation rec {
pname = "osmo-msc";
version = "1.14.0";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-msc";
rev = version;
hash = "sha256-+Z49TqXLEeCy7Yj0qVg1hPFOD/x+4HnwDZxZoxoUjqI=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
sqlite
libosmoabis
libosmo-netif
libosmo-sigtran
osmo-mgw
osmo-hlr
lksctp-tools
];
enableParallelBuilding = true;
meta = {
description = "Osmocom implementation of 3GPP Mobile Swtiching Centre (MSC)";
mainProgram = "osmo-msc";
homepage = "https://osmocom.org/projects/osmomsc/wiki";
license = lib.licenses.agpl3Only;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
}:
stdenv.mkDerivation rec {
pname = "osmo-pcu";
version = "1.5.2";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-pcu";
rev = version;
hash = "sha256-ibcmR046Go6IAlMClUZFoTc/gpy/q5Mp0hJIx/4tKqo=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
];
enableParallelBuilding = true;
meta = {
description = "Osmocom Packet control Unit (PCU): Network-side GPRS (RLC/MAC); BTS- or BSC-colocated";
mainProgram = "osmo-pcu";
homepage = "https://osmocom.org/projects/osmopcu";
license = lib.licenses.gpl2Only;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
libosmoabis,
libosmo-netif,
osmo-hlr,
osmo-ggsn,
c-ares,
}:
stdenv.mkDerivation rec {
pname = "osmo-sgsn";
version = "1.13.0";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-sgsn";
rev = version;
hash = "sha256-ht8ejeD2whV0Ww5G3coUntLrIp2S0gZBRS6kF7w9KZY=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
libosmoabis
libosmo-netif
osmo-hlr
osmo-ggsn
c-ares
];
enableParallelBuilding = true;
meta = {
description = "Osmocom implementation of the 3GPP Serving GPRS Support Node (SGSN)";
homepage = "https://osmocom.org/projects/osmosgsn";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
mainProgram = "osmo-sgsn";
};
}

View File

@@ -0,0 +1,48 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
libosmocore,
sofia_sip,
glib,
}:
stdenv.mkDerivation rec {
pname = "osmo-sip-connector";
version = "1.7.1";
src = fetchFromGitHub {
owner = "osmocom";
repo = "osmo-sip-connector";
rev = version;
hash = "sha256-NmjaN28NnAIpMwUHCUS+7LJBwvCp48kyhmHRf6cU5WE=";
};
postPatch = ''
echo "${version}" > .tarball-version
'';
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
libosmocore
sofia_sip
glib
];
enableParallelBuilding = true;
meta = {
description = "This implements an interface between the MNCC (Mobile Network Call Control) interface of OsmoMSC (and also previously OsmoNITB) and SIP";
mainProgram = "osmo-sip-connector";
homepage = "https://osmocom.org/projects/osmo-sip-conector";
license = lib.licenses.agpl3Plus;
maintainers = [ lib.maintainers.markuskowa ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
gtk3,
libxml2,
gettext,
libical,
libnotify,
libarchive,
gspell,
webkitgtk_4_1,
libgringotts,
wrapGAppsHook3,
}:
stdenv.mkDerivation rec {
pname = "osmo";
version = "0.4.4";
src = fetchurl {
url = "mirror://sourceforge/osmo-pim/${pname}-${version}.tar.gz";
sha256 = "19h3dnjgqbawnvgnycyp4n5b6mjsp5zghn3b69b6f3xa3fyi32qy";
};
nativeBuildInputs = [
pkg-config
gettext
wrapGAppsHook3
];
buildInputs = [
gtk3
libxml2
libical
libnotify
libarchive
gspell
webkitgtk_4_1
libgringotts
];
meta = with lib; {
description = "Handy personal organizer";
mainProgram = "osmo";
homepage = "https://clayo.org/osmo/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ pSub ];
};
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
}:
buildNpmPackage rec {
pname = "osmtogeojson";
version = "3.0.0-beta.5";
src = fetchFromGitHub {
owner = "tyrasd";
repo = "osmtogeojson";
rev = version;
hash = "sha256-T6d/KQQGoXHgV0iNhOms8d9zfjYMfnBNwPLShrEkHG4=";
};
postPatch = ''
cp ${./package-lock.json} ./package-lock.json
'';
npmDepsHash = "sha256-stAVuyjuRQthQ3jQdekmZYjeau9l0GzEEMkV1q5fT2k=";
dontNpmBuild = true;
meta = with lib; {
description = "Converts OSM data to GeoJSON";
homepage = "https://tyrasd.github.io/osmtogeojson/";
maintainers = with maintainers; [ thibautmarty ];
license = licenses.mit;
mainProgram = "osmtogeojson";
};
}

View File

@@ -0,0 +1,53 @@
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "ospd-openvas";
version = "22.9.0";
pyproject = true;
src = fetchFromGitHub {
owner = "greenbone";
repo = "ospd-openvas";
tag = "v${version}";
hash = "sha256-09AQQGi9uTlAsy5vEkVaz5T8j2zYnQ7GnzSh5N61VkA=";
};
pythonRelaxDeps = [
"defusedxml"
"lxml"
"packaging"
"psutil"
"python-gnupg"
];
build-system = with python3.pkgs; [ poetry-core ];
propagatedBuildInputs = with python3.pkgs; [
defusedxml
deprecated
lxml
packaging
paho-mqtt
psutil
python-gnupg
redis
sentry-sdk
];
nativeCheckInputs = with python3.pkgs; [ pytestCheckHook ];
pythonImportsCheck = [ "ospd_openvas" ];
meta = with lib; {
description = "OSP server implementation to allow GVM to remotely control an OpenVAS Scanner";
homepage = "https://github.com/greenbone/ospd-openvas";
changelog = "https://github.com/greenbone/ospd-openvas/releases/tag/${src.tag}";
license = licenses.agpl3Only;
maintainers = with maintainers; [ fab ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,44 @@
{
catch2,
cmake,
eigen,
fetchFromGitHub,
lib,
osqp,
stdenv,
valgrind,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "osqp-eigen";
version = "0.10.3";
src = fetchFromGitHub {
owner = "robotology";
repo = "osqp-eigen";
rev = "v${finalAttrs.version}";
hash = "sha256-2H7B+e6/AUjAxMmRe2OEBImV/FOBxv9tZQLoEg7mmGg=";
};
cmakeFlags = [
(lib.cmakeBool "BUILD_TESTING" true)
(lib.cmakeBool "OSQPEIGEN_RUN_Valgrind_tests" stdenv.hostPlatform.isLinux)
];
nativeBuildInputs = [ cmake ];
propagatedBuildInputs = [
eigen
osqp
];
checkInputs = [ catch2 ];
nativeCheckInputs = lib.optional stdenv.hostPlatform.isLinux valgrind;
doCheck = true;
meta = {
description = "Simple Eigen-C++ wrapper for OSQP library";
homepage = "https://github.com/robotology/osqp-eigen";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ nim65s ];
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
qdldl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "osqp";
version = "1.0.0";
src = fetchFromGitHub {
owner = "oxfordcontrol";
repo = "osqp";
tag = "v${finalAttrs.version}";
hash = "sha256-BOAytzJzHcggncQzeDrXwJOq8B3doWERJ6CKIVg1yJY=";
};
postPatch = ''
substituteInPlace algebra/_common/lin_sys/qdldl/qdldl.cmake --replace-fail \
"GIT_REPOSITORY https://github.com/osqp/qdldl.git" \
"URL ${qdldl.src}"
'';
nativeBuildInputs = [ cmake ];
propagatedBuildInputs = [ qdldl ];
cmakeFlags = [ (lib.cmakeFeature "OSQP_VERSION" finalAttrs.version) ];
meta = {
description = "Quadratic programming solver using operator splitting";
homepage = "https://osqp.org";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ taktoa ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,37 @@
From: Jack Baldry <jack.baldry@grafana.com>
Date: Tue, 15 Nov 2022 13:48:07 -0400
Subject: [PATCH] Remove git reset
This is not required for nixpkgs builds because we are not working in
the source repository and therefore do not need to be careful about
updating submodule content.
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
---
libraries/cmake/source/modules/utils.cmake | 11 -----------
1 file changed, 11 deletions(-)
diff --git a/libraries/cmake/source/modules/utils.cmake b/libraries/cmake/source/modules/utils.cmake
--- a/libraries/cmake/source/modules/utils.cmake
+++ b/libraries/cmake/source/modules/utils.cmake
@@ -102,17 +102,6 @@ function(patchSubmoduleSourceCode library_name patches_dir source_dir apply_to_d
file(COPY "${source_dir}" DESTINATION "${parent_dir}")
endif()
- # We need to restore the source code to its original state, pre patch
- execute_process(
- COMMAND "${GIT_EXECUTABLE}" reset --hard HEAD
- RESULT_VARIABLE process_exit_code
- WORKING_DIRECTORY "${source_dir}"
- )
-
- if(NOT ${process_exit_code} EQUAL 0)
- message(FATAL_ERROR "Failed to git reset the following submodule: \"${source_dir}\"")
- endif()
-
set(patchSubmoduleSourceCode_Patched TRUE PARENT_SCOPE)
endfunction()
--
2.38.1

View File

@@ -0,0 +1,13 @@
{
"openssl": {
"hash": "sha256-ACotazC1i/S+pGxDvdljZar42qbEKHgqpP7uBtoZffM=",
"url": "https://www.openssl.org/source/openssl-3.4.1.tar.gz"
},
"osquery": {
"fetchSubmodules": true,
"hash": "sha256-O5FfbPZt0cxl7Zia8gSn4xLhLyTlA9Z0SDDvGSgTTyw=",
"owner": "osquery",
"repo": "osquery",
"rev": "5.19.0"
}
}

View File

@@ -0,0 +1,111 @@
{
lib,
cmake,
fetchFromGitHub,
fetchzip,
fetchurl,
git,
perl,
python3,
stdenv,
stdenvNoCC,
ninja,
nix-prefetch-git,
autoPatchelfHook,
jq,
removeReferencesTo,
nixosTests,
writers,
}:
let
info = builtins.fromJSON (builtins.readFile ./info.json);
opensslSrc = fetchurl info.openssl;
toolchain = import ./toolchain-bin.nix {
inherit
stdenv
lib
fetchzip
autoPatchelfHook
;
};
in
stdenvNoCC.mkDerivation rec {
pname = "osquery";
version = info.osquery.rev;
src = fetchFromGitHub info.osquery;
patches = [
./Remove-git-reset.patch
];
nativeBuildInputs = [
cmake
git
perl
python3
ninja
autoPatchelfHook
jq
removeReferencesTo
];
postPatch = ''
substituteInPlace cmake/install_directives.cmake --replace "/control" "control"
'';
configurePhase = ''
mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX=$out \
-DOSQUERY_TOOLCHAIN_SYSROOT=${toolchain} \
-DOSQUERY_VERSION=${version} \
-DCMAKE_PREFIX_PATH=${toolchain}/usr/lib/cmake \
-DCMAKE_LIBRARY_PATH=${toolchain}/usr/lib \
-DOSQUERY_OPENSSL_ARCHIVE_PATH=${opensslSrc} \
-GNinja
'';
disallowedReferences = [ toolchain ];
postInstall = ''
rm -rf $out/control
remove-references-to -t ${toolchain} $out/bin/osqueryd
'';
passthru = {
inherit opensslSrc toolchain;
tests = {
inherit (nixosTests) osquery;
};
updateScript = writers.writePython3 "osquery-update" {
makeWrapperArgs = "--prefix PATH : ${lib.makeBinPath [ nix-prefetch-git ]}";
} (builtins.readFile ./update.py);
};
meta = with lib; {
description = "SQL powered operating system instrumentation, monitoring, and analytics";
homepage = "https://osquery.io";
license = with licenses; [
gpl2Only
asl20
];
platforms = platforms.linux;
sourceProvenance = with sourceTypes; [ fromSource ];
maintainers = with maintainers; [
znewman01
lewo
squalus
lesuisse
];
};
}

View File

@@ -0,0 +1,53 @@
{
stdenv,
lib,
fetchzip,
autoPatchelfHook,
}:
let
version = "1.1.0";
dist = {
"x86_64-linux" = {
url = "https://github.com/osquery/osquery-toolchain/releases/download/${version}/osquery-toolchain-${version}-x86_64.tar.xz";
hash = "sha256-irekR8a0d+T64+ZObgblsLoc4kVBmb6Gv0Qf8dLDCMk=";
};
"aarch64-linux" = {
url = "https://github.com/osquery/osquery-toolchain/releases/download/${version}/osquery-toolchain-${version}-aarch64.tar.xz";
hash = "sha256-cQlx9AtO6ggIQqHowa+42wQ4YCMCN4Gb+0qqVl2JElw=";
};
};
in
stdenv.mkDerivation {
name = "osquery-toolchain-bin";
inherit version;
src = fetchzip dist.${stdenv.hostPlatform.system};
nativeBuildInputs = [ autoPatchelfHook ];
installPhase = ''
mkdir $out
cp -r * $out
'';
meta = with lib; {
description = "LLVM-based toolchain for Linux designed to build a portable osquery";
homepage = "https://github.com/osquery/osquery-toolchain";
platforms = [
"x86_64-linux"
"aarch64-linux"
];
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = with licenses; [
gpl2Only
asl20
];
maintainers = with maintainers; [ squalus ];
};
}

View File

@@ -0,0 +1,109 @@
import base64
import json
import re
import subprocess
import sys
import urllib.request
OWNER = 'osquery'
REPO = 'osquery'
OPENSSL_VERSION_PAT = re.compile(r'^set\(OPENSSL_VERSION "(.*)"\)')
OPENSSL_SHA256_PAT = re.compile(r'^set\(OPENSSL_ARCHIVE_SHA256 "(.*)"\)')
INFO_PATH = 'pkgs/by-name/os/osquery/info.json'
def download_str(url):
return urllib.request.urlopen(url).read().decode('utf-8')
def get_latest_tag():
latest_url = f'https://api.github.com/repos/{OWNER}/{REPO}/releases/latest'
return json.loads(download_str(latest_url))['tag_name']
def read_info():
with open(INFO_PATH, 'r') as f:
return json.load(f)
def write_info(info):
with open(INFO_PATH, 'w') as f:
json.dump(info, f, indent=4, sort_keys=True)
f.write('\n')
def sha256_hex_to_sri(hex):
return 'sha256-' + base64.b64encode(bytes.fromhex(hex)).decode()
def openssl_info_from_cmake(cmake):
version = None
sha256 = None
for line in cmake.splitlines():
if version is None:
m = OPENSSL_VERSION_PAT.match(line)
if m is not None:
version = m.group(1)
if sha256 is None:
m = OPENSSL_SHA256_PAT.match(line)
if m is not None:
sha256 = m.group(1)
if version is not None and sha256 is not None:
break
if version is None or sha256 is None:
raise Exception('Failed to extract openssl fetch info')
return {
'url': f'https://www.openssl.org/source/openssl-{version}.tar.gz',
'hash': sha256_hex_to_sri(sha256)
}
def openssl_info_for_rev(rev):
url = f'https://raw.githubusercontent.com/{OWNER}/{REPO}/{rev}/libraries/cmake/formula/openssl/CMakeLists.txt' # noqa: E501
return openssl_info_from_cmake(download_str(url))
force = len(sys.argv) == 2 and sys.argv[1] == '--force'
latest_tag = get_latest_tag()
print(f'osquery_latest_tag: {latest_tag}')
if not force:
old_info = read_info()
if latest_tag == old_info['osquery']['rev']:
print('latest tag matches existing rev. exiting')
sys.exit(0)
openssl_fetch_info = openssl_info_for_rev(latest_tag)
print(f'openssl_info: {openssl_fetch_info}')
prefetch = json.loads(subprocess.check_output([
'nix-prefetch-git',
'--fetch-submodules',
'--quiet',
f'https://github.com/{OWNER}/{REPO}',
latest_tag
]))
prefetch_hash = prefetch['hash']
github_fetch_info = {
'owner': OWNER,
'repo': REPO,
'rev': latest_tag,
'hash': prefetch_hash,
'fetchSubmodules': True
}
print(f'osquery_hash: {prefetch_hash}')
new_info = {
'osquery': github_fetch_info,
'openssl': openssl_fetch_info
}
print(f'osquery_info: {new_info}')
write_info(new_info)

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
bzip2,
libxml2,
libzip,
boost,
lua,
luabind,
onetbb,
expat,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "osrm-backend";
version = "6.0.0";
src = fetchFromGitHub {
owner = "Project-OSRM";
repo = "osrm-backend";
tag = "V${version}";
hash = "sha256-R2Sx+DbT6gROI8X1fkxqOGbMqgmsnNiw2rUX6gSZuTs=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
bzip2
libxml2
libzip
boost
lua
luabind
onetbb
expat
];
env.NIX_CFLAGS_COMPILE = toString [
# Needed with GCC 12
"-Wno-error=uninitialized"
# Needed with GCC 14
"-Wno-error=maybe-uninitialized"
];
postInstall = ''
mkdir -p $out/share/osrm-backend
cp -r ../profiles $out/share/osrm-backend/profiles
'';
passthru.tests = {
inherit (nixosTests) osrm-backend;
};
meta = {
homepage = "https://project-osrm.org/";
description = "Open Source Routing Machine computes shortest paths in a graph. It was designed to run well with map data from the Openstreetmap Project";
changelog = "https://github.com/Project-OSRM/osrm-backend/blob/${src.tag}/CHANGELOG.md";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ erictapen ];
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,62 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule (finalAttrs: {
pname = "oss-rebuild";
version = "0-unstable-2025-07-22";
src = fetchFromGitHub {
owner = "google";
repo = "oss-rebuild";
rev = "6f57c474a8faf3012204792af8ef5d8b6fae2fd1";
hash = "sha256-H8HkhQcRt6C+lxoMVLzRfhv60Mq8TAf83ctOBRbx4p0=";
};
proxyVendor = true;
vendorHash = "sha256-H6ZMop3tXwpzvjoLWAaovP8UHSYLLFxvSz2jhz8tj/g=";
subPackages = [
"cmd/oss-rebuild"
"cmd/proxy"
"cmd/stabilize"
"cmd/timewarp"
# There are other tools in available, but without documentation.
];
ldflags = [ "-s" ];
env.CGO_ENABLED = 0;
meta = {
description = "Securing open-source package ecosystems by originating, validating, and augmenting build attestations";
longDescription = ''
OSS Rebuild aims to apply reproducible build concepts at low-cost and high-scale for open-source package ecosystems.
Rebuilds are derived by analyzing the published metadata and artifacts and are evaluated against the upstream package
versions. When successful, build attestations are published for the upstream artifacts, verifying the integrity of
the upstream artifact and eliminating many possible sources of compromise.
[`oss-rebuild`](https://github.com/google/oss-rebuild?tab=readme-ov-file#usage) CLI tool provides access to OSS Rebuild
data.
[`proxy`](https://github.com/google/oss-rebuild/blob/main/cmd/proxy/README.md) is a transparent HTTP(S) proxy that
intercepts and records network activity. It's primarily used within OSS Rebuild to monitor network interactions during
the build process, helping to passively enumerate remote dependencies and to identify suspect build behavior.
[`stabilize`](https://github.com/google/oss-rebuild/blob/main/cmd/stabilize/README.md) is a command-line tool that
removes non-deterministic metadata from software packages to facilitate functional comparison of artifacts.
[`timewarp`](https://github.com/google/oss-rebuild/blob/main/cmd/timewarp/README.md) is a registry-fronting HTTP
service that filters returned content by time. This tool allows you to transparently adjust the data returned to
package manager clients to reflect the state of a registry at a given point in time (especially useful for reproducing
prior builds).
'';
homepage = "https://github.com/google/oss-rebuild";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ katexochen ];
mainProgram = "oss-rebuild";
};
})

View File

@@ -0,0 +1,169 @@
{
lib,
fetchFromGitHub,
cmake,
ninja,
clangStdenv,
pkg-config,
alsa-lib,
avahi,
avahi-compat,
bluez,
boost,
fmt,
ffmpeg,
fftw,
flac,
git,
gnutls,
lame,
libcoap,
libjack2,
libopus,
libsamplerate,
libsndfile,
libvorbis,
lilv,
lv2,
mpg123,
pipewire,
portaudio,
qt6,
rapidfuzz-cpp,
re2,
rubberband,
snappy,
SDL2,
spdlog,
suil,
udev,
}:
# TODO: figure out LLVM jit
# assert lib.versionAtLeast llvm.version "15";
clangStdenv.mkDerivation (finalAttrs: {
pname = "ossia-score";
version = "3.7.1";
src = fetchFromGitHub {
owner = "ossia";
repo = "score";
tag = "v${finalAttrs.version}";
hash = "sha256-+RUspDEAQPL6M0/f4lb/SuTD1wdmwE9+8GXQKUClgdE=";
fetchSubmodules = true;
};
nativeBuildInputs = [
cmake
ninja
git
pkg-config
qt6.qttools
qt6.wrapQtAppsHook
];
buildInputs = [
alsa-lib
boost
avahi
avahi-compat
bluez
ffmpeg
fftw
flac
fmt
gnutls
lame
libcoap
libjack2
libopus
libsamplerate
libsndfile
libvorbis
lilv
lv2
mpg123
pipewire
portaudio
qt6.qtbase
qt6.qtdeclarative
qt6.qtserialport
qt6.qtscxml
qt6.qtshadertools
qt6.qtsvg
qt6.qtwayland
qt6.qtwebsockets
rapidfuzz-cpp
re2
rubberband
snappy
SDL2
spdlog
suil
udev
];
cmakeFlags = [
"-Wno-dev"
"-DSCORE_DEPLOYMENT_BUILD=1"
"-DSCORE_STATIC_PLUGINS=1"
"-DSCORE_FHS_BUILD=1"
"-DCMAKE_UNITY_BUILD=1"
"-DCMAKE_SKIP_RPATH=ON"
"-DOSSIA_USE_SYSTEM_LIBRARIES=1"
"-DSCORE_USE_SYSTEM_LIBRARIES=1"
"-DLilv_INCLUDE_DIR=${lilv.dev}/include/lilv-0"
"-DSuil_INCLUDE_DIR=${suil}/include/suil-0"
];
# Needed for libraries that get dlopen'd
env.NIX_LDFLAGS = toString [
"-lasound"
"-llilv-0"
"-lsuil-0"
"-lsndfile"
"-lpipewire-0.3"
"-lfftw3"
"-lfftw3_threads"
"-ludev"
];
runtimeDependencies = [
alsa-lib
avahi
avahi-compat
bluez
fftw
lilv
suil
pipewire
udev
];
installPhase = ''
runHook preInstall
cmake -DCMAKE_INSTALL_DO_STRIP=1 -DCOMPONENT=OssiaScore -P cmake_install.cmake
runHook postInstall
'';
meta = with lib; {
homepage = "https://ossia.io/score/about.html";
description = "Sequencer for audio-visual artists";
longDescription = ''
ossia score is a sequencer for audio-visual artists, designed to enable
the creation of interactive shows, museum installations, intermedia
digital artworks, interactive music and more in an intuitive user interface.
'';
platforms = platforms.linux;
license = licenses.gpl3Only;
maintainers = with maintainers; [
jcelerier
minijackson
];
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
python3,
curl,
openssl,
}:
stdenv.mkDerivation rec {
pname = "osslsigncode";
version = "2.10";
src = fetchFromGitHub {
owner = "mtrojnar";
repo = "osslsigncode";
rev = version;
sha256 = "sha256-UjjNXcHpPbyUz5CPsW+uVhZP0X9XGM3//IVv9VhmP7o=";
};
nativeBuildInputs = [
cmake
pkg-config
python3
];
buildInputs = [
curl
openssl
];
meta = with lib; {
homepage = "https://github.com/mtrojnar/osslsigncode";
description = "OpenSSL based Authenticode signing for PE/MSI/Java CAB files";
mainProgram = "osslsigncode";
license = licenses.gpl3Plus;
maintainers = with maintainers; [
mmahut
prusnak
];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
version = "1.7.18";
pname = "ossutil";
src = fetchFromGitHub {
owner = "aliyun";
repo = "ossutil";
tag = "v${version}";
hash = "sha256-M7Jh3rmWdUlsvj+P0UKazjQoe0zLDro882f/l8wFZGQ=";
};
vendorHash = "sha256-4a/bNH47sxxwgYYQhHTqyXddJit3VbeM49/4IEfjWsY=";
# don't run tests as they require secret access keys that only travis has
doCheck = false;
meta = {
description = "User friendly command line tool to access Alibaba Cloud OSS";
homepage = "https://github.com/aliyun/ossutil";
changelog = "https://github.com/aliyun/ossutil/blob/v${version}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ jpetrucciani ];
mainProgram = "ossutil";
};
}

View File

@@ -0,0 +1,7 @@
{
ostree,
}:
ostree.override {
withComposefs = true;
}

2303
pkgs/by-name/os/ostree-rs-ext/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,89 @@
{
lib,
rustPlatform,
fetchFromGitHub,
pkg-config,
makeWrapper,
glib,
openssl,
zlib,
ostree,
stdenv,
util-linux,
skopeo,
gnutar,
ima-evm-utils,
}:
rustPlatform.buildRustPackage rec {
pname = "ostree-rs-ext";
version = "0.10.6";
src = fetchFromGitHub {
owner = "ostreedev";
repo = "ostree-rs-ext";
rev = "ostree-ext-v${version}";
hash = "sha256-kk/icUevzKMpAQ6IoruUxuKwTxXHlKLrr63Hch1w7po=";
};
cargoLock = {
lockFile = ./Cargo.lock;
};
postPatch = ''
ln -s ${./Cargo.lock} Cargo.lock
'';
nativeBuildInputs = [
pkg-config
makeWrapper
];
buildInputs = [
glib
openssl
zlib
ostree
];
checkFlags = [
# these tests expects /var/tmp to be available
"--skip=test_cli_fns"
"--skip=test_container_chunked"
"--skip=test_container_import_export_v1"
"--skip=test_container_var_content"
"--skip=test_container_write_derive"
"--skip=test_container_write_derive_sysroot_hardlink"
"--skip=test_diff"
"--skip=test_tar_export_reproducible"
"--skip=test_tar_export_structure"
"--skip=test_tar_import_empty"
"--skip=test_tar_import_export"
"--skip=test_tar_import_signed"
"--skip=test_tar_write"
"--skip=test_tar_write_tar_layer"
];
postInstall = ''
wrapProgram "$out/bin/${meta.mainProgram}" --prefix PATH : ${
lib.makeBinPath [
util-linux
skopeo
gnutar
ostree
ima-evm-utils
]
}
'';
meta = with lib; {
description = "Rust library with higher level APIs on top of the core ostree API";
homepage = "https://github.com/ostreedev/ostree-rs-ext";
license = with licenses; [
asl20
mit
];
maintainers = with maintainers; [ nickcao ];
mainProgram = "ostree-ext-cli";
};
}

View File

@@ -0,0 +1,151 @@
diff --git a/tests/basic-test.sh b/tests/basic-test.sh
index c8f853f8..a58ad3de 100644
--- a/tests/basic-test.sh
+++ b/tests/basic-test.sh
@@ -242,7 +242,7 @@ cd ${test_tmpdir}
if $OSTREE commit ${COMMIT_ARGS} -b test-bootable --bootable $test_tmpdir/checkout-test2-4 2>err.txt; then
fatal "committed non-bootable tree"
fi
-assert_file_has_content err.txt "error: .*No such file or directory"
+assert_file_has_content err.txt "error:.*No such file or directory"
echo "ok commit fails bootable if no kernel"
cd ${test_tmpdir}
diff --git a/tests/pull-test.sh b/tests/pull-test.sh
index d61735a0..9e751d82 100644
--- a/tests/pull-test.sh
+++ b/tests/pull-test.sh
@@ -297,7 +297,7 @@ ostree_repo_init mirrorrepo-local --mode=archive
if ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo 2>err.txt; then
fatal "pull with mixed refs succeeded?"
fi
-assert_file_has_content err.txt "error: Invalid ref name origin:main"
+assert_file_has_content err.txt "Invalid ref name origin:main"
${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo localbranch
${CMD_PREFIX} ostree --repo=mirrorrepo-local rev-parse localbranch
${CMD_PREFIX} ostree --repo=mirrorrepo-local fsck
@@ -308,7 +308,7 @@ if ${CMD_PREFIX} ostree --repo=mirrorrepo-local pull-local otherrepo nosuchbranc
fatal "pulled nonexistent branch"
fi
# So true
-assert_file_has_content_literal err.txt "error: Refspec 'nosuchbranch' not found"
+assert_file_has_content_literal err.txt "Refspec 'nosuchbranch' not found"
echo "ok pull-local nonexistent branch"
cd ${test_tmpdir}
@@ -687,5 +687,5 @@ rm ostree-srv/gnomerepo/summary
if ${CMD_PREFIX} ostree --repo=repo pull origin main 2>err.txt; then
fatal "pull of invalid ref succeeded"
fi
-assert_file_has_content_literal err.txt 'error: Fetching checksum for ref ((empty), main): Invalid rev lots of html here lots of html here lots of html here lots of'
+assert_file_has_content_literal err.txt 'Fetching checksum for ref ((empty), main): Invalid rev lots of html here lots of html here lots of html here lots of'
echo "ok pull got HTML for a ref"
diff --git a/tests/test-config.sh b/tests/test-config.sh
index 2d9aaf53..f1e28614 100755
--- a/tests/test-config.sh
+++ b/tests/test-config.sh
@@ -44,7 +44,7 @@ assert_file_has_content list.txt "http://example\.com/ostree/repo/"
if ${CMD_PREFIX} ostree config --repo=repo get --group=core lock-timeout-secs extra 2>err.txt; then
assert_not_reached "ostree config get should error out if too many arguments are given"
fi
-assert_file_has_content err.txt "error: Too many arguments given"
+assert_file_has_content err.txt "Too many arguments given"
echo "ok config get"
${CMD_PREFIX} ostree config --repo=repo set core.mode bare-user-only
@@ -61,7 +61,7 @@ assert_file_has_content repo/config "http://example\.com/ostree/"
if ${CMD_PREFIX} ostree config --repo=repo set --group=core lock-timeout-secs 120 extra 2>err.txt; then
assert_not_reached "ostree config set should error out if too many arguments are given"
fi
-assert_file_has_content err.txt "error: Too many arguments given"
+assert_file_has_content err.txt "Too many arguments given"
echo "ok config set"
# Check that using `--` works and that "ostree config unset" works
@@ -78,7 +78,7 @@ if ${CMD_PREFIX} ostree config --repo=repo get core.lock-timeout-secs 2>err.txt;
fi
# Check for any character where quotation marks would be as they appear differently in the Fedora and Debian
# test suites (“” and '' respectively). See: https://github.com/ostreedev/ostree/pull/1839
-assert_file_has_content err.txt "error: Key file does not have key .lock-timeout-secs. in group .core."
+assert_file_has_content err.txt "Key file does not have key .lock-timeout-secs. in group .core."
# Check that it's idempotent
${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs
@@ -95,5 +95,5 @@ ${CMD_PREFIX} ostree config --repo=repo unset --group='remote "aoeuhtns"' 'xa.ti
if ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs extra 2>err.txt; then
assert_not_reached "ostree config unset should error out if too many arguments are given"
fi
-assert_file_has_content err.txt "error: Too many arguments given"
+assert_file_has_content err.txt "Too many arguments given"
echo "ok config unset"
diff --git a/tests/test-fsck-collections.sh b/tests/test-fsck-collections.sh
index 3dbcdd23..d6359979 100755
--- a/tests/test-fsck-collections.sh
+++ b/tests/test-fsck-collections.sh
@@ -98,7 +98,7 @@ ${CMD_PREFIX} ostree fsck --repo=repo
if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
fi
-assert_file_has_content fsck-error "Commit has no requested ref new-ref in ref binding metadata (ref1)"
+assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
assert_file_has_content fsck "^Validating refs\.\.\.$"
echo "ok 3 fsck detects missing ref bindings"
@@ -111,7 +111,7 @@ ${CMD_PREFIX} ostree --repo=repo refs --collections --create=org.example.Collect
if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
fi
-assert_file_has_content fsck-error "Commit has no requested ref new-ref in ref binding metadata (ref1)"
+assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref1.)"
assert_file_has_content fsck "^Validating refs\.\.\.$"
assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
@@ -125,7 +125,7 @@ ${CMD_PREFIX} ostree --repo=repo refs --collections --create=org.example.Collect
if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
fi
-assert_file_has_content fsck-error "Commit has collection ID org\.example\.Collection in collection binding metadata, while the remote it came from has collection ID org\.example\.Collection2"
+assert_file_has_content fsck-error "Commit has collection ID .org\.example\.Collection. in collection binding metadata, while the remote it came from has collection ID .org\.example\.Collection2."
assert_file_has_content fsck "^Validating refs\.\.\.$"
assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
@@ -145,7 +145,7 @@ echo "ok 6 fsck ignores unreferenced ref bindings"
if ${CMD_PREFIX} ostree fsck --repo=repo --verify-back-refs > fsck 2> fsck-error; then
assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
fi
-assert_file_has_content fsck-error "Collectionref (org\.example\.Collection, ref1) in bindings for commit .* does not exist"
+assert_file_has_content fsck-error 'Collection.ref (org\.example\.Collection, ref1) in bindings for commit .* does not exist'
assert_file_has_content fsck "^Validating refs\.\.\.$"
assert_file_has_content fsck "^Validating refs in collections\.\.\.$"
@@ -184,7 +184,7 @@ ${CMD_PREFIX} ostree --repo=repo refs --create=new-ref $(cat ref3-checksum)
if ${CMD_PREFIX} ostree fsck --repo=repo --verify-bindings > fsck 2> fsck-error; then
assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
fi
-assert_file_has_content fsck-error "Commit has no requested ref new-ref in ref binding metadata (ref3, ref4)"
+assert_file_has_content fsck-error "Commit has no requested ref .new-ref. in ref binding metadata (.ref3., .ref4.)"
assert_file_has_content fsck "^Validating refs\.\.\.$"
echo "ok 9 fsck detects missing ref bindings"
@@ -203,7 +203,7 @@ echo "ok 10 fsck ignores unreferenced ref bindings"
if ${CMD_PREFIX} ostree fsck --repo=repo --verify-back-refs > fsck 2> fsck-error; then
assert_not_reached "fsck unexpectedly succeeded after adding unbound ref!"
fi
-assert_file_has_content fsck-error "Ref ref3 in bindings for commit .* does not exist"
+assert_file_has_content fsck-error 'Ref .ref3. in bindings for commit .* does not exist'
assert_file_has_content fsck "^Validating refs\.\.\.$"
echo "ok 11 fsck ignores unreferenced ref bindings"
diff --git a/tests/test-remote-add.sh b/tests/test-remote-add.sh
index 2f5ea634..0f63853c 100755
--- a/tests/test-remote-add.sh
+++ b/tests/test-remote-add.sh
@@ -81,7 +81,7 @@ echo "ok remote delete"
if $OSTREE remote delete nosuchremote 2>err.txt; then
assert_not_reached "Deleting remote unexpectedly succeeded"
fi
-assert_file_has_content err.txt "error: "
+assert_file_has_content err.txt "not found"
$OSTREE remote delete --if-exists nosuchremote
echo "ok"

View File

@@ -0,0 +1,55 @@
diff --git a/tests/libtest.sh b/tests/libtest.sh
index 2c2a33f0..4e9d3fa2 100755
--- a/tests/libtest.sh
+++ b/tests/libtest.sh
@@ -761,12 +761,12 @@ gen_ed25519_keys ()
{
# Generate private key in PEM format
pemfile="$(mktemp -p ${test_tmpdir} ed25519_XXXXXX.pem)"
- openssl genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
+ @openssl@ genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
# Based on: http://openssl.6102.n7.nabble.com/ed25519-key-generation-td73907.html
# Extract the private and public parts from generated key.
- ED25519PUBLIC="$(openssl pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
- ED25519SEED="$(openssl pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
+ ED25519PUBLIC="$(@openssl@ pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
+ ED25519SEED="$(@openssl@ pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
# Secret key is concantination of SEED and PUBLIC
ED25519SECRET="$(echo ${ED25519SEED}${ED25519PUBLIC} | base64 -d | base64 -w 0)"
@@ -777,7 +777,7 @@ gen_ed25519_keys ()
gen_ed25519_random_public()
{
- openssl genpkey -algorithm ED25519 | openssl pkey -outform DER | tail -c 32 | base64
+ @openssl@ genpkey -algorithm ED25519 | @openssl@ pkey -outform DER | tail -c 32 | base64
}
is_bare_user_only_repo () {
diff --git a/tests/test-basic-user-only.sh b/tests/test-basic-user-only.sh
index f6e8606d..1fed2465 100755
--- a/tests/test-basic-user-only.sh
+++ b/tests/test-basic-user-only.sh
@@ -27,7 +27,7 @@ extra_basic_tests=7
. $(dirname $0)/basic-test.sh
$CMD_PREFIX ostree --version > version.yaml
-python3 -c 'import yaml; yaml.safe_load(open("version.yaml"))'
+@python3@ -c 'import yaml; yaml.safe_load(open("version.yaml"))'
echo "ok yaml version"
# Reset things so we don't inherit a lot of state from earlier tests
diff --git a/tests/test-remote-headers.sh b/tests/test-remote-headers.sh
index d3bf4f97..0d2331ba 100755
--- a/tests/test-remote-headers.sh
+++ b/tests/test-remote-headers.sh
@@ -24,7 +24,7 @@ echo '1..2'
. $(dirname $0)/libtest.sh
V=$($CMD_PREFIX ostree --version | \
- python3 -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])')
+ @python3@ -c 'import sys, yaml; print(yaml.safe_load(sys.stdin)["libostree"]["Version"])')
setup_fake_remote_repo1 "archive" "" \
--expected-header foo=bar \

View File

@@ -0,0 +1,183 @@
{
stdenv,
lib,
fetchurl,
pkg-config,
gtk-doc,
nixosTests,
pkgsCross,
curl,
glib,
xz,
e2fsprogs,
libsoup_3,
gpgme,
which,
makeWrapper,
autoconf,
automake,
libtool,
fuse3,
util-linuxMinimal,
libselinux,
libsodium,
libarchive,
libcap,
bzip2,
bison,
libxslt,
docbook-xsl-nons,
docbook_xml_dtd_42,
python3,
buildPackages,
withComposefs ? false,
composefs,
withGjs ? lib.meta.availableOn stdenv.hostPlatform gjs,
gjs,
withIntrospection ?
lib.meta.availableOn stdenv.hostPlatform gobject-introspection
&& stdenv.hostPlatform.emulatorAvailable buildPackages,
gobject-introspection,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
systemd,
replaceVars,
openssl,
ostree-full,
}:
let
testPython = python3.withPackages (
p: with p; [
pyyaml
]
);
in
stdenv.mkDerivation (finalAttrs: {
pname = "ostree";
version = "2025.2";
outputs = [
"out"
"dev"
"man"
"installedTests"
];
src = fetchurl {
url = "https://github.com/ostreedev/ostree/releases/download/v${finalAttrs.version}/libostree-${finalAttrs.version}.tar.xz";
hash = "sha256-8kSkCMkJmYp3jhJ/zCLBtQK00BPxXyaUj0fMcv/i7vQ=";
};
patches = [
# Workarounds for installed tests failing in pseudoterminal
# https://github.com/ostreedev/ostree/issues/1592
./fix-1592.patch
# Hard-code paths in installed tests
(replaceVars ./fix-test-paths.patch {
python3 = testPython.interpreter;
openssl = "${openssl}/bin/openssl";
})
];
nativeBuildInputs = [
autoconf
automake
libtool
pkg-config
glib
gtk-doc
which
makeWrapper
bison
libxslt
docbook-xsl-nons
docbook_xml_dtd_42
]
++ lib.optionals withIntrospection [
gobject-introspection
];
buildInputs = [
curl
glib
e2fsprogs
libsoup_3 # for trivial-httpd for tests
gpgme
fuse3
libselinux
libsodium
libcap
libarchive
bzip2
xz
util-linuxMinimal # for libmount
# for installed tests
testPython
]
++ lib.optionals withComposefs [
(lib.getDev composefs)
]
++ lib.optionals withGjs [
gjs
]
++ lib.optionals withSystemd [
systemd
];
enableParallelBuilding = true;
configureFlags = [
"--with-curl"
"--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
"--with-systemdsystemgeneratordir=${placeholder "out"}/lib/systemd/system-generators"
"--enable-installed-tests"
"--with-ed25519-libsodium"
]
++ lib.optionals withComposefs [
"--with-composefs"
];
makeFlags = [
"installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/libostree"
"installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/libostree"
# Setting this flag was required as workaround for a clang bug, but seems not relevant anymore.
# https://github.com/ostreedev/ostree/commit/fd8795f3874d623db7a82bec56904648fe2c1eb7
# See also Makefile-libostree.am
"INTROSPECTION_SCANNER_ENV="
];
preConfigure = ''
env NOCONFIGURE=1 ./autogen.sh
'';
postFixup =
let
typelibPath = lib.makeSearchPath "/lib/girepository-1.0" [
(placeholder "out")
glib.out
];
in
lib.optionalString withIntrospection ''
for test in $installedTests/libexec/installed-tests/libostree/*.js; do
wrapProgram "$test" --prefix GI_TYPELIB_PATH : "${typelibPath}"
done
'';
passthru = {
tests = {
musl = pkgsCross.musl64.ostree;
installedTests = nixosTests.installed-tests.ostree;
inherit ostree-full;
};
};
meta = with lib; {
description = "Git for operating system binaries";
homepage = "https://ostreedev.github.io/ostree/";
license = licenses.lgpl2Plus;
platforms = platforms.linux;
maintainers = [ ];
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
stdenvNoCC,
}:
stdenvNoCC.mkDerivation {
pname = "ostrich-sans";
version = "2014-04-18";
src = fetchFromGitHub {
owner = "theleagueof";
repo = "ostrich-sans";
rev = "a949d40d0576d12ba26e2a45e19c91fd0228c964";
hash = "sha256-vvTNtl+fO2zWooH1EvCmO/dPYYgCkj8Ckg5xfg1gtnw=";
};
installPhase = ''
runHook preInstall
install -D -m444 -t $out/share/fonts/opentype $src/*.otf
runHook postInstall
'';
meta = {
description = "Gorgeous modern sans-serif with a very long neck";
longDescription = ''
A gorgeous modern sans-serif with a very long neck. With a whole slew of
styles & weights.
'';
homepage = "https://www.theleagueofmoveabletype.com/ostrich-sans";
license = lib.licenses.ofl;
maintainers = with lib.maintainers; [ minijackson ];
};
}

View File

@@ -0,0 +1,50 @@
{
lib,
buildGoModule,
fetchFromSourcehut,
pkg-config,
mpv-unwrapped,
stdenv,
}:
buildGoModule (finalAttrs: {
pname = "ostui";
version = "1.0.4";
src = fetchFromSourcehut {
owner = "~ser";
repo = "ostui";
rev = "v${finalAttrs.version}";
hash = "sha256-efX19jkJnXyO4iuY2EZqhtLJZ7R/Q2JQZf72gyLgY8k=";
};
vendorHash = "sha256-Vmjd0bbeR9+PZCjh1cczE5MWeH5PDVE6obJLmV0wCLQ=";
nativeBuildInputs = [
pkg-config
];
buildInputs = [
mpv-unwrapped
];
ldflags = [
"-s"
"-w"
"-X main.Version=${finalAttrs.version}"
];
env = {
CGO_ENABLED = "1";
};
doCheck = !stdenv.hostPlatform.isDarwin;
meta = {
homepage = "https://git.sr.ht/~ser/ostui";
description = "Terminal client for *sonic music servers, inspired by ncmpcpp and musickube";
license = lib.licenses.gpl3Only;
platforms = lib.platforms.linux ++ lib.platforms.darwin;
mainProgram = "ostui";
maintainers = with lib.maintainers; [ m0streng0 ];
};
})

View File

@@ -0,0 +1,110 @@
{
lib,
stdenvNoCC,
fetchurl,
fetchzip,
appimageTools,
makeWrapper,
nativeWayland ? false,
}:
let
pname = "osu-lazer-bin";
version = "2025.912.0";
src =
{
aarch64-darwin = fetchzip {
url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Apple.Silicon.zip";
hash = "sha256-wGThpn4Yb3t02MYrn1Sg8S48ak6n09T1vPSpF5zEx7E=";
stripRoot = false;
};
x86_64-darwin = fetchzip {
url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Intel.zip";
hash = "sha256-OWqCqAQx1e6TsVdvOezF3gvZ06tXFIEfNMb5LA4mf5s=";
stripRoot = false;
};
x86_64-linux = fetchurl {
url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.AppImage";
hash = "sha256-73UY3RJp0pFfbxRWX8qSnLeoZB/BRGtucmQClJP7Qwg=";
};
}
.${stdenvNoCC.system} or (throw "osu-lazer-bin: ${stdenvNoCC.system} is unsupported.");
meta = {
description = "Rhythm is just a *click* away (AppImage version for score submission and multiplayer, and binary distribution for Darwin systems)";
homepage = "https://osu.ppy.sh";
license = with lib.licenses; [
mit
cc-by-nc-40
unfreeRedistributable # osu-framework contains libbass.so in repository
];
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
maintainers = with lib.maintainers; [
gepbird
stepbrobd
Guanran928
];
mainProgram = "osu!";
platforms = [
"aarch64-darwin"
"x86_64-darwin"
"x86_64-linux"
];
};
passthru.updateScript = ./update.sh;
in
if stdenvNoCC.hostPlatform.isDarwin then
stdenvNoCC.mkDerivation {
inherit
pname
version
src
meta
passthru
;
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
runHook preInstall
OSU_WRAPPER="$out/Applications/osu!.app/Contents"
OSU_CONTENTS="osu!.app/Contents"
mkdir -p "$OSU_WRAPPER/MacOS"
cp -r "$OSU_CONTENTS/Info.plist" "$OSU_CONTENTS/Resources" "$OSU_WRAPPER"
cp -r "osu!.app" "$OSU_WRAPPER/Resources/osu-wrapped.app"
makeWrapper "$OSU_WRAPPER/Resources/osu-wrapped.app/Contents/MacOS/osu!" "$OSU_WRAPPER/MacOS/osu!" --set OSU_EXTERNAL_UPDATE_PROVIDER 1
runHook postInstall
'';
}
else
appimageTools.wrapType2 {
inherit
pname
version
src
meta
passthru
;
extraPkgs = pkgs: with pkgs; [ icu ];
extraInstallCommands =
let
contents = appimageTools.extract { inherit pname version src; };
in
''
. ${makeWrapper}/nix-support/setup-hook
mv -v $out/bin/${pname} $out/bin/osu!
wrapProgram $out/bin/osu! \
${lib.optionalString nativeWayland "--set SDL_VIDEODRIVER wayland"} \
--set OSU_EXTERNAL_UPDATE_PROVIDER 1
install -m 444 -D ${contents}/osu!.desktop -t $out/share/applications
for i in 16 32 48 64 96 128 256 512 1024; do
install -D ${contents}/osu.png $out/share/icons/hicolor/''${i}x$i/apps/osu.png
done
'';
}

View File

@@ -0,0 +1,35 @@
#!/usr/bin/env nix-shell
#!nix-shell -I nixpkgs=./. --pure -i bash -p bash cacert curl jq nix unzip common-updater-scripts
set -euo pipefail
new_tag_name="$(curl -s "https://api.github.com/repos/ppy/osu/releases/latest" | jq -r '.name')"
new_version="${new_tag_name%-lazer}"
old_version="$(nix eval --raw -f . osu-lazer-bin.version)"
if [[ "$new_version" == "$old_version" ]]; then
echo "Already up to date."
exit 0
fi
echo "Updating osu-lazer-bin from $old_version to $new_version..."
for pair in \
'aarch64-darwin osu.app.Apple.Silicon.zip' \
'x86_64-darwin osu.app.Intel.zip' \
'x86_64-linux osu.AppImage'
do
set -- $pair
echo "Prefetching binary for $1..."
prefetch_output=$(nix --extra-experimental-features nix-command store prefetch-file --json --hash-type sha256 "https://github.com/ppy/osu/releases/download/$new_tag_name/$2")
if [[ "$1" == *"darwin"* ]]; then
store_path=$(jq -r '.storePath' <<<"$prefetch_output")
tmpdir=$(mktemp -d)
unzip -q "$store_path" -d "$tmpdir"
hash=$(nix --extra-experimental-features nix-command hash path "$tmpdir")
rm -r "$tmpdir"
else
hash=$(jq -r '.hash' <<<"$prefetch_output")
fi
echo "$1 ($2): hash = $hash"
update-source-version osu-lazer-bin "$new_version" "$hash" --system="$1" --ignore-same-version
done

1602
pkgs/by-name/os/osu-lazer/deps.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,120 @@
{
lib,
stdenvNoCC,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
makeDesktopItem,
copyDesktopItems,
makeWrapper,
ffmpeg,
alsa-lib,
SDL2,
lttng-ust,
numactl,
libglvnd,
xorg,
udev,
vulkan-loader,
nix-update-script,
nativeWayland ? false,
}:
buildDotnetModule rec {
pname = "osu-lazer";
version = "2025.912.0";
src = fetchFromGitHub {
owner = "ppy";
repo = "osu";
tag = "${version}-lazer";
hash = "sha256-OpFiqGldVK0GpIlNopRhbFzb6tOvKnLr/zQeQvWPgmA=";
};
projectFile = "osu.Desktop/osu.Desktop.csproj";
nugetDeps = ./deps.json;
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
nativeBuildInputs = [
copyDesktopItems
makeWrapper
];
runtimeDeps = [
ffmpeg
alsa-lib
SDL2
lttng-ust
numactl
# needed to avoid:
# Failed to create SDL window. SDL Error: Could not initialize OpenGL / GLES library
libglvnd
# needed for the window to actually appear
xorg.libXi
# needed to avoid in runtime.log:
# [verbose]: SDL error log [debug]: Failed loading udev_device_get_action: /nix/store/*-osu-lazer-*/lib/osu-lazer/runtimes/linux-x64/native/libSDL2.so: undefined symbol: _udev_device_get_action
# [verbose]: SDL error log [debug]: Failed loading libudev.so.1: libudev.so.1: cannot open shared object file: No such file or directory
udev
# needed for vulkan renderer, can fall back to opengl if omitted
vulkan-loader
];
executables = [ "osu!" ];
fixupPhase = ''
runHook preFixup
wrapProgram $out/bin/osu! \
${lib.optionalString nativeWayland "--set SDL_VIDEODRIVER wayland"} \
--set OSU_EXTERNAL_UPDATE_PROVIDER 1
for i in 16 32 48 64 96 128 256 512 1024; do
install -D ./assets/lazer.png $out/share/icons/hicolor/''${i}x$i/apps/osu.png
done
ln -sft $out/lib/${pname} ${SDL2}/lib/libSDL2${stdenvNoCC.hostPlatform.extensions.sharedLibrary}
runHook postFixup
'';
desktopItems = [
(makeDesktopItem {
desktopName = "osu!";
name = "osu";
exec = "osu!";
icon = "osu";
comment = "Rhythm is just a *click* away (no score submission or multiplayer, see osu-lazer-bin)";
type = "Application";
categories = [ "Game" ];
})
];
passthru.updateScript = nix-update-script {
extraArgs = [
"--version-regex=(.*)-lazer"
];
};
meta = {
description = "Rhythm is just a *click* away (no score submission or multiplayer, see osu-lazer-bin)";
homepage = "https://osu.ppy.sh";
license = with lib.licenses; [
mit
cc-by-nc-40
unfreeRedistributable # osu-framework contains libbass.so in repository
];
maintainers = with lib.maintainers; [
gepbird
thiagokokada
Guanran928
];
platforms = [ "x86_64-linux" ];
mainProgram = "osu!";
};
}

View File

@@ -0,0 +1,61 @@
{
lib,
buildGoModule,
fetchFromGitHub,
osv-detector,
testers,
}:
buildGoModule rec {
pname = "osv-detector";
version = "0.11.1";
src = fetchFromGitHub {
owner = "G-Rath";
repo = "osv-detector";
rev = "v${version}";
hash = "sha256-vIkLrKyDeMfRe/0EPhlKlHAO6XB0/OFY5mTUHeZbcg8=";
};
vendorHash = "sha256-Rrosye8foVntoFDvDmyNuXgnEgjzcOXenOKBMZVCRio=";
ldflags = [
"-w"
"-s"
"-X main.version=${version}"
];
checkFlags =
let
skippedTests = [
# Disable tests requiring network access
"TestRun_ParseAs_CsvFile"
"TestRun_ParseAs_CsvRow"
"TestRun_DBs"
"TestRun_Lockfile"
"TestRun_ParseAsGlobal"
"TestRun_Ignores"
"TestRun_ParseAsSpecific"
"TestRun_Configs"
];
in
[
"-skip"
"${builtins.concatStringsSep "|" skippedTests}"
];
passthru.tests.version = testers.testVersion {
package = osv-detector;
command = "osv-detector -version";
version = "osv-detector ${version} (unknown, commit none)";
};
meta = {
description = "Auditing tool for detecting vulnerabilities";
mainProgram = "osv-detector";
homepage = "https://github.com/G-Rath/osv-detector";
changelog = "https://github.com/G-Rath/osv-detector/releases/tag/v${version}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
buildGoModule,
fetchFromGitHub,
testers,
osv-scanner,
}:
buildGoModule rec {
pname = "osv-scanner";
version = "2.2.3";
src = fetchFromGitHub {
owner = "google";
repo = "osv-scanner";
tag = "v${version}";
hash = "sha256-YdtTF1u5uyXERRZXidumBFoWq4yA5L7cwIaoYJ4ktSM=";
};
vendorHash = "sha256-/+VtmLnceOzcqWvpBnihtsAf9Q4x/56Zk6UjjejzWHQ=";
subPackages = [
"cmd/osv-scanner"
];
ldflags = [
"-s"
"-w"
"-X=github.com/google/osv-scanner/internal/version.OSVVersion=${version}"
"-X=main.commit=n/a"
"-X=main.date=1970-01-01T00:00:00Z"
];
# Tests require network connectivity to query https://api.osv.dev.
doCheck = false;
passthru.tests.version = testers.testVersion {
package = osv-scanner;
};
meta = {
description = "Vulnerability scanner written in Go which uses the data provided by https://osv.dev";
mainProgram = "osv-scanner";
homepage = "https://github.com/google/osv-scanner";
changelog = "https://github.com/google/osv-scanner/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
stehessel
urandom
];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenvNoCC,
fetchFromGitHub,
}:
stdenvNoCC.mkDerivation {
pname = "oswald";
version = "4.103";
src = fetchFromGitHub {
owner = "googlefonts";
repo = "OswaldFont";
rev = "89795261ac9eeb9aa8cd99f43982c4e4b0e53261";
hash = "sha256-yoUduWHuuKDQaJnQ+CgeMw1vp2lgn/OVPokSDzEU7yk=";
};
installPhase = ''
runHook preInstall
install -Dm444 fonts/ttf/*.ttf -t $out/share/fonts/truetype
install -Dm444 fonts/variable/*.ttf -t $out/share/fonts/variable
runHook postInstall
'';
meta = {
description = "Reworking of the classic gothic typeface style";
longDescription = ''
Oswald is a reworking of the classic gothic typeface style
historically represented by designs such as 'Alternate Gothic'.
The characters of Oswald have been re-drawn and reformed to
better fit the pixel grid of standard digital screens.
'';
homepage = "https://github.com/googlefonts/OswaldFont";
license = lib.licenses.ofl;
platforms = lib.platforms.all;
maintainers = with lib.maintainers; [ mimvoid ];
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "osx-cpu-temp";
version = "unstable-2020-12-04";
src = fetchFromGitHub {
name = "osx-cpu-temp-source";
owner = "lavoiesl";
repo = "osx-cpu-temp";
rev = "6ec951be449badcb7fb84676bbc2c521e600e844";
sha256 = "1nlibgr55bpln6jbdf8vqcp0fj9zv9343vflb7s9w0yh33fsbg9d";
};
installPhase = ''
mkdir -p $out/bin
cp osx-cpu-temp $out/bin
'';
meta = with lib; {
description = "Outputs current CPU temperature for OSX";
homepage = "https://github.com/lavoiesl/osx-cpu-temp";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ virusdave ];
platforms = platforms.darwin;
};
}

View File

@@ -0,0 +1,31 @@
{
stdenv,
lib,
fetchFromGitHub,
plan9port,
}:
stdenv.mkDerivation rec {
pname = "osxsnarf";
version = "0.1.0";
src = fetchFromGitHub {
owner = "eraserhd";
repo = "osxsnarf";
rev = "v${version}";
sha256 = "1vpg39mpc5avnv1j0yfx0x2ncvv38slmm83zv6nmm7alfwfjr2ss";
};
buildInputs = [
plan9port
];
makeFlags = [ "prefix=${placeholder "out"}" ];
meta = with lib; {
description = "Plan 9-inspired way to share your OS X clipboard";
homepage = "https://github.com/eraserhd/osxsnarf";
license = licenses.unlicense;
platforms = platforms.darwin;
maintainers = [ maintainers.eraserhd ];
};
}