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,48 @@
{
stdenv,
lib,
fetchurl,
libpcap,
nixosTests,
}:
stdenv.mkDerivation rec {
pname = "ucarp";
version = "1.5.2";
src = fetchurl {
url = "https://download.pureftpd.org/pub/ucarp/ucarp-${version}.tar.bz2";
sha256 = "0qidz5sr55nxlmnl8kcbjsrff2j97b44h9l1dmhvvjl46iji7q7j";
};
buildInputs = [ libpcap ];
# Workaround build failure on -fno-common toolchains like upstream
# gcc-10. Otherwise build fails as:
# ld: daemonize.o:/build/ucarp-1.5.2/src/ip_carp.h:73: multiple definition of
# `__packed'; ucarp.o:/build/ucarp-1.5.2/src/ip_carp.h:73: first defined here
env.NIX_CFLAGS_COMPILE = "-fcommon";
passthru.tests = { inherit (nixosTests) ucarp; };
meta = with lib; {
description = "Userspace implementation of CARP";
longDescription = ''
UCARP allows a couple of hosts to share common virtual IP addresses in
order to provide automatic failover. It is a portable userland
implementation of the secure and patent-free Common Address Redundancy
Protocol (CARP, OpenBSD's alternative to the patents-bloated VRRP).
Warning: This package has not received any upstream updates for a long
time and can be considered as unmaintained.
'';
license = with licenses; [
isc
bsdOriginal
bsd2
gpl2Plus
];
maintainers = with maintainers; [ oxzi ];
mainProgram = "ucarp";
};
}

View File

@@ -0,0 +1,45 @@
{
lib,
stdenv,
fetchFromGitHub,
wxGTK32,
texinfo,
tetex,
wrapGAppsHook3,
autoconf-archive,
autoreconfHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ucblogo-code";
version = "6.2.4";
src = fetchFromGitHub {
owner = "jrincayc";
repo = "ucblogo-code";
rev = "ca23b30a62eaaf03ea203ae71d00dc45a046514e";
hash = "sha256-BVNKkT0YUqI/z5W6Y/u3WbrHmaw7Z165vFt/mlzjd+8=";
};
nativeBuildInputs = [
autoreconfHook
autoconf-archive
texinfo
tetex
wrapGAppsHook3
];
buildInputs = [
wxGTK32
];
meta = with lib; {
description = "Berkeley Logo interpreter";
homepage = "https://github.com/jrincayc/ucblogo-code";
changelog = "https://github.com/jrincayc/ucblogo-code/blob/${finalAttrs.src.rev}/changes.txt";
license = licenses.gpl3Only;
maintainers = with maintainers; [ matthewcroughan ];
mainProgram = "ucblogo-code";
platforms = platforms.all;
};
})

View File

