diff --git a/.gitignore b/.gitignore index 7a5cfa7..76f95dc 100644 --- a/.gitignore +++ b/.gitignore @@ -14,12 +14,7 @@ /third_party-0.8.1.tar.gz /jpegxl-0.8.2.tar.gz /third_party-0.8.2.tar.gz -/jpegxl-0.9.2.tar.gz -/third_party-0.9.2.tar.gz -/jpegxl-0.10.2.tar.gz -/third_party-0.10.2.tar.gz -/jpegxl-0.10.3.tar.gz -/third_party-0.10.3.tar.gz -/jpegxl-0.11.1.tar.gz -/third_party-0.11.1.tar.gz -/testdata-0.11.1.tar.gz +/jpegxl-0.8.3.tar.gz +/third_party-0.8.3.tar.gz +/jpegxl-0.8.4.tar.gz +/third_party-0.8.4.tar.gz diff --git a/.packit.yaml b/.packit.yaml deleted file mode 100644 index cd9ebce..0000000 --- a/.packit.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# See the documentation for more information: -# https://packit.dev/docs/configuration/ - -upstream_project_url: https://github.com/libjxl/libjxl -upstream_tag_template: v{version} - -# run opencv-clean.sh -# the sed currently hacks the script so that the version is correctly set and the sources upload is handled by Packit -actions: - pre-sync: - - bash -c "cd ${PACKIT_DOWNSTREAM_REPO}; sed '1d' ./update_third_party.sh | VERSION=${PACKIT_PROJECT_VERSION} bash" - -jobs: - - job: pull_from_upstream - trigger: release - dist_git_branches: - - fedora-rawhide diff --git a/22d12d74e7bc56b09cfb1973aa89ec8d714fa3fc.patch b/22d12d74e7bc56b09cfb1973aa89ec8d714fa3fc.patch new file mode 100644 index 0000000..2910f95 --- /dev/null +++ b/22d12d74e7bc56b09cfb1973aa89ec8d714fa3fc.patch @@ -0,0 +1,31 @@ +From 22d12d74e7bc56b09cfb1973aa89ec8d714fa3fc Mon Sep 17 00:00:00 2001 +From: Eastdong <31920925+IEAST@users.noreply.github.com> +Date: Thu, 23 Feb 2023 06:08:36 +0800 +Subject: [PATCH] Add missing content to fix gcc compilation for RISCV + architecture. (#2211) + +* Add missing content to fix gcc compilation for RISCV architecture. + +* add name to AUTHORS + +* lint fix + +[RWMJ: Removed AUTHORS change since it causes a patch conflict] + +Co-authored-by: Moritz Firsching +--- + lib/jxl/enc_xyb.cc | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/lib/jxl/enc_xyb.cc b/lib/jxl/enc_xyb.cc +index 1ef78877a71..2ee0abf821a 100644 +--- a/lib/jxl/enc_xyb.cc ++++ b/lib/jxl/enc_xyb.cc +@@ -6,6 +6,7 @@ + #include "lib/jxl/enc_xyb.h" + + #include ++#include + #include + + #undef HWY_TARGET_INCLUDE diff --git a/README.packit b/README.packit deleted file mode 100644 index fafa6eb..0000000 --- a/README.packit +++ /dev/null @@ -1,3 +0,0 @@ -This repository is maintained by packit. -https://packit.dev/ -The file was generated using packit 0.104.1. diff --git a/jpegxl.spec b/jpegxl.spec index f17a415..30e6e00 100644 --- a/jpegxl.spec +++ b/jpegxl.spec @@ -1,16 +1,16 @@ # epel 8 need this other already have it %undefine __cmake_in_source_build -# developper recommendation -%global toolchain clang # Uncomment for special build to rebuild aom on bumped soname. #global new_soname 1 -%global sover_old 0.10 -%global sover 0.11 +%global sover_old 0.7 +%global sover 0.8 + +%global gdk_pixbuf_moduledir $(pkgconf gdk-pixbuf-2.0 --variable=gdk_pixbuf_moduledir) -%bcond_with gimp_plugin %if 0%{?fedora} +%bcond_without gimp_plugin %bcond_without tcmalloc %endif @@ -20,7 +20,7 @@ decoder).} Name: jpegxl Epoch: 1 -Version: 0.11.1 +Version: 0.8.4 Release: %autorelease %{?new_soname:-p -e 0~sonamebump} Summary: JPEG XL image format reference implementation @@ -30,32 +30,34 @@ Summary: JPEG XL image format reference implementation # skcms: BSD License: BSD-3-Clause AND Apache-2.0 AND Zlib URL: https://jpeg.org/jpegxl/ -Source0: https://github.com/libjxl/libjxl/archive/v%{version}/%{name}-%{version}.tar.gz +VCS: https://github.com/libjxl/libjxl +Source0: %vcs/archive/v%{version}/%{name}-%{version}.tar.gz -# set VERSION and run ./update_third_party.sh to get Source1 and Source2 +# set VERSION and run ./update_third_party.sh to get Source1 Source1: third_party-%{version}.tar.gz -Source2: testdata-%{version}.tar.gz + +# Add missing header for RISC-V. +# Upstream in jpegxl >= 0.9.0 +Patch1: https://github.com/libjxl/libjxl/commit/22d12d74e7bc56b09cfb1973aa89ec8d714fa3fc.patch BuildRequires: asciidoc BuildRequires: cmake BuildRequires: doxygen -BuildRequires: clang +BuildRequires: gcc-c++ BuildRequires: giflib-devel %if %{with tcmalloc} BuildRequires: gperftools-devel %endif BuildRequires: ninja-build %if %{with gimp_plugin} -BuildRequires: pkgconfig(gimp-3.0) +BuildRequires: pkgconfig(gimp-2.0) %endif ## sjpeg examples are not built #BuildRequires: (pkgconfig(glut) or pkgconfig(freeglut)) BuildRequires: gtest-devel BuildRequires: gflags-devel -BuildRequires: gmock-devel BuildRequires: pkgconfig(libhwy) BuildRequires: pkgconfig(libbrotlicommon) -BuildRequires: pkgconfig(lcms2) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libpng) ## benchmark tools are not built @@ -73,15 +75,16 @@ BuildRequires: libjxl < %{epoch}:%{version} %endif # No official release -Provides: bundled(sjpeg) = 0-0.1.20230608gite5ab130 +Provides: bundled(sjpeg) = 0-0.1.20210522git868ab55 # Build system is Bazel, which is not packaged by Fedora -Provides: bundled(skcms) = 0-0.1.20240122git51b7f2a +Provides: bundled(skcms) = 0-0.1.20210522git6437475 %description %common_description %package -n libjxl-utils Summary: Utilities for manipulating JPEG XL images +Recommends: jxl-pixbuf-loader = %{epoch}:%{version}-%{release} Recommends: gimp-jxl-plugin = %{epoch}:%{version}-%{release} Provides: jpegxl-utils = %{epoch}:%{version}-%{release} Obsoletes: jpegxl-utils < 0.3.7-5 @@ -110,12 +113,9 @@ Documentation for JPEG-XL. %package -n libjxl Summary: Library files for JPEG-XL Requires: shared-mime-info +Recommends: jxl-pixbuf-loader = %{epoch}:%{version}-%{release} Provides: jpegxl-libs = %{epoch}:%{version}-%{release} Obsoletes: jpegxl-libs < 0.3.7-5 -Obsoletes: jxl-pixbuf-loader < %{epoch}:%{version}-%{release} -%if %{without gimp_plugin} -Obsoletes: gimp-jxl-plugin < 1:0.10.3-4 -%endif %description -n libjxl %{common_description} @@ -133,6 +133,14 @@ Obsoletes: jpegxl-devel < 0.3.7-5 Development files for JPEG-XL. +%package -n jxl-pixbuf-loader +Summary: JPEG-XL image loader for GTK+ applications +BuildRequires: pkgconfig(gdk-pixbuf-2.0) +Requires: gdk-pixbuf2 + +%description -n jxl-pixbuf-loader +Jxl-pixbuf-loader contains a plugin to load JPEG-XL images in GTK+ applications. + %if %{with gimp_plugin} %package -n gimp-jxl-plugin Summary: A plugin for loading and saving JPEG-XL images @@ -144,17 +152,15 @@ This is a GIMP plugin for loading and saving JPEG-XL images. %prep %autosetup -p1 -n libjxl-%{version} -rm -rf testdata/ third_party/ -%setup -q -T -D -a 1 -a 2 -n libjxl-%{version} +rm -rf third_party/ +%setup -q -T -D -a 1 -n libjxl-%{version} %build -export CC=clang CXX=clang++ %cmake -DENABLE_CCACHE=1 \ - -DBUILD_TESTING=ON \ + -DBUILD_TESTING=OFF \ -DINSTALL_GTEST:BOOL=OFF \ -DJPEGXL_ENABLE_BENCHMARK:BOOL=OFF \ -DJPEGXL_ENABLE_PLUGINS:BOOL=ON \ - -DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF:BOOL=OFF \ -DJPEGXL_FORCE_SYSTEM_BROTLI:BOOL=ON \ -DJPEGXL_FORCE_SYSTEM_GTEST:BOOL=ON \ -DJPEGXL_FORCE_SYSTEM_HWY:BOOL=ON \ @@ -167,38 +173,29 @@ export CC=clang CXX=clang++ %install %cmake_install -#rm -v %{buildroot}%{_libdir}/*.a +rm -v %{buildroot}%{_libdir}/*.a %if 0%{?new_soname} cp -p %{_libdir}/libjxl.so.%{sover_old}* \ %{_libdir}/libjxl_threads.so.%{sover_old}* \ - %{_libdir}/libjxl_cms.so.%{sover_old}* \ %{buildroot}%{_libdir} %endif -%check -%ifarch s390x -# https://github.com/libjxl/libjxl/issues/3629 -%ctest -E 'DecodeTest\.(ProgressionTestLosslessAlpha|FlushTestLosslessProgressiveAlpha)|EncodeTest\.FrameSettingsTest|JxlTest\.RoundtripAlpha(Resampling(OnlyAlpha)?|16)|JxlTest\.RoundtripProgressive(Level2Slow)?|ModularTest\.RoundtripLossy(DeltaPalette|16)?|RoundtripLossless/ModularTestParam\.RoundtripLossless/1bitSqueeze|RoundtripLossless/ModularTestParam\.RoundtripLossless/(1|2[01467]|30)bitSqueeze|PassesTest\.ProgressiveDownsample2DegradesCorrectly(Grayscale)?' -%else -%ctest -%endif - %files -n libjxl-utils %doc CONTRIBUTING.md CONTRIBUTORS README.md %{_bindir}/cjxl %{_bindir}/djxl +%{_bindir}/cjpeg_hdr %{_bindir}/jxlinfo %{_mandir}/man1/cjxl.1* %{_mandir}/man1/djxl.1* %files -n libjxl-devtools -%{_bindir}/djxl_fuzzer_corpus +%{_bindir}/fuzzer_corpus %{_bindir}/butteraugli_main %{_bindir}/decode_and_encode %{_bindir}/display_to_hlg %{_bindir}/exr_to_pq -%{_bindir}/icc_simplify %{_bindir}/pq_to_hlg %{_bindir}/render_hlg %{_bindir}/tone_map @@ -208,7 +205,6 @@ cp -p %{_libdir}/libjxl.so.%{sover_old}* \ %{_bindir}/ssimulacra2 %{_bindir}/xyb_range %{_bindir}/jxl_from_tree -%{_bindir}/local_tone_map %files doc %doc doc/*.md @@ -219,12 +215,12 @@ cp -p %{_libdir}/libjxl.so.%{sover_old}* \ %license LICENSE %{_libdir}/libjxl.so.%{sover}* %{_libdir}/libjxl_threads.so.%{sover}* -%{_libdir}/libjxl_cms.so.%{sover}* %if 0%{?new_soname} %{_libdir}/libjxl.so.%{sover_old}* %{_libdir}/libjxl_threads.so.%{sover_old}* -%{_libdir}/libjxl_cms.so.%{sover_old}* %endif +%dir %{_datadir}/thumbnailers +%{_datadir}/thumbnailers/jxl.thumbnailer %{_datadir}/mime/packages/image-jxl.xml %files -n libjxl-devel @@ -232,11 +228,12 @@ cp -p %{_libdir}/libjxl.so.%{sover_old}* \ %{_includedir}/jxl/ %{_libdir}/libjxl.so %{_libdir}/libjxl_threads.so -%{_libdir}/libjxl_cms.so -%{_libdir}/libjxl_extras_codec.a %{_libdir}/pkgconfig/libjxl.pc %{_libdir}/pkgconfig/libjxl_threads.pc -%{_libdir}/pkgconfig/libjxl_cms.pc + +%files -n jxl-pixbuf-loader +%license LICENSE +%{_libdir}/gdk-pixbuf-2.0/*/loaders/libpixbufloader-jxl.so %if %{with gimp_plugin} %files -n gimp-jxl-plugin diff --git a/sources b/sources index f7d352f..9ba7b55 100644 --- a/sources +++ b/sources @@ -1,3 +1,2 @@ -SHA512 (jpegxl-0.11.1.tar.gz) = 0cfd81d9d3b783f96bd04f244d73ffbc12186c89993d46064a2751bef0a446a5e86be05add5c10f60d4482d39333d9bf3f9a866d6eb84f8fa0d4e8b5828fd74c -SHA512 (testdata-0.11.1.tar.gz) = e775be0e8a56a828a4b70a174c841b3d474dbd170d899c50343896b21e46c6ae20f017f905ad7b83e097031e8add2788a00b1c452aa22e159b1f3a4e72a47155 -SHA512 (third_party-0.11.1.tar.gz) = 720544bd722cbc6ef81db660786e4b022f156d05672b7d7ee6110d367272dcf22a35458f51e0d850df2f6fb368978c43fa4fff99763010360a8b5673d2e556ca +SHA512 (jpegxl-0.8.4.tar.gz) = 68e0ffe692f4c5aa33e3f78cea4631b00f42304bc8b9e5accb5e9ff3c19525dca0b02936bf17e787da5a009fd06ba66101d287124f0a93f4b683bc5d7b32b59e +SHA512 (third_party-0.8.4.tar.gz) = b7cf17551cc75a16dddc4988aad1ba1a14f1e6ba24984e26d1c61f3bd848baab4f4d9cfa26ac78a2baf617767eba6f7aae6b6b6cbc5c0d1cb831a1b628fbcf43 diff --git a/update_third_party.sh b/update_third_party.sh index 70ba696..14499b2 100755 --- a/update_third_party.sh +++ b/update_third_party.sh @@ -1,20 +1,18 @@ -VERSION=0.11.1 +VERSION=0.8.4 git clone https://github.com/libjxl/libjxl cd libjxl/ git checkout . git checkout v${VERSION} ./deps.sh -rm -rvf third_party/brotli/ -rm -rvf third_party/googletest/ -rm -rvf third_party/HEVCSoftware/ -rm -rvf third_party/highway/ -rm -rvf third_party/lcms/ -rm -rvf third_party/libjpeg-turbo -rm -rvf third_party/libpng/ -rm -rvf third_party/skcms/profiles/ -rm -rvf third_party/zlib +rm -r third_party/brotli/ +rm -r third_party/googletest/ +rm -r third_party/HEVCSoftware/ +rm -r third_party/highway/ +rm -r third_party/lcms/ +rm -r third_party/libpng/ +rm -r third_party/skcms/profiles/ +rm -r third_party/zlib tar -zcf ../third_party-${VERSION}.tar.gz third_party/ -tar -zcf ../testdata-${VERSION}.tar.gz testdata/ cd .. rm -rf libjxl/