freeimage: drop (#454867)

This commit is contained in:
Philip Taron
2025-10-23 21:17:24 +00:00
committed by GitHub
33 changed files with 15 additions and 1933 deletions
-5
View File
@@ -620,11 +620,6 @@ lib.mapAttrs mkLicense (
fullName = "Unspecified free software license";
};
freeimage = {
spdxId = "FreeImage";
fullName = "FreeImage Public License v1.0";
};
fsl11Mit = {
fullName = "Functional Source License, Version 1.1, MIT Future License";
spdxId = "FSL-1.1-MIT";
-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,13 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginICO.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginICO.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginICO.cpp 2023-09-28 19:34:45.524031668 +0200
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginICO.cpp 2023-09-28 19:34:47.717009813 +0200
@@ -301,6 +301,9 @@ LoadStandardIcon(FreeImageIO *io, fi_han
int width = bmih.biWidth;
int height = bmih.biHeight / 2; // height == xor + and mask
unsigned bit_count = bmih.biBitCount;
+ if (bit_count != 1 && bit_count != 2 && bit_count != 4 && bit_count != 8 && bit_count != 16 && bit_count != 24 && bit_count != 32) {
+ return NULL;
+ }
unsigned line = CalculateLine(width, bit_count);
unsigned pitch = CalculatePitch(line);
@@ -1,14 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PSDParser.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PSDParser.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PSDParser.cpp 2023-09-28 19:34:47.287014100 +0200
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PSDParser.cpp 2023-09-28 19:34:47.832008666 +0200
@@ -780,6 +780,10 @@ int psdThumbnail::Read(FreeImageIO *io,
FreeImage_Unload(_dib);
}
+ if (_WidthBytes != _Width * _BitPerPixel / 8) {
+ throw "Invalid PSD image";
+ }
+
if(_Format == 1) {
// kJpegRGB thumbnail image
_dib = FreeImage_LoadFromHandle(FIF_JPEG, io, handle);
@@ -1,21 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PSDParser.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PSDParser.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PSDParser.cpp 2023-09-28 19:34:47.936007630 +0200
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PSDParser.cpp 2023-09-28 19:34:47.940007590 +0200
@@ -1466,6 +1466,7 @@ FIBITMAP* psdParser::ReadImageData(FreeI
const unsigned dstBpp = (depth == 1) ? 1 : FreeImage_GetBPP(bitmap)/8;
const unsigned dstLineSize = FreeImage_GetPitch(bitmap);
BYTE* const dst_first_line = FreeImage_GetScanLine(bitmap, nHeight - 1);//<*** flipped
+ const unsigned dst_buffer_size = dstLineSize * nHeight;
BYTE* line_start = new BYTE[lineSize]; //< fileline cache
@@ -1481,6 +1482,9 @@ FIBITMAP* psdParser::ReadImageData(FreeI
const unsigned channelOffset = GetChannelOffset(bitmap, c) * bytes;
BYTE* dst_line_start = dst_first_line + channelOffset;
+ if (channelOffset + lineSize > dst_buffer_size) {
+ throw "Invalid PSD image";
+ }
for(unsigned h = 0; h < nHeight; ++h, dst_line_start -= dstLineSize) {//<*** flipped
io->read_proc(line_start, lineSize, 1, handle);
ReadImageLine(dst_line_start, line_start, lineSize, dstBpp, bytes);
@@ -1,19 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/Metadata/Exif.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/Metadata/Exif.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/Metadata/Exif.cpp 2023-09-28 19:34:45.003036859 +0200
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/Metadata/Exif.cpp 2023-09-28 19:34:47.505011926 +0200
@@ -770,8 +770,13 @@ jpeg_read_exif_dir(FIBITMAP *dib, const
//
const WORD entriesCount0th = ReadUint16(msb_order, ifd0th);
-
- DWORD next_offset = ReadUint32(msb_order, DIR_ENTRY_ADDR(ifd0th, entriesCount0th));
+
+ const BYTE* de_addr = DIR_ENTRY_ADDR(ifd0th, entriesCount0th);
+ if(de_addr+4 >= (BYTE*)(dwLength + ifd0th - tiffp)) {
+ return TRUE; //< no thumbnail
+ }
+
+ DWORD next_offset = ReadUint32(msb_order, de_addr);
if((next_offset == 0) || (next_offset >= dwLength)) {
return TRUE; //< no thumbnail
}
@@ -1,15 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginTIFF.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginTIFF.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginTIFF.cpp 2023-09-28 19:34:47.713009853 +0200
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginTIFF.cpp 2023-09-28 19:34:48.043006563 +0200
@@ -2142,6 +2142,11 @@ Load(FreeImageIO *io, fi_handle handle,
uint32_t tileRowSize = (uint32_t)TIFFTileRowSize(tif);
uint32_t imageRowSize = (uint32_t)TIFFScanlineSize(tif);
+ if (width / tileWidth * tileRowSize * 8 > bitspersample * samplesperpixel * width) {
+ free(tileBuffer);
+ throw "Corrupted tiled TIFF file";
+ }
+
// In the tiff file the lines are saved from up to down
// In a DIB the lines must be saved from down to up
@@ -1,14 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginTIFF.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginTIFF.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginTIFF.cpp 2023-09-28 19:34:47.501011966 +0200
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginTIFF.cpp 2023-09-28 19:34:47.610010879 +0200
@@ -372,6 +372,10 @@ static void
ReadPalette(TIFF *tiff, uint16_t photometric, uint16_t bitspersample, FIBITMAP *dib) {
RGBQUAD *pal = FreeImage_GetPalette(dib);
+ if (!pal) {
+ return;
+ }
+
switch(photometric) {
case PHOTOMETRIC_MINISBLACK: // bitmap and greyscale image types
case PHOTOMETRIC_MINISWHITE:
@@ -1,14 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginJPEG.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginJPEG.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginJPEG.cpp 2024-03-10 14:22:17.818579271 +0100
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginJPEG.cpp 2024-03-10 14:22:18.776573816 +0100
@@ -1086,6 +1086,10 @@ Load(FreeImageIO *io, fi_handle handle,
jpeg_read_header(&cinfo, TRUE);
+ if (cinfo.image_width > JPEG_MAX_DIMENSION || cinfo.image_height > JPEG_MAX_DIMENSION) {
+ throw FI_MSG_ERROR_DIB_MEMORY;
+ }
+
// step 4: set parameters for decompression
unsigned int scale_denom = 1; // fraction by which to scale image
@@ -1,16 +0,0 @@
diff -rupN --no-dereference freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginTIFF.cpp freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginTIFF.cpp
--- freeimage-svn-r1909-FreeImage-trunk/Source/FreeImage/PluginTIFF.cpp 2024-03-10 14:22:18.669574426 +0100
+++ freeimage-svn-r1909-FreeImage-trunk-new/Source/FreeImage/PluginTIFF.cpp 2024-03-10 14:22:18.673574403 +0100
@@ -1484,6 +1484,12 @@ Load(FreeImageIO *io, fi_handle handle,
(int)bitspersample, (int)samplesperpixel, (int)photometric);
throw (char*)NULL;
}
+ if (planar_config == PLANARCONFIG_SEPARATE && bitspersample < 8) {
+ FreeImage_OutputMessageProc(s_format_id,
+ "Unable to handle this format: bitspersample = 8, TIFFTAG_PLANARCONFIG = PLANARCONFIG_SEPARATE"
+ );
+ throw (char*)NULL;
+ }
// ---------------------------------------------------------------------------------
@@ -1,15 +0,0 @@
Fix build with libtiff 4.4.0 by not using a private libtiff API.
Patch by Kurt Schwehr: https://sourceforge.net/p/freeimage/discussion/36109/thread/2018fdc6e7/
diff -ru a/Source/Metadata/XTIFF.cpp b/Source/Metadata/XTIFF.cpp
--- a/Source/Metadata/XTIFF.cpp
+++ b/Source/Metadata/XTIFF.cpp
@@ -749,7 +749,7 @@
continue;
}
// type of storage may differ (e.g. rationnal array vs float array type)
- if((unsigned)_TIFFDataSize(tif_tag_type) != FreeImage_TagDataWidth(tag_type)) {
+ if((unsigned)TIFFFieldSetGetSize(fld) != FreeImage_TagDataWidth(tag_type)) {
// skip tag or _TIFFmemcpy will fail
continue;
}
-170
View File
@@ -1,170 +0,0 @@
{
lib,
stdenv,
fetchsvn,
cctools,
libtiff,
libpng,
zlib,
libwebp,
libraw,
openexr,
openjpeg,
libjpeg,
jxrlib,
pkg-config,
fixDarwinDylibNames,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "freeimage";
version = "3.18.0-unstable-2024-04-18";
src = fetchsvn {
url = "svn://svn.code.sf.net/p/freeimage/svn/";
rev = "1911";
hash = "sha256-JznVZUYAbsN4FplnuXxCd/ITBhH7bfGKWXep2A6mius=";
};
sourceRoot = "${finalAttrs.src.name}/FreeImage/trunk";
# Ensure that the bundled libraries are not used at all
prePatch = ''
rm -rf Source/Lib* Source/OpenEXR Source/ZLib
'';
# Tell patch to work with trailing carriage returns
patchFlags = [
"-p1"
"--binary"
];
patches = [
./unbundle.diff
./CVE-2020-24292.patch
./CVE-2020-24293.patch
./CVE-2020-24295.patch
./CVE-2021-33367.patch
./CVE-2021-40263.patch
./CVE-2021-40266.patch
./CVE-2023-47995.patch
./CVE-2023-47997.patch
];
postPatch = ''
# To support cross compilation, use the correct `pkg-config`.
substituteInPlace Makefile.fip \
--replace "pkg-config" "$PKG_CONFIG"
substituteInPlace Makefile.gnu \
--replace "pkg-config" "$PKG_CONFIG"
''
+ lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) ''
# Upstream Makefile hardcodes i386 and x86_64 architectures only
substituteInPlace Makefile.osx --replace "x86_64" "arm64"
'';
nativeBuildInputs = [
pkg-config
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools
fixDarwinDylibNames
];
buildInputs = [
libtiff
libtiff.dev_private
libpng
zlib
libwebp
libraw
openexr
openjpeg
libjpeg
libjpeg.dev_private
jxrlib
];
postBuild = lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
make -f Makefile.fip
'';
INCDIR = "${placeholder "out"}/include";
INSTALLDIR = "${placeholder "out"}/lib";
preInstall = ''
mkdir -p $INCDIR $INSTALLDIR
''
# Workaround for Makefiles.osx not using ?=
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
makeFlagsArray+=( "INCDIR=$INCDIR" "INSTALLDIR=$INSTALLDIR" )
'';
postInstall =
lib.optionalString (!stdenv.hostPlatform.isDarwin) ''
make -f Makefile.fip install
''
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
ln -s $out/lib/libfreeimage.3.dylib $out/lib/libfreeimage.dylib
'';
enableParallelBuilding = true;
meta = {
description = "Open Source library for accessing popular graphics image file formats";
homepage = "http://freeimage.sourceforge.net/";
license = with lib.licenses; [
freeimage
gpl2Only
gpl3Only
];
knownVulnerabilities = [
"CVE-2024-31570"
"CVE-2024-28584"
"CVE-2024-28583"
"CVE-2024-28582"
"CVE-2024-28581"
"CVE-2024-28580"
"CVE-2024-28579"
"CVE-2024-28578"
"CVE-2024-28577"
"CVE-2024-28576"
"CVE-2024-28575"
"CVE-2024-28574"
"CVE-2024-28573"
"CVE-2024-28572"
"CVE-2024-28571"
"CVE-2024-28570"
"CVE-2024-28569"
"CVE-2024-28568"
"CVE-2024-28567"
"CVE-2024-28566"
"CVE-2024-28565"
"CVE-2024-28564"
"CVE-2024-28563"
"CVE-2024-28562"
"CVE-2024-9029"
# "CVE-2023-47997"
"CVE-2023-47996"
# "CVE-2023-47995"
"CVE-2023-47994"
"CVE-2023-47993"
"CVE-2023-47992"
# "CVE-2021-40266"
"CVE-2021-40265"
"CVE-2021-40264"
# "CVE-2021-40263"
"CVE-2021-40262"
# "CVE-2021-33367"
# "CVE-2020-24295"
"CVE-2020-24294"
# "CVE-2020-24293"
# "CVE-2020-24292"
"CVE-2020-21426"
"CVE-2019-12214"
"CVE-2019-12212"
];
maintainers = [ ];
platforms = with lib.platforms; unix;
};
})
File diff suppressed because one or more lines are too long
@@ -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 -2
View File
@@ -27,7 +27,6 @@
"libheif"
"libnsgif"
],
freeimage,
libtiff,
libjpeg_turbo,
libjxl,
@@ -50,7 +49,6 @@ let
backends = {
inherit
freeimage
libtiff
libpng
librsvg
@@ -59,6 +57,7 @@ let
libnsgif
;
libjpeg = libjpeg_turbo;
freeimage = throw "freeimage backend not supported";
};
backendFlags = map (
-2
View File
@@ -32,7 +32,6 @@
graphicsmagick,
gdal,
openimageio,
freeimage,
testers,
}:
@@ -113,7 +112,6 @@ stdenv.mkDerivation (finalAttrs: {
graphicsmagick
gdal
openimageio
freeimage
;
inherit (python3Packages) pillow imread;
+3 -6
View File
@@ -7,7 +7,6 @@
curl,
fetchFromGitHub,
ffmpeg,
freeimage,
gcc-unwrapped,
icu,
libmediainfo,
@@ -19,7 +18,6 @@
pkg-config,
readline,
sqlite,
withFreeImage ? false, # default to false because freeimage is insecure
}:
let
@@ -71,8 +69,7 @@ stdenv.mkDerivation {
pcre-cpp
readline
sqlite
]
++ lib.optionals withFreeImage [ freeimage ];
];
configureFlags = [
"--disable-examples"
@@ -88,8 +85,8 @@ stdenv.mkDerivation {
"--with-readline"
"--with-sodium"
"--with-termcap"
]
++ (if withFreeImage then [ "--with-freeimage" ] else [ "--without-freeimage" ]);
"--without-freeimage"
];
# On darwin, some macros defined in AssertMacros.h (from apple-sdk) are conflicting.
postConfigure = ''
@@ -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" ];
};
}
-3
View File
@@ -27,9 +27,6 @@ let
cl-cairo2-xlib = super.cl-cairo2-xlib.overrideLispAttrs (o: {
nativeLibs = [ pkgs.gtk2-x11 ];
});
cl-freeimage = super.cl-freeimage.overrideLispAttrs (o: {
nativeLibs = [ pkgs.freeimage ];
});
cl-freetype2 = super.cl-freetype2.overrideLispAttrs (o: {
nativeLibs = [ pkgs.freetype ];
nativeBuildInputs = [ pkgs.freetype ];
+11
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
@@ -865,6 +866,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
@@ -957,6 +960,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
@@ -966,6 +970,7 @@ mapAliases {
francis = kdePackages.francis; # added 2024-07-13
freecad-qt6 = freecad; # added 2025-06-14
freecad-wayland = freecad; # added 2025-06-14
freeimage = throw "freeimage was removed due to numerous vulnerabilities"; # Added 2025-10-23
freerdp3 = freerdp; # added 2025-03-25
freerdpUnstable = freerdp; # added 2025-03-25
frostwire = throw "frostwire was removed, as it was broken due to reproducibility issues, use `frostwire-bin` package instead."; # added 2024-05-17
@@ -986,6 +991,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
@@ -2082,6 +2088,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
@@ -2094,6 +2101,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";
@@ -2134,6 +2142,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
@@ -2351,6 +2360,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
@@ -2646,6 +2656,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
-4
View File
@@ -7225,10 +7225,6 @@ with pkgs;
fplll = callPackage ../development/libraries/fplll { };
fplll_20160331 = callPackage ../development/libraries/fplll/20160331.nix { };
freeimage = callPackage ../by-name/fr/freeimage/package.nix {
openexr = openexr_2;
};
freeipa = callPackage ../os-specific/linux/freeipa {
# NOTE: freeipa and sssd need to be built with the same version of python
kerberos = krb5.override {