@@ -0,0 +1,123 @@
inputs@{
autoconf,
automake,
config,
cudaPackages,
fetchFromGitHub,
lib,
libtool,
stdenv,
ucx,
# Configuration options
enableAvx ? stdenv.hostPlatform.avxSupport,
enableCuda ? config.cudaSupport,
enableSse41 ? stdenv.hostPlatform.sse4_1Support,
enableSse42 ? stdenv.hostPlatform.sse4_2Support,
}:
let
inherit (lib.attrsets) getLib;
inherit (lib.lists) optionals;
inherit (lib.strings) concatStringsSep;
inherit (cudaPackages)
cuda_cccl
cuda_cudart
cuda_nvcc
cuda_nvml_dev
flags
nccl
;
stdenv = throw "Use effectiveStdenv instead";
effectiveStdenv = if enableCuda then cudaPackages.backendStdenv else inputs.stdenv;
in
effectiveStdenv.mkDerivation (finalAttrs: {
__structuredAttrs = true;
# TODO(@connorbaker):
# When strictDeps is enabled, `cuda_nvcc` is required as the argument to `--with-cuda` in `configureFlags` or else
# configurePhase fails with `checking for cuda_runtime.h... no`.
# This is odd, especially given `cuda_runtime.h` is provided by `cuda_cudart.dev`, which is already in `buildInputs`.
strictDeps = true;
pname = "ucc";
version = "1.5.1";
src = fetchFromGitHub {
owner = "openucx";
repo = "ucc";
tag = "v${finalAttrs.version}";
hash = "sha256-gNLpcVvOsBCR0+KL21JSdWZyt/Z8EjQQTiHJw5vzOOo=";
};
outputs = [
"out"
"dev"
];
enableParallelBuilding = true;
# NOTE: We use --replace-quiet because not all Makefile.am files contain /bin/bash.
postPatch = ''
for comp in $(find src/components -name Makefile.am); do
substituteInPlace "$comp" \
--replace-quiet \
"/bin/bash" \
"${effectiveStdenv.shell}"
done
'';
nativeBuildInputs = [
autoconf
automake
libtool
]
++ optionals enableCuda [ cuda_nvcc ];
buildInputs = [
ucx
]
++ optionals enableCuda [
cuda_cccl
cuda_cudart
cuda_nvml_dev
nccl
];
# NOTE: With `__structuredAttrs` enabled, `LDFLAGS` must be set under `env` so it is assured to be a string;
# otherwise, we might have forgotten to convert it to a string and Nix would make LDFLAGS a shell variable
# referring to an array!
env.LDFLAGS = toString (
optionals enableCuda [
# Fake libnvidia-ml.so (the real one is deployed impurely)
"-L${getLib cuda_nvml_dev}/lib/stubs"
]
);
preConfigure = ''
./autogen.sh
'';
configureFlags =
optionals enableSse41 [ "--with-sse41" ]
++ optionals enableSse42 [ "--with-sse42" ]
++ optionals enableAvx [ "--with-avx" ]
++ optionals enableCuda [
"--with-cuda=${cuda_nvcc}"
"--with-nvcc-gencode=${concatStringsSep " " flags.gencode}"
];
postInstall = ''
find "$out/lib/" -name "*.la" -exec rm -f \{} \;
moveToOutput bin/ucc_info "$dev"
'';
meta = with lib; {
description = "Collective communication operations API";
homepage = "https://openucx.github.io/ucc/";
mainProgram = "ucc_info";
license = licenses.bsd3;
maintainers = [ maintainers.markuskowa ];
platforms = platforms.linux;
};
})

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
callPackage,
pkg-config,
pcre2,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ucg";
version = "unstable-2022-09-03";
src = fetchFromGitHub {
owner = "gvansickle";
repo = "ucg";
rev = "cbb185e8adad6546b7e1c5e9ca59a81f98dca49f";
hash = "sha256-Osdyxp8DoEjcr2wQLCPqOQ2zQf/0JWYxaDpZB02ACWo=";
};
outputs = [
"out"
"man"
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
pcre2
];
passthru.tests = {
simple = callPackage ./tests/simple.nix {
ucg = finalAttrs.finalPackage;
};
};
meta = {
homepage = "https://gvansickle.github.io/ucg/";
description = "Grep-like tool for searching large bodies of source code";
longDescription = ''
UniversalCodeGrep (ucg) is an extremely fast grep-like tool specialized
for searching large bodies of source code. It is intended to be largely
command-line compatible with Ack, to some extent with ag, and where
appropriate with grep. Search patterns are specified as PCRE regexes.
'';
license = lib.licenses.gpl3Plus;
mainProgram = "ucg";
maintainers = [ ];
platforms = lib.platforms.unix;
broken = stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isDarwin;
};
})
# TODO: report upstream

View File

@@ -0,0 +1,26 @@
{
stdenv,
ucg,
}:
stdenv.mkDerivation {
pname = "ucg-test";
inherit (ucg) version;
nativeBuildInputs = [ ucg ];
dontInstall = true;
buildCommand = ''
testFile=$(mktemp /tmp/ucg-test.XXXX)
echo -ne 'Lorem ipsum dolor sit amet\n2.7182818284590' > $testFile
ucg 'dolor' $testFile || { rm $testFile; exit -1; }
ucg --ignore-case 'lorem' $testFile || { rm $testFile; exit -1; }
ucg --word-regexp '2718' $testFile && { rm $testFile; exit -1; }
ucg 'pisum' $testFile && { rm $testFile; exit -1; }
rm $testFile
touch $out
'';
meta.timeout = 10;
}

View File

