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,94 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
pkg-config,
cmake,
copyDesktopItems,
makeDesktopItem,
makeWrapper,
expat,
fontconfig,
freetype,
libGL,
udev,
libxkbcommon,
wayland,
vulkan-loader,
xorg,
}:
let
runtimeLibs = [
expat
fontconfig
freetype
freetype.dev
libGL
pkg-config
udev
wayland
libxkbcommon
vulkan-loader
xorg.libX11
xorg.libXcursor
xorg.libXi
xorg.libXrandr
];
in
rustPlatform.buildRustPackage rec {
pname = "liana";
version = "13.0"; # keep in sync with lianad
src = fetchFromGitHub {
owner = "wizardsardine";
repo = "liana";
tag = "v${version}";
hash = "sha256-zr9FZZSLPMk2d5vyZqrj12RG4UCdmkyKLjTU7XpgedE=";
};
cargoHash = "sha256-uLSlx1WWCcngL1WSP3jOvwFJd/gbz/g9AT6Of9rwEMw=";
nativeBuildInputs = [
pkg-config
cmake
copyDesktopItems
makeWrapper
];
buildInputs = [
fontconfig
udev
];
buildAndTestSubdir = "liana-gui";
postInstall = ''
install -Dm0644 ./liana-ui/static/logos/liana-app-icon.svg $out/share/icons/hicolor/scalable/apps/liana.svg
wrapProgram $out/bin/liana-gui --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeLibs}"
'';
desktopItems = [
(makeDesktopItem {
name = "Liana";
exec = "liana-gui";
icon = "liana";
desktopName = "Liana";
comment = meta.description;
})
];
doCheck = true;
meta = with lib; {
mainProgram = "liana-gui";
description = "Bitcoin wallet leveraging on-chain timelocks for safety and recovery";
homepage = "https://wizardsardine.com/liana";
changelog = "https://github.com/wizardsardine/liana/releases/tag/${src.rev}";
license = licenses.bsd3;
maintainers = with maintainers; [ dunxen ];
platforms = platforms.linux;
broken = stdenv.hostPlatform.isAarch64;
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
rustPlatform,
fetchFromGitHub,
udev,
}:
rustPlatform.buildRustPackage rec {
pname = "lianad";
version = "13.0"; # keep in sync with liana
src = fetchFromGitHub {
owner = "wizardsardine";
repo = "liana";
rev = "v${version}";
hash = "sha256-zr9FZZSLPMk2d5vyZqrj12RG4UCdmkyKLjTU7XpgedE=";
};
cargoHash = "sha256-uLSlx1WWCcngL1WSP3jOvwFJd/gbz/g9AT6Of9rwEMw=";
buildInputs = [ udev ];
buildAndTestSubdir = "lianad";
postInstall = ''
install -Dm0644 ./contrib/lianad_config_example.toml $out/etc/liana/config.toml
'';
# bypass broken unit tests
doCheck = false;
meta = {
mainProgram = "lianad";
description = "Bitcoin wallet leveraging on-chain timelocks for safety and recovery";
homepage = "https://wizardsardine.com/liana";
license = lib.licenses.bsd3;
maintainers = [
lib.maintainers.dunxen
lib.maintainers.plebhash
];
platforms = lib.platforms.linux;
broken = stdenv.hostPlatform.isAarch64;
};
}

View File

