diff --git a/.gitignore b/.gitignore index 7a5cfa7..031836e 100644 --- a/.gitignore +++ b/.gitignore @@ -4,22 +4,3 @@ /third_party-0.5.tar.gz /jpegxl-0.6.1.tar.gz /third_party-0.6.1.tar.gz -/jpegxl-c426256.tar.gz -/third_party-c426256.tar.gz -/jpegxl-0.7rc.tar.gz -/third_party-0.7rc.tar.gz -/jpegxl-0.7.0.tar.gz -/third_party-0.7.0.tar.gz -/jpegxl-0.8.1.tar.gz -/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 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/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..e830d46 100644 --- a/jpegxl.spec +++ b/jpegxl.spec @@ -1,26 +1,19 @@ -# 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.6 +%global sover 0.6 -%bcond_with gimp_plugin -%if 0%{?fedora} -%bcond_without tcmalloc -%endif +%global gdk_pixbuf_moduledir $(pkgconf gdk-pixbuf-2.0 --variable=gdk_pixbuf_moduledir) + +# https://github.com/libjxl/libjxl/issues/63 +# %%global toolchain clang %global common_description %{expand: This package contains a reference implementation of JPEG XL (encoder and decoder).} Name: jpegxl -Epoch: 1 -Version: 0.11.1 +Version: 0.6.1 Release: %autorelease %{?new_soname:-p -e 0~sonamebump} Summary: JPEG XL image format reference implementation @@ -28,76 +21,66 @@ Summary: JPEG XL image format reference implementation # lodepng: zlib # sjpeg: ASL 2.0 # skcms: BSD -License: BSD-3-Clause AND Apache-2.0 AND Zlib +License: BSD and ASL 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 +# git clone https://github.com/libjxl/libjxl +# cd libjxl/ +# git checkout v%%{version} +# git submodule init ; git submodule update +# rm -r third_party/brotli/ third_party/difftest_ng/ third_party/googletest/ +# rm -r third_party/HEVCSoftware/ third_party/highway/ +# rm -r third_party/IQA-optimization/ third_party/lcms/ +# rm -r third_party/skcms/profiles/ third_party/vmaf/ third_party/testdata/ +# tar -zcvf ../third_party-%%{version}.tar.gz third_party/ Source1: third_party-%{version}.tar.gz -Source2: testdata-%{version}.tar.gz BuildRequires: asciidoc BuildRequires: cmake BuildRequires: doxygen +BuildRequires: extra-cmake-modules BuildRequires: clang BuildRequires: giflib-devel -%if %{with tcmalloc} BuildRequires: gperftools-devel -%endif BuildRequires: ninja-build -%if %{with gimp_plugin} -BuildRequires: pkgconfig(gimp-3.0) -%endif -## sjpeg examples are not built -#BuildRequires: (pkgconfig(glut) or pkgconfig(freeglut)) +BuildRequires: pkgconfig(gimp-2.0) +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 -#BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(OpenEXR) -## viewers are not built -#BuildRequires: extra-cmake-modules -#BuildRequires: pkgconfig(Qt5) -#BuildRequires: pkgconfig(Qt5X11Extras) +BuildRequires: pkgconfig(Qt5) +BuildRequires: pkgconfig(Qt5X11Extras) BuildRequires: pkgconfig(zlib) -# epel 8 need this other already have it -BuildRequires: python3-devel %if 0%{?new_soname} -BuildRequires: libjxl < %{epoch}:%{version} +BuildRequires: libjxl < %{version} %endif +# Header-only library to be directly included in the project's source tree +Provides: bundled(lodepng) = 0-0.1.20210522git48e5364 # 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: gimp-jxl-plugin = %{epoch}:%{version}-%{release} -Provides: jpegxl-utils = %{epoch}:%{version}-%{release} +Recommends: jxl-pixbuf-loader = %{version}-%{release} +Recommends: gimp-jxl-plugin = %{version}-%{release} +Provides: jpegxl-utils = %{version}-%{release} Obsoletes: jpegxl-utils < 0.3.7-5 %description -n libjxl-utils %{common_description} -%package -n libjxl-devtools -Summary: Development tools for JPEG-XL -Requires: libjxl%{?_isa} = %{epoch}:%{version}-%{release} - -%description -n libjxl-devtools -%{common_description} - -Development tools for JPEG-XL - %package doc Summary: Documentation for JPEG-XL BuildArch: noarch @@ -110,12 +93,9 @@ Documentation for JPEG-XL. %package -n libjxl Summary: Library files for JPEG-XL Requires: shared-mime-info -Provides: jpegxl-libs = %{epoch}:%{version}-%{release} +Recommends: jxl-pixbuf-loader = %{version}-%{release} +Provides: jpegxl-libs = %{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} @@ -124,8 +104,8 @@ Library files for JPEG-XL. %package -n libjxl-devel Summary: Development files for JPEG-XL -Requires: libjxl%{?_isa} = %{epoch}:%{version}-%{release} -Provides: jpegxl-devel = %{epoch}:%{version}-%{release} +Requires: libjxl%{?_isa} = %{version}-%{release} +Provides: jpegxl-devel = %{version}-%{release} Obsoletes: jpegxl-devel < 0.3.7-5 %description -n libjxl-devel @@ -133,83 +113,56 @@ Obsoletes: jpegxl-devel < 0.3.7-5 Development files for JPEG-XL. -%if %{with gimp_plugin} +%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. + %package -n gimp-jxl-plugin Summary: A plugin for loading and saving JPEG-XL images Requires: gimp %description -n gimp-jxl-plugin This is a GIMP plugin for loading and saving JPEG-XL images. -%endif %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 \ -DJPEGXL_WARNINGS_AS_ERRORS:BOOL=OFF \ - -DBUILD_SHARED_LIBS:BOOL=ON \ - -DBUNDLE_LIBPNG_DEFAULT:BOOL=OFF \ - -DBUNDLE_GFLAGS_DEFAULT:BOOL=OFF \ - -DJPEGXL_ENABLE_DEVTOOLS=ON + -DBUILD_SHARED_LIBS:BOOL=OFF %cmake_build -- all doc %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}/jxlinfo %{_mandir}/man1/cjxl.1* %{_mandir}/man1/djxl.1* -%files -n libjxl-devtools -%{_bindir}/djxl_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 -%{_bindir}/texture_to_cube -%{_bindir}/generate_lut_template -%{_bindir}/ssimulacra_main -%{_bindir}/ssimulacra2 -%{_bindir}/xyb_range -%{_bindir}/jxl_from_tree -%{_bindir}/local_tone_map - %files doc %doc doc/*.md %doc %{_vpath_builddir}/html @@ -219,12 +172,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,17 +185,16 @@ 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 -%if %{with gimp_plugin} +%files -n jxl-pixbuf-loader +%license LICENSE +%{_libdir}/gdk-pixbuf-2.0/*/loaders/libpixbufloader-jxl.so + %files -n gimp-jxl-plugin %license LICENSE %{_libdir}/gimp/2.0/plug-ins/file-jxl/ -%endif %changelog %autochangelog diff --git a/sources b/sources index f7d352f..75007c0 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.6.1.tar.gz) = 302935d722160b0b288ac63301f9e95caf82eccf6ad76c4f4da6316a0314ee3562115932b1ceacb0d02708de0a07788992d3478cae73af0b90193f5769f9fb52 +SHA512 (third_party-0.6.1.tar.gz) = 7e416daf97e1cc54da00ec9b58636151308371d223fe29fcc22f6e9087852fd6fe9784a4e2f3e191a85a6f907a2732520ee7c8fd387292e19b5cc0b8a9d9392b diff --git a/update_third_party.sh b/update_third_party.sh deleted file mode 100755 index 70ba696..0000000 --- a/update_third_party.sh +++ /dev/null @@ -1,20 +0,0 @@ -VERSION=0.11.1 - -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 -tar -zcf ../third_party-${VERSION}.tar.gz third_party/ -tar -zcf ../testdata-${VERSION}.tar.gz testdata/ -cd .. -rm -rf libjxl/