@@ -0,0 +1,50 @@
{
lib,
python3,
fetchFromGitHub,
fetchpatch,
}:
python3.pkgs.buildPythonApplication rec {
pname = "uchecker";
version = "0.1.2";
pyproject = true;
src = fetchFromGitHub {
owner = "cloudlinux";
repo = "kcare-uchecker";
tag = "v${version}";
hash = "sha256-SST143oi0O9PcJbw4nxHwHNY6HkIGi1WMBzveUYVhJs=";
};
patches = [
# Switch to poetry-core, https://github.com/cloudlinux/kcare-uchecker/pull/52
(fetchpatch {
name = "switch-poetry-core.patch";
url = "https://github.com/cloudlinux/kcare-uchecker/commit/d7d5ab75efa6a355b3dd3190c1edbaba8110c885.patch";
hash = "sha256-YPPw6M7MGN8nguAvAwjmz0VEYm0RD98ZkoVIq9SP3sA=";
})
];
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
nativeCheckInputs = with python3.pkgs; [
mock
pytestCheckHook
];
pythonImportsCheck = [
"uchecker"
];
meta = {
description = "Simple tool to detect outdated shared libraries";
homepage = "https://github.com/cloudlinux/kcare-uchecker";
changelog = "https://github.com/cloudlinux/kcare-uchecker/releases/tag/v${version}";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ fab ];
mainProgram = "uchecker";
};
}

View File

@@ -0,0 +1,39 @@
{
lib,
buildGoModule,
fetchFromGitHub,
makeWrapper,
stockfish,
}:
buildGoModule rec {
pname = "uchess";
version = "0.2.1";
subPackages = [ "cmd/uchess" ];
src = fetchFromGitHub {
owner = "tmountain";
repo = "uchess";
rev = "v${version}";
sha256 = "1njl3f41gshdpj431zkvpv2b7zmh4m2m5q6xsijb0c0058dk46mz";
};
vendorHash = "sha256-4yEE1AsSChayCBxaMXPsbls7xGmFeWRhfOMHyAAReDY=";
# package does not contain any tests as of v0.2.1
doCheck = false;
nativeBuildInputs = [ makeWrapper ];
postInstall = ''
wrapProgram $out/bin/uchess --suffix PATH : ${stockfish}/bin
'';
meta = with lib; {
description = "Play chess against UCI engines in your terminal";
mainProgram = "uchess";
homepage = "https://tmountain.github.io/uchess/";
maintainers = with maintainers; [ tmountain ];
license = licenses.mit;
};
}

View File

@@ -0,0 +1,56 @@
{
lib,
stdenv,
fetchFromGitHub,
chmlib,
libzip,
qt6,
cmake,
nix-update-script,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "uchmviewer";
version = "8.4";
src = fetchFromGitHub {
owner = "eBookProjects";
repo = "uChmViewer";
tag = "v${finalAttrs.version}";
hash = "sha256-p3KIIg2B+sSlwJr1rNMP7JByxYXyYFsj+UyUiDbJge8=";
};
nativeBuildInputs = [
cmake
qt6.wrapQtAppsHook
];
buildInputs = [
chmlib
libzip
qt6.qt5compat
qt6.qtwebengine
];
cmakeFlags = [
(lib.cmakeBool "USE_WEBENGINE" true)
];
postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
mkdir -p $out/{Applications,bin}
mv $out/uchmviewer.app $out/Applications
ln -s $out/Applications/uchmviewer.app/Contents/MacOS/uchmviewer $out/bin/uchmviewer
'';
passthru.updateScript = nix-update-script { };
meta = {
changelog = "https://github.com/eBookProjects/uChmViewer/releases/tag/v${finalAttrs.version}";
description = "CHM (Winhelp) files viewer (fork of KchmViewer)";
homepage = "https://github.com/eBookProjects/uChmViewer";
license = lib.licenses.gpl3Plus;
mainProgram = "uchmviewer";
maintainers = with lib.maintainers; [ azuwis ];
platforms = lib.platforms.unix;
};
})

View File

@@ -0,0 +1,36 @@
{
lib,
stdenv,
cmake,
fetchgit,
pkg-config,
libubox,
}:
stdenv.mkDerivation {
pname = "uci";
version = "unstable-2023-08-10";
src = fetchgit {
url = "https://git.openwrt.org/project/uci.git";
rev = "5781664d5087ccc4b5ab58505883231212dbedbc";
hash = "sha256-8MyFaZdAMh5oMPO/5QyNT+Or57eBL3mamJLblGGoF9g=";
};
hardeningDisable = [ "all" ];
cmakeFlags = [ "-DBUILD_LUA=OFF" ];
buildInputs = [ libubox ];
nativeBuildInputs = [
cmake
pkg-config
];
meta = with lib; {
description = "OpenWrt Unified Configuration Interface";
mainProgram = "uci";
homepage = "https://git.openwrt.org/?p=project/uci.git;a=summary";
license = licenses.lgpl21Only;
platforms = platforms.all;
maintainers = with maintainers; [ mkg20001 ];
};
}

View File