@@ -0,0 +1,48 @@
diff --git a/configure b/configure
index 04042b2..30d1ea9 100755
--- a/configure
+++ b/configure
@@ -210,6 +210,17 @@ for arch in sorted(os.listdir('compilers')):
with open('compilers/%s' % arch) as f:
for c in f.readlines():
c = c.strip()
+ if env_cc := os.getenv('CC'):
+ c_as_list= c.split()
+ # check if the compiler we're testing has the name inside the last
+ # part of the CC env var
+ # i.e. gcc == x86_64-linux-unknown-gnu-gcc
+ # or gcc == gcc
+ if c_as_list[0] == env_cc.split("-")[-1]:
+ c_as_list[0] = env_cc
+ c = ' '.join(c_as_list)
+ log('patched command as %s' % c)
+
cv = compilerversion(c)
if cv == None:
log('skipping %s compiler %s' % (arch,c))
diff --git a/scripts-build/checknamespace b/scripts-build/checknamespace
index ae11bed..bd9cb85 100755
--- a/scripts-build/checknamespace
+++ b/scripts-build/checknamespace
@@ -36,7 +36,7 @@ def doit(d):
obj2U = {}
try:
- p = subprocess.Popen(['nm','-ApP']+objs,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,universal_newlines=True)
+ p = subprocess.Popen([os.getenv('NM', 'nm'),'-ApP']+objs,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,universal_newlines=True)
out,err = p.communicate()
except Exception as e:
warn('nm failure: %s' % e)
diff --git a/scripts-build/staticlib b/scripts-build/staticlib
index 7683233..0445bc3 100755
--- a/scripts-build/staticlib
+++ b/scripts-build/staticlib
@@ -3,6 +3,6 @@
lib="$1"
rm -f package/lib/"$lib".a
-ar cr package/lib/"$lib".a ofiles/*.o
-ranlib package/lib/"$lib".a || :
+${AR:-ar} cr package/lib/"$lib".a ofiles/*.o
+${RANLIB:-ranlib} package/lib/"$lib".a || :
chmod 644 package/lib/"$lib".a

View File

@@ -0,0 +1,90 @@
{
stdenv,
lib,
python3,
fetchzip,
testers,
valgrind,
librandombytes,
libcpucycles,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lib25519";
version = "20241004";
src = fetchzip {
url = "https://lib25519.cr.yp.to/lib25519-${finalAttrs.version}.tar.gz";
hash = "sha256-gKLMk+yZ/nDlwohZiCFurSZwHExX3Ge2W1O0JoGQf8M=";
};
patches = [ ./environment-variable-tools.patch ];
postPatch = ''
patchShebangs configure
patchShebangs scripts-build
'';
# NOTE: lib25519 uses a custom Python `./configure`: it does not expect standard
# autoconfig --build --host etc. arguments: disable
# Pass the hostPlatform string
configurePhase = ''
runHook preConfigure
./configure --host=${stdenv.buildPlatform.system} --prefix=$out
runHook postConfigure
'';
nativeBuildInputs = [
python3
valgrind
];
buildInputs = [
librandombytes
libcpucycles
];
preFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
install_name_tool -id "$out/lib/lib25519.1.dylib" "$out/lib/lib25519.1.dylib"
for f in $out/bin/*; do
install_name_tool -change "lib25519.1.dylib" "$out/lib/lib25519.1.dylib" "$f"
done
'';
# failure: crypto_pow does not handle p=q overlap
doInstallCheck = !stdenv.hostPlatform.isDarwin;
installCheckPhase = ''
runHook preInstallCheck
$out/bin/lib25519-test
runHook postInstallCheck
'';
passthru = {
updateScript = ./update.sh;
tests.version = testers.testVersion {
package = finalAttrs.finalPackage;
command = "lib25519-test | head -n 2 | grep version";
version = "lib25519 version ${finalAttrs.version}";
};
};
meta = {
homepage = "https://randombytes.cr.yp.to/";
description = "Simple API for applications generating fresh randomness";
changelog = "https://randombytes.cr.yp.to/download.html";
license = with lib.licenses; [
# Upstream specifies the public domain licenses with the terms here https://cr.yp.to/spdx.html
publicDomain
cc0
bsd0
mit
mit0
];
maintainers = with lib.maintainers; [
kiike
imadnyc
jleightcap
];
teams = with lib.teams; [ ngi ];
# This supports whatever platforms libcpucycles supports
inherit (libcpucycles.meta) platforms;
};
})

View File

@@ -0,0 +1,10 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl cacert nix common-updater-scripts --pure
#shellcheck shell=bash
set -eu -o pipefail
# upstream doesn't use git, but has this file specifically for versioning
version="$(curl https://lib25519.cr.yp.to/lib25519-latest-version.txt)"
update-source-version lib25519 "$version"

View File

@@ -0,0 +1,108 @@
{
stdenv,
fetchFromGitLab,
cmake,
ninja,
pkg-config,
boost,
glib,
gsl,
cairo,
double-conversion,
gtest,
ctestCheckHook,
lib,
inkscape,
pkgsCross,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lib2geom";
version = "1.4";
outputs = [
"out"
"dev"
];
src = fetchFromGitLab {
owner = "inkscape";
repo = "lib2geom";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-kbcnefzNhUj/ZKZaB9r19bpI68vxUKOLVAwUXSr/zz0=";
};
nativeBuildInputs = [
cmake
ninja
pkg-config
];
buildInputs = [
boost
glib
gsl
cairo
double-conversion
];
nativeCheckInputs = [
gtest
ctestCheckHook
];
cmakeFlags = [
"-D2GEOM_BUILD_SHARED=ON"
# For cross compilation.
(lib.cmakeBool "2GEOM_TESTING" finalAttrs.finalPackage.doCheck)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
dontUseNinjaCheck = true;
disabledTests =
lib.optionals stdenv.hostPlatform.isMusl [
# Fails due to rounding differences
# https://gitlab.com/inkscape/lib2geom/-/issues/70
"circle-test"
]
++ lib.optionals (stdenv.hostPlatform.system != "x86_64-linux") [
# Broken on all platforms, test just accidentally passes on some.
# https://gitlab.com/inkscape/lib2geom/-/issues/63
"elliptical-arc-test"
# https://gitlab.com/inkscape/lib2geom/-/issues/69
"polynomial-test"
# https://gitlab.com/inkscape/lib2geom/-/issues/75
"line-test"
# Failure observed on i686
"angle-test"
"self-intersections-test"
# Failure observed on aarch64-darwin
"bezier-test"
"ellipse-test"
];
passthru = {
tests = {
inherit inkscape;
}
# Make sure x86_64-linux -> aarch64-linux cross compilation works
// lib.optionalAttrs (stdenv.buildPlatform.system == "x86_64-linux") {
aarch64-cross = pkgsCross.aarch64-multiplatform.lib2geom;
};
};
meta = with lib; {
description = "Easy to use 2D geometry library in C++";
homepage = "https://gitlab.com/inkscape/lib2geom";
license = [
licenses.lgpl21Only
licenses.mpl11
];
maintainers = with maintainers; [ jtojnar ];
platforms = platforms.unix;
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
which,
pkg-config,
autoconf,
automake,
libtool,
gettext,
openssl,
curl,
}:
stdenv.mkDerivation rec {
pname = "lib3270";
version = "5.4";
src = fetchFromGitHub {
owner = "PerryWerneck";
repo = "lib3270";
rev = version;
hash = "sha256-w6Bg+TvSDAuZwtu/nyAIuq6pgheM5nXtfuryECfnKng=";
};
nativeBuildInputs = [
which
pkg-config
autoconf
automake
libtool
];
buildInputs = [
gettext
openssl
curl
];
postPatch = ''
# Patch the required version.
sed -i -e "s/20211118/19800101/" src/core/session.c
'';
preConfigure = ''
NOCONFIGURE=1 sh autogen.sh
'';
enableParallelBuilding = true;
meta = with lib; {
description = "TN3270 client Library";
homepage = "https://github.com/PerryWerneck/lib3270";
license = licenses.lgpl3Plus;
maintainers = [ maintainers.vifino ];
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,25 @@
{
lib,
stdenv,
fetchurl,
unzip,
}:
stdenv.mkDerivation rec {
pname = "lib3ds";
version = "1.3.0";
src = fetchurl {
url = "http://lib3ds.googlecode.com/files/lib3ds-${version}.zip";
sha256 = "1qr9arfdkjf7q11xhvxwzmhxqz3nhcjkyb8zzfjpz9jm54q0rc7m";
};
nativeBuildInputs = [ unzip ];
meta = {
description = "Library for managing 3D-Studio Release 3 and 4 \".3DS\" files";
homepage = "https://lib3ds.sourceforge.net/";
license = lib.licenses.lgpl2Only;
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,115 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
ninja,
automaticcomponenttoolkit,
pkg-config,
fast-float,
libzip,
gtest,
openssl,
libuuid,
zlib,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lib3mf";
version = "2.4.1";
src = fetchFromGitHub {
owner = "3MFConsortium";
repo = "lib3mf";
tag = "v${finalAttrs.version}";
hash = "sha256-wq/dT/8m+em/qFoNNj6s5lyx/MgNeEBGSMBpuJiORqA=";
};
patches = [
# some patches are required for the gcc 14 source build
# remove next release
# https://github.com/3MFConsortium/lib3mf/pull/413
(fetchpatch {
url = "https://github.com/3MFConsortium/lib3mf/pull/413/commits/96b2f5ec9714088907fe8a6f05633e2bbd82053f.patch?full_index=1";
hash = "sha256-cJRc+SW1/6Ypf2r34yroVTxu4NMJWuoSmzsmoXogrUk=";
})
# https://github.com/3MFConsortium/lib3mf/pull/421
(fetchpatch {
url = "https://github.com/3MFConsortium/lib3mf/pull/421/commits/6d7b5709a4a1cf9bd55ae8b4ae999c9ca014f62c.patch?full_index=1";
hash = "sha256-rGOyXZUZglRNMu1/oVhgSpRdi0pUa/wn5SFHCS9jVOY=";
})
(fetchpatch {
name = "lib3mf-fix-cmake-4.patch";
url = "https://github.com/3MFConsortium/lib3mf/commit/01325a73de25d2ad49e992b5b6294beb32298c92.patch";
hash = "sha256-8vv2ydnDgvSKkGjpmk5ng1BGKK0okTMOeAoGwlKcziY=";
})
];
nativeBuildInputs = [
cmake
ninja
pkg-config
];
outputs = [
"out"
"dev"
];
cmakeFlags = [
"-DCMAKE_INSTALL_INCLUDEDIR=include/lib3mf"
"-DUSE_INCLUDED_ZLIB=OFF"
"-DUSE_INCLUDED_LIBZIP=OFF"
"-DUSE_INCLUDED_GTEST=OFF"
"-DUSE_INCLUDED_SSL=OFF"
];
buildInputs = [
libzip
gtest
openssl
zlib
]
++ lib.optional (!stdenv.hostPlatform.isDarwin) libuuid;
postPatch = ''
# fix libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
sed -i 's,libdir=''${\(exec_\)\?prefix}/,libdir=,' lib3mf.pc.in
# replace bundled binaries
rm -r AutomaticComponentToolkit
ln -s ${automaticcomponenttoolkit}/bin AutomaticComponentToolkit
# unvendor Libraries
rm -r Libraries/{fast_float,googletest,libressl,libzip,zlib}
cat <<"EOF" >> Tests/CPP_Bindings/CMakeLists.txt
find_package(GTest REQUIRED)
target_link_libraries(''${TESTNAME} PRIVATE GTest::gtest)
EOF
mkdir Libraries/fast_float
ln -s ${lib.getInclude fast-float}/include/fast_float Libraries/fast_float/Include
# functions are no longer in openssl, remove them from test cleanup function
substituteInPlace Tests/CPP_Bindings/Source/UnitTest_EncryptionUtils.cpp \
--replace-warn "RAND_cleanup();" "" \
--replace-warn "EVP_cleanup();" "" \
--replace-warn "CRYPTO_cleanup_all_ex_data();" ""
'';
doCheck = true;
passthru.updateScript = nix-update-script { };
meta = with lib; {
changelog = "https://github.com/3MFConsortium/lib3mf/releases/tag/${finalAttrs.src.tag}";
description = "Reference implementation of the 3D Manufacturing Format file standard";
homepage = "https://3mf.io/";
license = licenses.bsd2;
maintainers = [ ];
platforms = platforms.all;
};
})

View File

@@ -0,0 +1,44 @@
{
stdenv,
fetchFromGitHub,
fetchpatch,
lib,
}:
stdenv.mkDerivation (finalAttrs: {
name = "lib45d";
version = "0.3.6";
src = fetchFromGitHub {
owner = "45Drives";
repo = "lib45d";
tag = "v${finalAttrs.version}";
hash = "sha256-42xB30Iu2WxNrBxomVBKd/uyIRt27y/Y1ah5mckOrc0=";
};
patches = [
# https://github.com/45Drives/lib45d/issues/3
# fix "error: 'uintmax_t' has not been declared" build failure until next release
(fetchpatch {
url = "https://github.com/45Drives/lib45d/commit/a607e278182a3184c004c45c215aa22c15d6941d.patch";
hash = "sha256-sMAvOp4EjBXGHa9PGuuEqJvpEvUlMuzRKCfq9oqQLgY=";
})
];
installPhase = ''
runHook preInstall
install -Dm755 -t $out/lib dist/shared/lib45d.so
mkdir -p $out/include/45d
cp -f -r src/incl/45d/* $out/include/45d/
runHook postInstall
'';
meta = {
homepage = "https://github.com/45Drives/lib45d";
description = "45Drives C++ Library";
license = lib.licenses.gpl3;
maintainers = with lib.maintainers; [ philipwilk ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,46 @@
{
cmake,
lib,
stdenv,
fetchFromGitHub,
gitUpdater,
mbedtls,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "lib60870";
version = "2.3.6";
src = fetchFromGitHub {
owner = "mz-automation";
repo = "lib60870";
rev = "v${finalAttrs.version}";
hash = "sha256-9VqLl1pDmi8TauBA8uCyymzsYd3w4b5AKtqH7XW80N4=";
};
sourceRoot = "${finalAttrs.src.name}/lib60870-C";
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace src/CMakeLists.txt --replace-warn "-lrt" ""
'';
separateDebugInfo = true;
nativeBuildInputs = [ cmake ];
buildInputs = [ mbedtls ];
cmakeFlags = [ (lib.cmakeBool "WITH_MBEDTLS3" true) ];
env.NIX_LDFLAGS = "-lmbedcrypto -lmbedx509 -lmbedtls";
passthru.updateScript = gitUpdater { rev-prefix = "v"; };
meta = {
description = "Implementation of the IEC 60870-5-101/104 protocol";
homepage = "https://libiec61850.com/";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ stv0g ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
}:
stdenv.mkDerivation rec {
pname = "libGDSII";
version = "0.21";
src = fetchFromGitHub {
owner = "HomerReid";
repo = "libGDSII";
rev = "v${version}";
hash = "sha256-EXEt7l69etcBdDdEDlD1ODOdhTBZCVjgY1jhRUDd/W0=";
};
# File is missing in the repo but automake requires it
postPatch = ''
touch ChangeLog
'';
nativeBuildInputs = [ autoreconfHook ];
meta = with lib; {
description = "Library and command-line utility for reading GDSII geometry files";
mainProgram = "GDSIIConvert";
homepage = "https://github.com/HomerReid/libGDSII";
license = [ licenses.gpl2Only ];
maintainers = with maintainers; [
sheepforce
markuskowa
];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,46 @@
{
lib,
stdenv,
fetchurl,
autoconf,
automake,
libtool,
}:
stdenv.mkDerivation rec {
pname = "libHX";
version = "3.22";
src = fetchurl {
url = "mirror://sourceforge/libhx/libHX/${version}/${pname}-${version}.tar.xz";
sha256 = "18w39j528lyg2026dr11f2xxxphy91cg870nx182wbd8cjlqf86c";
};
patches = [ ];
nativeBuildInputs = [
autoconf
automake
libtool
];
preConfigure = ''
sh autogen.sh
'';
meta = with lib; {
homepage = "https://libhx.sourceforge.net/";
longDescription = ''
libHX is a C library (with some C++ bindings available) that provides data structures
and functions commonly needed, such as maps, deques, linked lists, string formatting
and autoresizing, option and config file parsing, type checking casts and more.
'';
maintainers = [ ];
platforms = platforms.linux;
license = with licenses; [
gpl3
lgpl21Plus
wtfpl
];
};
}

View File

@@ -0,0 +1,100 @@
{
lib,
stdenv,
fetchurl,
fetchpatch,
boost,
cmake,
libgeotiff,
libtiff,
laszip_2,
zlib,
fixDarwinDylibNames,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libLAS";
version = "1.8.1";
src = fetchurl {
url = "https://download.osgeo.org/liblas/libLAS-${finalAttrs.version}.tar.bz2";
sha256 = "0xjfxb3ydvr2258ji3spzyf81g9caap19ql2pk91wiivqsc4mnws";
};
patches = [
(fetchpatch {
name = "aarch64-darwin.patch";
url = "https://github.com/libLAS/libLAS/commit/ded463732db1f9baf461be6f3fe5b8bb683c41cd.patch";
sha256 = "sha256-aWMpazeefDHE9OzuLR3FJ8+oXeGhEsk1igEm6j2DUnw=";
})
(fetchpatch {
name = "fix-build-with-boost-1.73-1.patch";
url = "https://github.com/libLAS/libLAS/commit/af431abce95076b59f4eb7c6ef0930ca57c8a063.patch";
hash = "sha256-2lr028t5hq3oOLZFXnvIJXCUsoVHbG/Mus93OZvi5ZU=";
})
(fetchpatch {
name = "fix-build-with-boost-1.73-2.patch";
url = "https://github.com/libLAS/libLAS/commit/0d3b8d75f371a6b7c605bbe5293091cb64a7e2d3.patch";
hash = "sha256-gtNIazR+l1h+Xef+4qQc7EVi+Nlht3F8CrwkINothtA=";
})
# remove on update. fix compile error in apps/las2col.c
# https://github.com/libLAS/libLAS/pull/151
(fetchpatch {
name = "fflush-x2-is-not-an-fsync.patch";
url = "https://github.com/libLAS/libLAS/commit/e789d43df4500da0c12d2f6d3ac1d031ed835493.patch";
hash = "sha256-0zI0NvOt9C5BPrfAbgU1N1kj3rZFB7rf0KRj7yemyWI=";
})
(fetchpatch {
name = "set-macos-rpath-to-off-explicitly.patch";
url = "https://github.com/libLAS/libLAS/commit/ce9bc0da9e5d1eb8527259854aa826df062ed18e.patch";
hash = "sha256-Rse0p8bNgORNaw/EBbu0i2/iVmikFyeloJL8YkYarn0=";
})
(fetchpatch {
name = "fix-findLASZIP.patch";
url = "https://github.com/libLAS/libLAS/commit/be77a75f475ec8d59c0dae1c3c896289bcb5a287.patch";
hash = "sha256-5XDexk3IW7s2/G27GXkWp7cw1WZyQLMk/lTpfOM6PM0=";
})
];
# Disable setting of C++98 standard which was dropped in boost 1.84.0
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace-fail 'set(CMAKE_CXX_FLAGS "''${CMAKE_CXX_FLAGS} -std=c++98 -ansi")' '#'
''
# Upstream libLAS still uses cmake_minimum_required(VERSION 2.8.11).
# This is not compatible with CMake 4, because support for CMake < 3.5 has been removed.
+ ''
substituteInPlace CMakeLists.txt \
--replace-fail 'cmake_minimum_required(VERSION 2.6.0)' 'cmake_minimum_required(VERSION 3.10)'
'';
nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
buildInputs = [
boost
libgeotiff
libtiff
# libLAS is currently not compatible with LASzip 3,
# see https://github.com/libLAS/libLAS/issues/144.
laszip_2
zlib
];
cmakeFlags = [
(lib.cmakeBool "WITH_LASZIP" true)
(lib.cmakeFeature "CMAKE_EXE_LINKER_FLAGS" "-pthread")
];
postFixup = lib.optionalString stdenv.hostPlatform.isDarwin ''
install_name_tool -change "@rpath/liblas.3.dylib" "$out/lib/liblas.3.dylib" $out/lib/liblas_c.dylib
'';
meta = {
description = "LAS 1.0/1.1/1.2 ASPRS LiDAR data translation toolset";
homepage = "https://liblas.org";
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [ michelk ];
teams = with lib.teams; [ geospatial ];
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
libgcrypt,
libgpg-error,
bison,
flex,
}:
# library that allows libbluray to play AACS protected bluray disks
# libaacs does not infringe DRM's right or copyright. See the legal page of the website for more info.
# Info on how to use / obtain aacs keys:
# http://vlc-bluray.whoknowsmy.name/
# https://wiki.archlinux.org/index.php/BluRay
stdenv.mkDerivation rec {
pname = "libaacs";
version = "0.11.1";
src = fetchurl {
url = "http://get.videolan.org/libaacs/${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-qIqg6+TJinf3rv/ZKrPvZKxUjGuCLoJIqLkmclvqCjk=";
};
buildInputs = [
libgcrypt
libgpg-error
];
nativeBuildInputs = [
bison
flex
];
meta = with lib; {
homepage = "https://www.videolan.org/developers/libaacs.html";
description = "Library to access AACS protected Blu-Ray disks";
mainProgram = "aacs_info";
license = licenses.lgpl21;
maintainers = [ ];
platforms = with platforms; linux;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
version = "1.0.7";
pname = "libaal";
src = fetchurl {
url = "mirror://sourceforge/reiser4/${pname}-${version}.tar.gz";
sha256 = "sha256-fIVohp2PVCaNaQRVJ4zfW8mukiiqM3BgF8Vwu9qrmJE=";
};
preInstall = ''
substituteInPlace Makefile --replace ./run-ldconfig true
'';
enableParallelBuilding = true;
meta = {
homepage = "http://www.namesys.com/";
description = "Support library for Reiser4";
license = lib.licenses.gpl2;
maintainers = [ ];
platforms = with lib.platforms; linux;
};
}

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchurl,
autoreconfHook,
elfutils,
libxml2,
pkg-config,
strace,
python3,
}:
stdenv.mkDerivation rec {
pname = "libabigail";
version = "2.5";
outputs = [
"bin"
"out"
"dev"
];
src = fetchurl {
url = "https://mirrors.kernel.org/sourceware/${pname}/${pname}-${version}.tar.xz";
hash = "sha256-fPxOmwCuONh/sMY76rsyucv5zkEOUs7rWtWzxb6xEfM=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
strace
];
buildInputs = [
elfutils
libxml2
];
nativeCheckInputs = [
python3
];
configureFlags = [
"--enable-bash-completion=yes"
"--enable-cxx11=yes"
];
enableParallelBuilding = true;
doCheck = true;
preCheck = ''
# runtestdiffpkg needs cache directory
export XDG_CACHE_HOME="$TEMPDIR"
patchShebangs tests/
'';
meta = with lib; {
description = "ABI Generic Analysis and Instrumentation Library";
homepage = "https://sourceware.org/libabigail/";
license = with licenses; [
asl20
llvm-exception
];
maintainers = [ ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchurl,
boost,
doxygen,
gperf,
pkg-config,
librevenge,
libxml2,
perl,
zlib,
}:
stdenv.mkDerivation rec {
pname = "libabw";
version = "0.1.3";
src = fetchurl {
url = "https://dev-www.libreoffice.org/src/libabw/${pname}-${version}.tar.xz";
sha256 = "1vbfrmnvib3cym0yyyabnd8xpx4f7wp20vnn09s6dln347fajqz7";
};
# Boost 1.59 compatibility fix
# Attempt removing when updating
postPatch = ''
sed -i 's,^CPPFLAGS.*,\0 -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED,' src/lib/Makefile.in
'';
nativeBuildInputs = [
doxygen
gperf
perl
pkg-config
];
buildInputs = [
boost
librevenge
libxml2
zlib
];
meta = with lib; {
homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libabw";
description = "Library parsing abiword documents";
platforms = platforms.unix;
license = licenses.mpl20;
};
}

View File

@@ -0,0 +1,33 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "libacars";
version = "2.2.0";
src = fetchFromGitHub {
owner = "szpajder";
repo = "libacars";
tag = "v${version}";
hash = "sha256-2n1tuKti8Zn5UzQHmRdvW5Q+x4CXS9QuPHFQ+DFriiE=";
};
nativeBuildInputs = [
cmake
];
cmakeFlags = [
"-DCMAKE_INSTALL_LIBDIR=lib"
];
meta = with lib; {
homepage = "https://github.com/szpajder/libacars";
description = "Aircraft Communications Addressing and Reporting System (ACARS) message decoder";
license = licenses.mit;
platforms = platforms.unix;
maintainers = [ maintainers.mafo ];
};
}

View File

@@ -0,0 +1,89 @@
{
lib,
stdenv,
fetchFromGitLab,
gitUpdater,
meson,
mesonEmulatorHook,
ninja,
glib,
check,
python3,
vala,
gtk-doc,
glibcLocales,
libxml2,
libxslt,
pkg-config,
sqlite,
docbook_xsl,
docbook_xml_dtd_43,
gobject-introspection,
}:
stdenv.mkDerivation rec {
pname = "libaccounts-glib";
version = "1.27";
outputs = [
"out"
"dev"
"devdoc"
"py"
];
src = fetchFromGitLab {
owner = "accounts-sso";
repo = "libaccounts-glib";
rev = "VERSION_${version}";
hash = "sha256-mLhcwp8rhCGSB1K6rTWT0tuiINzgwULwXINfCbgPKEg=";
};
nativeBuildInputs = [
check
docbook_xml_dtd_43
docbook_xsl
glibcLocales
gobject-introspection
gtk-doc
meson
ninja
pkg-config
vala
]
++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
mesonEmulatorHook
];
buildInputs = [
glib
libxml2
libxslt
python3.pkgs.pygobject3
sqlite
];
# TODO: send patch upstream to make running tests optional
postPatch = lib.optionalString (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
substituteInPlace meson.build \
--replace "subdir('tests')" ""
'';
LC_ALL = "en_US.UTF-8";
mesonFlags = [
"-Dinstall-py-overrides=true"
"-Dpy-overrides-dir=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
];
passthru.updateScript = gitUpdater {
rev-prefix = "VERSION_";
};
meta = with lib; {
description = "Library for managing accounts which can be used from GLib applications";
homepage = "https://gitlab.com/accounts-sso/libaccounts-glib";
platforms = platforms.linux;
license = licenses.lgpl21;
};
}

View File

@@ -0,0 +1,55 @@
{
lib,
stdenv,
fetchurl,
autoreconfHook,
pkg-config,
pcsclite,
libusb-compat-0_1,
}:
stdenv.mkDerivation {
version = "1.7.11";
pname = "libacr38u";
src = fetchurl {
url = "http://http.debian.net/debian/pool/main/a/acr38/acr38_1.7.11.orig.tar.bz2";
sha256 = "0lxbq17y51cablx6bcd89klwnyigvkz0rsf9nps1a97ggnllyzkx";
};
doCheck = true;
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
pcsclite
libusb-compat-0_1
];
preBuild = ''
makeFlagsArray=(usbdropdir="$out/pcsc/drivers");
'';
meta = with lib; {
description = "ACR38U smartcard reader driver for pcsclite";
longDescription = ''
A PC/SC IFD handler implementation for the ACS ACR38U
smartcard readers. This driver is for the non-CCID version only.
This package is needed to communicate with the ACR38U smartcard readers through
the PC/SC Lite resource manager (pcscd).
It can be enabled in /etc/nixos/configuration.nix by adding:
services.pcscd.enable = true;
services.pcscd.plugins = [ libacr38u ];
The package is based on the debian package libacr38u.
'';
homepage = "https://www.acs.com.hk";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ berce ];
platforms = with platforms; unix;
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
libiio,
}:
stdenv.mkDerivation rec {
pname = "libad9361";
version = "0.3";
src = fetchFromGitHub {
owner = "analogdevicesinc";
repo = "libad9361-iio";
rev = "v${version}";
hash = "sha256-9e66qSrKpczatZY9lPAzi/6f7lHChnl2+Pih53oa28Y=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ libiio ];
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
# Fix iio include path on darwin to match linux
for i in test/*.c; do
substituteInPlace $i \
--replace 'iio/iio.h' 'iio.h'
done
'';
meta = with lib; {
description = "IIO AD9361 library for filter design and handling, multi-chip sync, etc";
homepage = "http://analogdevicesinc.github.io/libad9361-iio/";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ sikmir ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@@ -0,0 +1,141 @@
{
lib,
stdenv,
fetchFromGitLab,
gi-docgen,
meson,
ninja,
pkg-config,
sassc,
vala,
gobject-introspection,
appstream,
fribidi,
glib,
gtk4,
gnome,
adwaita-icon-theme,
gsettings-desktop-schemas,
desktop-file-utils,
xvfb-run,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libadwaita";
version = "1.7.6";
outputs = [
"out"
"dev"
"devdoc"
];
outputBin = "devdoc"; # demo app
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "libadwaita";
tag = finalAttrs.version;
hash = "sha256-HpjP6VSkEAFeXIFXLbndQzEWJwVvHe6B3aSwCz6KiIM=";
};
depsBuildBuild = [
pkg-config
];
nativeBuildInputs = [
gi-docgen
meson
ninja
pkg-config
sassc
vala
gobject-introspection
desktop-file-utils # for validate-desktop-file
];
mesonFlags = [
"-Ddocumentation=true"
]
++ lib.optionals (!finalAttrs.finalPackage.doCheck) [
"-Dtests=false"
];
buildInputs = [
appstream
fribidi
];
propagatedBuildInputs = [
gtk4
];
nativeCheckInputs = [
adwaita-icon-theme
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
xvfb-run
];
# Tests had to be disabled on Darwin because test-button-content fails
#
# not ok /Adwaita/ButtonContent/style_class_button - Gdk-FATAL-CRITICAL:
# gdk_macos_monitor_get_workarea: assertion 'GDK_IS_MACOS_MONITOR (self)' failed
doCheck = !stdenv.hostPlatform.isDarwin;
separateDebugInfo = true;
checkPhase = ''
runHook preCheck
testEnvironment=(
# Disable portal since we cannot run it in tests.
ADW_DISABLE_PORTAL=1
# AdwSettings needs to be initialized from org.gnome.desktop.interface GSettings schema when portal is not used for color scheme.
# It will not actually be used since the color-scheme key will only have been introduced in GNOME 42, falling back to detecting theme name.
# See adw_settings_constructed function in https://gitlab.gnome.org/GNOME/libadwaita/commit/60ec69f0a5d49cad8a6d79e4ecefd06dc6e3db12
#
# The "Validate docs" test looks for various GIR dependencies, thus preserve the existing paths.
"XDG_DATA_DIRS=$XDG_DATA_DIRS:${glib.getSchemaDataDirPath gsettings-desktop-schemas}"
# Tests need a cache directory
"HOME=$TMPDIR"
)
env "''${testEnvironment[@]}" ${lib.optionalString (!stdenv.hostPlatform.isDarwin) "xvfb-run"} \
meson test --timeout-multiplier 10 --print-errorlogs
runHook postCheck
'';
postFixup = ''
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
moveToOutput "share/doc" "$devdoc"
# Put all resources related to demo app into devdoc output.
for d in applications icons metainfo; do
moveToOutput "share/$d" "$devdoc"
done
'';
passthru = {
updateScript = gnome.updateScript {
packageName = finalAttrs.pname;
};
tests.pkg-config = testers.hasPkgConfigModules {
package = finalAttrs.finalPackage;
};
};
meta = with lib; {
changelog = "https://gitlab.gnome.org/GNOME/libadwaita/-/blob/${finalAttrs.src.tag}/NEWS";
description = "Library to help with developing UI for mobile devices using GTK/GNOME";
mainProgram = "adwaita-1-demo";
homepage = "https://gitlab.gnome.org/GNOME/libadwaita";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ dotlambda ];
teams = [ teams.gnome ];
platforms = platforms.unix;
pkgConfigModules = [ "libadwaita-1" ];
};
})

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchFromGitLab,
cmake,
}:
stdenv.mkDerivation rec {
pname = "libaec";
version = "1.1.4";
src = fetchFromGitLab {
domain = "gitlab.dkrz.de";
owner = "k202009";
repo = "libaec";
rev = "v${version}";
sha256 = "sha256-MJFx0gErfrSK6EeeGDk8CQWj6j4PVvFPJEI/iys3bI8=";
};
nativeBuildInputs = [
cmake
];
doCheck = true;
meta = with lib; {
homepage = "https://gitlab.dkrz.de/k202009/libaec";
description = "Adaptive Entropy Coding library";
license = licenses.bsd2;
maintainers = with maintainers; [ tbenst ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
version = "0.3.113";
pname = "libaio";
src = fetchurl {
url = "https://pagure.io/libaio/archive/${pname}-${version}/${pname}-${pname}-${version}.tar.gz";
sha256 = "sha256-cWxwWXAyRzROsGa1TsvDyiE08BAzBxkubCt9q1+VKKs=";
};
postPatch = ''
patchShebangs harness
# Makefile is too optimistic, gcc is too smart
substituteInPlace harness/Makefile \
--replace "-Werror" ""
'';
makeFlags = [
"prefix=${placeholder "out"}"
]
++ lib.optional stdenv.hostPlatform.isStatic "ENABLE_SHARED=0";
hardeningDisable = lib.optional (stdenv.hostPlatform.isi686) "stackprotector";
checkTarget = "partcheck"; # "check" needs root
meta = {
description = "Library for asynchronous I/O in Linux";
homepage = "https://lse.sourceforge.net/io/aio.html";
platforms = lib.platforms.linux;
license = lib.licenses.lgpl21;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,23 @@
From f822ffa9f886b668fe0a6269f0ba8bf48043d190 Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Sun, 22 Jun 2025 14:12:08 +0100
Subject: [PATCH 4/4] Don't attempt to install a non-existent Makefile
---
demos/ntv2overlay/CMakeLists.txt | 3 ---
1 file changed, 3 deletions(-)
diff --git a/demos/ntv2overlay/CMakeLists.txt b/demos/ntv2overlay/CMakeLists.txt
index 4520e795..ae94906f 100644
--- a/demos/ntv2overlay/CMakeLists.txt
+++ b/demos/ntv2overlay/CMakeLists.txt
@@ -48,6 +48,3 @@ endif()
if (AJA_INSTALL_CMAKE)
install(FILES CMakeLists.txt DESTINATION ${CMAKE_INSTALL_PREFIX}/libajantv2/demos/ntv2overlay)
endif()
-if (AJA_INSTALL_MISC)
- install(FILES Makefile DESTINATION ${CMAKE_INSTALL_PREFIX}/libajantv2/demos/ntv2overlay)
-endif()
--
2.49.0

View File

@@ -0,0 +1,26 @@
From 5d6984729190139ddcbefb825e4d59a8bdfc3551 Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Sun, 22 Jun 2025 14:05:49 +0100
Subject: [PATCH 2/3] Properly mark CNTV2DeviceScanner::GetDeviceInfoList as a
class member method
---
ajantv2/src/ntv2devicescanner.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ajantv2/src/ntv2devicescanner.cpp b/ajantv2/src/ntv2devicescanner.cpp
index 11d145be..1fb0b433 100644
--- a/ajantv2/src/ntv2devicescanner.cpp
+++ b/ajantv2/src/ntv2devicescanner.cpp
@@ -117,7 +117,7 @@ CNTV2DeviceScanner::CNTV2DeviceScanner (const bool inScanNow)
}
#endif // !defined(NTV2_DEPRECATE_16_3)
-NTV2DeviceInfoList GetDeviceInfoList (void)
+NTV2DeviceInfoList CNTV2DeviceScanner::GetDeviceInfoList (void)
{
AJAAutoLock tmpLock(&sDevInfoListLock);
return sDevInfoList;
--
2.49.0

View File

@@ -0,0 +1,32 @@
From 8312398dbc1f0a960c0e64c2faaa756277c0f67c Mon Sep 17 00:00:00 2001
From: Alyssa Ross <hi@alyssa.is>
Date: Fri, 3 Jan 2025 12:21:28 +0100
Subject: [PATCH 3/3] Don't use non-standard ACCESSPERMS macro
This macro is non-standard, and is not defined by e.g. musl libc.
It's just a define for 0777, so just use that instead.
Link: https://github.com/aja-video/libajantv2/pull/42
---
ajabase/test/main.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ajabase/test/main.cpp b/ajabase/test/main.cpp
index 78196446..e18b10a3 100644
--- a/ajabase/test/main.cpp
+++ b/ajabase/test/main.cpp
@@ -1951,9 +1951,9 @@ TEST_SUITE("file" * doctest::description("functions in ajabase/system/file_io.h"
_mkdir(tempDir.c_str());
_getcwd(cwdBuf, AJA_MAX_PATH);
#else
- if (mkdir(tempDir.c_str(), ACCESSPERMS) == 0)
+ if (mkdir(tempDir.c_str(), 0777) == 0)
{
- chmod(tempDir.c_str(), ACCESSPERMS);
+ chmod(tempDir.c_str(), 0777);
}
char* result = getcwd(cwdBuf, AJA_MAX_PATH);
AJA_UNUSED(result);
--
2.49.0

View File

@@ -0,0 +1,75 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
ninja,
pkg-config,
mbedtls,
udev,
linuxPackages,
}:
stdenv.mkDerivation rec {
pname = "libajantv2";
version = "17.5.0";
src = fetchFromGitHub {
owner = "aja-video";
repo = "libajantv2";
rev = "ntv2_${builtins.replaceStrings [ "." ] [ "_" ] version}";
hash = "sha256-/BfFbBScS75TpUZEeYzAHd1PtnZgnCNfGtjwYPJJjkg=";
};
patches = [
./use-system-mbedtls.patch
./device-info-list.patch
./musl.patch
./demos-ntv2overlay-no-makefile.patch
];
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
cmake
ninja
pkg-config
];
buildInputs = [
mbedtls
udev
];
cmakeFlags = [
(lib.cmakeBool "AJANTV2_BUILD_SHARED" true)
];
postInstall = ''
mkdir -p "$out/lib/pkgconfig"
cat >"$out/lib/pkgconfig/libajantv2.pc" <<EOF
prefix=$out
libdir=\''${prefix}/lib
includedir=\''${prefix}/include/libajantv2
Name: libajantv2
Description: Library for controlling AJA NTV2 video devices
Version: ${version}
Libs: -L\''${libdir} -lajantv2
Cflags: -I\''${includedir} -I\''${includedir}/ajantv2/includes -I\''${includedir}/ajantv2/src/lin -DAJALinux -DAJA_LINUX -DAJA_USE_CPLUSPLUS11 -DNDEBUG -DNTV2_USE_CPLUSPLUS11
EOF
'';
passthru.tests = {
inherit (linuxPackages) ajantv2;
};
meta = with lib; {
description = "AJA NTV2 Open Source Static Libs and Headers for building applications that only wish to statically link against";
homepage = "https://github.com/aja-video/libajantv2";
license = with licenses; [ mit ];
maintainers = [ lib.maintainers.lukegb ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,92 @@
From 6c8dca24e48b0bbeb11e9611fe547246167030ab Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Fri, 20 Dec 2024 18:03:16 +0000
Subject: [PATCH 1/3] Use system mbedtls, rather than downloading from a random
Git branch...
---
ajantv2/CMakeLists.txt | 50 +++---------------------------------------
1 file changed, 3 insertions(+), 47 deletions(-)
diff --git a/ajantv2/CMakeLists.txt b/ajantv2/CMakeLists.txt
index 8037dd4b..aa6e6577 100644
--- a/ajantv2/CMakeLists.txt
+++ b/ajantv2/CMakeLists.txt
@@ -55,49 +55,13 @@ else()
endif()
message(STATUS "NTV2 SDK will load signed 3rd-party plugins")
- set(MBEDTLS_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/mbedtls-install)
- set(MBEDTLS_INCLUDE_DIR ${MBEDTLS_INSTALL_DIR}/include)
- set(MBEDTLS_LIBRARY_DIR ${MBEDTLS_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR})
-
- if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
- set(MBEDTLS_LIBRARY ${MBEDTLS_LIBRARY_DIR}/mbedtls.lib)
- set(MBEDX509_LIBRARY ${MBEDTLS_LIBRARY_DIR}/mbedx509.lib)
- set(MBEDCRYPTO_LIBRARY ${MBEDTLS_LIBRARY_DIR}/mbedcrypto.lib)
- set(MBEDTLS_EXTRA_CONFIG_FLAGS
- "-DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON"
- "-DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY}")
- elseif (CMAKE_SYSTEM_NAME MATCHES "^(Linux|Darwin)$")
- set(MBEDTLS_LIBRARY ${MBEDTLS_LIBRARY_DIR}/libmbedtls.a)
- set(MBEDX509_LIBRARY ${MBEDTLS_LIBRARY_DIR}/libmbedx509.a)
- set(MBEDCRYPTO_LIBRARY ${MBEDTLS_LIBRARY_DIR}/libmbedcrypto.a)
- set(MBEDTLS_C_FLAGS -fPIC)
- endif()
-
- # BUILD_BYPRODUCTS informing CMake where the .a files are located is required to make Ninja build work
- ExternalProject_Add(
- mbedtls
- GIT_REPOSITORY ${AJANTV2_MBEDTLS_URL}
- GIT_TAG fix-win-dll-cmake
- CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${MBEDTLS_INSTALL_DIR}
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
- -DENABLE_TESTING=OFF
- -DENABLE_PROGRAMS=OFF
- -DCMAKE_C_FLAGS=${MBEDTLS_C_FLAGS}
- -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}
- -DUSE_STATIC_MBEDTLS_LIBRARY=ON
- -DUSE_SHARED_MBEDTLS_LIBRARY=OFF
- ${MBEDTLS_EXTRA_CONFIG_FLAGS}
- CMAKE_CACHE_ARGS "-DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES}"
- BUILD_ALWAYS TRUE
- BUILD_BYPRODUCTS ${MBEDTLS_LIBRARY} ${MBEDX509_LIBRARY} ${MBEDCRYPTO_LIBRARY}
- )
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(MBEDTLS REQUIRED mbedtls mbedcrypto mbedx509)
list(APPEND TARGET_INCLUDE_DIRS
${MBEDTLS_INCLUDE_DIR})
list(APPEND MBEDTLS_LINK_LIBS
- ${MBEDTLS_LIBRARY}
- ${MBEDCRYPTO_LIBRARY}
- ${MBEDX509_LIBRARY})
+ ${MBEDTLS_LIBRARIES})
endif()
@@ -671,10 +635,6 @@ if (NOT TARGET ${PROJECT_NAME})
aja_ntv2_log_build_info()
add_library(${PROJECT_NAME} SHARED ${TARGET_SOURCES})
-
- if (NOT AJANTV2_DISABLE_PLUGIN_LOAD)
- add_dependencies(${PROJECT_NAME} mbedtls)
- endif()
target_compile_definitions(${PROJECT_NAME} PUBLIC
${TARGET_COMPILE_DEFS_DYNAMIC}
@@ -690,10 +650,6 @@ if (NOT TARGET ${PROJECT_NAME})
add_library(${PROJECT_NAME} STATIC ${TARGET_SOURCES})
- if (NOT AJANTV2_DISABLE_PLUGIN_LOAD)
- add_dependencies(${PROJECT_NAME} mbedtls)
- endif()
-
target_compile_definitions(${PROJECT_NAME} PUBLIC
${TARGET_COMPILE_DEFS_STATIC}
${AJANTV2_TARGET_COMPILE_DEFS})
--
2.49.0

View File

@@ -0,0 +1,39 @@
Authors: Andrei Rozanski and Grace Dinh
Last-Update: 2022-08-23
Description: fix makefile.u in order to get libamplsover.so (Linux) or libamplsolver.dylib (Mac)
--- a/makefile.u
+++ b/makefile.u
@@ -26,8 +26,9 @@
.SUFFIXES: .c .o
CC = cc
-CFLAGS = -O
+CFLAGS := $(CFLAGS) -pipe -DASL_BUILD -fPIC -DPIC
SHELL=/bin/sh
+OFILES=$(addsuffix .o,$(basename $(a)))
# Add -DNO_RUSAGE to the CFLAGS assignment if your system
# lacks getrusage(). This only matters for compiling xectim.c.
@@ -86,7 +87,7 @@
.c.o:
$(CC) -c $(CFLAGS) $*.c
-all: arith.h stdio1.h amplsolver.a funcadd0.o
+all: arith.h stdio1.h amplsolver.a funcadd0.o libamplsolver@sharedlibext@
a = \
asldate.c \
@@ -189,6 +190,11 @@
# search path, e.g.
# exec true
# or just comment out the ranlib invocation above.
+libamplsolver.so: $(OFILES)
+ $(CC) $^ -shared -Wl,-soname,libamplsolver.so.0 $(LDFLAGS) -o $@.0
+ ln -s $@.0 $@
+libamplsolver.dylib: amplsolver.a
+ $(CC) -fpic -shared -Wl,-all_load amplsolver.a $(LDFLAGS) -o libamplsolver.dylib
Aslh = arith.h asl.h funcadd.h stdio1.h
auxinfo.o libnamsave.o: funcadd.h stdio1.h

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
substitute,
fetchurl,
}:
stdenv.mkDerivation {
pname = "libamplsolver";
version = "20211109";
src = fetchurl {
url = "https://ampl.com/netlib/ampl/solvers.tgz";
sha256 = "sha256-LVmScuIvxmZzywPSBl9T9YcUBJP7UFAa3eWs9r4q3JM=";
};
patches = [
(substitute {
src = ./libamplsolver-sharedlib.patch;
substitutions = [
"--replace"
"@sharedlibext@"
"${stdenv.hostPlatform.extensions.sharedLibrary}"
];
})
];
installPhase = ''
runHook preInstall
pushd sys.$(uname -m).$(uname -s)
install -D -m 0644 *.h -t $out/include
install -D -m 0644 *${stdenv.hostPlatform.extensions.sharedLibrary}* -t $out/lib
install -D -m 0644 *.a -t $out/lib
popd
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
install_name_tool -id $out/lib/libamplsolver.dylib $out/lib/libamplsolver.dylib
''
+ ''
runHook postInstall
'';
meta = with lib; {
description = "Library of routines that help solvers work with AMPL";
homepage = "https://ampl.com/netlib/ampl/";
license = [ licenses.mit ];
platforms = platforms.unix;
maintainers = with maintainers; [ aanderse ];
# generates header at compile time
broken = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
};
}

View File

@@ -0,0 +1,13 @@
--- a/src/Makefile
+++ b/src/Makefile
@@ -0,0 +1 @@
+CXX ?= g++
@@ -43 +44 @@ ${SHARED_LIB}: ${SHARED_OBJECTS}
- ${LD} ${LD_FLAGS} -Wl,${SONAMEPARAMETER},lib$(LIBRARY_NAME).so.$(SONAME) -o $@ ${SHARED_OBJECTS}
+ ${CXX} ${LD_FLAGS} -Wl,${SONAMEPARAMETER},lib$(LIBRARY_NAME).so.$(SONAME) -o $@ ${SHARED_OBJECTS}
@@ -52 +53 @@ ${SHARED_OBJECTS}:
- ${CPP} ${CPPFLAGS} -fpic -o $@ ${@:%.o=%.cpp}
+ ${CXX} ${CPPFLAGS} -fpic -o $@ ${@:%.o=%.cpp}
@@ -55 +56 @@ ${STATIC_OBJECTS}:
- ${CPP} ${CPPFLAGS} -o $@ ${@:%.s.o=%.cpp}
+ ${CXX} ${CPPFLAGS} -o $@ ${@:%.s.o=%.cpp}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
openssl,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libamqpcpp";
version = "4.3.27";
src = fetchFromGitHub {
owner = "CopernicaMarketingSoftware";
repo = "AMQP-CPP";
rev = "v${finalAttrs.version}";
sha256 = "sha256-iaOXdDIJOBXHyjE07CvU4ApTh71lmtMCyU46AV+MGXQ=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ openssl ];
patches = [ ./libamqpcpp-darwin.patch ];
enableParallelBuilding = true;
doCheck = true;
meta = {
description = "Library for communicating with a RabbitMQ server";
homepage = "https://github.com/CopernicaMarketingSoftware/AMQP-CPP";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ mjp ];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
gd,
}:
stdenv.mkDerivation rec {
pname = "libansilove";
version = "1.4.2";
src = fetchFromGitHub {
owner = "ansilove";
repo = "libansilove";
tag = version;
hash = "sha256-kbQ7tbQbJ8zYhdbfiVZY26woyR4NNzqjCJ/5nrunlWs=";
};
nativeBuildInputs = [
cmake
];
buildInputs = [ gd ];
meta = {
description = "Library for converting ANSI, ASCII, and other formats to PNG";
homepage = "https://github.com/ansilove/libansilove";
changelog = "https://github.com/ansilove/libansilove/blob/${src.rev}/ChangeLog";
license = lib.licenses.bsd2;
maintainers = with lib.maintainers; [ jethair ];
mainProgram = "libansilove";
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "libantlr3c";
version = "3.4";
src = fetchurl {
url = "https://www.antlr3.org/download/C/libantlr3c-${version}.tar.gz";
sha256 = "0lpbnb4dq4azmsvlhp6khq1gy42kyqyjv8gww74g5lm2y6blm4fa";
};
configureFlags =
lib.optional stdenv.hostPlatform.is64bit "--enable-64bit"
# libantlr3c wrongly emits the abi flags -m64 and -m32 which imply x86 archs
# https://github.com/antlr/antlr3/issues/205
++ lib.optional (!stdenv.hostPlatform.isx86) "--disable-abiflags";
meta = with lib; {
description = "C runtime libraries of ANTLR v3";
homepage = "https://www.antlr3.org/";
license = licenses.bsd3;
platforms = platforms.unix;
maintainers = with maintainers; [ vbgl ];
};
}

View File

@@ -0,0 +1,69 @@
diff --git a/build/cmake/aom_install.cmake b/build/cmake/aom_install.cmake
index 0bd2bf035..5cf5acea8 100644
--- a/build/cmake/aom_install.cmake
+++ b/build/cmake/aom_install.cmake
@@ -42,8 +42,8 @@ macro(setup_aom_install_targets)
-DAOM_ROOT=${AOM_ROOT}
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}
-DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR}
- -DCMAKE_INSTALL_INCLUDEDIR=${CMAKE_INSTALL_INCLUDEDIR}
- -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}
+ -DCMAKE_INSTALL_FULL_INCLUDEDIR=${CMAKE_INSTALL_FULL_INCLUDEDIR}
+ -DCMAKE_INSTALL_FULL_LIBDIR=${CMAKE_INSTALL_FULL_LIBDIR}
-DCMAKE_PROJECT_NAME=${CMAKE_PROJECT_NAME}
-DCONFIG_MULTITHREAD=${CONFIG_MULTITHREAD}
-DCONFIG_TUNE_VMAF=${CONFIG_TUNE_VMAF}
@@ -84,12 +84,12 @@ macro(setup_aom_install_targets)
# Setup the install rules. install() will automatically prepend
# CMAKE_INSTALL_PREFIX to relative paths
install(FILES ${AOM_INSTALL_INCS}
- DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/aom")
+ DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}/aom")
install(FILES "${AOM_PKG_CONFIG_FILE}"
- DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
+ DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig")
install(TARGETS ${AOM_INSTALL_LIBS};${AOM_INSTALL_BINS}
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}"
+ LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}")
endif()
endmacro()
diff --git a/build/cmake/pkg_config.cmake b/build/cmake/pkg_config.cmake
index e8fff2e77..b8a73aad4 100644
--- a/build/cmake/pkg_config.cmake
+++ b/build/cmake/pkg_config.cmake
@@ -11,8 +11,8 @@
cmake_minimum_required(VERSION 3.5)
set(REQUIRED_ARGS "AOM_ROOT" "AOM_CONFIG_DIR" "CMAKE_INSTALL_PREFIX"
- "CMAKE_INSTALL_BINDIR" "CMAKE_INSTALL_INCLUDEDIR"
- "CMAKE_INSTALL_LIBDIR" "CMAKE_PROJECT_NAME"
+ "CMAKE_INSTALL_BINDIR" "CMAKE_INSTALL_FULL_INCLUDEDIR"
+ "CMAKE_INSTALL_FULL_LIBDIR" "CMAKE_PROJECT_NAME"
"CONFIG_MULTITHREAD")
foreach(arg ${REQUIRED_ARGS})
@@ -35,15 +35,15 @@ else()
endif()
# Write pkg-config info.
-set(prefix "${CMAKE_INSTALL_PREFIX}")
-set(bindir "${CMAKE_INSTALL_BINDIR}")
-set(includedir "${CMAKE_INSTALL_INCLUDEDIR}")
-set(libdir "${CMAKE_INSTALL_LIBDIR}")
+get_filename_component(prefix "${CMAKE_INSTALL_FULL_INCLUDEDIR}" DIRECTORY)
+get_filename_component(exec_prefix "${CMAKE_INSTALL_FULL_LIBDIR}" DIRECTORY)
+get_filename_component(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}" NAME)
+get_filename_component(libdir "${CMAKE_INSTALL_FULL_LIBDIR}" NAME)
set(pkgconfig_file "${AOM_CONFIG_DIR}/aom.pc")
string(TOLOWER ${CMAKE_PROJECT_NAME} pkg_name)
file(WRITE "${pkgconfig_file}" "# libaom pkg-config.\n")
file(APPEND "${pkgconfig_file}" "prefix=${prefix}\n")
-file(APPEND "${pkgconfig_file}" "exec_prefix=\${prefix}\n")
+file(APPEND "${pkgconfig_file}" "exec_prefix=${exec_prefix}\n")
file(APPEND "${pkgconfig_file}" "includedir=\${prefix}/${includedir}\n")
file(APPEND "${pkgconfig_file}" "libdir=\${exec_prefix}/${libdir}\n\n")
file(APPEND "${pkgconfig_file}" "Name: ${pkg_name}\n")

View File

@@ -0,0 +1,135 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
yasm,
perl,
cmake,
pkg-config,
python3,
enableVmaf ? true,
libvmaf,
gitUpdater,
# for passthru.tests
ffmpeg,
libavif,
libheif,
}:
let
isCross = stdenv.buildPlatform != stdenv.hostPlatform;
in
stdenv.mkDerivation rec {
pname = "libaom";
version = "3.12.1";
src = fetchzip {
url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz";
hash = "sha256-AAS6wfq4rZ4frm6+gwKoIS3+NVzPhhfW428WXJQ2tQ8=";
stripRoot = false;
};
patches = [
./outputs.patch
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
# This patch defines `_POSIX_C_SOURCE`, which breaks system headers
# on Darwin.
(fetchurl {
name = "musl.patch";
url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libaom/files/libaom-3.4.0-posix-c-source-ftello.patch?id=50c7c4021e347ee549164595280cf8a23c960959";
hash = "sha256-6+u7GTxZcSNJgN7D+s+XAVwbMnULufkTcQ0s7l+Ydl0=";
})
];
nativeBuildInputs = [
yasm
perl
cmake
pkg-config
python3
];
propagatedBuildInputs = lib.optional enableVmaf libvmaf;
env = lib.optionalAttrs stdenv.hostPlatform.isFreeBSD {
# This can be removed when we switch to libcxx from llvm 20
# https://github.com/llvm/llvm-project/pull/122361
NIX_CFLAGS_COMPILE = "-D_XOPEN_SOURCE=700";
};
preConfigure = ''
# build uses `git describe` to set the build version
cat > $NIX_BUILD_TOP/git << "EOF"
#!${stdenv.shell}
echo v${version}
EOF
chmod +x $NIX_BUILD_TOP/git
export PATH=$NIX_BUILD_TOP:$PATH
'';
# Configuration options:
# https://aomedia.googlesource.com/aom/+/refs/heads/master/build/cmake/aom_config_defaults.cmake
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
"-DENABLE_TESTS=OFF"
]
++ lib.optionals enableVmaf [
"-DCONFIG_TUNE_VMAF=1"
]
++ lib.optionals (isCross && !stdenv.hostPlatform.isx86) [
"-DCMAKE_ASM_COMPILER=${lib.getBin stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
]
++ lib.optionals stdenv.hostPlatform.isAarch32 [
# armv7l-hf-multiplatform does not support NEON
# see lib/systems/platform.nix
"-DENABLE_NEON=0"
];
postFixup = ''
moveToOutput lib/libaom.a "$static"
''
+ lib.optionalString stdenv.hostPlatform.isStatic ''
ln -s $static $out
'';
outputs = [
"out"
"bin"
"dev"
"static"
];
passthru = {
updateScript = gitUpdater {
url = "https://aomedia.googlesource.com/aom";
rev-prefix = "v";
ignoredVersions = "(alpha|beta|rc).*";
};
tests = {
inherit libavif libheif;
ffmpeg = ffmpeg.override { withAom = true; };
};
};
meta = {
description = "Alliance for Open Media AV1 codec library";
longDescription = ''
Libaom is the reference implementation of the AV1 codec from the Alliance
for Open Media. It contains an AV1 library as well as applications like
an encoder (aomenc) and a decoder (aomdec).
'';
homepage = "https://aomedia.org/av1-features/get-started/";
changelog = "https://aomedia.googlesource.com/aom/+/refs/tags/v${version}/CHANGELOG";
maintainers = with lib.maintainers; [
kiloreux
dandellion
];
platforms = lib.platforms.all;
outputsToInstall = [ "bin" ];
license = lib.licenses.bsd2;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
pkg-config,
cairo,
pango,
libX11,
libXcomposite,
autoconf,
automake,
}:
stdenv.mkDerivation rec {
version = "0.2.7-9-g177589f";
pname = "libaosd";
src = fetchFromGitHub {
owner = "atheme-legacy";
repo = "libaosd";
rev = version;
sha256 = "1cn7k0n74p6jp25kxwcyblhmbdvgw3mikvj0m2jh4c6xccfrgb9a";
};
nativeBuildInputs = [
autoconf
automake
pkg-config
];
buildInputs = [
cairo
pango
libX11
libXcomposite
];
enableParallelBuilding = true;
preConfigure = ''
./autogen.sh
'';
meta = with lib; {
longDescription = ''
libaosd is an advanced on screen display library.
It supports many modern features like anti-aliased text and
composited rendering via XComposite, as well as support for
rendering Cairo and Pango layouts.
'';
broken = stdenv.hostPlatform.isDarwin;
homepage = "https://github.com/atheme-legacy/libaosd";
license = licenses.mit;
maintainers = with maintainers; [ unode ];
platforms = with platforms; unix;
};
}

View File

@@ -0,0 +1,35 @@
{
runCommand,
closureInfo,
lib,
}:
{
# The store path of the derivation is given in $path
additionalRules ? [ ],
# TODO: factorize here some other common paths
# that may emerge from use cases.
baseRules ? [
"r $path"
"r $path/etc/**"
"mr $path/share/**"
# Note that not all libraries are prefixed with "lib",
# eg. glibc-2.30/lib/ld-2.30.so
"mr $path/lib/**.so*"
"mr $path/lib64/**.so*"
# eg. glibc-2.30/lib/gconv/gconv-modules
"r $path/lib/**"
"r $path/lib64/**"
# Internal executables
"ixr $path/libexec/**"
],
name ? "",
}:
rootPaths:
runCommand ("apparmor-closure-rules" + lib.optionalString (name != "") "-${name}") { } ''
touch $out
while read -r path
do printf >>$out "%s,\n" ${
lib.concatMapStringsSep " " (x: "\"${x}\"") (baseRules ++ additionalRules)
}
done <${closureInfo { inherit rootPaths; }}/store-paths
''

View File

@@ -0,0 +1,111 @@
{
stdenv,
lib,
fetchFromGitLab,
autoreconfHook,
autoconf-archive,
pkg-config,
which,
flex,
bison,
withPerl ?
stdenv.hostPlatform == stdenv.buildPlatform && lib.meta.availableOn stdenv.hostPlatform perl,
perl,
withPython ?
# static can't load python libraries
!stdenv.hostPlatform.isStatic
&& lib.meta.availableOn stdenv.hostPlatform python3Packages.python
# m4 python include script fails if cpu bit depth is different across machines
&& stdenv.hostPlatform.parsed.cpu.bits == stdenv.buildPlatform.parsed.cpu.bits,
python3Packages,
swig,
ncurses,
libxcrypt,
# test
dejagnu,
# passthru
nix-update-script,
nixosTests,
callPackage,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libapparmor";
version = "4.1.2";
src = fetchFromGitLab {
owner = "apparmor";
repo = "apparmor";
tag = "v${finalAttrs.version}";
hash = "sha256-CwWNfH2Ykv4e+8ONytdM7J+aItAMVrq0yYrYzRXAe1w=";
};
sourceRoot = "${finalAttrs.src.name}/libraries/libapparmor";
postPatch = ''
substituteInPlace swig/perl/Makefile.am \
--replace-fail install_vendor install_site
'';
strictDeps = true;
nativeBuildInputs = [
autoconf-archive
autoreconfHook
bison
flex
pkg-config
swig
ncurses
which
dejagnu
perl # podchecker
]
++ lib.optionals withPython [
python3Packages.setuptools
];
nativeCheckInputs = [
python3Packages.pythonImportsCheckHook
];
buildInputs = [
libxcrypt
]
++ (lib.optional withPerl perl)
++ (lib.optional withPython python3Packages.python);
# required to build apparmor-parser
dontDisableStatic = true;
# https://gitlab.com/apparmor/apparmor/issues/1
configureFlags = [
(lib.withFeature withPerl "perl")
(lib.withFeature withPython "python")
];
doCheck = withPerl && withPython;
checkInputs = [ dejagnu ];
pythonImportsCheck = [
"LibAppArmor"
];
passthru = {
updateScript = nix-update-script { };
tests.nixos = nixosTests.apparmor;
apparmorRulesFromClosure = callPackage ./apparmorRulesFromClosure.nix { };
};
meta = {
homepage = "https://apparmor.net/";
description = "Mandatory access control system - core library";
license = with lib.licenses; [
gpl2Only
lgpl21Only
];
maintainers = lib.teams.apparmor.members;
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,106 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
autoconf,
automake,
libtool,
pkg-config,
boost,
cairo,
fuse,
glib,
libarchive,
librsvg,
squashfuse,
xdg-utils-cxx,
xz, # for liblzma
zlib,
}:
stdenv.mkDerivation rec {
pname = "libappimage";
version = "1.0.4-5";
src = fetchFromGitHub {
owner = "AppImageCommunity";
repo = "libappimage";
rev = "v${version}";
hash = "sha256-V9Ilo0zFo9Urke+jCA4CSQB5tpzLC/S5jmon+bA+TEU=";
};
patches = [
# Fix build with GCC 13
# FIXME: remove in next release
(fetchpatch {
url = "https://github.com/AppImageCommunity/libappimage/commit/1e0515b23b90588ce406669134feca56ddcbbe43.patch";
hash = "sha256-WIMvXNqC1stgPiBTRpXHWq3edIRnQomtRSW2qO52TRo=";
})
# we really just want this for cmake 4 compatibility
(fetchpatch {
name = "libappimage-use-system-gtest.patch";
url = "https://github.com/AppImageCommunity/libappimage/commit/7b83b7247fd2d86c330e09f534c9cec1b03f649f.patch";
excludes = [
"ci/*"
"lib/gtest"
"tests/*"
];
hash = "sha256-H+ph5TfKJPFcAzw2c7pzmqvB9R50HtZP/DbroOxLTVU=";
})
(fetchpatch {
name = "libappimage-fix-cmake-4.patch";
url = "https://github.com/AppImageCommunity/libappimage/commit/e5f6ea562611d534dc8e899a12ddf15c50e820be.patch";
hash = "sha256-P6fPoiqVX3TrKGrU2EXIMBpQLGl7xNcy41Iq7vRM+n8=";
})
];
postPatch = ''
substituteInPlace cmake/libappimage.pc.in \
--replace 'libdir=''${prefix}/@CMAKE_INSTALL_LIBDIR@' 'libdir=@CMAKE_INSTALL_FULL_LIBDIR@' \
--replace 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' 'includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@'
'';
cmakeFlags = [
"-DUSE_SYSTEM_BOOST=1"
"-DUSE_SYSTEM_LIBARCHIVE=1"
"-DUSE_SYSTEM_SQUASHFUSE=1"
"-DUSE_SYSTEM_XDGUTILS=1"
"-DUSE_SYSTEM_XZ=1"
];
nativeBuildInputs = [
cmake
autoconf
automake
libtool
pkg-config
];
buildInputs = [
boost
fuse
libarchive
squashfuse
xdg-utils-cxx
xz
];
propagatedBuildInputs = [
cairo
glib
librsvg
zlib
];
strictDeps = true;
meta = with lib; {
description = "Implements functionality for dealing with AppImage files";
homepage = "https://github.com/AppImageCommunity/libappimage/";
license = licenses.mit;
maintainers = with maintainers; [ k900 ];
platforms = platforms.linux;
};
}

View File

@@ -0,0 +1,126 @@
{
stdenv,
fetchgit,
lib,
pkg-config,
autoreconfHook,
glib,
dbus-glib,
gtkVersion ? "3",
gtk2,
libindicator-gtk2,
libdbusmenu-gtk2,
gtk3,
libindicator-gtk3,
libdbusmenu-gtk3,
gtk-doc,
vala,
gobject-introspection,
monoSupport ? false,
mono,
gtk-sharp-2_0,
gtk-sharp-3_0,
testers,
}:
let
throwBadGtkVersion = throw "unknown GTK version ${gtkVersion}";
in
stdenv.mkDerivation (finalAttrs: {
pname =
let
postfix = if monoSupport then "sharp" else "gtk${gtkVersion}";
in
"libappindicator-${postfix}";
version = "12.10.1+20.10.20200706.1";
outputs = [
"out"
"dev"
];
src = fetchgit {
url = "https://git.launchpad.net/ubuntu/+source/libappindicator";
rev = "fe25e53bc7e39cd59ad6b3270cd7a6a9c78c4f44";
sha256 = "0xjvbl4gn7ra2fs6gn2g9s787kzb5cg9hv79iqsz949rxh4iw32d";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
vala
gobject-introspection
gtk-doc
];
propagatedBuildInputs =
{
"2" = [
gtk2
libdbusmenu-gtk2
];
"3" = [
gtk3
libdbusmenu-gtk3
];
}
.${gtkVersion} or throwBadGtkVersion;
buildInputs = [
glib
dbus-glib
{
"2" = libindicator-gtk2;
"3" = libindicator-gtk3;
}
.${gtkVersion} or throwBadGtkVersion
]
++ lib.optionals monoSupport [
mono
{
"2" = gtk-sharp-2_0;
"3" = gtk-sharp-3_0;
}
.${gtkVersion} or throwBadGtkVersion
];
preAutoreconf = ''
gtkdocize
'';
configureFlags = [
"CFLAGS=-Wno-error"
"--sysconfdir=/etc"
"--localstatedir=/var"
"--with-gtk=${gtkVersion}"
];
doCheck = false; # generates shebangs in check phase, too lazy to fix
installFlags = [
"sysconfdir=${placeholder "out"}/etc"
"localstatedir=\${TMPDIR}"
];
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; {
description = "Library to allow applications to export a menu into the Unity Menu bar";
homepage = "https://launchpad.net/libappindicator";
license = with licenses; [
lgpl21
lgpl3
];
pkgConfigModules =
{
"2" = [ "appindicator-0.1" ];
"3" = [ "appindicator3-0.1" ];
}
.${gtkVersion} or throwBadGtkVersion;
platforms = platforms.linux;
maintainers = [ maintainers.msteen ];
# TODO: Resolve the issues with the Mono bindings.
broken = monoSupport;
};
})

View File

@@ -0,0 +1,57 @@
{
lib,
stdenv,
fetchFromGitLab,
pkg-config,
autoreconfHook,
util-macros,
xorgproto,
libX11,
libXext,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libapplewm";
version = "1.4.1-unstable-2021-01-04";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "xorg/lib";
repo = "libapplewm";
rev = "be972ebc3a97292e7d2b2350eff55ae12df99a42";
hash = "sha256-NH9YeOEtnEupqpnsMLC21I+LmCOzT7KnfdzNNWqba/Y=";
};
strictDeps = true;
nativeBuildInputs = [
pkg-config
autoreconfHook
util-macros
];
buildInputs = [
xorgproto
libX11
libXext
];
passthru = {
# updateScript = # no updatescript since we don't use a tagged release (last one was 14 years ago)
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
description = "Xlib-based library for the Apple-WM extension";
longDescription = ''
AppleWM is a simple library designed to interface with the Apple-WM extension.
This extension allows X window managers to better interact with the Mac OS X Aqua user
interface when running X11 in a rootless mode.
'';
homepage = "https://gitlab.freedesktop.org/xorg/lib/libapplewm";
license = lib.licenses.mit;
maintainers = [ ];
pkgConfigModules = [ "applewm" ];
platforms = lib.platforms.darwin;
};
})

View File

@@ -0,0 +1,51 @@
{
lib,
stdenv,
fetchFromGitLab,
libarchive,
xz,
zlib,
bzip2,
meson,
pkg-config,
ninja,
qt6,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libarchive-qt";
version = "2.0.8";
src = fetchFromGitLab {
owner = "marcusbritanicus";
repo = "libarchive-qt";
tag = "v${finalAttrs.version}";
hash = "sha256-31a6DsxObSJWyLfT6mVtyjloT26IwFHpH53iuyC2mco=";
};
nativeBuildInputs = [
meson
ninja
pkg-config
qt6.wrapQtAppsNoGuiHook
];
buildInputs = [
libarchive
bzip2
zlib
xz
qt6.qtbase
];
mesonFlags = [ "-Duse_qt_version=qt6" ];
meta = {
description = "Qt based archiving solution with libarchive backend";
mainProgram = "archiver";
homepage = "https://gitlab.com/marcusbritanicus/libarchive-qt";
license = lib.licenses.lgpl3Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,22 @@
From 87bbe8ec8d343c70ae42ccb9606ec80ad73ceffb Mon Sep 17 00:00:00 2001
From: Emily <hello@emily.moe>
Date: Tue, 29 Jul 2025 16:53:15 +0100
Subject: [PATCH] Fix setup_mac_metadata when TMPDIR does not end with a slash
---
libarchive/archive_read_disk_entry_from_file.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libarchive/archive_read_disk_entry_from_file.c b/libarchive/archive_read_disk_entry_from_file.c
index 19d049770b..87389642db 100644
--- a/libarchive/archive_read_disk_entry_from_file.c
+++ b/libarchive/archive_read_disk_entry_from_file.c
@@ -364,7 +364,7 @@ setup_mac_metadata(struct archive_read_disk *a,
tempdir = _PATH_TMP;
archive_string_init(&tempfile);
archive_strcpy(&tempfile, tempdir);
- archive_strcat(&tempfile, "tar.md.XXXXXX");
+ archive_strcat(&tempfile, "/tar.md.XXXXXX");
tempfd = mkstemp(tempfile.s);
if (tempfd < 0) {
archive_set_error(&a->archive, errno,

View File

@@ -0,0 +1,170 @@
{
lib,
stdenv,
fetchFromGitHub,
acl,
attr,
autoreconfHook,
bzip2,
fetchpatch,
glibcLocalesUtf8,
lzo,
openssl,
pkg-config,
xz,
zlib,
zstd,
# Optional but increases closure only negligibly. Also, while libxml2 builds
# fine on windows, libarchive has trouble linking windows things it depends on
# for some reason.
xarSupport ? stdenv.hostPlatform.isUnix,
libxml2,
# for passthru.tests
cmake,
nix,
samba,
# for passthru.lore
binlore,
}:
assert xarSupport -> libxml2 != null;
stdenv.mkDerivation (finalAttrs: {
pname = "libarchive";
version = "3.8.1";
src = fetchFromGitHub {
owner = "libarchive";
repo = "libarchive";
rev = "v${finalAttrs.version}";
hash = "sha256-KN5SvQ+/g/OOa+hntMX3D8p5IEWO0smke5WK+DwrOH0=";
};
patches = [
# https://github.com/libarchive/libarchive/pull/2689
# Remove after next release.
(fetchpatch {
url = "https://github.com/libarchive/libarchive/commit/489d0b8e2f1fafd3b7ebf98f389ca67462c34651.patch?full_index=1";
hash = "sha256-r+tSJ+WA0VKCjg+8MfS5/RqcB+aAMZ2dK0YUh+U1q78=";
})
# Fix the tests on Darwin when `$TMPDIR` does not end with a slash
# and its parent directory is not writable by the build user, as on
# Nix ≥ 2.30.0 and Lix ≥ 2.91.2, ≥ 2.92.2, ≥ 2.93.1.
# <https://github.com/libarchive/libarchive/pull/2708>
./fix-darwin-tmpdir-handling.patch
];
outputs = [
"out"
"lib"
"dev"
];
postPatch =
let
skipTestPaths = [
# test won't work in nix sandbox
"libarchive/test/test_write_disk_perms.c"
# the filesystem does not necessarily have sparse capabilities
"libarchive/test/test_sparse_basic.c"
# the filesystem does not necessarily have hardlink capabilities
"libarchive/test/test_write_disk_hardlink.c"
# access-time-related tests flakey on some systems
"libarchive/test/test_read_disk_directory_traversals.c"
"cpio/test/test_option_a.c"
"cpio/test/test_option_t.c"
# fails tests on filesystems with 64-bit inode values:
# FAIL: bsdcpio_test
# bsdcpio: linkfile: large inode number truncated: Numerical result out of range
"cpio/test/test_basic.c"
"cpio/test/test_format_newc.c"
];
removeTest = testPath: ''
substituteInPlace Makefile.am --replace-fail "${testPath}" ""
rm "${testPath}"
'';
in
''
substituteInPlace Makefile.am --replace-fail '/bin/pwd' "$(type -P pwd)"
${lib.concatStringsSep "\n" (map removeTest skipTestPaths)}
'';
nativeBuildInputs = [
autoreconfHook
glibcLocalesUtf8 # test_I test requires an UTF-8 locale
pkg-config
];
buildInputs = [
bzip2
lzo
openssl
xz
zlib
zstd
]
++ lib.optionals stdenv.hostPlatform.isLinux [
acl
attr
]
++ lib.optional xarSupport libxml2;
# Without this, pkg-config-based dependencies are unhappy
propagatedBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [
attr
acl
];
hardeningDisable = [ "strictflexarrays3" ];
configureFlags = lib.optional (!xarSupport) "--without-xml2";
preBuild = lib.optionalString stdenv.hostPlatform.isCygwin ''
echo "#include <windows.h>" >> config.h
'';
# https://github.com/libarchive/libarchive/issues/1475
doCheck = !stdenv.hostPlatform.isMusl;
preCheck = ''
# Need an UTF-8 locale for test_I test.
export LANG=en_US.UTF-8
'';
preFixup = ''
sed -i $lib/lib/libarchive.la \
-e 's|-lcrypto|-L${lib.getLib openssl}/lib -lcrypto|' \
-e 's|-llzo2|-L${lzo}/lib -llzo2|'
'';
enableParallelBuilding = true;
meta = with lib; {
homepage = "http://libarchive.org";
description = "Multi-format archive and compression library";
longDescription = ''
The libarchive project develops a portable, efficient C library that can
read and write streaming archives in a variety of formats. It also
includes implementations of the common tar, cpio, and zcat command-line
tools that use the libarchive library.
'';
changelog = "https://github.com/libarchive/libarchive/releases/tag/v${finalAttrs.version}";
license = licenses.bsd3;
maintainers = with maintainers; [ jcumming ];
platforms = platforms.all;
inherit (acl.meta) badPlatforms;
};
passthru.tests = {
inherit cmake nix samba;
};
# bsdtar is detected as "cannot" because its exec is internal to
# calls it makes into libarchive itself. If binlore gains support
# for detecting another layer down into libraries, this can be cut.
passthru.binlore.out = binlore.synthesize finalAttrs.finalPackage ''
execer can bin/bsdtar
'';
})

View File

@@ -0,0 +1,65 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
fixDarwinDylibNames,
}:
stdenv.mkDerivation rec {
pname = "libargon2";
version = "20190702";
src = fetchFromGitHub {
owner = "P-H-C";
repo = "phc-winner-argon2";
rev = version;
sha256 = "0p4ry9dn0mi9js0byijxdyiwx74p1nr8zj7wjpd1fjgqva4sk23i";
};
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
fixDarwinDylibNames
];
patches = [
# TODO: remove when https://github.com/P-H-C/phc-winner-argon2/pull/277 is merged + released
(fetchpatch {
url = "https://github.com/P-H-C/phc-winner-argon2/commit/cd1c1d8d204e4ec4557e358013567c097cb70562.patch";
sha256 = "0whqv8b6q9602n7vxpzbd8bk8wz22r1jz9x5lrm9z7ib3wz81c8a";
})
];
makeFlags = [
"AR=${stdenv.cc.targetPrefix}ar" # Fix cross-compilation
"PREFIX=${placeholder "out"}"
"ARGON2_VERSION=${version}"
"LIBRARY_REL=lib"
"PKGCONFIG_REL=lib"
]
++ lib.optionals stdenv.hostPlatform.isStatic [
"LIBRARIES=$(LIB_ST)"
"LINKED_LIB_EXT="
];
meta = with lib; {
description = "Key derivation function that was selected as the winner of the Password Hashing Competition in July 2015";
longDescription = ''
A password-hashing function created by by Alex Biryukov, Daniel Dinu, and
Dmitry Khovratovich. Argon2 was declared the winner of the Password
Hashing Competition (PHC). There were 24 submissions and 9 finalists.
Catena, Lyra2, Makwa and yescrypt were given special recognition. The PHC
recommends using Argon2 rather than legacy algorithms.
'';
homepage = "https://www.argon2.com/";
license = with licenses; [
asl20
cc0
];
maintainers = with maintainers; [
taeer
olynch
];
mainProgram = "argon2";
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "args";
version = "6.4.7";
src = fetchFromGitHub {
owner = "Taywee";
repo = "args";
rev = version;
sha256 = "sha256-IQzhbXl1CfEV164EjulKrOUdCTZNZAFgVyzxk4rTNlU=";
};
nativeBuildInputs = [ cmake ];
# https://github.com/Taywee/args/issues/108
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace '$'{CMAKE_INSTALL_LIBDIR_ARCHIND} '$'{CMAKE_INSTALL_LIBDIR}
substituteInPlace packaging/pkgconfig.pc.in \
--replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
'';
meta = with lib; {
description = "Simple header-only C++ argument parser library";
homepage = "https://github.com/Taywee/args";
license = licenses.mit;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
fontconfig,
freetype,
}:
stdenv.mkDerivation rec {
pname = "libaribcaption";
version = "1.1.1";
src = fetchFromGitHub {
owner = "xqq";
repo = "libaribcaption";
rev = "v${version}";
hash = "sha256-x6l0ZrTktSsqfDLVRXpQtUOruhfc8RF3yT991UVZiKA=";
};
nativeBuildInputs = [ cmake ];
cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [
fontconfig
freetype
];
meta = with lib; {
description = "Portable ARIB STD-B24 Caption Decoder/Renderer";
homepage = "https://github.com/xqq/libaribcaption";
changelog = "https://github.com/xqq/libaribcaption/releases/tag/${src.rev}";
license = licenses.mit;
maintainers = with maintainers; [ chayleaf ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,30 @@
{
lib,
stdenv,
fetchurl,
libevent,
openssl,
}:
stdenv.mkDerivation rec {
pname = "libasr";
version = "1.0.4";
src = fetchurl {
url = "https://www.opensmtpd.org/archives/${pname}-${version}.tar.gz";
sha256 = "1d6s8njqhvayx2gp47409sp1fn8m608ws26hr1srfp6i23nnpyqr";
};
buildInputs = [
libevent
openssl
];
meta = with lib; {
homepage = "https://github.com/OpenSMTPD/libasr";
description = "Free, simple and portable asynchronous resolver library";
license = licenses.isc;
maintainers = [ maintainers.koral ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
yasm,
freetype,
fribidi,
harfbuzz,
fontconfigSupport ? true,
fontconfig ? null, # fontconfig support
largeTilesSupport ? false, # Use larger tiles in the rasterizer
libiconv,
}:
assert fontconfigSupport -> fontconfig != null;
stdenv.mkDerivation rec {
pname = "libass";
version = "0.17.4";
src = fetchurl {
url = "https://github.com/libass/libass/releases/download/${version}/${pname}-${version}.tar.xz";
hash = "sha256-ePEXm4ONAl6cJuj+8z+AkvZWEURP+hv8DPrGozURoFo=";
};
outputs = [
"out"
"dev"
];
configureFlags = [
(lib.enableFeature fontconfigSupport "fontconfig")
(lib.enableFeature largeTilesSupport "large-tiles")
];
nativeBuildInputs = [
pkg-config
yasm
];
buildInputs = [
freetype
fribidi
harfbuzz
]
++ lib.optional fontconfigSupport fontconfig
++ lib.optional stdenv.hostPlatform.isDarwin [
libiconv
];
meta = with lib; {
description = "Portable ASS/SSA subtitle renderer";
homepage = "https://github.com/libass/libass";
license = licenses.isc;
platforms = platforms.unix;
maintainers = with maintainers; [ codyopel ];
};
}

View File

@@ -0,0 +1,67 @@
{
fetchurl,
lib,
stdenv,
gettext,
npth,
libgpg-error,
buildPackages,
gitUpdater,
}:
stdenv.mkDerivation rec {
pname = "libassuan";
version = "3.0.2";
src = fetchurl {
url = "mirror://gnupg/libassuan/libassuan-${version}.tar.bz2";
hash = "sha256-0pMc2tJm5jNRD5lw4aLzRgVeNRuxn5t4kSR1uAdMNvY=";
};
outputs = [
"out"
"dev"
"info"
];
outputBin = "dev"; # libassuan-config
depsBuildBuild = [ buildPackages.stdenv.cc ];
buildInputs = [
npth
gettext
];
configureFlags = [
# Required for cross-compilation.
"--with-libgpg-error-prefix=${libgpg-error.dev}"
];
doCheck = true;
# Make sure includes are fixed for callers who don't use libassuan-config
postInstall = ''
sed -i 's,#include <gpg-error.h>,#include "${libgpg-error.dev}/include/gpg-error.h",g' $dev/include/assuan.h
'';
passthru.updateScript = gitUpdater {
url = "https://dev.gnupg.org/source/libassuan.git";
rev-prefix = "libassuan-";
ignoredVersions = ".*-base";
};
meta = {
description = "IPC library used by GnuPG and related software";
mainProgram = "libassuan-config";
longDescription = ''
Libassuan is a small library implementing the so-called Assuan
protocol. This protocol is used for IPC between most newer
GnuPG components. Both, server and client side functions are
provided.
'';
homepage = "https://gnupg.org/software/libassuan/";
changelog = "https://dev.gnupg.org/source/libassuan/browse/master/NEWS;libassuan-${version}";
license = lib.licenses.lgpl2Plus;
platforms = lib.platforms.all;
maintainers = [ ];
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "libasyncns";
version = "0.8";
src = fetchurl {
url = "http://0pointer.de/lennart/projects/libasyncns/${pname}-${version}.tar.gz";
sha256 = "0x5b6lcic4cd7q0bx00x93kvpyzl7n2abbgvqbrlzrfb8vknc6jg";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
substituteInPlace libasyncns/asyncns.c \
--replace '<arpa/nameser.h>' '<arpa/nameser_compat.h>'
'';
configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
"ac_cv_func_malloc_0_nonnull=yes"
"ac_cv_func_realloc_0_nonnull=yes"
];
meta = with lib; {
homepage = "http://0pointer.de/lennart/projects/libasyncns/";
description = "C library for Linux/Unix for executing name service queries asynchronously";
license = licenses.lgpl21;
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,29 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
udev,
buildPackages,
}:
stdenv.mkDerivation rec {
pname = "libatasmart";
version = "0.19";
src = fetchurl {
url = "http://0pointer.de/public/libatasmart-${version}.tar.xz";
sha256 = "138gvgdwk6h4ljrjsr09pxk1nrki4b155hqdzyr8mlk3bwsfmw31";
};
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ pkg-config ];
buildInputs = [ udev ];
meta = with lib; {
homepage = "http://0pointer.de/blog/projects/being-smart.html";
description = "Library for querying ATA SMART status";
license = licenses.lgpl21;
platforms = platforms.linux;
};
}

892
pkgs/by-name/li/libation/deps.json generated Normal file
View File

@@ -0,0 +1,892 @@
[
{
"pname": "AAXClean",
"version": "2.0.2.1",
"hash": "sha256-9tCux7qkyTjJqGdll499k1/S3CiTCsp6VvFuGyJXo/g="
},
{
"pname": "AAXClean.Codecs",
"version": "2.0.2.2",
"hash": "sha256-CT/3DzEnRHoPVQs6gPu1N9z7M6u7txKCH1+fuwng320="
},
{
"pname": "AudibleApi",
"version": "9.4.5.1",
"hash": "sha256-EE2GpXsVakLqN5JiK8LvPG/lNTbQk6r/MW6MFZwEA+E="
},
{
"pname": "Avalonia",
"version": "11.3.3",
"hash": "sha256-UvENUQgoTUikjIMTL+oI93FNwr1gZfoGVtZdYzBzdts="
},
{
"pname": "Avalonia.Angle.Windows.Natives",
"version": "2.1.25547.20250602",
"hash": "sha256-LE/lENAHptmz6t3T/AoJwnhpda+xs7PqriNGzdcfg8M="
},
{
"pname": "Avalonia.BuildServices",
"version": "0.0.31",
"hash": "sha256-wgtodGf644CsUZEBIpFKcUjYHTbnu7mZmlr8uHIxeKA="
},
{
"pname": "Avalonia.Controls.ColorPicker",
"version": "11.3.3",
"hash": "sha256-zg35D8NygrU8mCAsLLoPmrzXZcV31NuHNtTaiZZhOxc="
},
{
"pname": "Avalonia.Controls.DataGrid",
"version": "11.3.3",
"hash": "sha256-kDO6o2U2SRVMRE/60FOiLfWi90HxYhoUnAIcxX270ww="
},
{
"pname": "Avalonia.Desktop",
"version": "11.3.3",
"hash": "sha256-/jYjxA5vJqU5IpJkgnlathprzdHB/ihdL35ZZBRESeU="
},
{
"pname": "Avalonia.Diagnostics",
"version": "11.3.3",
"hash": "sha256-rHBFnhZ+gAqPqqDfZxBxUr3wXIpgOc9hInwzDOgdk5E="
},
{
"pname": "Avalonia.FreeDesktop",
"version": "11.3.3",
"hash": "sha256-kUSE90HoJz9NsYCphLUQgNkxb3xHhFIlqXa6lzuGi4c="
},
{
"pname": "Avalonia.Native",
"version": "11.3.3",
"hash": "sha256-QmvN5gUsgjk7ViacdXOwHULHid0TfAKJGW3cf9A8bwQ="
},
{
"pname": "Avalonia.ReactiveUI",
"version": "11.3.3",
"hash": "sha256-Clq/13CZRTFEJmVw41Tw0tJEtm0AYvBKJah7OdFbBSo="
},
{
"pname": "Avalonia.Remote.Protocol",
"version": "11.3.3",
"hash": "sha256-gHZA53IyRAdeIg7yRIN6Pzh0AbOGd5B9mckEWsPuK7A="
},
{
"pname": "Avalonia.Skia",
"version": "11.3.3",
"hash": "sha256-pUMqXnupxztsAP/n4U2pSgTga89gy7CBLg39y2j0EjA="
},
{
"pname": "Avalonia.Themes.Fluent",
"version": "11.3.3",
"hash": "sha256-tWNl3jvESx96lTd6i0lxo6Y8/Y6cS5ZQrPovIolNfAE="
},
{
"pname": "Avalonia.Themes.Simple",
"version": "11.3.3",
"hash": "sha256-nUfIEeJZgiLuy681S16Qncri6fvCGF7tYk4dSf3JY4s="
},
{
"pname": "Avalonia.Win32",
"version": "11.3.3",
"hash": "sha256-jlQXEdbZjfRsu2MjYzHGUAyn+uvdACXCvm63HjUKqfQ="
},
{
"pname": "Avalonia.X11",
"version": "11.3.3",
"hash": "sha256-7A+uzB7g21P+RnKO4bKOJVY35qPz5Xna8n8VGG7RoMw="
},
{
"pname": "BouncyCastle.Cryptography",
"version": "2.4.0",
"hash": "sha256-DoDZNWtYM+0OLIclOEZ+tjcGXymGlXvdvq2ZMPmiAJA="
},
{
"pname": "CommandLineParser",
"version": "2.9.1",
"hash": "sha256-ApU9y1yX60daSjPk3KYDBeJ7XZByKW8hse9NRZGcjeo="
},
{
"pname": "CsvHelper",
"version": "33.1.0",
"hash": "sha256-pEfX4o63xupI7uuwe6qa05One0pJ7UbzzJqLh4Shju8="
},
{
"pname": "Dinah.Core",
"version": "9.0.0.1",
"hash": "sha256-tHuHWUgzj0ZmcXwnnkLPkWwRj0KWy9Y9gxae2cA/qJk="
},
{
"pname": "Dinah.Core",
"version": "9.0.3.1",
"hash": "sha256-RQQ27ECECPCTHnmdPZ6YjvGpCY9xRg39VOASMtJKJL0="
},
{
"pname": "Dinah.EntityFrameworkCore",
"version": "9.0.0.1",
"hash": "sha256-OFLJW8MJpMq2iGb8I7R9SSPzZYQhmoW/e0h6mRuLbuc="
},
{
"pname": "DynamicData",
"version": "8.4.1",
"hash": "sha256-r+haH5VlmZFJTEJ3UedsYybw+oddn/CSvfm6x7PrrQ4="
},
{
"pname": "Enums.NET",
"version": "5.0.0",
"hash": "sha256-8cRZVOuu38cso7mNAEifxnN+v0W3T7xB+uR4SBvTkwc="
},
{
"pname": "ExtendedNumerics.BigDecimal",
"version": "2025.1001.2.129",
"hash": "sha256-LAlD9SWsKfXxMu0XTqxPBvWuN6MrBnETrWs8BVNDsVk="
},
{
"pname": "Google.Protobuf",
"version": "3.32.0",
"hash": "sha256-ljHGi+RkkujLV3RCE50nj9BkqdhVZjbrnBzcDhx80gA="
},
{
"pname": "HarfBuzzSharp",
"version": "8.3.1.1",
"hash": "sha256-614yv6bK9ynhdUnvW4wIkgpBe2sqTh28U9cDZzdhPc0="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Linux",
"version": "8.3.1.1",
"hash": "sha256-sBbez6fc9axVcsBbIHbpQh/MM5NHlMJgSu6FyuZzVyU="
},
{
"pname": "HarfBuzzSharp.NativeAssets.macOS",
"version": "8.3.1.1",
"hash": "sha256-hK20KbX2OpewIO5qG5gWw5Ih6GoLcIDgFOqCJIjXR/Q="
},
{
"pname": "HarfBuzzSharp.NativeAssets.WebAssembly",
"version": "8.3.1.1",
"hash": "sha256-mLKoLqI47ZHXqTMLwP1UCm7faDptUfQukNvdq6w/xxw="
},
{
"pname": "HarfBuzzSharp.NativeAssets.Win32",
"version": "8.3.1.1",
"hash": "sha256-Um4iwLdz9XtaDSAsthNZdev6dMiy7OBoHOrorMrMYyo="
},
{
"pname": "HtmlAgilityPack",
"version": "1.11.71",
"hash": "sha256-ddNrIXTfiu8gwrUs/5xYDjpD0sOth90kut6qCgxGUSE="
},
{
"pname": "HtmlAgilityPack",
"version": "1.12.2",
"hash": "sha256-SbzDudru9uTMuMjSTxnKyoT0KbAkd8SVNH9VOfCiR50="
},
{
"pname": "Humanizer.Core",
"version": "2.14.1",
"hash": "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o="
},
{
"pname": "LuceneNet303r2",
"version": "3.0.3.9",
"hash": "sha256-8k9JZMikpSsVKFMSg9CK19YbJFJ9ifpYCKaEtC+f7mY="
},
{
"pname": "MathNet.Numerics.Signed",
"version": "5.0.0",
"hash": "sha256-76y1jaL+abqoyP3K4n9phF1S1hTpylkw//vTHukROUc="
},
{
"pname": "MicroCom.Runtime",
"version": "0.11.0",
"hash": "sha256-VdwpP5fsclvNqJuppaOvwEwv2ofnAI5ZSz2V+UEdLF0="
},
{
"pname": "Microsoft.Bcl.AsyncInterfaces",
"version": "7.0.0",
"hash": "sha256-1e031E26iraIqun84ad0fCIR4MJZ1hcQo4yFN+B7UfE="
},
{
"pname": "Microsoft.Build.Framework",
"version": "16.10.0",
"hash": "sha256-Sj41LE1YQ/NfOdiDf5YnZgWSwGOzQ2uVvP1LgF/HSJ0="
},
{
"pname": "Microsoft.Build.Framework",
"version": "17.8.3",
"hash": "sha256-Rp4dN8ejOXqclIKMUXYvIliM6IYB7WMckMLwdCbVZ34="
},
{
"pname": "Microsoft.Build.Locator",
"version": "1.7.8",
"hash": "sha256-VhZ4jiJi17Cd5AkENXL1tjG9dV/oGj0aY67IGYd7vNs="
},
{
"pname": "Microsoft.Build.Tasks.Git",
"version": "8.0.0",
"hash": "sha256-vX6/kPij8vNAu8f7rrvHHhPrNph20IcufmrBgZNxpQA="
},
{
"pname": "Microsoft.CodeAnalysis.Analyzers",
"version": "3.3.4",
"hash": "sha256-qDzTfZBSCvAUu9gzq2k+LOvh6/eRvJ9++VCNck/ZpnE="
},
{
"pname": "Microsoft.CodeAnalysis.Common",
"version": "4.8.0",
"hash": "sha256-3IEinVTZq6/aajMVA8XTRO3LTIEt0PuhGyITGJLtqz4="
},
{
"pname": "Microsoft.CodeAnalysis.CSharp",
"version": "4.8.0",
"hash": "sha256-MmOnXJvd/ezs5UPcqyGLnbZz5m+VedpRfB+kFZeeqkU="
},
{
"pname": "Microsoft.CodeAnalysis.CSharp.Workspaces",
"version": "4.8.0",
"hash": "sha256-WNzc+6mKqzPviOI0WMdhKyrWs8u32bfGj2XwmfL7bwE="
},
{
"pname": "Microsoft.CodeAnalysis.Workspaces.Common",
"version": "4.8.0",
"hash": "sha256-X8R4SpWVO/gpip5erVZf5jCCx8EX3VzIRtNrQiLDIoM="
},
{
"pname": "Microsoft.CodeAnalysis.Workspaces.MSBuild",
"version": "4.8.0",
"hash": "sha256-hxpMKC6OF8OaIiSZhAgJ+Rw7M8nqS6xHdUURnRRxJmU="
},
{
"pname": "Microsoft.Data.Sqlite.Core",
"version": "9.0.8",
"hash": "sha256-y9HnRrftjgRRuFF/N75BHNhFcmb3Nj0+sDk3mwYmyxU="
},
{
"pname": "Microsoft.EntityFrameworkCore",
"version": "9.0.0",
"hash": "sha256-pFO6T2UsnYuXqPZzG5SziG0v7fYkLd5GlQ2DWk21XCc="
},
{
"pname": "Microsoft.EntityFrameworkCore",
"version": "9.0.8",
"hash": "sha256-QJNiGeyZh2AHpm6CumccWYImYXHHoi3pSVBMk0Z0oto="
},
{
"pname": "Microsoft.EntityFrameworkCore.Abstractions",
"version": "9.0.0",
"hash": "sha256-8SPpC6uTLl3TryFCTb2qqqLW4AsF/mTkOQteZ76dcfU="
},
{
"pname": "Microsoft.EntityFrameworkCore.Abstractions",
"version": "9.0.8",
"hash": "sha256-+0Mx7e3aadcwnj17NI1bqcv+Ik6jJwFZhPBO0vm9d0Q="
},
{
"pname": "Microsoft.EntityFrameworkCore.Analyzers",
"version": "9.0.0",
"hash": "sha256-TzAFoT3LEHcyD7sjoGMXOV7BVWNPSDIn+5+QQg4BYGs="
},
{
"pname": "Microsoft.EntityFrameworkCore.Analyzers",
"version": "9.0.8",
"hash": "sha256-Y3R32LoIqC0NIDvlHLpSfvcqmfDOmja03yYRLyRldSs="
},
{
"pname": "Microsoft.EntityFrameworkCore.Design",
"version": "9.0.8",
"hash": "sha256-ze9sA2ln90Cu83sYr5c7Mx/g7gt6wpQdGLf0u9bRh94="
},
{
"pname": "Microsoft.EntityFrameworkCore.Relational",
"version": "9.0.0",
"hash": "sha256-b7YR7J6mv7IN0+TQIIm6xKw4heEPol0dLDgxVHAUu7s="
},
{
"pname": "Microsoft.EntityFrameworkCore.Relational",
"version": "9.0.8",
"hash": "sha256-7V4UChYCgp6mOwCbdScE19N+SOO43vqFP276RZSjnZ0="
},
{
"pname": "Microsoft.EntityFrameworkCore.Sqlite",
"version": "9.0.8",
"hash": "sha256-S1+04gZRmysziMQy3jLXY2Kd6q4ZT5DXCWLh9wE1zE0="
},
{
"pname": "Microsoft.EntityFrameworkCore.Sqlite.Core",
"version": "9.0.8",
"hash": "sha256-2TN1U1oZzk99hghB+hsqoLFUUbfLkE1O8dIDVNKZPkI="
},
{
"pname": "Microsoft.EntityFrameworkCore.Tools",
"version": "9.0.8",
"hash": "sha256-pyyQ+YT1WE/Dwab33RWK96hDG+Ds0mvWCynnHWt81h8="
},
{
"pname": "Microsoft.Extensions.Caching.Abstractions",
"version": "9.0.8",
"hash": "sha256-Utc84ZN96qoVki9jTpkD0Ph6VhEfWCShWAQIhiCD9KQ="
},
{
"pname": "Microsoft.Extensions.Caching.Memory",
"version": "9.0.0",
"hash": "sha256-OZVOVGZOyv9uk5XGJrz6irBkPNjxnBxjfSyW30MnU0s="
},
{
"pname": "Microsoft.Extensions.Caching.Memory",
"version": "9.0.8",
"hash": "sha256-nZu6Qmwzcd5NJhgwjDIT18A1KttaFXMZ3E+f09Iq5Ng="
},
{
"pname": "Microsoft.Extensions.Configuration",
"version": "9.0.0",
"hash": "sha256-uBLeb4z60y8z7NelHs9uT3cLD6wODkdwyfJm6/YZLDM="
},
{
"pname": "Microsoft.Extensions.Configuration",
"version": "9.0.8",
"hash": "sha256-GnD1Ar/yZfCZQw2k/2jKteLG1lF/Dk7S3tgMvn+SFqc="
},
{
"pname": "Microsoft.Extensions.Configuration.Abstractions",
"version": "9.0.0",
"hash": "sha256-xtG2USC9Qm0f2Nn6jkcklpyEDT3hcEZOxOwTc0ep7uc="
},
{
"pname": "Microsoft.Extensions.Configuration.Abstractions",
"version": "9.0.8",
"hash": "sha256-hes+QZM3DQ1R/8CDOdWObk6s1oGhzFqka8Qc7Baf9PY="
},
{
"pname": "Microsoft.Extensions.Configuration.Binder",
"version": "8.0.0",
"hash": "sha256-GanfInGzzoN2bKeNwON8/Hnamr6l7RTpYLA49CNXD9Q="
},
{
"pname": "Microsoft.Extensions.Configuration.Binder",
"version": "9.0.0",
"hash": "sha256-6ajYWcNOQX2WqftgnoUmVtyvC1kkPOtTCif4AiKEffU="
},
{
"pname": "Microsoft.Extensions.Configuration.FileExtensions",
"version": "9.0.0",
"hash": "sha256-PsLo6mrLGYfbi96rfCG8YS1APXkUXBG4hLstpT60I4s="
},
{
"pname": "Microsoft.Extensions.Configuration.FileExtensions",
"version": "9.0.8",
"hash": "sha256-W7PnvqPcdJnJIPaEh1qRDh/WCVSz/KQy+GAMhMNhKE4="
},
{
"pname": "Microsoft.Extensions.Configuration.Json",
"version": "9.0.0",
"hash": "sha256-qQn7Ol0CvPYuyecYWYBkPpTMdocO7I6n+jXQI2udzLI="
},
{
"pname": "Microsoft.Extensions.Configuration.Json",
"version": "9.0.8",
"hash": "sha256-/QFT/SksJcsZ2Cjw0WkJzLnp+mT2m+38avEOgttrAaM="
},
{
"pname": "Microsoft.Extensions.DependencyInjection",
"version": "9.0.8",
"hash": "sha256-fJOwbtlmP6mXGYqHRCqtb7e08h5mFza6Wmd1NbNq3ug="
},
{
"pname": "Microsoft.Extensions.DependencyInjection.Abstractions",
"version": "9.0.8",
"hash": "sha256-uFBeyx8WTgDX2z8paf6ZAQ45WexaWG8uzO5x+qGrPRU="
},
{
"pname": "Microsoft.Extensions.DependencyModel",
"version": "8.0.2",
"hash": "sha256-PyuO/MyCR9JtYqpA1l/nXGh+WLKCq34QuAXN9qNza9Q="
},
{
"pname": "Microsoft.Extensions.DependencyModel",
"version": "9.0.0",
"hash": "sha256-xirwlMWM0hBqgTneQOGkZ8l45mHT08XuSSRIbprgq94="
},
{
"pname": "Microsoft.Extensions.DependencyModel",
"version": "9.0.8",
"hash": "sha256-Y07YpP2Kgs5liww09aV/vJjuJx3pmOz8PREt3xrEeOI="
},
{
"pname": "Microsoft.Extensions.FileProviders.Abstractions",
"version": "9.0.0",
"hash": "sha256-mVfLjZ8VrnOQR/uQjv74P2uEG+rgW72jfiGdSZhIfDc="
},
{
"pname": "Microsoft.Extensions.FileProviders.Abstractions",
"version": "9.0.8",
"hash": "sha256-9X3roHvoAFzlTwVSlkbksB9EosKjVHeXuR5Jm682Wvk="
},
{
"pname": "Microsoft.Extensions.FileProviders.Physical",
"version": "9.0.0",
"hash": "sha256-IzFpjKHmF1L3eVbFLUZa2N5aH3oJkJ7KE1duGIS7DP8="
},
{
"pname": "Microsoft.Extensions.FileProviders.Physical",
"version": "9.0.8",
"hash": "sha256-lVnOgpxjO5VaCgviGeQ0R8kAIiDN1nKqpbj8CrCDpic="
},
{
"pname": "Microsoft.Extensions.FileSystemGlobbing",
"version": "9.0.0",
"hash": "sha256-eBLa8pW/y/hRj+JbEr340zbHRABIeFlcdqE0jf5/Uhc="
},
{
"pname": "Microsoft.Extensions.FileSystemGlobbing",
"version": "9.0.8",
"hash": "sha256-1dmTABLD1Zo2vdZFsASTx8T8MRI8emN//KuNP3OiWKw="
},
{
"pname": "Microsoft.Extensions.Logging",
"version": "9.0.0",
"hash": "sha256-kR16c+N8nQrWeYLajqnXPg7RiXjZMSFLnKLEs4VfjcM="
},
{
"pname": "Microsoft.Extensions.Logging",
"version": "9.0.8",
"hash": "sha256-SEVCMpVwjcQtTSs4lirb89A36MxLQwwqdDFWbr1VvP8="
},
{
"pname": "Microsoft.Extensions.Logging.Abstractions",
"version": "9.0.8",
"hash": "sha256-vaUApbwsqKt7+AItgusbCKKdTyOg/5KCdSZjDZarw20="
},
{
"pname": "Microsoft.Extensions.Options",
"version": "9.0.8",
"hash": "sha256-AbwIL8sSZ/qDBKbvabHp1tbExBFr73fYjuXJiV6On1U="
},
{
"pname": "Microsoft.Extensions.Primitives",
"version": "9.0.0",
"hash": "sha256-ZNLusK1CRuq5BZYZMDqaz04PIKScE2Z7sS2tehU7EJs="
},
{
"pname": "Microsoft.Extensions.Primitives",
"version": "9.0.8",
"hash": "sha256-K3T8krgXZmvQg87AQQrn9kiH2sDyKzRUMDyuB/ItmPc="
},
{
"pname": "Microsoft.IO.RecyclableMemoryStream",
"version": "3.0.1",
"hash": "sha256-unFg/5EcU/XKJbob4GtQC43Ydgi5VjeBGs7hfhj4EYo="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "1.1.0",
"hash": "sha256-FeM40ktcObQJk4nMYShB61H/E8B7tIKfl9ObJ0IOcCM="
},
{
"pname": "Microsoft.NETCore.Platforms",
"version": "5.0.0",
"hash": "sha256-LIcg1StDcQLPOABp4JRXIs837d7z0ia6+++3SF3jl1c="
},
{
"pname": "Microsoft.NETCore.Targets",
"version": "1.1.0",
"hash": "sha256-0AqQ2gMS8iNlYkrD+BxtIg7cXMnr9xZHtKAuN4bjfaQ="
},
{
"pname": "Microsoft.SourceLink.Common",
"version": "8.0.0",
"hash": "sha256-AfUqleVEqWuHE7z2hNiwOLnquBJ3tuYtbkdGMppHOXc="
},
{
"pname": "Microsoft.SourceLink.GitHub",
"version": "8.0.0",
"hash": "sha256-hNTkpKdCLY5kIuOmznD1mY+pRdJ0PKu2HypyXog9vb0="
},
{
"pname": "Mono.TextTemplating",
"version": "3.0.0",
"hash": "sha256-VlgGDvgNZb7MeBbIZ4DE2Nn/j2aD9k6XqNHnASUSDr0="
},
{
"pname": "NameParserSharp",
"version": "1.5.0",
"hash": "sha256-I0xUWObpeR9r867ef3SskvdyIWB7kpNI+Xy7X4l05eE="
},
{
"pname": "NAudio.Core",
"version": "2.2.1",
"hash": "sha256-eUZF2/0w5IgGY9UtnZIk1VwwH6VCKP9iPJXVcseIc0c="
},
{
"pname": "Newtonsoft.Json",
"version": "13.0.3",
"hash": "sha256-hy/BieY4qxBWVVsDqqOPaLy1QobiIapkbrESm6v2PHc="
},
{
"pname": "NPOI",
"version": "2.7.4",
"hash": "sha256-HrKC49BTCxR2/jJRWgwuLsOTvq1KynRnBR2Xklsokcs="
},
{
"pname": "Octokit",
"version": "14.0.0",
"hash": "sha256-pTSI7Tz5VFd4Ydx1laE+VkZfhsl7Rbgw42PBqhyVvyI="
},
{
"pname": "Pluralize.NET",
"version": "1.0.2",
"hash": "sha256-u/WHYDpSvGs6SkgPREm1RID4po6h8/fj2QgJal1TBwU="
},
{
"pname": "Polly",
"version": "8.6.2",
"hash": "sha256-JWPe3Une30ljf2z4aeshNSjz2CfIQZWw3IHiPvFgy6E="
},
{
"pname": "Polly.Core",
"version": "8.6.2",
"hash": "sha256-jX1i7tkQwaY74qgVarx6vLeLIg7zonQwisFvm6nWrHs="
},
{
"pname": "ReactiveUI",
"version": "20.1.1",
"hash": "sha256-p9l2GMzBRchKb4gW9pQ3DIKhs2O9fX3t/V7jDDztBqE="
},
{
"pname": "Serilog",
"version": "2.8.0",
"hash": "sha256-MBL9AWGV8UthhiHXnqH3EsfIyXnxdLWqAdFa6QvQ2To="
},
{
"pname": "Serilog",
"version": "3.1.1",
"hash": "sha256-L263y8jkn7dNFD2jAUK6mgvyRTqFe39i1tRhVZsNZTI="
},
{
"pname": "Serilog",
"version": "4.0.0",
"hash": "sha256-j8hQ5TdL1TjfdGiBO9PyHJFMMPvATHWN1dtrrUZZlNw="
},
{
"pname": "Serilog",
"version": "4.2.0",
"hash": "sha256-7f3EpCsEbDxXgsuhE430KVI14p7oDUuCtwRpOCqtnbs="
},
{
"pname": "Serilog.Exceptions",
"version": "8.4.0",
"hash": "sha256-2We6ZVAcFsEYVV7vVM+F1+4phHRqc7NeQZKbYDK0Gew="
},
{
"pname": "Serilog.Settings.Configuration",
"version": "8.0.4",
"hash": "sha256-00abT3H5COh5/A/tMYJwAZ37Mwa6jafVvW/nysLIbNQ="
},
{
"pname": "Serilog.Settings.Configuration",
"version": "9.0.0",
"hash": "sha256-Q/q5UiSrcxoy5a/orod20E2RfiRtHDhxjjGMe1dW35I="
},
{
"pname": "Serilog.Sinks.Console",
"version": "6.0.0",
"hash": "sha256-QH8ykDkLssJ99Fgl+ZBFBr+RQRl0wRTkeccQuuGLyro="
},
{
"pname": "Serilog.Sinks.File",
"version": "6.0.0",
"hash": "sha256-KQmlUpG9ovRpNqKhKe6rz3XMLUjkBqjyQhEm2hV5Sow="
},
{
"pname": "Serilog.Sinks.File",
"version": "7.0.0",
"hash": "sha256-LxZYUoUPkCjIIVarJilnXnqQiMrFNJtoRilmzTNtUjo="
},
{
"pname": "SharpZipLib",
"version": "1.4.2",
"hash": "sha256-/giVqikworG2XKqfN9uLyjUSXr35zBuZ2FX2r8X/WUY="
},
{
"pname": "SixLabors.Fonts",
"version": "1.0.1",
"hash": "sha256-fox6f9Z5xunVXiy71KTSkb0DirMN00tuUlChyp96kiI="
},
{
"pname": "SixLabors.ImageSharp",
"version": "2.1.10",
"hash": "sha256-nmvI1fZtimtmiitXBQJhYXHsYM8IGjEMxlKcsaORC3Y="
},
{
"pname": "SixLabors.ImageSharp",
"version": "3.1.11",
"hash": "sha256-MlRF+3SGfahbsB1pZGKMOrsfUCx//hCo7ECrXr03DpA="
},
{
"pname": "SkiaSharp",
"version": "2.88.9",
"hash": "sha256-jZ/4nVXYJtrz9SBf6sYc/s0FxS7ReIYM4kMkrhZS+24="
},
{
"pname": "SkiaSharp.NativeAssets.Linux",
"version": "2.88.9",
"hash": "sha256-mQ/oBaqRR71WfS66mJCvcc3uKW7CNEHoPN2JilDbw/A="
},
{
"pname": "SkiaSharp.NativeAssets.macOS",
"version": "2.88.9",
"hash": "sha256-qvGuAmjXGjGKMzOPBvP9VWRVOICSGb7aNVejU0lLe/g="
},
{
"pname": "SkiaSharp.NativeAssets.WebAssembly",
"version": "2.88.9",
"hash": "sha256-vgFL4Pdy3O1RKBp+T9N3W4nkH9yurZ0suo8u3gPmmhY="
},
{
"pname": "SkiaSharp.NativeAssets.Win32",
"version": "2.88.9",
"hash": "sha256-kP5XM5GgwHGfNJfe4T2yO5NIZtiF71Ddp0pd1vG5V/4="
},
{
"pname": "Splat",
"version": "15.1.1",
"hash": "sha256-WipAVaUx2HrYNQ9LcYm496LndmSpVbuzJxzP9FA6Ohg="
},
{
"pname": "SQLitePCLRaw.bundle_e_sqlite3",
"version": "2.1.10",
"hash": "sha256-kZIWjH/TVTXRIsHPZSl7zoC4KAMBMWmgFYGLrQ15Occ="
},
{
"pname": "SQLitePCLRaw.core",
"version": "2.1.10",
"hash": "sha256-gpZcYwiJVCVwCyJu0R6hYxyMB39VhJDmYh9LxcIVAA8="
},
{
"pname": "SQLitePCLRaw.lib.e_sqlite3",
"version": "2.1.10",
"hash": "sha256-m2v2RQWol+1MNGZsx+G2N++T9BNtQGLLHXUjcwkdCnc="
},
{
"pname": "SQLitePCLRaw.provider.e_sqlite3",
"version": "2.1.10",
"hash": "sha256-MLs3jiETLZ7k/TgkHynZegCWuAbgHaDQKTPB0iNv7Fg="
},
{
"pname": "System.CodeDom",
"version": "6.0.0",
"hash": "sha256-uPetUFZyHfxjScu5x4agjk9pIhbCkt5rG4Axj25npcQ="
},
{
"pname": "System.Collections.Immutable",
"version": "7.0.0",
"hash": "sha256-9an2wbxue2qrtugYES9awshQg+KfJqajhnhs45kQIdk="
},
{
"pname": "System.Collections.Immutable",
"version": "9.0.0",
"hash": "sha256-+6q5VMeoc5bm4WFsoV6nBXA9dV5pa/O4yW+gOdi8yac="
},
{
"pname": "System.Collections.Immutable",
"version": "9.0.8",
"hash": "sha256-/5757YLLlbkDL29+ZSoTiJ4TpFy6HQSKwdMPlT7KYQw="
},
{
"pname": "System.Collections.NonGeneric",
"version": "4.3.0",
"hash": "sha256-8/yZmD4jjvq7m68SPkJZLBQ79jOTOyT5lyzX4SCYAx8="
},
{
"pname": "System.ComponentModel.Annotations",
"version": "5.0.0",
"hash": "sha256-0pST1UHgpeE6xJrYf5R+U7AwIlH3rVC3SpguilI/MAg="
},
{
"pname": "System.Composition",
"version": "7.0.0",
"hash": "sha256-YjhxuzuVdAzRBHNQy9y/1ES+ll3QtLcd2o+o8wIyMao="
},
{
"pname": "System.Composition.AttributedModel",
"version": "7.0.0",
"hash": "sha256-3s52Dyk2J66v/B4LLYFBMyXl0I8DFDshjE+sMjW4ubM="
},
{
"pname": "System.Composition.Convention",
"version": "7.0.0",
"hash": "sha256-N4MkkBXSQkcFKsEdcSe6zmyFyMmFOHmI2BNo3wWxftk="
},
{
"pname": "System.Composition.Hosting",
"version": "7.0.0",
"hash": "sha256-7liQGMaVKNZU1iWTIXvqf0SG8zPobRoLsW7q916XC3M="
},
{
"pname": "System.Composition.Runtime",
"version": "7.0.0",
"hash": "sha256-Oo1BxSGLETmdNcYvnkGdgm7JYAnQmv1jY0gL0j++Pd0="
},
{
"pname": "System.Composition.TypedParts",
"version": "7.0.0",
"hash": "sha256-6ZzNdk35qQG3ttiAi4OXrihla7LVP+y2fL3bx40/32s="
},
{
"pname": "System.Configuration.ConfigurationManager",
"version": "9.0.0",
"hash": "sha256-+pLnTC0YDP6Kjw5DVBiFrV/Q3x5is/+6N6vAtjvhVWk="
},
{
"pname": "System.Diagnostics.Debug",
"version": "4.3.0",
"hash": "sha256-fkA79SjPbSeiEcrbbUsb70u9B7wqbsdM9s1LnoKj0gM="
},
{
"pname": "System.Diagnostics.EventLog",
"version": "9.0.0",
"hash": "sha256-tPvt6yoAp56sK/fe+/ei8M65eavY2UUhRnbrREj/Ems="
},
{
"pname": "System.Diagnostics.EventLog",
"version": "9.0.8",
"hash": "sha256-u10dcgug0Pwp83YNagVto8Pu3ieuByflYLNwAdX9Fm0="
},
{
"pname": "System.Globalization",
"version": "4.3.0",
"hash": "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="
},
{
"pname": "System.IO.Pipelines",
"version": "7.0.0",
"hash": "sha256-W2181khfJUTxLqhuAVRhCa52xZ3+ePGOLIPwEN8WisY="
},
{
"pname": "System.IO.Pipelines",
"version": "8.0.0",
"hash": "sha256-LdpB1s4vQzsOODaxiKstLks57X9DTD5D6cPx8DE1wwE="
},
{
"pname": "System.Memory",
"version": "4.5.3",
"hash": "sha256-Cvl7RbRbRu9qKzeRBWjavUkseT2jhZBUWV1SPipUWFk="
},
{
"pname": "System.Reactive",
"version": "6.0.0",
"hash": "sha256-hXB18OsiUHSCmRF3unAfdUEcbXVbG6/nZxcyz13oe9Y="
},
{
"pname": "System.Reactive",
"version": "6.0.1",
"hash": "sha256-Lo5UMqp8DsbVSUxa2UpClR1GoYzqQQcSxkfyFqB/d4Q="
},
{
"pname": "System.Reflection",
"version": "4.3.0",
"hash": "sha256-NQSZRpZLvtPWDlvmMIdGxcVuyUnw92ZURo0hXsEshXY="
},
{
"pname": "System.Reflection.Metadata",
"version": "7.0.0",
"hash": "sha256-GwAKQhkhPBYTqmRdG9c9taqrKSKDwyUgOEhWLKxWNPI="
},
{
"pname": "System.Reflection.TypeExtensions",
"version": "4.7.0",
"hash": "sha256-GEtCGXwtOnkYejSV+Tfl+DqyGq5jTUaVyL9eMupMHBM="
},
{
"pname": "System.Resources.ResourceManager",
"version": "4.3.0",
"hash": "sha256-idiOD93xbbrbwwSnD4mORA9RYi/D/U48eRUsn/WnWGo="
},
{
"pname": "System.Runtime",
"version": "4.3.0",
"hash": "sha256-51813WXpBIsuA6fUtE5XaRQjcWdQ2/lmEokJt97u0Rg="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "5.0.0",
"hash": "sha256-neARSpLPUzPxEKhJRwoBzhPxK+cKIitLx7WBYncsYgo="
},
{
"pname": "System.Runtime.CompilerServices.Unsafe",
"version": "6.0.0",
"hash": "sha256-bEG1PnDp7uKYz/OgLOWs3RWwQSVYm+AnPwVmAmcgp2I="
},
{
"pname": "System.Runtime.Extensions",
"version": "4.3.0",
"hash": "sha256-wLDHmozr84v1W2zYCWYxxj0FR0JDYHSVRaRuDm0bd/o="
},
{
"pname": "System.Security.Cryptography.Pkcs",
"version": "8.0.1",
"hash": "sha256-KMNIkJ3yQ/5O6WIhPjyAIarsvIMhkp26A6aby5KkneU="
},
{
"pname": "System.Security.Cryptography.ProtectedData",
"version": "9.0.0",
"hash": "sha256-gPgPU7k/InTqmXoRzQfUMEKL3QuTnOKowFqmXTnWaBQ="
},
{
"pname": "System.Security.Cryptography.Xml",
"version": "8.0.2",
"hash": "sha256-9TCmVyMB4+By/ipU8vdYDtSnw1tkkebnXXVRdT78+28="
},
{
"pname": "System.Security.Principal.Windows",
"version": "5.0.0",
"hash": "sha256-CBOQwl9veFkrKK2oU8JFFEiKIh/p+aJO+q9Tc2Q/89Y="
},
{
"pname": "System.ServiceProcess.ServiceController",
"version": "9.0.0",
"hash": "sha256-R2tdnqpNudV9Z4BTuI2q7Yqb97ZDEOjLxBNd28HjRX8="
},
{
"pname": "System.ServiceProcess.ServiceController",
"version": "9.0.8",
"hash": "sha256-Cb/kCaHXKtuGva1lsog1NDzEWVkHL5UUhBBGlA36N9Q="
},
{
"pname": "System.Text.Encoding.CodePages",
"version": "5.0.0",
"hash": "sha256-YJ5jJqkVPp+6fEzSXOmw1sNSdygB5Rx7TJ0TrNS/wq4="
},
{
"pname": "System.Text.Json",
"version": "7.0.3",
"hash": "sha256-aSJZ17MjqaZNQkprfxm/09LaCoFtpdWmqU9BTROzWX4="
},
{
"pname": "System.Text.Json",
"version": "9.0.8",
"hash": "sha256-CEoLOj0KeuctK2jXd6yZ+/5yx4apsEh7+xsJH95h/1c="
},
{
"pname": "System.Threading",
"version": "4.3.0",
"hash": "sha256-ZDQ3dR4pzVwmaqBg4hacZaVenQ/3yAF/uV7BXZXjiWc="
},
{
"pname": "System.Threading.Channels",
"version": "7.0.0",
"hash": "sha256-Cu0gjQsLIR8Yvh0B4cOPJSYVq10a+3F9pVz/C43CNeM="
},
{
"pname": "System.Threading.Tasks",
"version": "4.3.0",
"hash": "sha256-Z5rXfJ1EXp3G32IKZGiZ6koMjRu0n8C1NGrwpdIen4w="
},
{
"pname": "Tmds.DBus.Protocol",
"version": "0.21.2",
"hash": "sha256-gaK/5aAummyin6ptnhaJbnA0ih4+2xADrtrLfFbHwYI="
},
{
"pname": "ZString",
"version": "2.6.0",
"hash": "sha256-9Q/L1SPmI+oVxvUBIz202mUn+UVsoV/y2OfhopHXzeo="
}
]

View File

@@ -0,0 +1,83 @@
{
lib,
stdenv,
buildDotnetModule,
fetchFromGitHub,
dotnetCorePackages,
wrapGAppsHook3,
glew,
gtk3,
xorg,
nix-update-script,
}:
buildDotnetModule rec {
pname = "libation";
version = "12.5.4";
src = fetchFromGitHub {
owner = "rmcrackan";
repo = "Libation";
tag = "v${version}";
hash = "sha256-W2wCtXcvft450A2cdLPbOFjHrQahSbTEbfyoSXUtH/E=";
};
sourceRoot = "${src.name}/Source";
dotnet-sdk = dotnetCorePackages.sdk_9_0;
dotnet-runtime = dotnetCorePackages.runtime_9_0;
nugetDeps = ./deps.json;
dotnetFlags = [
"-p:PublishReadyToRun=false"
# for some reason this is set to win-x64 in the project files
"-p:RuntimeIdentifier="
];
projectFile = [
"LibationAvalonia/LibationAvalonia.csproj"
"LibationCli/LibationCli.csproj"
"HangoverAvalonia/HangoverAvalonia.csproj"
];
nativeBuildInputs = [ wrapGAppsHook3 ];
runtimeDeps = [
# For Avalonia UI
glew
xorg.libXrandr
xorg.libXi
xorg.libXcursor
# For file dialogs
gtk3
];
postInstall = ''
install -Dm644 LoadByOS/LinuxConfigApp/libation_glass.svg $out/share/icons/hicolor/scalable/apps/libation.svg
install -Dm644 LoadByOS/LinuxConfigApp/Libation.desktop $out/share/applications/libation.desktop
substituteInPlace $out/share/applications/libation.desktop \
--replace-fail "/usr/bin/libation" "libation"
'';
# wrap manually, because we need lower case executables
dontDotnetFixup = true;
preFixup = ''
wrapDotnetProgram $out/lib/libation/Libation $out/bin/libation
wrapDotnetProgram $out/lib/libation/LibationCli $out/bin/libationcli
wrapDotnetProgram $out/lib/libation/Hangover $out/bin/hangover
'';
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/rmcrackan/Libation/releases/tag/v${version}";
description = "Audible audiobook manager";
homepage = "https://github.com/rmcrackan/Libation";
license = lib.licenses.gpl3Plus;
mainProgram = "libation";
maintainers = with lib.maintainers; [ tomasajt ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
autoconf,
automake,
libtool,
}:
stdenv.mkDerivation rec {
pname = "libatomic_ops";
version = "7.8.4";
src = fetchurl {
urls = [
"http://www.ivmaisoft.com/_bin/atomic_ops/libatomic_ops-${version}.tar.gz"
"https://github.com/ivmai/libatomic_ops/releases/download/v${version}/libatomic_ops-${version}.tar.gz"
];
sha256 = "sha256-I1bgAugO9pWHXpcdak/YxhylxvpP0b8xzOVKJpyL/NU=";
};
outputs = [
"out"
"dev"
"doc"
];
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isCygwin [
autoconf
automake
libtool
];
preConfigure = lib.optionalString stdenv.hostPlatform.isCygwin ''
sed -i -e "/libatomic_ops_gpl_la_SOURCES/a libatomic_ops_gpl_la_LIBADD = libatomic_ops.la" src/Makefile.am
./autogen.sh
'';
meta = {
description = "Library for semi-portable access to hardware-provided atomic memory update operations";
license = lib.licenses.gpl2Plus;
maintainers = [ lib.maintainers.raskin ];
platforms = with lib.platforms; unix ++ windows;
};
}

View File

@@ -0,0 +1,32 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
glib,
dbus-glib,
}:
stdenv.mkDerivation rec {
pname = "libaudclient";
version = "3.5-rc2";
src = fetchurl {
url = "https://distfiles.audacious-media-player.org/${pname}-${version}.tar.bz2";
sha256 = "0nhpgz0kg8r00z54q5i96pjk7s57krq3fvdypq496c7fmlv9kdap";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
glib
dbus-glib
];
meta = with lib; {
description = "Legacy D-Bus client library for Audacious";
homepage = "https://audacious-media-player.org/";
license = licenses.bsd2;
maintainers = with maintainers; [ pSub ];
platforms = with platforms; unix;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
libsndfile,
libsamplerate,
meson,
ninja,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "libaudec";
version = "0.3.4";
src = fetchFromGitHub {
owner = "zrythm";
repo = "libaudec";
rev = "v${version}";
sha256 = "sha256-8morbrq8zG+2N3ruMeJa85ci9P0wPQOfZ5H56diFEAo=";
};
buildInputs = [
libsndfile
libsamplerate
];
nativeBuildInputs = [
meson
ninja
pkg-config
];
meta = with lib; {
description = "Library for reading and resampling audio files";
homepage = "https://www.zrythm.org";
license = licenses.agpl3Plus;
mainProgram = "audec";
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libraw1394,
argp-standalone,
}:
stdenv.mkDerivation rec {
pname = "libavc1394";
version = "0.5.4";
src = fetchurl {
url = "mirror://sourceforge/libavc1394/${pname}-${version}.tar.gz";
sha256 = "0lsv46jdqvdx5hx92v0z2cz3yh6212pz9gk0k3513sbaa04zzcbw";
};
buildInputs = lib.optional stdenv.hostPlatform.isMusl argp-standalone;
nativeBuildInputs = [ pkg-config ];
propagatedBuildInputs = [ libraw1394 ];
NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-largp";
meta = {
description = "Programming interface for the 1394 Trade Association AV/C (Audio/Video Control) Digital Interface Command Set";
homepage = "https://sourceforge.net/projects/libavc1394/";
license = lib.licenses.lgpl21Plus;
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,128 @@
{
lib,
stdenv,
fetchFromGitHub,
libaom,
cmake,
pkg-config,
zlib,
libpng,
libjpeg,
libwebp,
libxml2,
dav1d,
libyuv,
gdk-pixbuf,
makeWrapper,
gtest,
}:
let
gdkPixbufModuleDir = "${placeholder "out"}/${gdk-pixbuf.moduleDir}";
gdkPixbufModuleFile = "${placeholder "out"}/${gdk-pixbuf.binaryDir}/avif-loaders.cache";
libargparse = fetchFromGitHub {
owner = "kmurray";
repo = "libargparse";
rev = "ee74d1b53bd680748af14e737378de57e2a0a954";
hash = "sha256-8RzKNjnX+Bpr6keck5xQL1NdfqMGNLLOUfB+zz5Iac8=";
};
in
stdenv.mkDerivation rec {
pname = "libavif";
version = "1.3.0";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "AOMediaCodec";
repo = "libavif";
rev = "v${version}";
hash = "sha256-0J56wpXa2AVh9JUp5UY2kzWijNE3i253RKhpG5oDFJE=";
};
postPatch = ''
substituteInPlace contrib/gdk-pixbuf/avif.thumbnailer.in \
--replace-fail '@CMAKE_INSTALL_FULL_BINDIR@/gdk-pixbuf-thumbnailer' "$out/libexec/gdk-pixbuf-thumbnailer-avif"
ln -s ${libargparse} ext/libargparse
'';
# reco: encode libaom slowest but best, decode dav1d fastest
cmakeFlags = [
"-DBUILD_SHARED_LIBS=ON"
"-DAVIF_CODEC_AOM=SYSTEM" # best encoder (slow but small)
"-DAVIF_CODEC_DAV1D=SYSTEM" # best decoder (fast)
"-DAVIF_BUILD_APPS=ON"
"-DAVIF_BUILD_GDK_PIXBUF=ON"
"-DAVIF_LIBSHARPYUV=SYSTEM"
"-DAVIF_LIBXML2=SYSTEM"
"-DAVIF_BUILD_TESTS=ON"
"-DAVIF_GTEST=SYSTEM"
];
nativeBuildInputs = [
cmake
pkg-config
gdk-pixbuf
makeWrapper
];
buildInputs = [
gdk-pixbuf
gtest
zlib
libpng
libjpeg
libwebp
libxml2
];
propagatedBuildInputs = [
dav1d
libaom
libyuv
];
env.PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = gdkPixbufModuleDir;
doCheck = true;
postInstall = ''
GDK_PIXBUF_MODULEDIR=${gdkPixbufModuleDir} \
GDK_PIXBUF_MODULE_FILE=${gdkPixbufModuleFile} \
gdk-pixbuf-query-loaders --update-cache
''
# Cross-compiled gdk-pixbuf doesn't support thumbnailers
+ lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
mkdir -p "$out/bin"
makeWrapper ${gdk-pixbuf}/bin/gdk-pixbuf-thumbnailer "$out/libexec/gdk-pixbuf-thumbnailer-avif" \
--set GDK_PIXBUF_MODULE_FILE ${gdkPixbufModuleFile}
'';
postFixup = ''
substituteInPlace $dev/lib/cmake/libavif/libavif-config.cmake \
--replace-fail "_IMPORT_PREFIX \"$out\"" "_IMPORT_PREFIX \"$dev\""
'';
meta = {
description = "C implementation of the AV1 Image File Format";
longDescription = ''
Libavif aims to be a friendly, portable C implementation of the
AV1 Image File Format. It is a work-in-progress, but can already
encode and decode all AOM supported YUV formats and bit depths
(with alpha). It also features an encoder and a decoder
(avifenc/avifdec).
'';
homepage = "https://github.com/AOMediaCodec/libavif";
changelog = "https://github.com/AOMediaCodec/libavif/blob/v${version}/CHANGELOG.md";
maintainers = with lib.maintainers; [ mkg20001 ];
platforms = lib.platforms.all;
license = lib.licenses.bsd2;
};
}

View File

@@ -0,0 +1,44 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
glibc,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libax25";
version = "0.0.12-rc5";
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
glibc
]
++ lib.optionals stdenv.hostPlatform.isStatic [ glibc.static ];
# src from linux-ax25.in-berlin.de remote has been
# unreliable, pointing to github mirror from the radiocatalog
src = fetchFromGitHub {
owner = "radiocatalog";
repo = "libax25";
tag = "libax25-${finalAttrs.version}";
hash = "sha256-MQDrroRZhtWJiu3N7FQVp5/sqe1MDjdwKu4ufnfHTUM=";
};
configureFlags = [ "--sysconfdir=/etc" ];
LDFLAGS = lib.optionals stdenv.hostPlatform.isStatic [
"-static-libgcc"
"-static"
];
meta = with lib; {
description = "AX.25 library for hamradio applications";
homepage = "https://linux-ax25.in-berlin.de/wiki/Main_Page";
license = licenses.lgpl21Only;
maintainers = with maintainers; [ sarcasticadmin ];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,61 @@
{
stdenv,
fetchFromGitHub,
lib,
pkg-config,
cmake,
gtk-doc,
gtk3,
libayatana-indicator,
libdbusmenu-gtk3,
vala,
gobject-introspection,
}:
stdenv.mkDerivation rec {
pname = "libayatana-appindicator";
version = "0.5.92";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "libayatana-appindicator";
rev = version;
sha256 = "sha256-NzaWQBb2Ez1ik23wCgW1ZQh1/rY7GcPlLvaSgV7uXrA=";
};
nativeBuildInputs = [
pkg-config
cmake
gtk-doc
vala
gobject-introspection
];
buildInputs = [ gtk3 ];
propagatedBuildInputs = [
libayatana-indicator
libdbusmenu-gtk3
];
cmakeFlags = [
"-DENABLE_BINDINGS_MONO=False"
];
meta = {
description = "Ayatana Application Indicators Shared Library";
homepage = "https://github.com/AyatanaIndicators/libayatana-appindicator";
changelog = "https://github.com/AyatanaIndicators/libayatana-appindicator/blob/${version}/ChangeLog";
license = [
lib.licenses.lgpl3Plus
lib.licenses.lgpl21Plus
];
maintainers = [ lib.maintainers.nickhu ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,81 @@
{
stdenv,
lib,
fetchFromGitHub,
gitUpdater,
testers,
cmake,
glib,
gobject-introspection,
gtest,
intltool,
lomiri,
pkg-config,
systemd,
vala,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libayatana-common";
version = "0.9.11";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "libayatana-common";
tag = finalAttrs.version;
hash = "sha256-o5datBxGaGnvNvz8hvPY14DvjiFJdB7k93MumXuol0I=";
};
postPatch = ''
# Queries via pkg_get_variable, can't override prefix
substituteInPlace data/CMakeLists.txt \
--replace 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemd_user_unit_dir)' 'pkg_get_variable(SYSTEMD_USER_UNIT_DIR systemd systemd_user_unit_dir DEFINE_VARIABLES prefix=''${CMAKE_INSTALL_PREFIX})'
'';
strictDeps = true;
nativeBuildInputs = [
cmake
gobject-introspection
intltool
pkg-config
vala
];
buildInputs = [
lomiri.cmake-extras
glib
lomiri.lomiri-url-dispatcher
systemd
];
checkInputs = [
gtest
];
cmakeFlags = [
(lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck)
(lib.cmakeBool "ENABLE_LOMIRI_FEATURES" true)
(lib.cmakeBool "GSETTINGS_LOCALINSTALL" true)
(lib.cmakeBool "GSETTINGS_COMPILE" true)
];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
updateScript = gitUpdater { };
};
meta = {
description = "Common functions for Ayatana System Indicators";
homepage = "https://github.com/AyatanaIndicators/libayatana-common";
changelog = "https://github.com/AyatanaIndicators/libayatana-common/blob/${finalAttrs.version}/ChangeLog";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ OPNA2608 ];
platforms = lib.platforms.linux;
pkgConfigModules = [
"libayatana-common"
];
};
})

View File

@@ -0,0 +1,43 @@
{
ayatana-ido,
cmake,
fetchFromGitHub,
glib,
gtk3,
lib,
pkg-config,
stdenv,
}:
stdenv.mkDerivation rec {
pname = "libayatana-indicator";
version = "0.9.4";
src = fetchFromGitHub {
owner = "AyatanaIndicators";
repo = "libayatana-indicator";
rev = version;
sha256 = "sha256-OsguZ+jl274uPSCTFHq/ZwUE3yHR7MlUPHCpfmn1F7A=";
};
nativeBuildInputs = [
cmake
glib # for glib-mkenums
pkg-config
];
buildInputs = [ gtk3 ];
propagatedBuildInputs = [ ayatana-ido ];
strictDeps = true;
meta = {
description = "Ayatana Indicators Shared Library";
homepage = "https://github.com/AyatanaIndicators/libayatana-indicator";
changelog = "https://github.com/AyatanaIndicators/libayatana-indicator/blob/${version}/ChangeLog";
license = lib.licenses.gpl3Plus;
maintainers = [ lib.maintainers.nickhu ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,47 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
libtool,
pkg-config,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libb2";
version = "0.98.1";
src = fetchFromGitHub {
owner = "BLAKE2";
repo = "libb2";
tag = "v${finalAttrs.version}";
sha256 = "0qj8aaqvfcavj1vj5asm4pqm03ap7q8x4c2fy83cqggvky0frgya";
};
nativeBuildInputs = [
autoreconfHook
libtool
pkg-config
];
configureFlags = lib.optional stdenv.hostPlatform.isx86 "--enable-fat=yes";
enableParallelBuilding = true;
doCheck = true;
passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
meta = with lib; {
description = "BLAKE2 family of cryptographic hash functions";
homepage = "https://blake2.net/";
pkgConfigModules = [ "libb2" ];
platforms = platforms.all;
maintainers = with maintainers; [
dfoxfranke
dotlambda
];
license = licenses.cc0;
};
})

View File

@@ -0,0 +1,68 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
}:
stdenv.mkDerivation rec {
pname = "libb64";
version = "2.0.0.1";
src = fetchFromGitHub {
owner = "libb64";
repo = "libb64";
rev = "v${version}";
sha256 = "sha256-9loDftr769qnIi00MueO86kjha2EiG9pnCLogp0Iq3c=";
};
patches = [
# Fix parallel build failure: https://github.com/libb64/libb64/pull/9
# make[1]: *** No rule to make target 'libb64.a', needed by 'c-example1'. Stop.
(fetchpatch {
name = "parallel-make.patch";
url = "https://github.com/libb64/libb64/commit/4fe47c052e9123da8f751545deb48be08c3411f6.patch";
sha256 = "18b3np3gpyzimqmk6001riqv5n70wfbclky6zzsrvj5zl1dj4ljf";
})
# Fix i686-linux build failure.
(fetchpatch {
name = "elif.patch";
url = "https://github.com/libb64/libb64/commit/819e43c8b34261ea3ee694bdc27865a033966083.patch";
hash = "sha256-r2jI6Q3rWDtArLlkAuyy7vcjsuRvX+2fBd5yk8XOMcc";
})
(fetchpatch {
name = "size_t.patch";
url = "https://github.com/libb64/libb64/commit/b5edeafc89853c48fa41a4c16393a1fdc8638ab6.patch";
hash = "sha256-+bqfOOlT/t0FLQEMHuxW1BxJcx9rk0yYM3wD43mcymo";
})
# Fix build with Clang 16.
# https://github.com/libb64/libb64/pull/10
(fetchpatch {
name = "use-proper-function-prototype-for-main.patch";
url = "https://github.com/libb64/libb64/commit/98eaf510f40e384b32c01ad4bd5c3a697fdd8560.patch";
hash = "sha256-CGslJUw0og/bBBirLm0J5Q7cf2WW/vniVAkXHlb6lbQ=";
})
]
++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) (fetchpatch {
name = "0001-example-Do-not-run-the-tests.patch";
url = "https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch?id=484e0de1e4ee107f21ae2a5c5f976ed987978baf";
sha256 = "sha256-KTsiIWJe66BKlu/A43FWfW0XAu4E7lWX/RY4NITRrm4=";
});
enableParallelBuilding = true;
installPhase = ''
mkdir -p $out $out/lib $out/bin $out/include
cp -r include/* $out/include/
cp base64/base64 $out/bin/
cp src/libb64.a src/cencode.o src/cdecode.o $out/lib/
'';
meta = {
description = "ANSI C routines for fast base64 encoding/decoding";
homepage = "https://github.com/libb64/libb64";
license = lib.licenses.publicDomain;
mainProgram = "base64";
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,201 @@
From eadfee17e7d3a1c1bb2a0ff8585772b40331ebd7 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Sat, 24 Dec 2022 15:31:51 +0100
Subject: [PATCH 1/4] libbacktrace: avoid libtool wrapping tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
When `--enable-shared` is used, libtool will produce shell scripts
instead of programs, preventing separate debug info from being generated:
objcopy --only-keep-debug btest btest_gnudebuglink.debug
objcopy: btest: file format not recognized
make[2]: *** [Makefile:2615: btest_gnudebuglink] Error 1
Lets make it properly set rpath with `-no-install` flag,
so that wrappers are not needed, as mentioned on
https://autotools.info/libtool/wrappers.html
---
Makefile.am | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 3d67909..06ccf3f 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -107,6 +107,8 @@ check_DATA =
# Flags to use when compiling test programs.
libbacktrace_TEST_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) -g
+libbacktrace_TEST_LDFLAGS = -no-install
+
if USE_DSYMUTIL
%.dSYM: %
@@ -171,48 +173,56 @@ xcoff_%.c: xcoff.c
test_elf_32_SOURCES = test_format.c testlib.c
test_elf_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_elf_32_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
test_elf_32_LDADD = libbacktrace_noformat.la elf_32.lo
BUILDTESTS += test_elf_32
test_elf_64_SOURCES = test_format.c testlib.c
test_elf_64_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_elf_64_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
test_elf_64_LDADD = libbacktrace_noformat.la elf_64.lo
BUILDTESTS += test_elf_64
test_macho_SOURCES = test_format.c testlib.c
test_macho_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_macho_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
test_macho_LDADD = libbacktrace_noformat.la macho.lo
BUILDTESTS += test_macho
test_xcoff_32_SOURCES = test_format.c testlib.c
test_xcoff_32_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_xcoff_32_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
test_xcoff_32_LDADD = libbacktrace_noformat.la xcoff_32.lo
BUILDTESTS += test_xcoff_32
test_xcoff_64_SOURCES = test_format.c testlib.c
test_xcoff_64_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_xcoff_64_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
test_xcoff_64_LDADD = libbacktrace_noformat.la xcoff_64.lo
BUILDTESTS += test_xcoff_64
test_pecoff_SOURCES = test_format.c testlib.c
test_pecoff_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_pecoff_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
test_pecoff_LDADD = libbacktrace_noformat.la pecoff.lo
BUILDTESTS += test_pecoff
test_unknown_SOURCES = test_format.c testlib.c
test_unknown_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+test_unknown_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
test_unknown_LDADD = libbacktrace_noformat.la unknown.lo
BUILDTESTS += test_unknown
unittest_SOURCES = unittest.c testlib.c
unittest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+unittest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
unittest_LDADD = libbacktrace.la
BUILDTESTS += unittest
@@ -254,7 +264,7 @@ if HAVE_OBJCOPY_DEBUGLINK
b2test_SOURCES = $(btest_SOURCES)
b2test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-b2test_LDFLAGS = -Wl,--build-id
+b2test_LDFLAGS = -Wl,--build-id $(libbacktrace_TEST_LDFLAGS)
b2test_LDADD = libbacktrace_elf_for_test.la
check_PROGRAMS += b2test
@@ -264,7 +274,7 @@ if HAVE_DWZ
b3test_SOURCES = $(btest_SOURCES)
b3test_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-b3test_LDFLAGS = -Wl,--build-id
+b3test_LDFLAGS = -Wl,--build-id $(libbacktrace_TEST_LDFLAGS)
b3test_LDADD = libbacktrace_elf_for_test.la
check_PROGRAMS += b3test
@@ -278,6 +288,7 @@ endif HAVE_ELF
btest_SOURCES = btest.c testlib.c
btest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
+btest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
btest_LDADD = libbacktrace.la
BUILDTESTS += btest
@@ -332,6 +343,7 @@ endif HAVE_DWZ
stest_SOURCES = stest.c
stest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+stest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
stest_LDADD = libbacktrace.la
BUILDTESTS += stest
@@ -354,6 +366,7 @@ if HAVE_ELF
ztest_SOURCES = ztest.c testlib.c
ztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
+ztest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
ztest_LDADD = libbacktrace.la
ztest_alloc_LDADD = libbacktrace_alloc.la
@@ -373,6 +386,7 @@ BUILDTESTS += ztest_alloc
zstdtest_SOURCES = zstdtest.c testlib.c
zstdtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
+zstdtest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
zstdtest_LDADD = libbacktrace.la
zstdtest_alloc_LDADD = libbacktrace_alloc.la
@@ -394,6 +408,7 @@ endif HAVE_ELF
edtest_SOURCES = edtest.c edtest2_build.c testlib.c
edtest_CFLAGS = $(libbacktrace_TEST_CFLAGS)
+edtest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
edtest_LDADD = libbacktrace.la
BUILDTESTS += edtest
@@ -424,6 +439,7 @@ BUILDTESTS += ttest
ttest_SOURCES = ttest.c testlib.c
ttest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -pthread
+ttest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
ttest_LDADD = libbacktrace.la
if USE_DSYMUTIL
@@ -472,12 +488,12 @@ if HAVE_COMPRESSED_DEBUG
ctestg_SOURCES = btest.c testlib.c
ctestg_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu
+ctestg_LDFLAGS = -Wl,--compress-debug-sections=zlib-gnu $(libbacktrace_TEST_LDFLAGS)
ctestg_LDADD = libbacktrace.la
ctesta_SOURCES = btest.c testlib.c
ctesta_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi
+ctesta_LDFLAGS = -Wl,--compress-debug-sections=zlib-gabi $(libbacktrace_TEST_LDFLAGS)
ctesta_LDADD = libbacktrace.la
BUILDTESTS += ctestg ctesta
@@ -486,7 +502,7 @@ if HAVE_COMPRESSED_DEBUG_ZSTD
ctestzstd_SOURCES = btest.c testlib.c
ctestzstd_CFLAGS = $(libbacktrace_TEST_CFLAGS)
-ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd
+ctestzstd_LDFLAGS = -Wl,--compress-debug-sections=zstd $(libbacktrace_TEST_LDFLAGS)
ctestzstd_LDADD = libbacktrace.la
BUILDTESTS += ctestzstd
@@ -533,6 +549,7 @@ endif
mtest_SOURCES = mtest.c testlib.c
mtest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -O
+mtest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
mtest_LDADD = libbacktrace.la
BUILDTESTS += mtest
@@ -565,6 +582,7 @@ if HAVE_ELF
xztest_SOURCES = xztest.c testlib.c
xztest_CFLAGS = $(libbacktrace_TEST_CFLAGS) -DSRCDIR=\"$(srcdir)\"
+xztest_LDFLAGS = $(libbacktrace_TEST_LDFLAGS)
xztest_LDADD = libbacktrace.la
xztest_alloc_SOURCES = $(xztest_SOURCES)
--
2.43.1

View File

@@ -0,0 +1,115 @@
From 2ceaa9bc8a9a0c8a02806a92e19bd21b3fccf3a0 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Sat, 24 Dec 2022 16:46:18 +0100
Subject: [PATCH 2/4] libbacktrace: Allow configuring debug dir
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
On platforms that do not use FHS like NixOS or GNU Guix,
the build-id directories are not under `/usr/lib/debug`.
Lets add `--with-separate-debug-dir` configure flag so that
the path can be changed. The same flag is supported by gdb:
https://github.com/bminor/binutils-gdb/blob/095f84c7e3cf85cd68c657c46b80be078f336bc9/gdb/configure.ac#L113-L115
---
Makefile.am | 13 +++++++------
configure.ac | 8 ++++++++
elf.c | 4 ++--
3 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 06ccf3f..6304faa 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -33,7 +33,8 @@ ACLOCAL_AMFLAGS = -I config
AM_CPPFLAGS =
-AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG)
+AM_CFLAGS = $(EXTRA_FLAGS) $(WARN_FLAGS) $(PIC_FLAG) \
+ -DSYSTEM_DEBUG_DIR=\"$(SEPARATE_DEBUG_DIR)\"
include_HEADERS = backtrace.h backtrace-supported.h
@@ -134,7 +135,7 @@ libbacktrace_noformat_la_DEPENDENCIES = $(libbacktrace_noformat_la_LIBADD)
if HAVE_ELF
if HAVE_OBJCOPY_DEBUGLINK
-TEST_BUILD_ID_DIR=$(abs_builddir)/usr/lib/debug/.build-id/
+TEST_DEBUG_DIR=$(abs_builddir)/usr/lib/debug
check_LTLIBRARIES += libbacktrace_elf_for_test.la
@@ -143,8 +144,8 @@ libbacktrace_elf_for_test_la_LIBADD = $(BACKTRACE_FILE) elf_for_test.lo \
$(VIEW_FILE) $(ALLOC_FILE)
elf_for_test.c: elf.c
- SEARCH='^#define SYSTEM_BUILD_ID_DIR.*$$'; \
- REPLACE="#define SYSTEM_BUILD_ID_DIR \"$(TEST_BUILD_ID_DIR)\""; \
+ SEARCH='^#define BUILD_ID_DIR.*$$'; \
+ REPLACE='\0\n#undef SYSTEM_DEBUG_DIR\n#define SYSTEM_DEBUG_DIR "$(TEST_DEBUG_DIR)"'; \
$(SED) "s%$$SEARCH%$$REPLACE%" \
$< \
> $@.tmp
@@ -474,13 +475,13 @@ endif HAVE_OBJCOPY_DEBUGLINK
%_buildid: %
./install-debuginfo-for-buildid.sh \
- "$(TEST_BUILD_ID_DIR)" \
+ "$(TEST_DEBUG_DIR)/.build-id" \
$<
$(OBJCOPY) --strip-debug $< $@
%_buildidfull: %
./install-debuginfo-for-buildid.sh \
- "$(TEST_BUILD_ID_DIR)" \
+ "$(TEST_DEBUG_DIR)/.build-id" \
$<
$(OBJCOPY) --strip-all $< $@
diff --git a/configure.ac b/configure.ac
index 69304ea..aeb2ee9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,6 +67,14 @@ AM_MAINTAINER_MODE
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=SUBDIR Configuring in a subdirectory for target])
+AC_ARG_WITH(separate-debug-dir,
+[ --with-separate-debug-dir=DEBUGDIR Look for global separate debug info in this path @<:@LIBDIR/debug@:>@],
+[separate_debug_dir=$withval],
+[separate_debug_dir=$libdir/debug])
+
+SEPARATE_DEBUG_DIR=$separate_debug_dir
+AC_SUBST(SEPARATE_DEBUG_DIR)
+
# We must force CC to /not/ be precious variables; otherwise
# the wrong, non-multilib-adjusted value will be used in multilibs.
# As a side effect, we have to subst CFLAGS ourselves.
diff --git a/elf.c b/elf.c
index 3ef07bb..21fbe4f 100644
--- a/elf.c
+++ b/elf.c
@@ -856,7 +856,7 @@ elf_readlink (struct backtrace_state *state, const char *filename,
}
}
-#define SYSTEM_BUILD_ID_DIR "/usr/lib/debug/.build-id/"
+#define BUILD_ID_DIR "/.build-id/"
/* Open a separate debug info file, using the build ID to find it.
Returns an open file descriptor, or -1.
@@ -870,7 +870,7 @@ elf_open_debugfile_by_buildid (struct backtrace_state *state,
backtrace_error_callback error_callback,
void *data)
{
- const char * const prefix = SYSTEM_BUILD_ID_DIR;
+ const char * const prefix = SYSTEM_DEBUG_DIR BUILD_ID_DIR;
const size_t prefix_len = strlen (prefix);
const char * const suffix = ".debug";
const size_t suffix_len = strlen (suffix);
--
2.43.1

View File

@@ -0,0 +1,101 @@
From 47c3503938c863d55c835463d8815b5fa4ab8326 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Sat, 24 Dec 2022 20:19:27 +0100
Subject: [PATCH 3/4] libbacktrace: Support multiple build id directories
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
gdb supports multiple debug directories separated by colons:
https://github.com/bminor/binutils-gdb/blob/fcbfb25dcca625a7f999ec51d48b6fc3a32123c3/gdb/build-id.c#L136-L142
This is useful for example when using dwarffs in addition
to debug data installed using distributions package manager.
---
elf.c | 57 ++++++++++++++++++++++++++++++++++++---------------------
1 file changed, 36 insertions(+), 21 deletions(-)
diff --git a/elf.c b/elf.c
index 21fbe4f..ccffa95 100644
--- a/elf.c
+++ b/elf.c
@@ -865,12 +865,12 @@ elf_readlink (struct backtrace_state *state, const char *filename,
when the build ID is known is in /usr/lib/debug/.build-id. */
static int
-elf_open_debugfile_by_buildid (struct backtrace_state *state,
+elf_open_debugfile_by_buildid (const char * const prefix,
+ struct backtrace_state *state,
const char *buildid_data, size_t buildid_size,
backtrace_error_callback error_callback,
void *data)
{
- const char * const prefix = SYSTEM_DEBUG_DIR BUILD_ID_DIR;
const size_t prefix_len = strlen (prefix);
const char * const suffix = ".debug";
const size_t suffix_len = strlen (suffix);
@@ -6947,27 +6947,42 @@ elf_add (struct backtrace_state *state, const char *filename, int descriptor,
if (buildid_data != NULL)
{
int d;
+ char debug_directories[strlen(SYSTEM_DEBUG_DIR) + 1];
+ char *debug_dir;
- d = elf_open_debugfile_by_buildid (state, buildid_data, buildid_size,
- error_callback, data);
- if (d >= 0)
- {
- int ret;
+ strcpy(debug_directories, SYSTEM_DEBUG_DIR);
- elf_release_view (state, &buildid_view, error_callback, data);
- if (debuglink_view_valid)
- elf_release_view (state, &debuglink_view, error_callback, data);
- if (debugaltlink_view_valid)
- elf_release_view (state, &debugaltlink_view, error_callback, data);
- ret = elf_add (state, "", d, NULL, 0, base_address, opd,
- error_callback, data, fileline_fn, found_sym,
- found_dwarf, NULL, 0, 1, NULL, 0);
- if (ret < 0)
- backtrace_close (d, error_callback, data);
- else if (descriptor >= 0)
- backtrace_close (descriptor, error_callback, data);
- return ret;
- }
+ debug_dir = strtok (debug_directories, ":");
+ while (debug_dir != NULL)
+ {
+ char prefix[strlen(debug_dir) + strlen(BUILD_ID_DIR) + 1];
+ strcpy(prefix, debug_dir);
+ strcat(prefix, BUILD_ID_DIR);
+
+ d = elf_open_debugfile_by_buildid (prefix, state, buildid_data, buildid_size,
+ error_callback, data);
+
+ if (d >= 0)
+ {
+ int ret;
+
+ elf_release_view (state, &buildid_view, error_callback, data);
+ if (debuglink_view_valid)
+ elf_release_view (state, &debuglink_view, error_callback, data);
+ if (debugaltlink_view_valid)
+ elf_release_view (state, &debugaltlink_view, error_callback, data);
+ ret = elf_add (state, "", d, NULL, 0, base_address, opd,
+ error_callback, data, fileline_fn, found_sym,
+ found_dwarf, NULL, 0, 1, NULL, 0);
+ if (ret < 0)
+ backtrace_close (d, error_callback, data);
+ else if (descriptor >= 0)
+ backtrace_close (descriptor, error_callback, data);
+ return ret;
+ }
+
+ debug_dir = strtok (NULL, ":");
+ }
}
if (buildid_view_valid)
--
2.43.1

View File

@@ -0,0 +1,42 @@
From 884ef7c843be906d62e4240c2a0e885dcd5a5726 Mon Sep 17 00:00:00 2001
From: Jan Tojnar <jtojnar@gmail.com>
Date: Sat, 24 Dec 2022 20:30:22 +0100
Subject: [PATCH 4/4] libbacktrace: Support NIX_DEBUG_INFO_DIRS environment
variable
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Lets make debug data lookup work on NixOS just like in gdb.
---
elf.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/elf.c b/elf.c
index ccffa95..e86950d 100644
--- a/elf.c
+++ b/elf.c
@@ -6946,11 +6946,18 @@ elf_add (struct backtrace_state *state, const char *filename, int descriptor,
if (buildid_data != NULL)
{
+ const char *debug_directories_immutable;
+ const char *nix_debug = getenv ("NIX_DEBUG_INFO_DIRS");
+ if (nix_debug != NULL)
+ debug_directories_immutable = nix_debug;
+ else
+ debug_directories_immutable = SYSTEM_DEBUG_DIR;
+
int d;
- char debug_directories[strlen(SYSTEM_DEBUG_DIR) + 1];
+ char debug_directories[strlen(debug_directories_immutable) + 1];
char *debug_dir;
- strcpy(debug_directories, SYSTEM_DEBUG_DIR);
+ strcpy(debug_directories, debug_directories_immutable);
debug_dir = strtok (debug_directories, ":");
while (debug_dir != NULL)
--
2.43.1

View File

@@ -0,0 +1,57 @@
{
stdenv,
lib,
fetchFromGitHub,
enableStatic ? stdenv.hostPlatform.isStatic,
enableShared ? !stdenv.hostPlatform.isStatic,
unstableGitUpdater,
autoreconfHook,
}:
stdenv.mkDerivation {
pname = "libbacktrace";
version = "0-unstable-2024-03-02";
src = fetchFromGitHub {
owner = "ianlancetaylor";
repo = "libbacktrace";
rev = "28824f2cc9069e3fdc39d3702acdf753e35c41b4";
sha256 = "1k1O1GT22hZAWPF8NYP0y4qe+e3pGfzT9Mz2TH+H/v4=";
};
patches = [
# Fix tests with shared library.
# https://github.com/ianlancetaylor/libbacktrace/pull/99
./0001-libbacktrace-avoid-libtool-wrapping-tests.patch
# Support multiple debug dirs.
# https://github.com/ianlancetaylor/libbacktrace/pull/100
./0002-libbacktrace-Allow-configuring-debug-dir.patch
./0003-libbacktrace-Support-multiple-build-id-directories.patch
# Support NIX_DEBUG_INFO_DIRS environment variable.
./0004-libbacktrace-Support-NIX_DEBUG_INFO_DIRS-environment.patch
];
nativeBuildInputs = [
autoreconfHook
];
configureFlags = [
(lib.enableFeature enableStatic "static")
(lib.enableFeature enableShared "shared")
];
doCheck = stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isMusl;
passthru = {
updateScript = unstableGitUpdater { };
};
meta = with lib; {
description = "C library that may be linked into a C/C++ program to produce symbolic backtraces";
homepage = "https://github.com/ianlancetaylor/libbacktrace";
maintainers = with maintainers; [ twey ];
license = with licenses; [ bsd3 ];
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
libgcrypt,
pkg-config,
}:
stdenv.mkDerivation rec {
pname = "libbase58";
version = "0.1.4";
src = fetchFromGitHub {
owner = "bitcoin";
repo = "libbase58";
rev = "v${version}";
hash = "sha256-CU55V89GbcYnrhwTPFMd13EGeCk/x9nQswUZ2JsYsUU=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [ libgcrypt ];
meta = {
description = "C library for Bitcoin's base58 encoding";
homepage = "https://github.com/bitcoin/libbase58";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ nagy ];
mainProgram = "base58";
platforms = lib.platforms.all;
};
}

View File

@@ -0,0 +1,27 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "libbaseencode";
version = "1.0.15";
src = fetchFromGitHub {
owner = "paolostivanin";
repo = "libbaseencode";
rev = "v${version}";
sha256 = "sha256-WiE+ZMX4oZieER1pu43aSWytkxfkQdX+S3JI98XPpL4=";
};
nativeBuildInputs = [ cmake ];
meta = with lib; {
description = "Library written in C for encoding and decoding data using base32 or base64 (RFC-4648)";
homepage = "https://github.com/paolostivanin/libbaseencode";
license = licenses.asl20;
maintainers = with maintainers; [ alexbakker ];
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchurl,
fuse,
ncurses,
python3,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libbde";
version = "20240502";
src = fetchurl {
url = "https://github.com/libyal/libbde/releases/download/${finalAttrs.version}/libbde-alpha-${finalAttrs.version}.tar.gz";
hash = "sha256-La6rzBOfyBIXDn78vXb8GUt8jgQkzsqM38kRZ7t3Fp0=";
};
buildInputs = [
fuse
ncurses
python3
];
preInstall = ''
substituteInPlace pybde/Makefile \
--replace-fail '$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install' ' '
'';
configureFlags = [ "--enable-python" ];
passthru.updateScript = nix-update-script { };
meta = {
description = "Library to access the BitLocker Drive Encryption (BDE) format";
homepage = "https://github.com/libyal/libbde/";
license = lib.licenses.lgpl3;
maintainers = with lib.maintainers; [
eliasp
bot-wxt1221
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,39 @@
{
lib,
stdenv,
fetchurl,
libgcrypt,
libgpg-error,
gettext,
}:
# library that allows libbluray to play BDplus protected bluray disks
# libaacs does not infringe DRM's right or copyright. See the legal page of the website for more info.
# Info on how to use / obtain aacs keys:
# http://vlc-bluray.whoknowsmy.name/
# https://wiki.archlinux.org/index.php/BluRay
stdenv.mkDerivation rec {
pname = "libbdplus";
version = "0.2.0";
src = fetchurl {
url = "http://get.videolan.org/libbdplus/${version}/${pname}-${version}.tar.bz2";
sha256 = "sha256-uT7qPq7zPW6RVdLDSwaMUFSTqlpJNuYydPQ0KrD0Clg=";
};
buildInputs = [
libgcrypt
libgpg-error
gettext
];
meta = with lib; {
homepage = "http://www.videolan.org/developers/libbdplus.html";
description = "Library to access BD+ protected Blu-Ray disks";
license = licenses.lgpl21;
maintainers = [ ];
platforms = with platforms; unix;
};
}

View File

@@ -0,0 +1,35 @@
{
lib,
fetchzip,
stdenv,
gettext,
libtool,
pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libbfio";
version = "20221025";
src = fetchzip {
url = "https://github.com/libyal/libbfio/releases/download/${finalAttrs.version}/libbfio-alpha-${finalAttrs.version}.tar.gz";
hash = "sha256-SwKQlmifyUo49yvo8RV+0nfvScPY5u+UrwjRZK2+qAg=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [
gettext
libtool
];
meta = {
description = "Library to provide basic file input/output abstraction";
homepage = "https://github.com/libyal/libbfio";
license = with lib.licenses; [
gpl3Plus
lgpl3Plus
];
maintainers = with lib.maintainers; [ d3vil0p3r ];
platforms = with lib.platforms; unix ++ windows;
};
})

View File

@@ -0,0 +1,43 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
heatshrink,
zlib,
boost,
catch2_3,
}:
stdenv.mkDerivation {
pname = "libbgcode";
version = "0-unstable-2025-02-19";
src = fetchFromGitHub {
owner = "prusa3d";
repo = "libbgcode";
rev = "5041c093b33e2748e76d6b326f2251310823f3df";
hash = "sha256-EaxVZerH2v8b1Yqk+RW/r3BvnJvrAelkKf8Bd+EHbEc=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
heatshrink
zlib
boost
catch2_3
];
meta = with lib; {
homepage = "https://github.com/prusa3d/libbgcode";
description = "Prusa Block & Binary G-code reader / writer / converter";
mainProgram = "bgcode";
license = licenses.agpl3Only;
maintainers = with maintainers; [ lach ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,26 @@
diff --git a/host/utilities/bladeRF-fsk/c/src/fir_filter.c b/host/utilities/bladeRF-fsk/c/src/fir_filter.c
index 59f34f0..7def697 100644
--- a/host/utilities/bladeRF-fsk/c/src/fir_filter.c
+++ b/host/utilities/bladeRF-fsk/c/src/fir_filter.c
@@ -213,18 +213,18 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
- inbuf = calloc(2*sizeof(int16_t), chunk_size);
+ inbuf = calloc(chunk_size, 2*sizeof(int16_t));
if (!inbuf) {
perror("calloc");
goto out;
}
- tempbuf = calloc(2*sizeof(int16_t), chunk_size);
+ tempbuf = calloc(chunk_size, 2*sizeof(int16_t));
if (!tempbuf) {
perror("calloc");
goto out;
}
- outbuf = calloc(sizeof(struct complex_sample), chunk_size);
+ outbuf = calloc(chunk_size, sizeof(struct complex_sample));
if (!outbuf) {
perror("calloc");
goto out;

View File

@@ -0,0 +1,80 @@
{
stdenv,
lib,
fetchFromGitHub,
pkg-config,
cmake,
git,
doxygen,
help2man,
ncurses,
tecla,
libusb1,
udev,
}:
stdenv.mkDerivation rec {
pname = "libbladeRF";
version = "2.5.0";
src = fetchFromGitHub {
owner = "Nuand";
repo = "bladeRF";
tag = "libbladeRF_v${version}";
hash = "sha256-H40w5YKp6M3QLrsPhILEnJiWutCYLtbgC4a63sV397Q=";
fetchSubmodules = true;
};
patches = [
# https://github.com/Nuand/bladeRF/issues/994
./gcc-14-calloc-fixes.diff
];
nativeBuildInputs = [
cmake
pkg-config
git
doxygen
help2man
];
# ncurses used due to https://github.com/Nuand/bladeRF/blob/ab4fc672c8bab4f8be34e8917d3f241b1d52d0b8/host/utilities/bladeRF-cli/CMakeLists.txt#L208
buildInputs = [
tecla
libusb1
]
++ lib.optionals stdenv.hostPlatform.isLinux [ udev ]
++ lib.optionals stdenv.hostPlatform.isDarwin [ ncurses ];
# Fixup shebang
prePatch = "patchShebangs host/utilities/bladeRF-cli/src/cmd/doc/generate.bash";
# Let us avoid net-tools as a dependency.
postPatch = ''
sed -i 's/$(hostname)/hostname/' host/utilities/bladeRF-cli/src/cmd/doc/generate.bash
'';
doInstallCheck = true;
cmakeFlags = [
"-DBUILD_DOCUMENTATION=ON"
]
++ lib.optionals stdenv.hostPlatform.isLinux [
"-DUDEV_RULES_PATH=etc/udev/rules.d"
"-DINSTALL_UDEV_RULES=ON"
"-DBLADERF_GROUP=bladerf"
];
env = lib.optionalAttrs stdenv.cc.isClang {
NIX_CFLAGS_COMPILE = "-Wno-error=unused-but-set-variable";
};
hardeningDisable = [ "fortify" ];
meta = with lib; {
homepage = "https://nuand.com/libbladeRF-doc";
description = "Supporting library of the BladeRF SDR opensource hardware";
license = licenses.lgpl21;
maintainers = with maintainers; [ markuskowa ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,70 @@
{
lib,
stdenv,
cmake,
fetchFromGitHub,
fetchpatch,
onetbb,
useTBB ? true,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libblake3";
version = "1.8.2";
outputs = [
"out"
"dev"
];
src = fetchFromGitHub {
owner = "BLAKE3-team";
repo = "BLAKE3";
tag = finalAttrs.version;
hash = "sha256-IABVErXWYQFXZcwsFKfQhm3ox7UZUcW5uzVrGwsSp94=";
};
patches = [
# build(cmake): Use tbb32 pkgconfig package on 32-bit builds (BLAKE3-team/BLAKE3#482)
(fetchpatch {
url = "https://github.com/BLAKE3-team/BLAKE3/commit/dab799623310c8f4be6575002d5c681c09a0e209.patch";
hash = "sha256-npCtM8nOFU8Tcu//IykjMs8aLU12d93+mIfKuxHkuaQ=";
relative = "c";
})
# build(cmake): Relax Clang frontend variant detection (BLAKE3-team/BLAKE3#477)
(fetchpatch {
url = "https://patch-diff.githubusercontent.com/raw/BLAKE3-team/BLAKE3/pull/477.patch";
hash = "sha256-kidCMGd/i9D9HLLTt7l1DbiU71sFTEyr3Vew4XHUHls=";
relative = "c";
})
];
sourceRoot = finalAttrs.src.name + "/c";
nativeBuildInputs = [ cmake ];
propagatedBuildInputs = lib.optionals useTBB [
onetbb
];
cmakeFlags = [
(lib.cmakeBool "BLAKE3_USE_TBB" useTBB)
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
];
meta = {
description = "Official C implementation of BLAKE3";
homepage = "https://github.com/BLAKE3-team/BLAKE3/tree/master/c";
license = with lib.licenses; [
asl20
cc0
];
maintainers = with lib.maintainers; [
fgaz
fpletz
silvanshade
];
platforms = lib.platforms.all;
};
})

View File

@@ -0,0 +1,125 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
autoreconfHook,
pkg-config,
gtk-doc,
docbook_xml_dtd_43,
python3,
gobject-introspection,
glib,
udev,
kmod,
parted,
cryptsetup,
lvm2,
util-linux,
libbytesize,
libndctl,
nss,
volume_key,
libxslt,
docbook_xsl,
gptfdisk,
libyaml,
autoconf-archive,
thin-provisioning-tools,
makeBinaryWrapper,
e2fsprogs,
libnvme,
keyutils,
libatasmart,
json-glib,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libblockdev";
version = "3.3.0";
src = fetchFromGitHub {
owner = "storaged-project";
repo = "libblockdev";
rev = finalAttrs.version;
hash = "sha256-Q7610i+2PQi+Oza3c2SwPneljrb+1cuFA4K4DQTpt8A=";
};
patches = [
# CVE-2025-6019: https://www.openwall.com/lists/oss-security/2025/06/17/5
(fetchpatch {
url = "https://github.com/storaged-project/libblockdev/commit/4e35eb93e4d2672686789b9705623cc4f9f85d02.patch";
hash = "sha256-3pQxvbFX6jmT5LCaePoVfvPTNPoTPPhT0GcLaGkVVso=";
})
];
outputs = [
"out"
"dev"
"devdoc"
"python"
];
postPatch = ''
patchShebangs scripts
substituteInPlace src/python/gi/overrides/Makefile.am \
--replace-fail ''\'''${exec_prefix}' '@PYTHON_EXEC_PREFIX@'
'';
configureFlags = [
"--with-python_prefix=${placeholder "python"}"
];
nativeBuildInputs = [
autoconf-archive
autoreconfHook
docbook_xsl
docbook_xml_dtd_43
gobject-introspection
gtk-doc
libxslt
makeBinaryWrapper
pkg-config
python3
];
buildInputs = [
cryptsetup
e2fsprogs
glib
gptfdisk
json-glib
keyutils
kmod
libatasmart
libbytesize
libndctl
libnvme
libyaml
lvm2
nss
parted
udev
util-linux
volume_key
];
postInstall = ''
wrapProgram $out/bin/lvm-cache-stats --prefix PATH : \
${lib.makeBinPath [ thin-provisioning-tools ]}
'';
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/storaged-project/libblockdev/raw/${finalAttrs.src.rev}/NEWS.rst";
description = "Library for manipulating block devices";
homepage = "http://storaged.org/libblockdev/";
license = with lib.licenses; [
lgpl2Plus
gpl2Plus
]; # lgpl2Plus for the library, gpl2Plus for the utils
maintainers = with lib.maintainers; [ johnazoidberg ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
}:
stdenv.mkDerivation {
pname = "blocksruntime";
version = "0-unstable-2017-10-28";
src = fetchFromGitHub {
owner = "mackyle";
repo = "blocksruntime";
rev = "9cc93ae2b58676c23fd02cf0c686fa15b7a3ff81";
sha256 = "sha256-pQMNZBgkF4uADOVCWXB5J3qQt8JMe8vo6ZmbtSVA5Xo=";
};
buildPhase = ''
runHook preBuild
./buildlib ${lib.optionalString (!stdenv.hostPlatform.isStatic) "-shared"}
runHook postBuild
'';
installPhase = ''
runHook preInstall
prefix="/" DESTDIR=$out ./installlib ${
if stdenv.hostPlatform.isStatic then "-static" else "-shared"
}
runHook postInstall
'';
checkPhase = ''
runHook preCheck
./checktests
runHook postCheck
'';
doCheck = false; # hasdescriptor.c test fails, hrm.
meta = with lib; {
description = "Installs the BlocksRuntime library from the compiler-rt";
homepage = "https://github.com/mackyle/blocksruntime";
license = licenses.mit;
};
}

View File

@@ -0,0 +1,69 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
fontconfig,
autoreconfHook,
withJava ? false,
jdk17,
ant,
stripJavaArchivesHook,
withAACS ? false,
libaacs,
withBDplus ? false,
libbdplus,
withMetadata ? true,
libxml2,
withFonts ? true,
freetype,
}:
# Info on how to use:
# https://wiki.archlinux.org/index.php/BluRay
stdenv.mkDerivation rec {
pname = "libbluray";
version = "1.3.4";
src = fetchurl {
url = "https://get.videolan.org/libbluray/${version}/${pname}-${version}.tar.bz2";
hash = "sha256-R4/9aKD13ejvbKmJt/A1taCiLFmRQuXNP/ewO76+Xys=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
]
++ lib.optionals withJava [
jdk17
ant
stripJavaArchivesHook
];
buildInputs = [
fontconfig
]
++ lib.optional withMetadata libxml2
++ lib.optional withFonts freetype;
propagatedBuildInputs = lib.optional withAACS libaacs;
env.JAVA_HOME = lib.optionalString withJava jdk17.home; # Fails at runtime without this
env.NIX_LDFLAGS =
lib.optionalString withAACS "-L${libaacs}/lib -laacs"
+ lib.optionalString withBDplus " -L${libbdplus}/lib -lbdplus";
configureFlags =
lib.optional (!withJava) "--disable-bdjava-jar"
++ lib.optional (!withMetadata) "--without-libxml2"
++ lib.optional (!withFonts) "--without-freetype";
meta = with lib; {
homepage = "http://www.videolan.org/developers/libbluray.html";
description = "Library to access Blu-Ray disks for video playback";
license = licenses.lgpl21;
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,54 @@
{
lib,
stdenv,
build2,
fetchurl,
libbutl,
enableShared ? !stdenv.hostPlatform.isStatic,
enableStatic ? !enableShared,
}:
stdenv.mkDerivation rec {
pname = "libbpkg";
version = "0.17.0";
outputs = [
"out"
"dev"
"doc"
];
src = fetchurl {
url = "https://pkg.cppget.org/1/alpha/build2/libbpkg-${version}.tar.gz";
hash = "sha256-4P4+uJGWB3iblYPuErJNr8c7/pS2UhN6LXr7MY2rWDY=";
};
nativeBuildInputs = [
build2
];
buildInputs = [
libbutl
];
build2ConfigureFlags = [
"config.bin.lib=${build2.configSharedStatic enableShared enableStatic}"
];
strictDeps = true;
doCheck = true;
meta = with lib; {
description = "Build2 package dependency manager utility library";
longDescription = ''
This library defines the types and utilities for working with build2 packages.
In particular, it provides C++ classes as well as the parser and serializer
implementations that can be used to read, manipulate, and write package,
repository and signature manifests.
'';
homepage = "https://build2.org/";
changelog = "https://git.build2.org/cgit/libbpkg/log";
license = licenses.mit;
maintainers = with maintainers; [ r-burns ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,40 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
pkg-config,
}:
stdenv.mkDerivation rec {
version = "1.3.1";
pname = "libbraiding";
src = fetchFromGitHub {
owner = "miguelmarco";
repo = "libbraiding";
# version 1.3.1 contains a typo in configure.ac, fixed in the next commit.
# TODO: remove if on upgrade
rev = if version == "1.3.1" then "b174832026c2412baec83277c461e4df71d8525c" else version;
hash = "sha256-ar/EiaMZuQRa1lr0sZPLRuk5K00j63TqNf0q0iuiKjw=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
# no tests included for now (2018-08-05), but can't hurt to activate
doCheck = true;
meta = with lib; {
homepage = "https://github.com/miguelmarco/libbraiding/";
description = "C++ library for computations on braid groups";
longDescription = ''
A library to compute several properties of braids, including centralizer and conjugacy check.
'';
license = licenses.gpl3;
teams = [ teams.sage ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
libsndfile,
}:
stdenv.mkDerivation rec {
pname = "libbs2b";
version = "3.1.0";
src = fetchurl {
url = "mirror://sourceforge/bs2b/${pname}-${version}.tar.bz2";
sha256 = "0vz442kkjn2h0dlxppzi4m5zx8qfyrivq581n06xzvnyxi5rg6a7";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ libsndfile ];
configureFlags = [
# Required for cross-compilation.
# Prevents linking error with 'undefined reference to rpl_malloc'.
# I think it's safe to assume that most libcs will properly handle
# realloc(NULL, size) and treat it like malloc(size).
"ac_cv_func_malloc_0_nonnull=yes"
];
hardeningDisable = [ "format" ];
meta = {
homepage = "https://bs2b.sourceforge.net/";
description = "Bauer stereophonic-to-binaural DSP library";
license = lib.licenses.mit;
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,13 @@
diff --git a/configure.ac b/configure.ac
index 2a15d720f9...186ab24978 100644
--- a/configure.ac
+++ b/configure.ac
@@ -254,7 +254,7 @@
abi_strl=no
abi_strmode=no
abi_strnstr=no
- abi_strtonum=no
+ abi_strtonum=yes
abi_strtox=yes
abi_timeconv=no
# On libmd.

View File

@@ -0,0 +1,64 @@
{
lib,
stdenv,
fetchurl,
autoreconfHook,
libmd,
gitUpdater,
}:
stdenv.mkDerivation rec {
pname = "libbsd";
version = "0.12.2";
src = fetchurl {
url = "https://libbsd.freedesktop.org/releases/${pname}-${version}.tar.xz";
hash = "sha256-uIzJFj0MZSqvOamZkdl03bocOpcR248bWDivKhRzEBQ=";
};
outputs = [
"out"
"dev"
"man"
];
enableParallelBuilding = true;
doCheck = true;
nativeBuildInputs = [ autoreconfHook ];
propagatedBuildInputs = [ libmd ];
patches = [
# `strtonum(3)` is not available on our default SDK version.
# https://gitlab.freedesktop.org/libbsd/libbsd/-/issues/30
./darwin-enable-strtonum.patch
];
passthru.updateScript = gitUpdater {
# No nicer place to find latest release.
url = "https://gitlab.freedesktop.org/libbsd/libbsd.git";
};
# Fix undefined reference errors with version script under LLVM.
configureFlags = lib.optionals (
stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17"
) [ "LDFLAGS=-Wl,--undefined-version" ];
meta = with lib; {
description = "Common functions found on BSD systems";
homepage = "https://libbsd.freedesktop.org/";
license = with licenses; [
beerware
bsd2
bsd3
bsdOriginal
isc
mit
];
platforms = platforms.unix;
# See architectures defined in src/local-elf.h.
badPlatforms = lib.platforms.microblaze;
maintainers = with maintainers; [ matthewbauer ];
};
}

View File

@@ -0,0 +1,34 @@
{
stdenv,
lib,
fetchFromGitHub,
cmake,
}:
stdenv.mkDerivation rec {
pname = "libbtbb";
version = "2020-12-R1";
src = fetchFromGitHub {
owner = "greatscottgadgets";
repo = "libbtbb";
rev = version;
sha256 = "1byv8174xam7siakr1p0523x97wkh0fmwmq341sd3g70qr2g767d";
};
nativeBuildInputs = [ cmake ];
# https://github.com/greatscottgadgets/libbtbb/issues/63
postPatch = ''
substituteInPlace lib/libbtbb.pc.in \
--replace '$'{prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
--replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
'';
meta = with lib; {
description = "Bluetooth baseband decoding library";
homepage = "https://github.com/greatscottgadgets/libbtbb";
license = licenses.gpl2;
maintainers = with maintainers; [ oxzi ];
};
}

View File

@@ -0,0 +1,52 @@
{
lib,
stdenv,
fetchFromGitea,
fetchpatch,
autoreconfHook,
pkg-config,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libburn";
version = "1.5.6";
src = fetchFromGitea {
domain = "dev.lovelyhq.com";
owner = "libburnia";
repo = "libburn";
rev = "release-${finalAttrs.version}";
hash = "sha256-Xo45X4374FXvlrJ4Q0PahYvuWXO0k3N0ke0mbURYt54=";
};
patches = [
# Fix the build against C23 compilers (like gcc-15):
(fetchpatch {
name = "c23.patch";
url = "https://dev.lovelyhq.com/libburnia/libburn/commit/d537f9dd35282df834a311ead5f113af67d223b3.patch";
hash = "sha256-aouU/6AchLhzMzvkVvUnFHWfebYTrkEJ6P3fF5pvE9M=";
})
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
outputs = [
"out"
"man"
];
strictDeps = true;
meta = {
homepage = "https://dev.lovelyhq.com/libburnia/web/wiki";
description = "Library by which preformatted data get onto optical media: CD, DVD, BD (Blu-Ray)";
changelog = "https://dev.lovelyhq.com/libburnia/libburn/src/tag/${finalAttrs.src.rev}/ChangeLog";
license = lib.licenses.gpl2Plus;
maintainers = [ ];
mainProgram = "cdrskin";
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,78 @@
{
lib,
autoreconfHook,
docbook_xml_dtd_43,
docbook_xsl,
fetchFromGitHub,
gettext,
gmp,
gtk-doc,
libxslt,
mpfr,
pcre2,
pkg-config,
python3Packages,
stdenv,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libbytesize";
version = "2.11";
src = fetchFromGitHub {
owner = "storaged-project";
repo = "libbytesize";
rev = finalAttrs.version;
hash = "sha256-scOnucn7xp6KKEtkpwfyrdzcntJF2l0h0fsQotcceLc=";
};
outputs = [
"out"
"dev"
"devdoc"
"man"
];
nativeBuildInputs = [
autoreconfHook
docbook_xml_dtd_43
docbook_xsl
gettext
gtk-doc
libxslt
pkg-config
python3Packages.python
];
nativeInstallCheckInputs = [
python3Packages.pythonImportsCheckHook
];
buildInputs = [
gmp
mpfr
pcre2
];
doInstallCheck = true;
strictDeps = true;
postInstall = ''
substituteInPlace $out/${python3Packages.python.sitePackages}/bytesize/bytesize.py \
--replace-fail 'CDLL("libbytesize.so.1")' "CDLL('$out/lib/libbytesize.so.1')"
# Force compilation of .pyc files to make them deterministic
${python3Packages.python.pythonOnBuildForHost.interpreter} -m compileall $out/${python3Packages.python.sitePackages}/bytesize
'';
pythonImportsCheck = [ "bytesize" ];
meta = {
homepage = "https://github.com/storaged-project/libbytesize";
description = "Tiny library providing a C 'class' for working with arbitrary big sizes in bytes";
license = lib.licenses.lgpl2Plus;
mainProgram = "bscalc";
maintainers = [ ];
platforms = lib.platforms.linux;
};
})

View File

@@ -0,0 +1,86 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
imlib2,
xorg,
ncurses,
pkg-config,
zlib,
x11Support ? !stdenv.hostPlatform.isDarwin,
}:
stdenv.mkDerivation rec {
pname = "libcaca";
version = "0.99.beta20";
src = fetchFromGitHub {
owner = "cacalabs";
repo = "libcaca";
rev = "v${version}";
hash = "sha256-N0Lfi0d4kjxirEbIjdeearYWvStkKMyV6lgeyNKXcVw=";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
ncurses
zlib
(imlib2.override { inherit x11Support; })
]
++ lib.optionals x11Support [
xorg.libX11
xorg.libXext
];
outputs = [
"bin"
"dev"
"out"
"man"
];
configureFlags = [
(if x11Support then "--enable-x11" else "--disable-x11")
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
# Suppresses a build failure building Cocoa support due to accessing private ivar `_running`,
# which no longer available.
(lib.enableFeature false "cocoa")
];
env.NIX_CFLAGS_COMPILE = lib.optionalString (!x11Support) "-DX_DISPLAY_MISSING";
postInstall = ''
mkdir -p $dev/bin
mv $bin/bin/caca-config $dev/bin/caca-config
'';
meta = with lib; {
homepage = "http://caca.zoy.org/wiki/libcaca";
description = "Graphics library that outputs text instead of pixels";
longDescription = ''
libcaca is a graphics library that outputs text instead of pixels, so that
it can work on older video cards or text terminals. It is not unlike the
famous AAlib library, with the following improvements:
- Unicode support
- 2048 available colours (some devices can only handle 16)
- dithering of colour images
- advanced text canvas operations (blitting, rotations)
Libcaca works in a text terminal (and should thus work on all Unix systems
including Mac OS X) using the S-Lang or ncurses libraries. It also works
natively on DOS and Windows.
Libcaca was written by Sam Hocevar and Jean-Yves Lamoureux.
'';
license = licenses.wtfpl;
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
glib,
nss,
}:
stdenv.mkDerivation rec {
pname = "libcacard";
version = "2.8.1";
src = fetchurl {
url = "https://www.spice-space.org/download/libcacard/${pname}-${version}.tar.xz";
sha256 = "sha256-+79N6Mt9tb3/XstnL/Db5pOfufNEuQDVG6YpUymjMuc=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
sed -i '/--version-script/d' Makefile.in
sed -i 's/^vflag = .*$/vflag = ""/' meson.build
'';
nativeBuildInputs = [ pkg-config ];
buildInputs = [
glib
nss
];
meta = with lib; {
description = "Smart card emulation library";
homepage = "https://gitlab.freedesktop.org/spice/libcacard";
license = licenses.lgpl21;
maintainers = [ ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCocmtyzPPjv+52
JiZrpZFfaZ0eeUgugc8gV+0+2Q9GEkl/xxqjiDVg31gBO3iwQov2NmGuPbXr+vwZ
QcUqNQakmmdi22tBaTtd6hMuhu9OfbP8sIFaf0dToZRHkPgf63+WCF6w0O9enEz4
zjW3kPa1eVRVekiYCXGML/VhN+h5WwWouNWgEOw5JH39ZuGmhsGN5XekkHtyMkwq
Vr+JodoSizhYs9VBYNA1J4PlyiS4BYr4pLiLffzPwRjcSS777x33g+nWNr1lsFxB
nDoVvVnq0E7fiXxlmCtAr/7dv0Ug5ixuNfZ9yoT0f+mfUiG/anmfodHujIm2Db37
jvmfxaq1AgMBAAECggEAFhJKBHSY92xod0g37A55fiZFTV8oZ1mgdXU386522yBd
y5Wf5rIcBmm1axHrFjNeCgClq3JQEk/kdP3Ccy2YBXzq04/7HYrHmd5oLYZGOINt
kExjYqN/SdTH7FmxPWN66AKIP8RcvQmfZ1GDxd4DiZNQitO3S96e53bIQPkVp8Lg
GfK6LQCdOGimD00wvRoeqbV0PWGGVMfx+KvD5hxKYolyi/hNUxToD28qCAoMlMTi
yL+17q3nIYZvUmL0k7d64U+lXF8ov3cVXNJzAzFi41MXZ2Xqk3Lj+IhNweUhlOyn
fTo8QntNlirNL/XmtJ+5mPbGufE/6zsSNOf2Cyz2aQKBgQDio/tA3tFBzOz31hox
gW6NKarhp7e5R3XHQjZPmQXKq2lGCTBN+LzwCLYDa+ZWkS+cel/xSbkUFl0dopCu
7uGrSvmVAv+l1k879WHsYmLlDjJSa8WmDtVQ0SJr70X9UJmD2BivWnTnzrpZFu2A
Nv57gvebJTI4tLfAAyIfbg8gOQKBgQC+RJRv8/jVha/4sPonQYvpH0scS0Xzwca6
xd23e+vULBpk7IVzMbVGJEDdfWXVJeAO++FSQcgTJA38nfYm2XRPZAProliLaW8o
XVhhhWbXP7Jc8BmL5zyfDaLOXNFBX2kfr/oKeOoQ+0dRDlWKlarw1SxC+RT6i2qQ
YETgXHKmXQKBgGk8mWsqy2HRZOtDqE/6eLnlciprtVy7+M14Sj21oUHVTAGwPJTH
/fs7IEEAdikWK1RuYmRoxh60r7IWDTadR35BRxjRFqILnCkMLNcVbDRN3kH1NwZ/
dr+bDG+v4ADazx2wVu39g7Erhc3eXpOddZcmXhDVObeo+nWXPt33PeDJAoGBAJ4v
+FVnuo8Tee1Cfogat87W5KSedIcnqSjpjt+Y2MXq8PrNplnSjwrE42UCd6KRvcnX
Ykr4Q/ad+D75uYgtLMVAuv2yWPl3bCJcETnrJkh5PbqFKEgntT/rn1sA0j0OrSDa
NwFz6+64a1+ZkkcJDjjykr0Px4BSXwOv9jOuyOdFAoGADZEADOLX5y4utxboe1M0
UnaFKGEDE6H8qdRJQ9bSvEwJI142al02CvnvqvP4cpd8rKOCRs9nSXFJFXCedTLy
ojSVfjTyJMTVJxab/c/Qugkxb/TqGfEnZF2yoTsfPYp2pXRd6DvyKlDQzlSOj933
FrqeSe1QKapuPRsujVwLZDU=
-----END PRIVATE KEY-----

View File

@@ -0,0 +1,143 @@
{
stdenv,
fetchgit,
lib,
meson,
ninja,
pkg-config,
makeFontsConf,
openssl,
libdrm,
libevent,
libyaml,
gst_all_1,
gtest,
graphviz,
doxygen,
python3,
python3Packages,
udev,
libpisp,
withTracing ? lib.meta.availableOn stdenv.hostPlatform lttng-ust,
lttng-ust, # withTracing
withQcam ? false,
qt6, # withQcam
libtiff, # withQcam
}:
stdenv.mkDerivation rec {
pname = "libcamera";
version = "0.5.2";
src = fetchgit {
url = "https://git.libcamera.org/libcamera/libcamera.git";
rev = "v${version}";
hash = "sha256-nr1LmnedZMGBWLf2i5uw4E/OMeXObEKgjuO+PUx/GDY=";
};
outputs = [
"out"
"dev"
];
postPatch = ''
patchShebangs src/py/ utils/
'';
# libcamera signs the IPA module libraries at install time, but they are then
# modified by stripping and RPATH fixup. Therefore, we need to generate the
# signatures again ourselves. For reproducibility, we use a static private key.
#
# If this is not done, libcamera will still try to load them, but it will
# isolate them in separate processes, which can cause crashes for IPA modules
# that are not designed for this (notably ipa_rpi.so).
preBuild = ''
ninja src/ipa-priv-key.pem
install -D ${./ipa-priv-key.pem} src/ipa-priv-key.pem
'';
postFixup = ''
../src/ipa/ipa-sign-install.sh src/ipa-priv-key.pem $out/lib/libcamera/ipa/ipa_*.so
'';
strictDeps = true;
buildInputs = [
# IPA and signing
openssl
# gstreamer integration
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
# cam integration
libevent
libdrm
# hotplugging
udev
# pycamera
python3Packages.pybind11
# yamlparser
libyaml
gtest
]
++ lib.optionals stdenv.hostPlatform.isAarch [ libpisp ]
++ lib.optionals withTracing [ lttng-ust ]
++ lib.optionals withQcam [
libtiff
qt6.qtbase
qt6.qttools
];
nativeBuildInputs = [
meson
ninja
pkg-config
python3
python3Packages.jinja2
python3Packages.pyyaml
python3Packages.ply
python3Packages.sphinx
graphviz
doxygen
openssl
]
++ lib.optional withQcam qt6.wrapQtAppsHook;
mesonFlags = [
"-Dv4l2=true"
(lib.mesonEnable "tracing" withTracing)
(lib.mesonEnable "qcam" withQcam)
"-Dlc-compliance=disabled" # tries unconditionally to download gtest when enabled
# Avoid blanket -Werror to evade build failures on less
# tested compilers.
"-Dwerror=false"
# Documentation breaks binary compatibility.
# Given that upstream also provides public documentation,
# we can disable it here.
"-Ddocumentation=disabled"
];
# Fixes error on a deprecated declaration
env.NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
# Silence fontconfig warnings about missing config
FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ ]; };
meta = with lib; {
description = "Open source camera stack and framework for Linux, Android, and ChromeOS";
homepage = "https://libcamera.org";
changelog = "https://git.libcamera.org/libcamera/libcamera.git/tag/?h=${src.rev}";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ citadelcore ];
platforms = platforms.linux;
badPlatforms = [
# Mandatory shared libraries.
lib.systems.inspect.platformPatterns.isStatic
];
};
}

View File

@@ -0,0 +1,102 @@
{
stdenv,
lib,
fetchurl,
fetchpatch,
pkg-config,
libtool,
gtk2-x11,
gtk3-x11,
gtkSupport ? null,
libpulseaudio,
gst_all_1,
libvorbis,
libcap,
withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd,
systemd,
withAlsa ? stdenv.hostPlatform.isLinux,
alsa-lib,
}:
stdenv.mkDerivation rec {
pname = "libcanberra";
version = "0.30";
src = fetchurl {
url = "http://0pointer.de/lennart/projects/libcanberra/${pname}-${version}.tar.xz";
sha256 = "0wps39h8rx2b00vyvkia5j40fkak3dpipp1kzilqla0cgvk73dn2";
};
outputs = [
"out"
"dev"
];
strictDeps = true;
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libpulseaudio
libvorbis
libtool # in buildInputs rather than nativeBuildInputs since libltdl is used (not libtool itself)
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
])
++ lib.optional (gtkSupport == "gtk2") gtk2-x11
++ lib.optional (gtkSupport == "gtk3") gtk3-x11
++ lib.optional stdenv.hostPlatform.isLinux libcap
++ lib.optional withSystemd systemd
++ lib.optional withAlsa alsa-lib;
configureFlags = [
"--disable-oss"
]
++ lib.optional stdenv.hostPlatform.isLinux "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system";
patches = [
(fetchpatch {
name = "0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch";
url = "http://git.0pointer.net/libcanberra.git/patch/?id=c0620e432650e81062c1967cc669829dbd29b310";
sha256 = "0rc7zwn39yxzxp37qh329g7375r5ywcqcaak8ryd0dgvg8m5hcx9";
})
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
(fetchpatch {
url = "https://github.com/macports/macports-ports/raw/5a7965dfea7727d1ceedee46c7b0ccee9cb23468/audio/libcanberra/files/patch-configure.diff";
sha256 = "sha256-pEJy1krciUEg5BFIS8FJ4BubjfS/nt9aqi6BLnS1+4M=";
extraPrefix = "";
})
(fetchpatch {
url = "https://github.com/macports/macports-ports/raw/5a7965dfea7727d1ceedee46c7b0ccee9cb23468/audio/libcanberra/files/dynamic_lookup-11.patch";
sha256 = "sha256-nUjha2pKh5VZl0ZZzcr9NTo1TVuMqF4OcLiztxW+ofQ=";
extraPrefix = "";
})
];
postInstall = ''
for f in $out/lib/*.la; do
sed 's|-lltdl|-L${libtool.lib}/lib -lltdl|' -i $f
done
'';
passthru = lib.optionalAttrs (gtkSupport != null) {
gtkModule = if gtkSupport == "gtk2" then "/lib/gtk-2.0" else "/lib/gtk-3.0/";
};
meta = with lib; {
description = "Implementation of the XDG Sound Theme and Name Specifications";
mainProgram = "canberra-gtk-play";
longDescription = ''
libcanberra is an implementation of the XDG Sound Theme and Name
Specifications, for generating event sounds on free desktops
such as GNOME. It comes with several backends (ALSA,
PulseAudio, OSS, GStreamer, null) and is designed to be
portable.
'';
homepage = "http://0pointer.de/lennart/projects/libcanberra/";
license = licenses.lgpl2Plus;
maintainers = with maintainers; [ RossComputerGuy ];
platforms = platforms.unix;
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitLab,
meson,
ninja,
pkg-config,
sqlite,
cppcheck,
}:
stdenv.mkDerivation rec {
pname = "libcangjie";
version = "1.4.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "cangjie";
repo = "libcangjie";
rev = "v${version}";
hash = "sha256-LZRU2hbAC8xftPAIHDKCa2SfFLuH/PVqvjZmOSoUQwc=";
};
nativeBuildInputs = [
pkg-config
meson
ninja
];
buildInputs = [
sqlite
cppcheck
];
doCheck = true;
meta = {
description = "C library implementing the Cangjie input method";
homepage = "https://gitlab.freedesktop.org/cangjie/libcangjie";
license = lib.licenses.lgpl3Plus;
maintainers = [ lib.maintainers.linquize ];
platforms = lib.platforms.all;
mainProgram = "libcangjie-cli";
};
}

View File

@@ -0,0 +1,135 @@
{
stdenv,
lib,
buildPackages,
fetchurl,
runtimeShell,
pkgsBuildHost,
usePam ? !isStatic,
pam ? null,
isStatic ? stdenv.hostPlatform.isStatic,
go,
withGo ? lib.meta.availableOn stdenv.buildPlatform go && stdenv.hostPlatform.go.GOARCH != null,
# passthru.tests
bind,
chrony,
htop,
libgcrypt,
libvirt,
ntp,
qemu,
squid,
tor,
uwsgi,
}:
assert usePam -> pam != null;
stdenv.mkDerivation rec {
pname = "libcap";
version = "2.76";
src = fetchurl {
url = "mirror://kernel/linux/libs/security/linux-privs/libcap2/${pname}-${version}.tar.xz";
hash = "sha256-Yp2kqymQDQ9/zDYicHN0MRmSX9cRyZoWibv1ybQMjm8=";
};
outputs = [
"out"
"dev"
"lib"
"man"
"doc"
]
++ lib.optional usePam "pam";
depsBuildBuild = [
buildPackages.stdenv.cc
];
nativeBuildInputs = lib.optionals withGo [
go
];
buildInputs = lib.optional usePam pam;
makeFlags = [
"lib=lib"
"PAM_CAP=${if usePam then "yes" else "no"}"
"BUILD_CC=$(CC_FOR_BUILD)"
"CC:=$(CC)"
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
]
++ lib.optionals withGo [
"GOLANG=yes"
''GOCACHE=''${TMPDIR}/go-cache''
"GOFLAGS=-trimpath"
"GOARCH=${pkgsBuildHost.go.GOARCH}"
"GOOS=${pkgsBuildHost.go.GOOS}"
]
++ lib.optionals isStatic [
"SHARED=no"
"LIBCSTATIC=yes"
];
postPatch = ''
patchShebangs ./progs/mkcapshdoc.sh
# use full path to bash
substituteInPlace progs/capsh.c --replace "/bin/bash" "${runtimeShell}"
# set prefixes
substituteInPlace Make.Rules \
--replace 'prefix=/usr' "prefix=$lib" \
--replace 'exec_prefix=' "exec_prefix=$out" \
--replace 'lib_prefix=$(exec_prefix)' "lib_prefix=$lib" \
--replace 'inc_prefix=$(prefix)' "inc_prefix=$dev" \
--replace 'man_prefix=$(prefix)' "man_prefix=$doc"
''
+ lib.optionalString withGo ''
# disable cross compilation for artifacts which are run as part of the build
substituteInPlace go/Makefile \
--replace-fail '$(GO) run' 'GOOS= GOARCH= $(GO) run'
'';
installFlags = [ "RAISE_SETFCAP=no" ];
postInstall = ''
${lib.optionalString (!isStatic) ''rm "$lib"/lib/*.a''}
mkdir -p "$doc/share/doc/${pname}-${version}"
cp License "$doc/share/doc/${pname}-${version}/"
''
+ lib.optionalString usePam ''
mkdir -p "$pam/lib/security"
mv "$lib"/lib/security "$pam/lib"
'';
strictDeps = true;
disallowedReferences = lib.optionals withGo [
pkgsBuildHost.go
];
passthru.tests = {
inherit
bind
chrony
htop
libgcrypt
libvirt
ntp
qemu
squid
tor
uwsgi
;
};
meta = {
description = "Library for working with POSIX capabilities";
homepage = "https://sites.google.com/site/fullycapable";
platforms = lib.platforms.linux;
license = lib.licenses.bsd3;
};
}

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