[packages/libjxl] - new; system libs patch to use system lcms2 (and possibly lodepng, sjpeg, skcms)

qboosh qboosh at pld-linux.org
Tue Oct 5 21:58:10 CEST 2021


commit fe1629dfcb17114f1e6e6102a6e077cd2879946b
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Tue Oct 5 22:03:01 2021 +0200

    - new; system libs patch to use system lcms2 (and possibly lodepng, sjpeg, skcms)

 libjxl-system-libs.patch |  78 +++++++++++++++++++
 libjxl.spec              | 197 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 275 insertions(+)
---
diff --git a/libjxl.spec b/libjxl.spec
new file mode 100644
index 0000000..7ae33ac
--- /dev/null
+++ b/libjxl.spec
@@ -0,0 +1,197 @@
+Summary:	JPEG XL reference implementation
+Summary(pl.UTF-8):	Referencyjna implementacja JPEG XL
+Name:		libjxl
+Version:	0.5
+Release:	1
+License:	BSD
+Group:		Libraries
+#Source0Download: https://github.com/libjxl/libjxl/releases
+Source0:	https://github.com/libjxl/libjxl/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	692b38d4af06f0590304e9626b5fb881
+Patch0:		%{name}-system-libs.patch
+URL:		https://github.com/libjxl/libjxl
+BuildRequires:	OpenEXR-devel
+BuildRequires:	asciidoc
+BuildRequires:	cmake >= 3.10
+BuildRequires:	doxygen
+BuildRequires:	gdk-pixbuf2-devel >= 2.38
+BuildRequires:	giflib-devel >= 5
+BuildRequires:	gimp-devel >= 1:2.10
+BuildRequires:	gmock-devel
+BuildRequires:	gtest-devel
+BuildRequires:	highway-devel
+BuildRequires:	lcms2-devel >= 2
+BuildRequires:	libavif-devel
+BuildRequires:	libbrotli-devel
+BuildRequires:	libjpeg-devel
+BuildRequires:	libpng-devel
+BuildRequires:	libwebp-devel
+BuildRequires:	libstdc++-devel >= 6:7
+BuildRequires:	pkgconfig
+BuildRequires:	python3-devel >= 1:3
+BuildRequires:	rpmbuild(macros) >= 1.605
+BuildRequires:	zlib-devel
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%if "%{_lib}" != "lib"
+%define		libext		%(lib="%{_lib}"; echo ${lib#lib})
+%define		pqext		-%{libext}
+%else
+%define		pqext		%{nil}
+%endif
+
+%description
+JPEG XL reference implementation.
+
+%description -l pl.UTF-8
+Referencyjna implementacja JPEG XL.
+
+%package tools
+Summary:	Tools to encode and decode JPEG XL files
+Summary(pl.UTF-8):	Narzędzia do kodowania i dekodowania plików JPEG XL
+Group:		Applications/Graphics
+Requires:	%{name} = %{version}-%{release}
+
+%description tools
+Tools to encode and decode JPEG XL files.
+
+%description tools -l pl.UTF-8
+Narzędzia do kodowania i dekodowania plików JPEG XL.
+
+%package devel
+Summary:	Header files for JXL libraries
+Summary(pl.UTF-8):	Pliki nagłówkowe bibliotek JXL
+Group:		Development/Libraries
+Requires:	%{name} = %{version}-%{release}
+Requires:	highway-devel
+Requires:	lcms2-devel >= 2
+Requires:	libbrotli-devel
+Requires:	libstdc++-devel >= 6:7
+
+%description devel
+Header files for JXL libraries.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek JXL.
+
+%package static
+Summary:	Static JXL libraries
+Summary(pl.UTF-8):	Statyczne biblioteki JXL
+Group:		Development/Libraries
+Requires:	%{name}-devel = %{version}-%{release}
+
+%description static
+Static JXL libraries.
+
+%description static -l pl.UTF-8
+Statyczne biblioteki JXL.
+
+%package -n gdk-pixbuf2-loader-jxl
+Summary:	JPEG XL loader module for gdk-pixbuf2 library
+Summary(pl.UTF-8):	Moduł biblioteki gdk-pixbuf2 wczytujący pliki JPEG XL
+Group:		Libraries
+Requires:	%{name} = %{version}-%{release}
+Requires:	gdk-pixbuf2 >= 2.38
+Requires:	shared-mime-info
+
+%description -n gdk-pixbuf2-loader-jxl
+JPEG XL loader module for gdk-pixbuf2 library.
+
+%description -n gdk-pixbuf2-loader-jxl -l pl.UTF-8
+Moduł biblioteki gdk-pixbuf2 wczytujący pliki JPEG XL.
+
+%package -n gimp-plugin-jxl
+Summary:	JPEG XL load/save plugin for GIMP
+Summary(pl.UTF-8):	Wtyczka wczytująca/zapisująca pliki JPEG XL dla GIMP-a
+Group:		Applications/Graphics
+Requires:	%{name} = %{version}-%{release}
+Requires:	gimp >= 1:2.10
+
+%description -n gimp-plugin-jxl
+JPEG XL load/save plugin for GIMP.
+
+%description -n gimp-plugin-jxl -l pl.UTF-8
+Wtyczka wczytująca/zapisująca pliki JPEG XL dla GIMP-a.
+
+%prep
+%setup -q
+%patch0 -p1
+
+%build
+install -d build
+cd build
+%cmake .. \
+	-DJPEGXL_ENABLE_PLUGINS=ON \
+	-DJPEGXL_ENABLE_SJPEG=OFF \
+	-DJPEGXL_ENABLE_SKCMS=OFF \
+	-DJPEGXL_ENABLE_TCMALLOC=OFF \
+	-DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
+	-DJPEGXL_FORCE_SYSTEM_GTEST=ON \
+	-DJPEGXL_FORCE_SYSTEM_HWY=ON
+
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} -C build install \
+	DESTDIR=$RPM_BUILD_ROOT
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
+%post	-n gdk-pixbuf2-loader-jxl
+umask 022
+%{_bindir}/gdk-pixbuf-query-loaders%{pqext} --update-cache || :
+%update_mime_database
+
+%postun	-n gdk-pixbuf2-loader-jxl
+%update_mime_database
+if [ "$1" != "0" ]; then
+	umask 022
+	[ ! -x %{_bindir}/gdk-pixbuf-query-loaders%{pqext} ] || \
+	%{_bindir}/gdk-pixbuf-query-loaders%{pqext} --update-cache || :
+fi
+
+%files
+%defattr(644,root,root,755)
+%doc AUTHORS CHANGELOG.md CONTRIBUTORS LICENSE PATENTS README.md SECURITY.md doc/xl_overview.md
+%attr(755,root,root) %{_libdir}/libjxl.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libjxl.so.0
+%attr(755,root,root) %{_libdir}/libjxl_threads.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libjxl_threads.so.0
+
+%files tools
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/benchmark_xl
+%attr(755,root,root) %{_bindir}/cjxl
+%attr(755,root,root) %{_bindir}/djxl
+%{_mandir}/man1/cjxl.1*
+%{_mandir}/man1/djxl.1*
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libjxl.so
+%attr(755,root,root) %{_libdir}/libjxl_threads.so
+%{_libdir}/libjxl_dec.a
+%{_includedir}/jxl
+%{_pkgconfigdir}/libjxl.pc
+%{_pkgconfigdir}/libjxl_threads.pc
+
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libjxl.a
+%{_libdir}/libjxl_threads.a
+
+%files -n gdk-pixbuf2-loader-jxl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jxl.so
+%{_datadir}/mime/packages/image-jxl.xml
+%{_datadir}/thumbnailers/jxl.thumbnailer
+
+%files -n gimp-plugin-jxl
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/gimp/2.0/plug-ins/file-jxl/file-jxl
diff --git a/libjxl-system-libs.patch b/libjxl-system-libs.patch
new file mode 100644
index 0000000..2728575
--- /dev/null
+++ b/libjxl-system-libs.patch
@@ -0,0 +1,78 @@
+--- libjxl-0.5/third_party/CMakeLists.txt.orig	2021-08-02 18:20:01.000000000 +0200
++++ libjxl-0.5/third_party/CMakeLists.txt	2021-10-03 20:02:33.247456659 +0200
+@@ -113,15 +113,6 @@ else()
+   endif()  # JPEGXL_DEP_LICENSE_DIR
+ endif()
+ 
+-# lodepng
+-if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lodepng/lodepng.h" )
+-  message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the "
+-          "build dependencies.")
+-endif()
+-include(lodepng.cmake)
+-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lodepng/LICENSE"
+-               ${PROJECT_BINARY_DIR}/LICENSE.lodepng COPYONLY)
+-
+ # brotli
+ if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/brotli/c/include/brotli/decode.h" OR
+     JPEGXL_FORCE_SYSTEM_BROTLI)
+@@ -191,33 +182,3 @@ else()
+   endif()  # BROTLI_EMSCRIPTEN
+ endif()
+ 
+-# *cms
+-if (JPEGXL_ENABLE_SKCMS)
+-  if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/skcms/skcms.h" )
+-    message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the "
+-            "build dependencies.")
+-  endif()
+-  include(skcms.cmake)
+-  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/skcms/LICENSE"
+-                 ${PROJECT_BINARY_DIR}/LICENSE.skcms COPYONLY)
+-endif ()
+-if (JPEGXL_ENABLE_VIEWERS OR NOT JPEGXL_ENABLE_SKCMS)
+-  if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lcms/.git" )
+-    message(SEND_ERROR "Please run git submodule update --init")
+-  endif()
+-  include(lcms2.cmake)
+-  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lcms/COPYING"
+-                 ${PROJECT_BINARY_DIR}/LICENSE.lcms COPYONLY)
+-endif()
+-
+-# sjpeg
+-if (JPEGXL_ENABLE_SJPEG)
+-  if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/sjpeg/CMakeLists.txt")
+-    message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the "
+-            "build dependencies.")
+-  endif()
+-  include(sjpeg.cmake)
+-  configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sjpeg/COPYING"
+-                 ${PROJECT_BINARY_DIR}/LICENSE.sjpeg COPYONLY)
+-endif ()
+-
+--- libjxl-0.5/lib/jxl.cmake.orig	2021-08-02 18:20:01.000000000 +0200
++++ libjxl-0.5/lib/jxl.cmake	2021-10-03 20:50:42.295138680 +0200
+@@ -381,23 +381,6 @@ if (JPEGXL_ENABLE_PROFILER)
+ target_link_libraries(jxl_enc-obj PUBLIC jxl_profiler)
+ endif()
+ 
+-#TODO(lode): don't depend on CMS for the core library
+-if (JPEGXL_ENABLE_SKCMS)
+-  target_include_directories(jxl_enc-obj PRIVATE
+-    $<TARGET_PROPERTY:skcms,INCLUDE_DIRECTORIES>
+-  )
+-  target_include_directories(jxl_dec-obj PRIVATE
+-    $<TARGET_PROPERTY:skcms,INCLUDE_DIRECTORIES>
+-  )
+-else ()
+-  target_include_directories(jxl_enc-obj PRIVATE
+-    $<TARGET_PROPERTY:lcms2,INCLUDE_DIRECTORIES>
+-  )
+-  target_include_directories(jxl_dec-obj PRIVATE
+-    $<TARGET_PROPERTY:lcms2,INCLUDE_DIRECTORIES>
+-  )
+-endif ()
+-
+ # Headers for exporting/importing public headers
+ include(GenerateExportHeader)
+ # TODO(deymo): Add these visibility properties to the static dependencies of
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/libjxl.git/commitdiff/fe1629dfcb17114f1e6e6102a6e077cd2879946b



More information about the pld-cvs-commit mailing list