@@ -0,0 +1,26 @@
{
lib,
stdenv,
fetchurl,
}:
stdenv.mkDerivation rec {
pname = "ucl";
version = "1.03";
src = fetchurl {
url = "https://www.oberhumer.com/opensource/ucl/download/ucl-${version}.tar.gz";
sha256 = "b865299ffd45d73412293369c9754b07637680e5c826915f097577cd27350348";
};
# needed to successfully compile with gcc 6+ and modern clang versions where
# `-Wimplicit-function-declaration` is otherwise on and errors by default
env.CFLAGS = "-std=c89";
meta = {
homepage = "http://www.oberhumer.com/opensource/ucl/";
description = "Portable lossless data compression library";
license = lib.licenses.gpl2;
platforms = lib.platforms.unix;
};
}

View File

@@ -0,0 +1,153 @@
{
lib,
stdenvNoLibc,
buildPackages,
fetchurl,
gitUpdater,
linuxHeaders,
libiconvReal,
extraConfig ? "",
}:
let
stdenv = stdenvNoLibc;
isCross = (stdenv.buildPlatform != stdenv.hostPlatform);
configParser = ''
function parseconfig {
set -x
while read LINE; do
NAME=`echo "$LINE" | cut -d \ -f 1`
OPTION=`echo "$LINE" | cut -d \ -f 2`
if test -z "$NAME"; then
continue
fi
echo "parseconfig: removing $NAME"
sed -i /^$NAME=/d .config
#if test "$OPTION" != n; then
echo "parseconfig: setting $NAME=$OPTION"
echo "$NAME=$OPTION" >> .config
#fi
done
set +x
}
'';
# UCLIBC_SUSV4_LEGACY defines 'tmpnam', needed for gcc libstdc++ builds.
nixConfig = ''
RUNTIME_PREFIX "/"
DEVEL_PREFIX "/"
UCLIBC_HAS_WCHAR y
UCLIBC_HAS_FTW y
UCLIBC_HAS_RPC y
DO_C99_MATH y
UCLIBC_HAS_PROGRAM_INVOCATION_NAME y
UCLIBC_HAS_RESOLVER_SUPPORT y
UCLIBC_SUSV4_LEGACY y
UCLIBC_HAS_THREADS_NATIVE y
KERNEL_HEADERS "${linuxHeaders}/include"
''
+ lib.optionalString (stdenv.hostPlatform.gcc.float or "" == "soft") ''
UCLIBC_HAS_FPU n
''
+ lib.optionalString (stdenv.hostPlatform.isAarch32 && isCross) ''
CONFIG_ARM_EABI y
ARCH_WANTS_BIG_ENDIAN n
ARCH_BIG_ENDIAN n
ARCH_WANTS_LITTLE_ENDIAN y
ARCH_LITTLE_ENDIAN y
UCLIBC_HAS_FPU n
'';
in
stdenv.mkDerivation (finalAttrs: {
pname = "uclibc-ng";
version = "1.0.54";
src = fetchurl {
url = "https://downloads.uclibc-ng.org/releases/${finalAttrs.version}/uClibc-ng-${finalAttrs.version}.tar.xz";
hash = "sha256-0ez2XMIhfdQRik2vwavyfFhbXLV48715kfxkC3lkP/I=";
};
# 'ftw' needed to build acl, a coreutils dependency
configurePhase = ''
make defconfig
${configParser}
cat << EOF | parseconfig
${nixConfig}
${extraConfig}
${stdenv.hostPlatform.uclibc.extraConfig or ""}
EOF
( set +o pipefail; yes "" | make oldconfig )
'';
hardeningDisable = [ "stackprotector" ];
# Cross stripping hurts.
dontStrip = isCross;
depsBuildBuild = [ buildPackages.stdenv.cc ];
makeFlags = [
"ARCH=${stdenv.hostPlatform.linuxArch}"
"TARGET_ARCH=${stdenv.hostPlatform.linuxArch}"
"VERBOSE=1"
]
++ lib.optionals isCross [
"CROSS=${stdenv.cc.targetPrefix}"
];
# `make libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrwlock.h`:
# error: bits/sysnum.h: No such file or directory
enableParallelBuilding = false;
installPhase = ''
runHook preInstall
mkdir -p $out
make $makeFlags PREFIX=$out VERBOSE=1 install
(cd $out/include && ln -s $(ls -d ${linuxHeaders}/include/* | grep -v "scsi$") .)
# libpthread.so may not exist, so I do || true
sed -i s@/lib/@$out/lib/@g $out/lib/libc.so $out/lib/libpthread.so || true
runHook postInstall
'';
passthru = {
# Derivations may check for the existence of this attribute, to know what to
# link to.
libiconv = libiconvReal;
updateScript = gitUpdater {
url = "https://git.uclibc-ng.org/git/uclibc-ng.git";
rev-prefix = "v";
};
};
meta = {
homepage = "https://uclibc-ng.org";
description = "Embedded C library";
longDescription = ''
uClibc-ng is a small C library for developing embedded Linux systems. It
is much smaller than the GNU C Library, but nearly all applications
supported by glibc also work perfectly with uClibc-ng.
Porting applications from glibc to uClibc-ng typically involves just
recompiling the source code. uClibc-ng supports shared libraries and
threading. It currently runs on standard Linux and MMU-less (also known as
uClinux) systems with support for Aarch64, Alpha, ARC, ARM, AVR32,
Blackfin, CRIS, C-Sky, C6X, FR-V, H8/300, HPPA, i386, IA64, KVX, LM32,
M68K/Coldfire, Metag, Microblaze, MIPS, MIPS64, NDS32, NIOS2, OpenRISC,
PowerPC, RISCV64, Sparc, Sparc64, SuperH, Tile, X86_64 and XTENSA
processors. Alpha, FR-V, HPPA, IA64, LM32, NIOS2, Tile and Sparc64 are
experimental and need more testing.
'';
license = lib.licenses.lgpl2Plus;
maintainers = with lib.maintainers; [
rasendubi
];
platforms = lib.platforms.linux;
badPlatforms = lib.platforms.aarch64;
};
})

View File

@@ -0,0 +1,41 @@
{
stdenv,
lib,
fetchgit,
cmake,
pkg-config,
libubox,
}:
stdenv.mkDerivation {
pname = "uclient";
version = "unstable-2023-04-13";
src = fetchgit {
url = "https://git.openwrt.org/project/uclient.git";
rev = "007d945467499f43656b141171d31f5643b83a6c";
hash = "sha256-A47dyVc2MtOL6aImZ0b3SMWH2vzjfAXzRAOF4nfH6S0=";
};
nativeBuildInputs = [
cmake
pkg-config
];
buidInputs = [ libubox ];
preConfigure = ''
sed -e 's|ubox_include_dir libubox/ustream-ssl.h|ubox_include_dir libubox/ustream-ssl.h HINTS ${libubox}/include|g' \
-e 's|ubox_library NAMES ubox|ubox_library NAMES ubox HINTS ${libubox}/lib|g' \
-i CMakeLists.txt
'';
meta = with lib; {
description = "Tiny OpenWrt fork of libnl";
homepage = "https://git.openwrt.org/?p=project/uclient.git;a=summary";
license = licenses.isc;
maintainers = with maintainers; [ mkg20001 ];
mainProgram = "uclient-fetch";
platforms = platforms.all;
broken = stdenv.hostPlatform.isDarwin;
};
}

View File

@@ -0,0 +1,37 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
pkg-config,
json_c,
}:
stdenv.mkDerivation rec {
pname = "ucode";
version = "0.0.20250529";
src = fetchFromGitHub {
owner = "jow-";
repo = "ucode";
rev = "v${version}";
hash = "sha256-V8WGd4rSuCtGIA5oTfnagp0Dmh5FNG87/MJSeILtbM4=";
};
buildInputs = [
json_c
];
nativeBuildInputs = [
cmake
pkg-config
];
meta = with lib; {
description = "JavaScript-like language with optional templating";
homepage = "https://github.com/jow-/ucode";
license = licenses.isc;
platforms = platforms.linux;
maintainers = with maintainers; [ mkg20001 ];
};
}

View File

@@ -0,0 +1,41 @@
{
lib,
stdenv,
fetchurl,
pkg-config,
gnutls,
}:
stdenv.mkDerivation rec {
pname = "ucommon";
version = "7.0.0";
src = fetchurl {
url = "mirror://gnu/commoncpp/${pname}-${version}.tar.gz";
sha256 = "6ac9f76c2af010f97e916e4bae1cece341dc64ca28e3881ff4ddc3bc334060d7";
};
nativeBuildInputs = [ pkg-config ];
# use C++14 Standard until error handling code gets updated upstream
CXXFLAGS = [ "-std=c++14" ];
# disable flaky networking test
postPatch = ''
substituteInPlace test/stream.cpp \
--replace 'ifndef UCOMMON_SYSRUNTIME' 'if 0'
'';
# ucommon.pc has link time dependencies on -lusecure -lucommon -lgnutls
propagatedBuildInputs = [ gnutls ];
doCheck = true;
meta = {
description = "C++ library to facilitate using C++ design patterns";
homepage = "https://www.gnu.org/software/commoncpp/";
license = lib.licenses.lgpl3Plus;
maintainers = [ ];
platforms = lib.platforms.linux;
};
}

View File

@@ -0,0 +1,58 @@
{
lib,
stdenv,
fetchurl,
versionCheckHook,
libusb1,
zlib,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ucon64";
version = "2.2.2";
src = fetchurl {
url = "https://sourceforge.net/projects/ucon64/files/ucon64/ucon64-${finalAttrs.version}/ucon64-${finalAttrs.version}-src.tar.gz/download";
name = "ucon64-${finalAttrs.version}-src.tar.gz";
hash = "sha256-4QCtSjD2wZq96Y42HGoOysTkBHf1TPt1SYxczSH7Ohg=";
};
buildInputs = [
zlib
libusb1
];
sourceRoot = "ucon64-${finalAttrs.version}-src/src";
# Disable parallel on ARM (sys/io.h is x86-only)
configureFlags = lib.optionals (!stdenv.hostPlatform.isx86) [
"--disable-parallel"
];
makeFlags = [
"CC=${stdenv.cc.targetPrefix}cc"
];
installPhase = ''
runHook preInstall
install -Dm755 ucon64 -t $out/bin/
runHook postInstall
'';
nativeInstallCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "--version";
doInstallCheck = true;
meta = {
description = "Tool to backup video game cartridges and perform various ROM operations";
homepage = "https://ucon64.sourceforge.io/";
license = lib.licenses.gpl2Plus;
maintainers = with lib.maintainers; [ liberodark ];
mainProgram = "ucon64";
};
})

View File

@@ -0,0 +1,71 @@
{
lib,
stdenv,
fetchurl,
bdftopcf,
libfaketime,
xorg,
}:
stdenv.mkDerivation {
pname = "ucs-fonts";
version = "20090406";
srcs = [
(fetchurl {
url = "http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts.tar.gz";
sha256 = "12hgizg25fzmk10wjl0c88x97h3pg5r9ga122s3y28wixz6x2bvh";
})
(fetchurl {
url = "http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-asian.tar.gz";
sha256 = "0ibjy4xpz5j373hsdr8bx99czfpclqmviwwv768j8n7z12z3wa51";
})
(fetchurl {
url = "http://www.cl.cam.ac.uk/~mgk25/download/ucs-fonts-75dpi100dpi.tar.gz";
sha256 = "08vqr8yb636xa1s28vf3pm22dzkia0gisvsi2svqjqh4kk290pzh";
})
];
sourceRoot = ".";
nativeBuildInputs = [
bdftopcf
libfaketime
xorg.fonttosfnt
xorg.mkfontscale
];
buildPhase = ''
for i in *.bdf; do
name=$(basename "$i" .bdf)
# generate pcf fonts (for X11 applications)
bdftopcf -t "$i" | gzip -n -9 -c > "$name.pcf.gz"
# generate otb fonts (for GTK applications)
faketime -f "1970-01-01 00:00:01" \
fonttosfnt -v -o "$name.otb" "$i"
done
'';
installPhase = ''
install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
install -m 644 -D *.bdf -t "$bdf/share/fonts/misc"
mkfontdir "$out/share/fonts/misc"
mkfontdir "$bdf/share/fonts/misc"
'';
outputs = [
"out"
"bdf"
];
meta = with lib; {
homepage = "https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html";
description = "Unicode bitmap fonts";
license = licenses.publicDomain;
maintainers = [ maintainers.raskin ];
platforms = platforms.all;
};
}

View File

@@ -0,0 +1,94 @@
{
lib,
stdenv,
fetchurl,
fetchzip,
quilt,
}:
stdenv.mkDerivation rec {
pname = "ucspi-tcp";
version = "0.88";
src = fetchurl {
url = "https://cr.yp.to/ucspi-tcp/ucspi-tcp-${version}.tar.gz";
sha256 = "171yl9kfm8w7l17dfxild99mbf877a9k5zg8yysgb1j8nz51a1ja";
};
patches = [
./remove-setuid.patch
];
debian = fetchzip {
url = "http://ftp.de.debian.org/debian/pool/main/u/ucspi-tcp/ucspi-tcp_0.88-11.debian.tar.xz";
sha256 = "0x8h46wkm62dvyj1acsffcl4s06k5zh6139qxib3zzhk716hv5xg";
};
nativeBuildInputs = [
quilt
];
# Plain upstream tarball doesn't build, apply patches from Debian
postPatch = ''
QUILT_PATCHES=$debian/patches quilt push -a
'';
# The build system is weird; 'make install' doesn't install anything, instead
# it builds an executable called ./install (from C code) which installs
# binaries to the directory given on line 1 in ./conf-home.
#
# Also, assume getgroups and setgroups work, instead of doing a build time
# test that breaks on NixOS (I think because nixbld users lack CAP_SETGID
# capability).
preBuild = ''
echo "$out" > conf-home
echo "int main() { return 0; }" > chkshsgr.c
'';
installPhase = ''
mkdir -p "$out/bin"
mkdir -p "$out/share/man/man1"
# run the newly built installer
./install
# Install Debian man pages (upstream has none)
cp $debian/ucspi-tcp-man/*.1 "$out/share/man/man1"
'';
meta = with lib; {
description = "Command-line tools for building TCP client-server applications";
longDescription = ''
tcpserver waits for incoming connections and, for each connection, runs a
program of your choice. Your program receives environment variables
showing the local and remote host names, IP addresses, and port numbers.
tcpserver offers a concurrency limit to protect you from running out of
processes and memory. When you are handling 40 (by default) simultaneous
connections, tcpserver smoothly defers acceptance of new connections.
tcpserver also provides TCP access control features, similar to
tcp-wrappers/tcpd's hosts.allow but much faster. Its access control rules
are compiled into a hashed format with cdb, so it can easily deal with
thousands of different hosts.
This package includes a recordio tool that monitors all the input and
output of a server.
tcpclient makes a TCP connection and runs a program of your choice. It
sets up the same environment variables as tcpserver.
This package includes several sample clients built on top of tcpclient:
who@, date@, finger@, http@, tcpcat, and mconnect.
tcpserver and tcpclient conform to UCSPI, the UNIX Client-Server Program
Interface, using the TCP protocol. UCSPI tools are available for several
different networks.
'';
homepage = "http://cr.yp.to/ucspi-tcp.html";
license = licenses.publicDomain;
platforms = platforms.linux;
maintainers = [ maintainers.bjornfor ];
};
}

View File

@@ -0,0 +1,15 @@
diff --git a/hier.c b/hier.c
index 5663ada..1d73b84 100644
--- a/hier.c
+++ b/hier.c
@@ -2,8 +2,8 @@
void hier()
{
- h(auto_home,-1,-1,02755);
- d(auto_home,"bin",-1,-1,02755);
+ h(auto_home,-1,-1,0755);
+ d(auto_home,"bin",-1,-1,0755);
c(auto_home,"bin","tcpserver",-1,-1,0755);
c(auto_home,"bin","tcprules",-1,-1,0755);

View File

@@ -0,0 +1,84 @@
{
lib,
stdenv,
fetchFromGitHub,
gitUpdater,
autoreconfHook,
libtool,
pkg-config,
autoconf-archive,
libxml2,
icu60,
bzip2,
libtar,
ticcutils,
libfolia,
uctodata,
frog,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "ucto";
version = "0.9.6";
src = fetchFromGitHub {
owner = "LanguageMachines";
repo = "ucto";
tag = "v${finalAttrs.version}";
hash = "sha256-DFQ4ePE3n3zg0mrqUNHzE3Hi81n1IurYjhh6YVAghEE=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = [
bzip2
libtool
autoconf-archive
icu60
libtar
libxml2
ticcutils
libfolia
uctodata
# TODO textcat from libreoffice? Pulls in X11 dependencies?
];
postInstall = ''
# ucto expects the data files installed in the same prefix
mkdir -p $out/share/ucto/;
for f in ${uctodata}/share/ucto/*; do
echo "Linking $f"
ln -s $f $out/share/ucto/;
done;
'';
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
tests = {
/**
Reverse dependencies. Does not respect overrides.
*/
reverseDependencies = lib.recurseIntoAttrs {
inherit frog;
};
};
};
meta = with lib; {
description = "Rule-based tokenizer for natural language";
mainProgram = "ucto";
homepage = "https://languagemachines.github.io/ucto/";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = with maintainers; [ roberth ];
longDescription = ''
Ucto tokenizes text files: it separates words from punctuation, and splits sentences. It offers several other basic preprocessing steps such as changing case that you can all use to make your text suited for further processing such as indexing, part-of-speech tagging, or machine translation.
Ucto comes with tokenisation rules for several languages and can be easily extended to suit other languages. It has been incorporated for tokenizing Dutch text in Frog, a Dutch morpho-syntactic processor.
'';
};
})

