openjpeg: don't use vendored libs in tests (#355345)

This commit is contained in:
Emily
2024-11-20 02:33:34 +00:00
2 changed files with 85 additions and 21 deletions
+52
View File
@@ -0,0 +1,52 @@
NR-C1P0-p0_04.j2k-compare2base
NR-C1P0-p0_05.j2k-compare2base
NR-C1P0-p0_06.j2k-compare2base
NR-C1P1-p1_02.j2k-compare2base
NR-C1P1-p1_03.j2k-compare2base
NR-C1P1-p1_04.j2k-compare2base
NR-C1P1-p1_05.j2k-compare2base
NR-JP2-file2.jp2-compare2base
NR-RIC-subsampling_1.jp2-compare2base
NR-RIC-subsampling_2.jp2-compare2base
NR-RIC-zoo1.jp2-compare2base
NR-RIC-zoo2.jp2-compare2base
NR-DEC-_00042.j2k-2-decode-md5
NR-DEC-buxI.j2k-9-decode-md5
NR-DEC-CT_Phillips_JPEG2K_Decompr_Problem.j2k-13-decode-md5
NR-DEC-Marrin.jp2-18-decode-md5
NR-DEC-kodak_2layers_lrcp.j2c-31-decode-md5
NR-DEC-kodak_2layers_lrcp.j2c-32-decode-md5
NR-DEC-file409752.jp2-40-decode-md5
NR-DEC-issue188_beach_64bitsbox.jp2-41-decode-md5
NR-DEC-issue206_image-000.jp2-42-decode-md5
NR-DEC-issue205.jp2-43-decode-md5
NR-DEC-issue228.j2k-60-decode-md5
NR-DEC-issue142.j2k-66-decode-md5
NR-DEC-issue134.jp2-67-decode-md5
NR-DEC-issue135.j2k-68-decode-md5
NR-DEC-issue208.jp2-69-decode-md5
NR-DEC-issue211.jp2-70-decode-md5
NR-DEC-issue226.j2k-74-decode
NR-DEC-issue226.j2k-74-decode-md5
NR-DEC-p1_04.j2k-124-decode-md5
NR-DEC-p1_04.j2k-125-decode-md5
NR-DEC-p1_04.j2k-126-decode-md5
NR-DEC-p1_04.j2k-127-decode-md5
NR-DEC-p1_04.j2k-128-decode-md5
NR-DEC-p1_04.j2k-129-decode-md5
NR-DEC-p1_04.j2k-131-decode-md5
NR-DEC-p1_04.j2k-138-decode-md5
NR-DEC-p1_04.j2k-140-decode-md5
NR-DEC-p0_04.j2k-166-decode-md5
NR-DEC-p0_04.j2k-167-decode-md5
NR-DEC-p0_04.j2k-168-decode-md5
NR-DEC-p0_04.j2k-172-decode-md5
NR-DEC-issue205.jp2-253-decode-md5
NR-DEC-issue236-ESYCC-CDEF.jp2-254-decode-md5
NR-DEC-issue559-eci-090-CIELab.jp2-255-decode-md5
NR-DEC-issue559-eci-091-CIELab.jp2-256-decode-md5
NR-DEC-db11217111510058.jp2-306-decode-md5
NR-DEC-tnsot_zero.jp2-307-decode-md5
NR-DEC-Bretagne1_ht_lossy.j2k-311-decode-md5
Found-But-No-Test-issue1472-bigloop.j2k
Found-But-No-Test-small_world_non_consecutive_tilepart_tlm.jp2
+33 -21
View File
@@ -1,5 +1,5 @@
{ lib, stdenv, fetchFromGitHub, cmake, pkg-config
, libpng, libtiff, zlib, lcms2, jpylyzer
, libpng, libtiff, zlib, lcms2
, jpipLibSupport ? false # JPIP library & executables
, jpipServerSupport ? false, curl, fcgi # JPIP Server
, jdk
@@ -17,33 +17,42 @@
, vips
}:
let
mkFlag = optSet: flag: "-D${flag}=${if optSet then "ON" else "OFF"}";
in
stdenv.mkDerivation rec {
pname = "openjpeg";
version = "2.5.2";
src = fetchFromGitHub {
owner = "uclouvain";
repo = "openjpeg";
rev = "v${version}";
hash = "sha256-mQ9B3MJY2/bg0yY/7jUJrAXM6ozAHT5fmwES5Q1SGxw=";
};
srcs = [
(fetchFromGitHub {
owner = "uclouvain";
repo = "openjpeg";
rev = "v${version}";
hash = "sha256-mQ9B3MJY2/bg0yY/7jUJrAXM6ozAHT5fmwES5Q1SGxw=";
})
# data for tests. may need to get updated with package
# https://github.com/uclouvain/openjpeg-data
(fetchFromGitHub {
name = "data";
owner = "uclouvain";
repo = "openjpeg-data";
rev = "a428429db695fccfc6d698bd13b6937dffd9d005";
hash = "sha256-udUi7sPNQJ5uCIAM8SqMGee6vRj1QbF9pLjdpNTQE5k=";
})
];
sourceRoot = "source";
outputs = [ "out" "dev" ];
cmakeFlags = [
"-DCMAKE_INSTALL_NAME_DIR=\${CMAKE_INSTALL_PREFIX}/lib"
"-DBUILD_SHARED_LIBS=ON"
(lib.cmakeBool "BUILD_SHARED_LIBS" (!stdenv.hostPlatform.isStatic))
"-DBUILD_CODEC=ON"
"-DBUILD_THIRDPARTY=OFF"
(mkFlag jpipLibSupport "BUILD_JPIP")
(mkFlag jpipServerSupport "BUILD_JPIP_SERVER")
(lib.cmakeBool "BUILD_JPIP" jpipLibSupport)
(lib.cmakeBool "BUILD_JPIP_SERVER" jpipServerSupport)
"-DBUILD_VIEWER=OFF"
"-DBUILD_JAVA=OFF"
(mkFlag doCheck "BUILD_TESTING")
"-DOPJ_DATA_ROOT=../../data"
(lib.cmakeBool "BUILD_TESTING" doCheck)
];
nativeBuildInputs = [ cmake pkg-config ];
@@ -52,12 +61,15 @@ stdenv.mkDerivation rec {
++ lib.optionals jpipServerSupport [ curl fcgi ]
++ lib.optional (jpipLibSupport) jdk;
doCheck = (!stdenv.hostPlatform.isAarch64 && !stdenv.hostPlatform.isPower64); # tests fail on aarch64-linux and powerpc64
nativeCheckInputs = [ jpylyzer ];
# tests fail on aarch64-linux and powerpc64
doCheck = !stdenv.hostPlatform.isPower64
&& stdenv.buildPlatform.canExecute stdenv.hostPlatform;
checkPhase = ''
substituteInPlace ../tools/ctest_scripts/travis-ci.cmake \
--replace "JPYLYZER_EXECUTABLE=" "JPYLYZER_EXECUTABLE=\"$(command -v jpylyzer)\" # "
OPJ_SOURCE_DIR=.. ctest -S ../tools/ctest_scripts/travis-ci.cmake
runHook preCheck
ctest -j $NIX_BUILD_CORES \
-E '.*jpylyser' --exclude-from-file ${./exclude-tests}
runHook postCheck
'';
passthru = {