treewide: remove packages which depend on freeimage

freeimage support was dropped in 608422bd4b, so these
no longer build. Removing the most obvious dependents of
the library.
This commit is contained in:
Jon Hermansen
2025-10-23 13:45:12 +02:00
committed by Wolfgang Walther
parent 7c7c704523
commit a8204745e5
16 changed files with 10 additions and 1016 deletions
-35
View File
@@ -1,35 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 12d6e557c..cc004555d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -321,11 +321,6 @@ if(NOT TARGET nonstd::span-lite)
endif()
-af_dep_check_and_populate(${assets_prefix}
- URI https://github.com/arrayfire/assets.git
- REF master
-)
-set(ASSETS_DIR ${${assets_prefix}_SOURCE_DIR})
# when crosscompiling use the bin2cpp file from the native bin directory
if(CMAKE_CROSSCOMPILING)
@@ -473,18 +468,6 @@ install(FILES ${ArrayFire_BINARY_DIR}/include/af/version.h
DESTINATION "${AF_INSTALL_INC_DIR}/af/"
COMPONENT headers)
-# install the examples irrespective of the AF_BUILD_EXAMPLES value
-# only the examples source files are installed, so the installation of these
-# source files does not depend on AF_BUILD_EXAMPLES
-# when AF_BUILD_EXAMPLES is OFF, the examples source is installed without
-# building the example executables
-install(DIRECTORY examples/ #NOTE The slash at the end is important
- DESTINATION ${AF_INSTALL_EXAMPLE_DIR}
- COMPONENT examples)
-
-install(DIRECTORY ${ASSETS_DIR}/examples/ #NOTE The slash at the end is important
- DESTINATION ${AF_INSTALL_EXAMPLE_DIR}
- COMPONENT examples)
install(DIRECTORY "${ArrayFire_SOURCE_DIR}/LICENSES/"
DESTINATION LICENSES
@@ -1,31 +0,0 @@
diff --git a/CMakeModules/AFconfigure_deps_vars.cmake b/CMakeModules/AFconfigure_deps_vars.cmake
index aac332f5a..e9e711159 100644
--- a/CMakeModules/AFconfigure_deps_vars.cmake
+++ b/CMakeModules/AFconfigure_deps_vars.cmake
@@ -94,7 +94,7 @@ macro(af_dep_check_and_populate dep_prefix)
URL ${adcp_args_URI}
URL_HASH ${adcp_args_REF}
DOWNLOAD_COMMAND \"\"
- UPDATE_DISCONNECTED ON
+ UPDATE_COMMAND \"\"
SOURCE_DIR "${ArrayFire_SOURCE_DIR}/extern/${dep_prefix}-src"
BINARY_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-build"
SUBBUILD_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-subbuild"
@@ -104,7 +104,7 @@ macro(af_dep_check_and_populate dep_prefix)
QUIET
URL ${adcp_args_URI}
DOWNLOAD_COMMAND \"\"
- UPDATE_DISCONNECTED ON
+ UPDATE_COMMAND \"\"
SOURCE_DIR "${ArrayFire_SOURCE_DIR}/extern/${dep_prefix}-src"
BINARY_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-build"
SUBBUILD_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-subbuild"
@@ -116,7 +116,7 @@ macro(af_dep_check_and_populate dep_prefix)
GIT_REPOSITORY ${adcp_args_URI}
GIT_TAG ${adcp_args_REF}
DOWNLOAD_COMMAND \"\"
- UPDATE_DISCONNECTED ON
+ UPDATE_COMMAND \"\"
SOURCE_DIR "${ArrayFire_SOURCE_DIR}/extern/${dep_prefix}-src"
BINARY_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-build"
SUBBUILD_DIR "${ArrayFire_BINARY_DIR}/extern/${dep_prefix}-subbuild"
-248
View File
@@ -1,248 +0,0 @@
{
blas,
boost,
clblast,
cmake,
config,
cudaPackages,
fetchFromGitHub,
fftw,
fftwFloat,
fmt_9,
forge,
freeimage,
gtest,
lapack,
lib,
libGL,
mesa,
ocl-icd,
opencl-clhpp,
pkg-config,
python3,
span-lite,
stdenv,
# NOTE: We disable tests by default, because they cannot be run easily on
# non-NixOS systems when either CUDA or OpenCL support is enabled (CUDA and
# OpenCL need access to drivers that are installed outside of Nix on
# non-NixOS systems).
doCheck ? false,
cpuSupport ? true,
cudaSupport ? config.cudaSupport,
# OpenCL needs mesa which is broken on Darwin
openclSupport ? !stdenv.hostPlatform.isDarwin,
# This argument lets one run CUDA & OpenCL tests on non-NixOS systems by
# telling Nix where to find the drivers. If you know the version of the
# Nvidia driver that is installed on your system, you can do:
#
# arrayfire.override {
# nvidiaComputeDrivers =
# callPackage
# (prev.linuxPackages.nvidiaPackages.mkDriver {
# version = cudaVersion; # our driver version
# sha256_64bit = cudaHash; # sha256 of the .run binary
# useGLVND = false;
# useProfiles = false;
# useSettings = false;
# usePersistenced = false;
# ...
# })
# { libsOnly = true; };
# }
nvidiaComputeDrivers ? null,
fetchpatch,
}:
# ArrayFire compiles with 64-bit BLAS, but some tests segfault or throw
# exceptions, which means that it isn't really supported yet...
assert blas.isILP64 == false;
stdenv.mkDerivation rec {
pname = "arrayfire";
version = "3.9.0";
src = fetchFromGitHub {
owner = "arrayfire";
repo = "arrayfire";
rev = "v3.9.0";
hash = "sha256-80fxdkaeAQ5u0X/UGPaI/900cdkZ/vXNcOn5tkZ+C3Y=";
};
# We cannot use the clfft from Nixpkgs because ArrayFire maintain a fork
# of clfft where they've modified the CMake build system, and the
# CMakeLists.txt of ArrayFire assumes that we're using that fork.
#
# This can be removed once ArrayFire upstream their changes.
clfft = fetchFromGitHub {
owner = "arrayfire";
repo = "clfft";
rev = "760096b37dcc4f18ccd1aac53f3501a83b83449c";
sha256 = "sha256-vJo1YfC2AJIbbRj/zTfcOUmi0Oj9v64NfA9MfK8ecoY=";
};
glad = fetchFromGitHub {
owner = "arrayfire";
repo = "glad";
rev = "ef8c5508e72456b714820c98e034d9a55b970650";
sha256 = "sha256-u9Vec7XLhE3xW9vzM7uuf+b18wZsh/VMtGbB6nMVlno=";
};
threads = fetchFromGitHub {
owner = "arrayfire";
repo = "threads";
rev = "4d4a4f0384d1ac2f25b2c4fc1d57b9e25f4d6818";
sha256 = "sha256-qqsT9woJDtQvzuV323OYXm68pExygYs/+zZNmg2sN34=";
};
test-data = fetchFromGitHub {
owner = "arrayfire";
repo = "arrayfire-data";
rev = "a5f533d7b864a4d8f0dd7c9aaad5ff06018c4867";
sha256 = "sha256-AWzhsrDXyZrQN2bd0Ng/XlE8v02x7QWTiFTyaAuRXSw=";
};
# ArrayFire fails to compile with newer versions of spdlog, so we can't use
# the one in Nixpkgs. Once they upgrade, we can switch to using spdlog from
# Nixpkgs.
spdlog = fetchFromGitHub {
owner = "gabime";
repo = "spdlog";
rev = "v1.9.2";
hash = "sha256-GSUdHtvV/97RyDKy8i+ticnSlQCubGGWHg4Oo+YAr8Y=";
};
cmakeFlags = [
"-DBUILD_TESTING=ON"
# We do not build examples, because building tests already takes long enough...
"-DAF_BUILD_EXAMPLES=OFF"
# No need to build forge, because it's a separate package
"-DAF_BUILD_FORGE=OFF"
"-DAF_COMPUTE_LIBRARY='FFTW/LAPACK/BLAS'"
# Prevent ArrayFire from trying to download some matrices from the Internet
"-DAF_TEST_WITH_MTX_FILES=OFF"
# Have to use the header-only version, because we're not using the version
# from Nixpkgs. Otherwise, libaf.so won't be able to find the shared
# library, because ArrayFire's CMake files do not run the install step of
# spdlog.
"-DAF_WITH_SPDLOG_HEADER_ONLY=ON"
(if cpuSupport then "-DAF_BUILD_CPU=ON" else "-DAF_BUILD_CPU=OFF")
(if openclSupport then "-DAF_BUILD_OPENCL=ON" else "-DAF_BUILD_OPENCL=OFF")
(if cudaSupport then "-DAF_BUILD_CUDA=ON" else "-DAF_BUILD_CUDA=OFF")
]
++ lib.optionals cudaSupport [
# ArrayFire use deprecated FindCUDA in their CMake files, so we help CMake
# locate cudatoolkit.
"-DCUDA_LIBRARIES_PATH=${cudaPackages.cudatoolkit}/lib"
];
# ArrayFire have a repo with assets for the examples. Since we don't build
# the examples anyway, remove the dependency on assets.
patches = [
./no-assets.patch
./no-download.patch
# Fix for newer opencl-clhpp. Remove with the next release.
(fetchpatch {
url = "https://github.com/arrayfire/arrayfire/pull/3562.patch";
hash = "sha256-AdWlpcRTn9waNAaVpZfK6sJ/xBQLiBC4nBeEYiGNN50";
})
];
postPatch = ''
mkdir -p ./extern/af_glad-src
mkdir -p ./extern/af_threads-src
mkdir -p ./extern/af_test_data-src
mkdir -p ./extern/ocl_clfft-src
mkdir -p ./extern/spdlog-src
cp -R --no-preserve=mode,ownership ${glad}/* ./extern/af_glad-src/
cp -R --no-preserve=mode,ownership ${threads}/* ./extern/af_threads-src/
cp -R --no-preserve=mode,ownership ${test-data}/* ./extern/af_test_data-src/
cp -R --no-preserve=mode,ownership ${clfft}/* ./extern/ocl_clfft-src/
cp -R --no-preserve=mode,ownership ${spdlog}/* ./extern/spdlog-src/
# libaf.so (the unified backend) tries to load the right shared library at
# runtime, and the search paths are hard-coded... We tweak them to point to
# the installation directory in the Nix store.
substituteInPlace src/api/unified/symbol_manager.cpp \
--replace '"/opt/arrayfire-3/lib/",' \
"\"$out/lib/\", \"/opt/arrayfire-3/lib/\","
'';
inherit doCheck;
checkPhase =
let
LD_LIBRARY_PATH = builtins.concatStringsSep ":" (
[
"${forge}/lib"
"${freeimage}/lib"
]
++ lib.optional cudaSupport "${cudaPackages.cudatoolkit}/lib64"
# On non-NixOS systems, help the tests find Nvidia drivers
++ lib.optional (nvidiaComputeDrivers != null) "${nvidiaComputeDrivers}/lib"
);
ctestFlags = builtins.concatStringsSep " " (
# We have to run with "-j1" otherwise various segfaults occur on non-NixOS systems.
[
"--output-on-errors"
"-j1"
]
# See https://github.com/arrayfire/arrayfire/issues/3484
++ lib.optional openclSupport "-E '(inverse_dense|cholesky_dense)'"
);
in
''
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
''
+
# On non-NixOS systems, help the tests find Nvidia drivers
lib.optionalString (openclSupport && nvidiaComputeDrivers != null) ''
export OCL_ICD_VENDORS=${nvidiaComputeDrivers}/etc/OpenCL/vendors
''
+ ''
# Note: for debugging, enable AF_TRACE=all
AF_PRINT_ERRORS=1 ctest ${ctestFlags}
'';
buildInputs = [
blas
boost.dev
boost.out
clblast
fftw
fftwFloat
# We need fmt_9 because ArrayFire fails to compile with newer versions.
fmt_9
forge
freeimage
gtest
lapack
libGL
ocl-icd
opencl-clhpp
span-lite
]
++ lib.optionals cudaSupport [
cudaPackages.cudatoolkit
cudaPackages.cudnn
cudaPackages.cuda_cccl
]
++ lib.optionals openclSupport [
mesa
];
nativeBuildInputs = [
cmake
pkg-config
python3
];
meta = with lib; {
description = "General-purpose library for parallel and massively-parallel computations";
longDescription = ''
A general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.";
'';
license = licenses.bsd3;
homepage = "https://arrayfire.com/";
platforms = platforms.linux;
maintainers = with maintainers; [
chessai
twesterhout
];
broken = true;
};
}
@@ -1,12 +0,0 @@
--- a/resources/systems/linux/es_find_rules.xml 2024-09-13 16:19:36.000000000 +0300
+++ b/resources/systems/linux/es_find_rules.xml 2024-11-26 23:08:49.204498848 +0200
@@ -41,6 +41,9 @@
<entry>/usr/lib64/libretro</entry>
<!-- Manjaro repository -->
<entry>/usr/lib/libretro</entry>
+ <!-- NixOS and Nixpkgs repository -->
+ <entry>/run/current-system/sw/lib/retroarch/cores</entry>
+ <entry>~/.nix-profile/lib/retroarch/cores</entry>
</rule>
</core>
<emulator name="3DSEN-WINDOWS">
@@ -1,74 +0,0 @@
{
lib,
stdenv,
fetchzip,
cmake,
pkg-config,
alsa-lib,
bluez,
curl,
ffmpeg,
freeimage,
freetype,
gettext,
harfbuzz,
icu,
libgit2,
poppler,
pugixml,
SDL2,
libGL,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "emulationstation-de";
version = "3.2.0";
src = fetchzip {
url = "https://gitlab.com/es-de/emulationstation-de/-/archive/v${finalAttrs.version}/emulationstation-de-v${finalAttrs.version}.tar.gz";
hash = "sha256-tW8+7ImcJ3mBhoIHVE8h4cba+4SQLP55kiFYE7N8jyI=";
};
patches = [
./001-add-nixpkgs-retroarch-cores.patch
];
postPatch = ''
# ldd-based detection fails for cross builds
substituteInPlace CMake/Packages/FindPoppler.cmake \
--replace-fail 'GET_PREREQUISITES("''${POPPLER_LIBRARY}" POPPLER_PREREQS 1 0 "" "")' ""
'';
nativeBuildInputs = [
cmake
gettext # msgfmt
pkg-config
];
buildInputs = [
alsa-lib
bluez
curl
ffmpeg
freeimage
freetype
harfbuzz
icu
libgit2
poppler
pugixml
SDL2
libGL
];
cmakeFlags = [ (lib.cmakeBool "APPLICATION_UPDATER" false) ];
meta = {
description = "ES-DE (EmulationStation Desktop Edition) is a frontend for browsing and launching games from your multi-platform collection";
homepage = "https://es-de.org";
maintainers = with lib.maintainers; [ ivarmedi ];
license = lib.licenses.mit;
platforms = lib.platforms.linux;
mainProgram = "es-de";
};
})
@@ -1,87 +0,0 @@
{
lib,
SDL2,
alsa-lib,
boost,
callPackage,
cmake,
curl,
freeimage,
freetype,
libGL,
libGLU,
libvlc,
pkg-config,
rapidjson,
stdenv,
}:
let
sources = callPackage ./sources.nix { };
in
stdenv.mkDerivation {
inherit (sources.emulationstation) pname version src;
postUnpack = ''
pushd $sourceRoot/external/pugixml
cp --verbose --archive ${sources.pugixml.src}/* .
chmod --recursive 744 .
popd
'';
nativeBuildInputs = [
SDL2
cmake
pkg-config
];
buildInputs = [
SDL2
alsa-lib
boost
curl
freeimage
freetype
libGL
libGLU
libvlc
rapidjson
];
cmakeFlags = [ (lib.cmakeBool "GL" true) ];
strictDeps = true;
installPhase = ''
runHook preInstall
install -Dm755 ../emulationstation $out/bin/emulationstation
mkdir -p $out/share/emulationstation/
cp -r ../resources $out/share/emulationstation/
runHook postInstall
'';
# es-core/src/resources/ResourceManager.cpp: resources are searched at the
# same place of binaries.
postFixup = ''
pushd $out
ln -s $out/share/emulationstation/resources $out/bin/
popd
'';
passthru = {
inherit sources;
};
meta = {
homepage = "https://github.com/RetroPie/EmulationStation";
description = "Flexible emulator front-end supporting keyboardless navigation and custom system themes (forked by RetroPie)";
license = with lib.licenses; [ mit ];
mainProgram = "emulationstation";
maintainers = with lib.maintainers; [
edwtjo
];
platforms = lib.platforms.linux;
};
}
@@ -1,35 +0,0 @@
{ fetchFromGitHub }:
{
emulationstation =
let
self = {
pname = "emulationstation";
version = "2.11.2";
src = fetchFromGitHub {
owner = "RetroPie";
repo = "EmulationStation";
rev = "v${self.version}";
hash = "sha256-f2gRkp+3Pp2qnvg2RBzaHPpzhAnwx0+5x1Pe3kD90xE=";
};
};
in
self;
pugixml =
let
self = {
pname = "pugixml";
version = "1.8.1";
src = fetchFromGitHub {
owner = "zeux";
repo = "pugixml";
rev = "v${self.version}";
hash = "sha256-LbjTN1hnIbqI79C+gCdwuDG0+B/5yXf7hg0Q+cDFIf4=";
};
};
in
self;
}
@@ -1,31 +0,0 @@
diff --git a/CMakeModules/ForgeConfigureDepsVars.cmake b/CMakeModules/ForgeConfigureDepsVars.cmake
index ee5c2fc..2f75181 100644
--- a/CMakeModules/ForgeConfigureDepsVars.cmake
+++ b/CMakeModules/ForgeConfigureDepsVars.cmake
@@ -84,7 +84,7 @@ macro(fg_dep_check_and_populate dep_prefix)
URL ${fdcp_args_URI}
URL_HASH ${fdcp_args_REF}
DOWNLOAD_COMMAND \"\"
- UPDATE_DISCONNECTED ON
+ UPDATE_COMMAND \"\"
SOURCE_DIR "${Forge_SOURCE_DIR}/extern/${dep_prefix}-src"
BINARY_DIR "${Forge_BINARY_DIR}/extern/${dep_prefix}-build"
SUBBUILD_DIR "${Forge_BINARY_DIR}/extern/${dep_prefix}-subbuild"
@@ -94,7 +94,7 @@ macro(fg_dep_check_and_populate dep_prefix)
QUIET
URL ${fdcp_args_URI}
DOWNLOAD_COMMAND \"\"
- UPDATE_DISCONNECTED ON
+ UPDATE_COMMAND \"\"
SOURCE_DIR "${Forge_SOURCE_DIR}/extern/${dep_prefix}-src"
BINARY_DIR "${Forge_BINARY_DIR}/extern/${dep_prefix}-build"
SUBBUILD_DIR "${Forge_BINARY_DIR}/extern/${dep_prefix}-subbuild"
@@ -106,7 +106,7 @@ macro(fg_dep_check_and_populate dep_prefix)
GIT_REPOSITORY ${fdcp_args_URI}
GIT_TAG ${fdcp_args_REF}
DOWNLOAD_COMMAND \"\"
- UPDATE_DISCONNECTED ON
+ UPDATE_COMMAND \"\"
SOURCE_DIR "${Forge_SOURCE_DIR}/extern/${dep_prefix}-src"
BINARY_DIR "${Forge_BINARY_DIR}/extern/${dep_prefix}-build"
SUBBUILD_DIR "${Forge_BINARY_DIR}/extern/${dep_prefix}-subbuild"
-86
View File
@@ -1,86 +0,0 @@
{
boost,
cmake,
expat,
fetchFromGitHub,
fontconfig,
freeimage,
freetype,
glfw3,
glm,
lib,
libGLU,
libGL,
libgbm,
opencl-clhpp,
pkg-config,
stdenv,
SDL2,
}:
stdenv.mkDerivation rec {
pname = "forge";
version = "1.0.8";
src = fetchFromGitHub {
owner = "arrayfire";
repo = "forge";
rev = "v1.0.8";
sha256 = "sha256-lSZAwcqAHiuZkpYcVfwvZCfNmEF3xGN9S/HuZQrGeKU=";
};
glad = fetchFromGitHub {
owner = "arrayfire";
repo = "glad";
rev = "b94680aee5b8ce01ae1644c5f2661769366c765a";
hash = "sha256-CrZy76gOGMpy9f1NuMK4tokZ57U//zYeNH5ZYY0SC2U=";
};
# This patch ensures that Forge does not try to fetch glad from GitHub and
# uses our sources that we've checked out via Nix.
patches = [ ./no-download-glad.patch ];
postPatch = ''
mkdir -p ./extern
cp -R --no-preserve=mode,ownership ${glad} ./extern/fg_glad-src
ln -s ${opencl-clhpp} ./extern/cl2hpp
'';
cmakeFlags = [ "-DFETCHCONTENT_FULLY_DISCONNECTED=ON" ];
nativeBuildInputs = [
cmake
pkg-config
];
buildInputs = [
boost.out
boost.dev
expat
fontconfig
freeimage
freetype
glfw3
glm
libGL
libGLU
opencl-clhpp
SDL2
libgbm
];
meta = with lib; {
description = "OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend";
longDescription = ''
An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend.
The goal of Forge is to provide high performance OpenGL visualizations for C/C++ applications that use CUDA/OpenCL.
Forge uses OpenGL >=3.3 forward compatible contexts, so please make sure you have capable hardware before trying it out.
'';
license = licenses.bsd3;
homepage = "https://arrayfire.com/";
platforms = platforms.linux;
maintainers = with maintainers; [
chessai
twesterhout
];
};
}
@@ -1,33 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
freeimage,
libGL,
}:
stdenv.mkDerivation rec {
version = "1.0.6";
pname = "gamecube-tools";
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [
freeimage
libGL
];
src = fetchFromGitHub {
owner = "devkitPro";
repo = "gamecube-tools";
rev = "v${version}";
sha256 = "sha256-GsTmwyxBc36Qg+UGy+cRAjGW1eh1XxV0s94B14ZJAjU=";
};
meta = with lib; {
description = "Tools for gamecube/wii projects";
homepage = "https://github.com/devkitPro/gamecube-tools/";
license = licenses.gpl2;
maintainers = with maintainers; [ tomsmeets ];
};
}
@@ -1,31 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
freeimage,
}:
stdenv.mkDerivation rec {
pname = "perceptualdiff";
version = "2.1";
src = fetchFromGitHub {
owner = "myint";
repo = "perceptualdiff";
rev = "v${version}";
sha256 = "176n518xv0pczf1yyz9r5a8zw5r6sh5ym596kmvw30qznp8n4a8j";
};
nativeBuildInputs = [ cmake ];
buildInputs = [ freeimage ];
meta = with lib; {
description = "Program that compares two images using a perceptually based image metric";
homepage = "https://github.com/myint/perceptualdiff";
license = licenses.gpl2Plus;
maintainers = with maintainers; [ uri-canva ];
platforms = platforms.unix;
mainProgram = "perceptualdiff";
};
}
-43
View File
@@ -1,43 +0,0 @@
{
lib,
stdenv,
fetchzip,
autoreconfHook,
dos2unix,
doxygen,
freeimage,
libpgf,
}:
stdenv.mkDerivation rec {
pname = "pgf";
version = "7.21.7";
src = fetchzip {
url = "mirror://sourceforge/libpgf/libpgf/${version}/pgf-console.zip";
hash = "sha256-W9eXYhbynLtvZQsn724Uw0SZ5TuyK2MwREwYKGFhJj0=";
};
postPatch = ''
find . -type f | xargs dos2unix
mv README.txt README
'';
nativeBuildInputs = [
autoreconfHook
dos2unix
doxygen
];
buildInputs = [
freeimage
libpgf
];
meta = {
homepage = "https://www.libpgf.org/";
description = "Progressive Graphics Format command line program";
license = lib.licenses.lgpl21Plus;
platforms = lib.platforms.linux;
};
}
-58
View File
@@ -1,58 +0,0 @@
{
lib,
stdenv,
fetchurl,
cmake,
unzip,
pkg-config,
libXpm,
fltk13,
freeimage,
}:
stdenv.mkDerivation rec {
pname = "posterazor";
version = "1.5.1";
src = fetchurl {
url = "mirror://sourceforge/posterazor/${version}/PosteRazor-${version}-Source.zip";
hash = "sha256-BbujA2ASyqQelb3iFAwgeJC0OhzXqufIa1UD+tFsF7c=";
};
hardeningDisable = [ "format" ];
nativeBuildInputs = [
cmake
pkg-config
unzip
];
buildInputs = [
libXpm
fltk13
freeimage
];
unpackPhase = ''
unzip $src -d posterazor
cd posterazor/src
'';
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=667328
patchPhase = ''
sed "s/\(#define CASESENSITIVESTRCMP strcasecmp\)/#include <unistd.h>\n\1/" -i FlPosteRazorDialog.cpp
'';
installPhase = ''
mkdir -p $out/bin
cp PosteRazor $out/bin
'';
meta = with lib; {
homepage = "http://posterazor.sourceforge.net/";
description = "Cuts a raster image into pieces which can afterwards be printed out and assembled to a poster";
license = licenses.gpl3Plus;
platforms = platforms.linux;
maintainers = [ maintainers.madjar ];
mainProgram = "PosteRazor";
};
}
-37
View File
@@ -1,37 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
liblaxjson,
cmake,
freeimage,
}:
stdenv.mkDerivation rec {
version = "3.1.0";
pname = "rucksack";
src = fetchFromGitHub {
owner = "andrewrk";
repo = "rucksack";
rev = version;
sha256 = "0bcm20hqxqnq1j0zghb9i7z9frri6bbf7rmrv5g8dd626sq07vyv";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
liblaxjson
freeimage
];
meta = with lib; {
description = "Texture packer and resource bundler";
platforms = [
"i686-linux"
"x86_64-linux"
]; # fails on Darwin and AArch64
homepage = "https://github.com/andrewrk/rucksack";
license = licenses.mit;
maintainers = [ maintainers.andrewrk ];
};
}
-175
View File
@@ -1,175 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
writeText,
cmake,
ninja,
curl,
git,
pandoc,
pkg-config,
unzip,
zip,
libGL,
libGLU,
freeimage,
freetype,
assimp,
catch2,
fmt,
glew,
miniz,
tinyxml-2,
xorg,
qt6,
copyDesktopItems,
makeDesktopItem,
}:
stdenv.mkDerivation rec {
pname = "TrenchBroom";
version = "2025.2";
src = fetchFromGitHub {
owner = "TrenchBroom";
repo = "TrenchBroom";
tag = "v${version}";
hash = "sha256-aOHhL0yBDgFTMcDY7RKZXRrReRiThcQdf7QMHEpRuks=";
fetchSubmodules = true;
};
# Manually simulate a vcpkg installation so that it can link the libraries
# properly.
postUnpack =
let
vcpkg_target = "x64-linux";
vcpkg_pkgs = [
"assimp"
"catch2"
"fmt"
"freeimage"
"freetype"
"glew"
"miniz"
"tinyxml2"
];
updates_vcpkg_file = writeText "update_vcpkg_trenchbroom" (
lib.concatMapStringsSep "\n" (name: ''
Package : ${name}
Architecture : ${vcpkg_target}
Version : 1.0
Status : is installed
'') vcpkg_pkgs
);
in
''
export VCPKG_ROOT="$TMP/vcpkg"
mkdir -p $VCPKG_ROOT/.vcpkg-root
mkdir -p $VCPKG_ROOT/installed/${vcpkg_target}/lib
mkdir -p $VCPKG_ROOT/installed/vcpkg/updates
ln -s ${updates_vcpkg_file} $VCPKG_ROOT/installed/vcpkg/status
mkdir -p $VCPKG_ROOT/installed/vcpkg/info
${lib.concatMapStrings (name: ''
touch $VCPKG_ROOT/installed/vcpkg/info/${name}_1.0_${vcpkg_target}.list
'') vcpkg_pkgs}
ln -s ${assimp.lib}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${catch2}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${fmt}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${freeimage}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${freetype}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${glew.out}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${miniz}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
ln -s ${tinyxml-2}/lib/lib* $VCPKG_ROOT/installed/${vcpkg_target}/lib/
'';
postPatch = ''
substituteInPlace common/src/Version.h.in \
--subst-var-by APP_VERSION_YEAR ${lib.versions.major version} \
--subst-var-by APP_VERSION_NUMBER ${lib.versions.minor version} \
--subst-var-by GIT_DESCRIBE v${version}
substituteInPlace app/CMakeLists.txt \
--replace-fail 'set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")' 'set(CPACK_PACKAGING_INSTALL_PREFIX "'$out'")'
'';
nativeBuildInputs = [
cmake
ninja
curl
git
pandoc
qt6.wrapQtAppsHook
copyDesktopItems
pkg-config
unzip
zip
];
buildInputs = [
libGL
libGLU
xorg.libXxf86vm
xorg.libSM
freeimage
freetype
qt6.qtbase
qt6.qtwayland
qt6.qtsvg
catch2
fmt
glew
miniz
tinyxml-2
assimp
];
QT_PLUGIN_PATH = "${qt6.qtbase}/${qt6.qtbase.qtPluginPrefix}";
QT_QPA_PLATFORM = "offscreen";
cmakeFlags = [
"-DCMAKE_MAKE_PROGRAM=ninja"
"-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake"
"-DVCPKG_MANIFEST_INSTALL=OFF"
# https://github.com/TrenchBroom/TrenchBroom/issues/4002#issuecomment-1125390780
"-DCMAKE_PREFIX_PATH=cmake/packages"
];
ninjaFlags = [ "TrenchBroom" ];
postInstall = ''
pushd ../app/resources/linux/icons
for F in icon_*.png; do
SIZE=$(echo $F|sed -e s/icon_// -e s/.png//)
DIR=$out/share/icons/hicolor/$SIZE"x"$SIZE/apps
install -Dm644 $F $DIR/trenchbroom.png
done
popd
'';
desktopItems = [
(makeDesktopItem {
name = "TrenchBroom";
desktopName = "TrenchBroom level editor";
icon = "trenchbroom";
comment = meta.description;
categories = [ "Development" ];
exec = "trenchbroom";
})
];
meta = {
homepage = "https://trenchbroom.github.io/";
changelog = "https://github.com/TrenchBroom/TrenchBroom/releases/tag/v${version}";
description = "Level editor for Quake-engine based games";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ astro ];
platforms = [ "x86_64-linux" ];
};
}
+10
View File
@@ -478,6 +478,7 @@ mapAliases {
aria = aria2; # Added 2024-03-26
artim-dark = aritim-dark; # Added 2025-07-27
armcord = throw "ArmCord was renamed to legcord by the upstream developers. Action is required to migrate configurations between the two applications. Please see this PR for more details: https://github.com/NixOS/nixpkgs/pull/347971"; # Added 2024-10-11
arrayfire = throw "arrayfire was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
aseprite-unfree = aseprite; # Added 2023-08-26
asitop = macpm; # 'macpm' is a better-maintained downstream; keep 'asitop' for backwards-compatibility
async = throw "'async' has been removed due to lack of upstream maintenance"; # Added 2025-01-26
@@ -863,6 +864,8 @@ mapAliases {
embree2 = throw "embree2 has been removed, as it is unmaintained upstream and depended on tbb_2020"; # Added 2025-09-14
EmptyEpsilon = empty-epsilon; # Added 2024-07-14
emulationstation = throw "emulationstation was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
emulationstation-de = throw "emulationstation-de was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
enyo-doom = enyo-launcher; # Added 2022-09-09
eolie = throw "'eolie' has been removed due to being unmaintained"; # Added 2025-04-15
epapirus-icon-theme = throw "'epapirus-icon-theme' has been removed because 'papirus-icon-theme' no longer supports building with elementaryOS icon support"; # Added 2025-06-15
@@ -955,6 +958,7 @@ mapAliases {
fntsample = throw "fntsample has been removed as it is unmaintained upstream"; # Added 2025-04-21
foldingathome = throw "'foldingathome' has been renamed to/replaced by 'fahclient'"; # Converted to throw 2024-10-17
follow = lib.warnOnInstantiate "follow has been renamed to folo" folo; # Added 2025-05-18
forge = throw "forge was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
forgejo-actions-runner = forgejo-runner; # Added 2024-04-04
fornalder = throw "'fornalder' has been removed as it is unmaintained upstream"; # Added 2025-01-25
foundationdb71 = throw "foundationdb71 has been removed; please upgrade to foundationdb73"; # Added 2024-12-28
@@ -984,6 +988,7 @@ mapAliases {
g4music = gapless; # Added 2024-07-26
g4py = throw "'g4py' has been renamed to/replaced by 'python3Packages.geant4'"; # Converted to throw 2024-10-17
gamecube-tools = throw "gamecube-tools was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
gamin = throw "'gamin' has been removed as it is unmaintained upstream"; # Added 2024-04-19
garage_0_8 = throw "'garage_0_8' has been removed as it is unmaintained upstream"; # Added 2025-06-23
garage_0_8_7 = throw "'garage_0_8_7' has been removed as it is unmaintained upstream"; # Added 2025-06-23
@@ -2073,6 +2078,7 @@ mapAliases {
pds = lib.warnOnInstantiate "'pds' has been renamed to 'bluesky-pds'" bluesky-pds; # Added 2025-08-20
pdsadmin = lib.warnOnInstantiate "'pdsadmin' has been renamed to 'bluesky-pdsadmin'" bluesky-pdsadmin; # Added 2025-08-20
peach = asouldocs; # Added 2022-08-28
perceptual-diff = throw "perceptual-diff was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
percona-server_innovation = lib.warnOnInstantiate "Percona upstream has decided to skip all Innovation releases of MySQL and only release LTS versions." percona-server; # Added 2024-10-13
percona-server_lts = percona-server; # Added 2024-10-13
percona-xtrabackup_innovation = lib.warnOnInstantiate "Percona upstream has decided to skip all Innovation releases of MySQL and only release LTS versions." percona-xtrabackup; # Added 2024-10-13
@@ -2085,6 +2091,7 @@ mapAliases {
petrinizer = throw "'petrinizer' has been removed, as it was broken and unmaintained"; # added 2024-05-09
pg-gvm = throw "pg-gvm has been moved to postgresql.pkgs.pg-gvm to make it work with all versions of PostgreSQL"; # added 2024-11-30
pgadmin = pgadmin4; # Added 2022-01-14
pgf_graphics = throw "pgf_graphics was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
pharo-spur64 = pharo; # Added 2022-08-03
phlare = throw "'phlare' has been removed as the upstream project was archived."; # Added 2025-03-27
php81 = throw "php81 is EOL";
@@ -2124,6 +2131,7 @@ mapAliases {
polypane = throw "'polypane' has been removed due to lack of maintenance in nixpkgs"; # Added 2025-06-25
poretools = throw "poretools has been removed from nixpkgs, as it was broken and unmaintained"; # Added 2024-06-03
posix_man_pages = throw "'posix_man_pages' has been renamed to/replaced by 'man-pages-posix'"; # Converted to throw 2024-10-17
posterazor = throw "posterazor was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
powerdns = pdns; # Added 2022-03-28
postfixadmin = throw "'postfixadmin' has been removed due to lack of maintenance and missing support for PHP >8.1"; # Added 2025-10-03
presage = throw "presage has been removed, as it has been unmaintained since 2018"; # Added 2024-03-24
@@ -2341,6 +2349,7 @@ mapAliases {
rubyPackages_3_1 = throw "rubyPackages_3_1 has been removed, as it is has reached endoflife upstream"; # Added 2025-10-12
rubyPackages_3_2 = throw "rubyPackages_3_2 has been removed, as it will reach endoflife upstream during Nixpkgs 25.11s support cycle"; # Added 2025-10-12
ruby-zoom = throw "'ruby-zoom' has been removed due to lack of maintaince and had not been updated since 2020"; # Added 2025-08-24
rucksack = throw "rucksack was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
runCommandNoCC = runCommand; # Added 2021-08-15
runCommandNoCCLocal = runCommandLocal; # Added 2021-08-15
run-scaled = throw "run-scaled has been removed due to being deprecated. Consider using run_scaled from 'xpra' instead"; # Added 2025-03-17
@@ -2633,6 +2642,7 @@ mapAliases {
transcode = throw "transcode has been removed as it is unmaintained"; # Added 2024-12-11
transfig = fig2dev; # Added 2022-02-15
transifex-client = transifex-cli; # Added 2023-12-29
trenchbroom = throw "trenchbroom was removed due to numerous vulnerabilities in freeimage"; # Added 2025-10-23
trfl = throw "trfl has been removed, because it has not received an update for 3 years and was broken"; # Added 2024-07-25
trezor_agent = trezor-agent; # Added 2024-01-07
trilium-next-desktop = trilium-desktop; # Added 2025-08-30