View File

@@ -0,0 +1,60 @@
{
lib,
stdenv,
fetchFromGitHub,
gitUpdater,
autoreconfHook,
libtool,
pkg-config,
autoconf-archive,
frog,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "uctodata";
version = "0.4";
src = fetchFromGitHub {
owner = "LanguageMachines";
repo = "uctodata";
tag = "v${finalAttrs.version}";
hash = "sha256-4P9icZSm+DYGxGobSGzSExTv+ZQaLjkJ0gvOI27byRk=";
};
nativeBuildInputs = [
pkg-config
autoreconfHook
];
buildInputs = [
libtool
autoconf-archive
];
passthru = {
updateScript = gitUpdater { rev-prefix = "v"; };
tests = {
/**
Reverse dependencies. Does not respect overrides.
*/
reverseDependencies = lib.recurseIntoAttrs {
inherit frog;
};
};
};
meta = with lib; {
description = "Rule-based tokenizer for natural language";
homepage = "https://languagemachines.github.io/ucto/";
license = licenses.gpl3;
platforms = platforms.all;
maintainers = with maintainers; [ roberth ];
longDescription = ''
Ucto tokenizes text files: it separates words from punctuation, and splits sentences. It offers several other basic preprocessing steps such as changing case that you can all use to make your text suited for further processing such as indexing, part-of-speech tagging, or machine translation.
Ucto comes with tokenisation rules for several languages and can be easily extended to suit other languages. It has been incorporated for tokenizing Dutch text in Frog, a Dutch morpho-syntactic processor.
'';
};
})

View File

@@ -0,0 +1,113 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
doxygen,
numactl,
rdma-core,
libbfd,
libiberty,
perl,
zlib,
symlinkJoin,
pkg-config,
config,
autoAddDriverRunpath,
enableCuda ? config.cudaSupport,
cudaPackages,
enableRocm ? config.rocmSupport,
rocmPackages,
}:
let
rocmList = with rocmPackages; [
rocm-core
rocm-runtime
rocm-device-libs
clr
];
rocm = symlinkJoin {
name = "rocm";
paths = rocmList;
};
in
stdenv.mkDerivation (finalAttrs: {
pname = "ucx";
version = "1.19.0";
src = fetchFromGitHub {
owner = "openucx";
repo = "ucx";
rev = "v${finalAttrs.version}";
sha256 = "sha256-n3xJmbvUXZzfhotOBJRyH2OEL4NFZIKyB808HwEQSYo=";
};
outputs = [
"out"
"doc"
"dev"
];
nativeBuildInputs = [
autoreconfHook
doxygen
pkg-config
]
++ lib.optionals enableCuda [
cudaPackages.cuda_nvcc
autoAddDriverRunpath
];
buildInputs = [
libbfd
libiberty
numactl
perl
rdma-core
zlib
]
++ lib.optionals enableCuda [
cudaPackages.cuda_cudart
cudaPackages.cuda_nvml_dev
]
++ lib.optionals enableRocm rocmList;
LDFLAGS = lib.optionals enableCuda [
# Fake libnvidia-ml.so (the real one is deployed impurely)
"-L${lib.getLib cudaPackages.cuda_nvml_dev}/lib/stubs"
];
configureFlags = [
"--with-rdmacm=${lib.getDev rdma-core}"
"--with-dc"
"--with-rc"
"--with-dm"
"--with-verbs=${lib.getDev rdma-core}"
]
++ lib.optionals enableCuda [ "--with-cuda=${cudaPackages.cuda_cudart}" ]
++ lib.optional enableRocm "--with-rocm=${rocm}";
postInstall = ''
find $out/lib/ -name "*.la" -exec rm -f \{} \;
moveToOutput bin/ucx_info $dev
moveToOutput share/ucx/examples $doc
'';
enableParallelBuilding = true;
meta = {
description = "Unified Communication X library";
homepage = "https://www.openucx.org";
license = lib.licenses.bsd3;
platforms = lib.platforms.linux;
# LoongArch64 is not supported.
# See: https://github.com/openucx/ucx/issues/9873
badPlatforms = lib.platforms.loongarch64;
maintainers = with lib.maintainers; [ markuskowa ];
};
})