From 92137069346f6575610edd4878c8ff23daf235df Mon Sep 17 00:00:00 2001 From: tigro Date: Thu, 31 Aug 2023 13:54:57 +0300 Subject: [PATCH] import libwebp-1.3.1-1.el9 --- .gitignore | 2 +- .libwebp.metadata | 2 +- SOURCES/libwebp-cmakedir.patch | 12 ++ SOURCES/libwebp-freeglut.patch | 23 ++- SOURCES/libwebp-mingw-libsuffix.patch | 13 ++ SOURCES/libwebp-rpath.patch | 20 ++ SPECS/libwebp.spec | 275 +++++++++++++++++++++----- 7 files changed, 291 insertions(+), 56 deletions(-) create mode 100644 SOURCES/libwebp-cmakedir.patch create mode 100644 SOURCES/libwebp-mingw-libsuffix.patch create mode 100644 SOURCES/libwebp-rpath.patch diff --git a/.gitignore b/.gitignore index 6d21619..540d121 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/libwebp-1.2.0.tar.gz +SOURCES/libwebp-1.3.1.tar.gz diff --git a/.libwebp.metadata b/.libwebp.metadata index 375764f..de90914 100644 --- a/.libwebp.metadata +++ b/.libwebp.metadata @@ -1 +1 @@ -350503d8ffea6cb1cb3ac1eaa9bc371458de10ae SOURCES/libwebp-1.2.0.tar.gz +068accf4b781052fe1144c26831babdf07b48787 SOURCES/libwebp-1.3.1.tar.gz diff --git a/SOURCES/libwebp-cmakedir.patch b/SOURCES/libwebp-cmakedir.patch new file mode 100644 index 0000000..77a0c2b --- /dev/null +++ b/SOURCES/libwebp-cmakedir.patch @@ -0,0 +1,12 @@ +diff -rupN --no-dereference libwebp-1.3.1/CMakeLists.txt libwebp-1.3.1-new/CMakeLists.txt +--- libwebp-1.3.1/CMakeLists.txt 2023-06-30 13:58:57.280934048 +0200 ++++ libwebp-1.3.1-new/CMakeLists.txt 2023-06-30 13:58:57.284933988 +0200 +@@ -738,7 +738,7 @@ install( + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +-set(ConfigPackageLocation ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake/) ++set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/) + install(EXPORT ${PROJECT_NAME}Targets NAMESPACE ${PROJECT_NAME}:: + DESTINATION ${ConfigPackageLocation}) + diff --git a/SOURCES/libwebp-freeglut.patch b/SOURCES/libwebp-freeglut.patch index 99facf6..058e205 100644 --- a/SOURCES/libwebp-freeglut.patch +++ b/SOURCES/libwebp-freeglut.patch @@ -1,7 +1,7 @@ -diff -rupN --no-dereference libwebp-1.2.0/CMakeLists.txt libwebp-1.2.0-new/CMakeLists.txt ---- libwebp-1.2.0/CMakeLists.txt 2021-01-21 04:43:45.000000000 +0100 -+++ libwebp-1.2.0-new/CMakeLists.txt 2021-02-01 11:37:20.760764115 +0100 -@@ -506,8 +506,8 @@ endif() +diff -rupN --no-dereference libwebp-1.3.1/CMakeLists.txt libwebp-1.3.1-new/CMakeLists.txt +--- libwebp-1.3.1/CMakeLists.txt 2023-06-23 20:52:38.000000000 +0200 ++++ libwebp-1.3.1-new/CMakeLists.txt 2023-06-30 13:58:57.206935155 +0200 +@@ -564,8 +564,8 @@ endif() if(WEBP_BUILD_VWEBP) # vwebp @@ -12,9 +12,18 @@ diff -rupN --no-dereference libwebp-1.2.0/CMakeLists.txt libwebp-1.2.0-new/CMake include_directories(${WEBP_DEP_IMG_INCLUDE_DIRS}) parse_makefile_am(${CMAKE_CURRENT_SOURCE_DIR}/examples "VWEBP_SRCS" "vwebp") add_executable(vwebp ${VWEBP_SRCS}) -diff -rupN --no-dereference libwebp-1.2.0/examples/vwebp.c libwebp-1.2.0-new/examples/vwebp.c ---- libwebp-1.2.0/examples/vwebp.c 2021-01-21 04:43:45.000000000 +0100 -+++ libwebp-1.2.0-new/examples/vwebp.c 2021-02-01 11:37:20.760764115 +0100 +@@ -573,7 +573,7 @@ if(WEBP_BUILD_VWEBP) + vwebp + ${OPENGL_LIBRARIES} + exampleutil +- GLUT::GLUT ++ glut + imageioutil + webp + webpdemux) +diff -rupN --no-dereference libwebp-1.3.1/examples/vwebp.c libwebp-1.3.1-new/examples/vwebp.c +--- libwebp-1.3.1/examples/vwebp.c 2023-06-23 20:52:38.000000000 +0200 ++++ libwebp-1.3.1-new/examples/vwebp.c 2023-06-30 13:58:57.207935140 +0200 @@ -27,7 +27,7 @@ #if defined(HAVE_GLUT_GLUT_H) #include diff --git a/SOURCES/libwebp-mingw-libsuffix.patch b/SOURCES/libwebp-mingw-libsuffix.patch new file mode 100644 index 0000000..24d1876 --- /dev/null +++ b/SOURCES/libwebp-mingw-libsuffix.patch @@ -0,0 +1,13 @@ +diff -rupN --no-dereference libwebp-1.3.1/CMakeLists.txt libwebp-1.3.1-new/CMakeLists.txt +--- libwebp-1.3.1/CMakeLists.txt 2023-06-30 13:58:57.241934631 +0200 ++++ libwebp-1.3.1-new/CMakeLists.txt 2023-06-30 13:58:57.246934557 +0200 +@@ -286,6 +286,9 @@ macro(set_version FILE TARGET_NAME NAME_ + MACHO_CURRENT_VERSION + ${LIBWEBP_MACHO_COMPATIBILITY_VERSION}.${LT_REVISION}) + endif() ++ if(WIN32) ++ set_target_properties(${TARGET_NAME} PROPERTIES SUFFIX "-${LT_CURRENT_MINUS_AGE}${CMAKE_SHARED_LIBRARY_SUFFIX}") ++ endif(WIN32) + endmacro() + + # ############################################################################## diff --git a/SOURCES/libwebp-rpath.patch b/SOURCES/libwebp-rpath.patch new file mode 100644 index 0000000..2103f85 --- /dev/null +++ b/SOURCES/libwebp-rpath.patch @@ -0,0 +1,20 @@ +diff -rupN --no-dereference libwebp-1.3.1/CMakeLists.txt libwebp-1.3.1-new/CMakeLists.txt +--- libwebp-1.3.1/CMakeLists.txt 2023-06-30 13:58:57.318933479 +0200 ++++ libwebp-1.3.1-new/CMakeLists.txt 2023-06-30 13:58:57.323933405 +0200 +@@ -112,11 +112,11 @@ endif() + include(cmake/deps.cmake) + include(GNUInstallDirs) + +-if(BUILD_SHARED_LIBS AND NOT DEFINED CMAKE_INSTALL_RPATH) +- # Set the rpath to match autoconf/libtool behavior. Note this must be set +- # before target creation. +- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") +-endif() ++# if(BUILD_SHARED_LIBS AND NOT DEFINED CMAKE_INSTALL_RPATH) ++# # Set the rpath to match autoconf/libtool behavior. Note this must be set ++# # before target creation. ++# set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") ++# endif() + + # ############################################################################## + # Options. diff --git a/SPECS/libwebp.spec b/SPECS/libwebp.spec index fc61db7..d8845b2 100644 --- a/SPECS/libwebp.spec +++ b/SPECS/libwebp.spec @@ -1,27 +1,64 @@ %global _hardened_build 1 +%ifarch %{java_arches} +%bcond_without java +%else +%bcond_with java +%endif + +%if 0%{?rhel} +%bcond_with mingw +%else +%bcond_without mingw +%endif + Name: libwebp -Version: 1.2.0 -Release: 6%{?dist} +Version: 1.3.1 +Release: 1%{?dist} URL: http://webmproject.org/ Summary: Library and tools for the WebP graphics format # Additional IPR is licensed as well. See PATENTS file for details License: BSD Source0: http://downloads.webmproject.org/releases/webp/%{name}-%{version}.tar.gz Source1: libwebp_jni_example.java +# Fix build with freeglut Patch0: libwebp-freeglut.patch -Patch1: mozilla-1819244.patch - +# Add version suffix to mingw libraries +Patch1: libwebp-mingw-libsuffix.patch +# Fix cmake module install location +Patch2: libwebp-cmakedir.patch +# Kill rpath +Patch3: libwebp-rpath.patch + +BuildRequires: cmake +BuildRequires: freeglut-devel +BuildRequires: gcc +BuildRequires: giflib-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel -BuildRequires: giflib-devel BuildRequires: libtiff-devel +%if %{with java} BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: swig -BuildRequires: autoconf automake libtool -BuildRequires: freeglut-devel -BuildRequires: make +%endif + +%if %{with mingw} +BuildRequires: mingw32-filesystem >= 95 +BuildRequires: mingw32-gcc +BuildRequires: mingw32-binutils +BuildRequires: mingw32-giflib +BuildRequires: mingw32-libpng +BuildRequires: mingw32-libjpeg + +BuildRequires: mingw64-filesystem >= 95 +BuildRequires: mingw64-gcc +BuildRequires: mingw64-binutils +BuildRequires: mingw64-giflib +BuildRequires: mingw64-libpng +BuildRequires: mingw64-libjpeg +%endif + %description WebP is an image format that does lossy compression of digital @@ -33,7 +70,6 @@ images more efficiently. %package tools Summary: The WebP command line tools -Requires: %{name}%{?_isa} = %{version}-%{release} %description tools WebP is an image format that does lossy compression of digital @@ -55,6 +91,7 @@ developers can use WebP to compress, archive and distribute digital images more efficiently. +%if %{with java} %package java Summary: Java bindings for libwebp, a library for the WebP format Requires: %{name}%{?_isa} = %{version}-%{release} @@ -63,6 +100,28 @@ Requires: jpackage-utils %description java Java bindings for libwebp. +%endif + + +%if %{with mingw} +%package -n mingw32-%{name} +Summary: MinGW Windows %{name} library +BuildArch: noarch + +%description -n mingw32-%{name} +MinGW Windows %{name} library. + + +%package -n mingw64-%{name} +Summary: MinGW Windows %{name} library +BuildArch: noarch + +%description -n mingw64-%{name} +MinGW Windows %{name} library. + + +%{?mingw_debug_package} +%endif %prep @@ -70,19 +129,18 @@ Java bindings for libwebp. %build -autoreconf -vif -%ifarch aarch64 -export CFLAGS="%{optflags} -frename-registers" +# Native build +%cmake +%cmake_build + +%if %{with mingw} +# MinGW build +%mingw_cmake -DWEBP_BUILD_VWEBP=OFF +%mingw_make_build %endif -# Neon disabled due to resulting CFLAGS conflict resulting in -# inlining failed in call to always_inline '[...]': target specific option mismatch -%configure --disable-static --enable-libwebpmux \ - --enable-libwebpdemux --enable-libwebpdecoder \ - --disable-neon -%make_build V=1 -make -C examples vwebp - -# swig generated Java bindings + +%if %{with java} +# SWIG generated Java bindings cp %{SOURCE1} . cd swig rm -rf libwebp.jar libwebp_java_wrap.c @@ -96,25 +154,64 @@ gcc %{__global_ldflags} %{optflags} -shared \ -I/usr/lib/jvm/java/include \ -I/usr/lib/jvm/java/include/linux \ -I../src \ - -L../src/.libs -lwebp libwebp_java_wrap.c \ + -L../%{_vpath_builddir} -lwebp libwebp_java_wrap.c \ -o libwebp_jni.so cd java javac com/google/webp/libwebp.java jar cvf ../libwebp.jar com/google/webp/*.class +%endif %install -%make_install +# Native build +%cmake_install + +%if %{with mingw} +# MinGW build +%mingw_make_install +rm -rf %{buildroot}%{mingw32_mandir} +rm -rf %{buildroot}%{mingw64_mandir} +%endif + find "%{buildroot}/%{_libdir}" -type f -name "*.la" -delete -# swig generated Java bindings +%if %{with java} +# SWIG generated Java bindings mkdir -p %{buildroot}/%{_libdir}/%{name}-java cp swig/*.jar swig/*.so %{buildroot}/%{_libdir}/%{name}-java/ +%endif + + +%{?mingw_debug_install_post} + +%check +%ctest -%ldconfig_scriptlets +%files +%doc README.md PATENTS NEWS AUTHORS +%license COPYING +%{_libdir}/%{name}.so.7* +%{_libdir}/%{name}decoder.so.3* +%{_libdir}/%{name}demux.so.2* +%{_libdir}/%{name}mux.so.3* +%{_libdir}/libsharpyuv.so.0* + +%files devel +%{_libdir}/%{name}.so +%{_libdir}/%{name}decoder.so +%{_libdir}/%{name}demux.so +%{_libdir}/%{name}mux.so +%{_libdir}/libsharpyuv.so +%{_includedir}/webp/ +%{_libdir}/pkgconfig/libwebp.pc +%{_libdir}/pkgconfig/libwebpdecoder.pc +%{_libdir}/pkgconfig/libwebpdemux.pc +%{_libdir}/pkgconfig/libwebpmux.pc +%{_libdir}/pkgconfig/libsharpyuv.pc +%{_libdir}/cmake/WebP/ %files tools %{_bindir}/cwebp @@ -126,37 +223,121 @@ cp swig/*.jar swig/*.so %{buildroot}/%{_libdir}/%{name}-java/ %{_bindir}/vwebp %{_mandir}/man*/* -%files -n %{name} -%doc README PATENTS NEWS AUTHORS -%license COPYING -%{_libdir}/%{name}.so.7* -%{_libdir}/%{name}decoder.so.3* -%{_libdir}/%{name}demux.so.2* -%{_libdir}/%{name}mux.so.3* - -%files devel -%{_libdir}/%{name}*.so -%{_includedir}/* -%{_libdir}/pkgconfig/* - +%if %{with java} %files java %doc libwebp_jni_example.java %{_libdir}/%{name}-java/ +%endif + +%if %{with mingw} +%files -n mingw32-libwebp +%license PATENTS COPYING +%{mingw32_bindir}/cwebp.exe +%{mingw32_bindir}/dwebp.exe +%{mingw32_bindir}/gif2webp.exe +%{mingw32_bindir}/img2webp.exe +%{mingw32_bindir}/webpinfo.exe +%{mingw32_bindir}/webpmux.exe +%{mingw32_bindir}/libwebp-7.dll +%{mingw32_bindir}/libwebpdecoder-3.dll +%{mingw32_bindir}/libwebpdemux-2.dll +%{mingw32_bindir}/libwebpmux-3.dll +%{mingw32_bindir}/libsharpyuv-0.dll +%{mingw32_includedir}/webp/ +%{mingw32_libdir}/pkgconfig/libwebp.pc +%{mingw32_libdir}/pkgconfig/libwebpdecoder.pc +%{mingw32_libdir}/pkgconfig/libwebpdemux.pc +%{mingw32_libdir}/pkgconfig/libwebpmux.pc +%{mingw32_libdir}/pkgconfig/libsharpyuv.pc +%{mingw32_libdir}/cmake/WebP/ +%{mingw32_libdir}/libwebp.dll.a +%{mingw32_libdir}/libwebpdecoder.dll.a +%{mingw32_libdir}/libwebpdemux.dll.a +%{mingw32_libdir}/libwebpmux.dll.a +%{mingw32_libdir}/libsharpyuv.dll.a + +%files -n mingw64-libwebp +%license PATENTS COPYING +%{mingw64_bindir}/cwebp.exe +%{mingw64_bindir}/dwebp.exe +%{mingw64_bindir}/gif2webp.exe +%{mingw64_bindir}/img2webp.exe +%{mingw64_bindir}/webpinfo.exe +%{mingw64_bindir}/webpmux.exe +%{mingw64_bindir}/libwebp-7.dll +%{mingw64_bindir}/libwebpdecoder-3.dll +%{mingw64_bindir}/libwebpdemux-2.dll +%{mingw64_bindir}/libwebpmux-3.dll +%{mingw64_bindir}/libsharpyuv-0.dll +%{mingw64_includedir}/webp/ +%{mingw64_libdir}/pkgconfig/libwebp.pc +%{mingw64_libdir}/pkgconfig/libwebpdecoder.pc +%{mingw64_libdir}/pkgconfig/libwebpdemux.pc +%{mingw64_libdir}/pkgconfig/libwebpmux.pc +%{mingw64_libdir}/pkgconfig/libsharpyuv.pc +%{mingw64_libdir}/cmake/WebP/ +%{mingw64_libdir}/libwebp.dll.a +%{mingw64_libdir}/libwebpdecoder.dll.a +%{mingw64_libdir}/libwebpdemux.dll.a +%{mingw64_libdir}/libwebpmux.dll.a +%{mingw64_libdir}/libsharpyuv.dll.a +%endif %changelog -* Wed Apr 26 2023 Martin Stransky - 1.2.0-6 -- Fix tools subpackage dependency +* Thu Aug 31 2023 Arkady L. Shane - 1.3.1-1 +- Rebuilt for MSVSphere 9.2 + +* Fri Jun 30 2023 Sandro Mani - 1.3.1-1 +- Update to 1.3.1 + +* Thu Jan 19 2023 Fedora Release Engineering - 1.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jan 13 2023 Sandro Mani - 1.3.0-1 +- Update to 1.3.0 + +* Thu Sep 22 2022 Sandro Mani - 1.2.4-2 +- Add libwebp_libsuffix.patch + +* Sun Aug 07 2022 Sandro Mani - 1.2.4-1 +- Update to 1.2.4 + +* Thu Jul 21 2022 Fedora Release Engineering - 1.2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jul 20 2022 Sandro Mani - 1.2.3-1 +- Update to 1.2.3 + +* Tue Jul 05 2022 Sandro Mani - 1.2.2-6 +- Limit -java subpackage to %%java_arches + +* Fri Mar 25 2022 Sandro Mani - 1.2.2-5 +- Rebuild with mingw-gcc-12 + +* Thu Feb 24 2022 Sandro Mani - 1.2.2-4 +- Make mingw subpackages noarch + +* Sat Feb 19 2022 Sandro Mani - 1.2.2-3 +- Add mingw subpackage + +* Sat Feb 05 2022 Jiri Vanek - 1.2.2-2 +- Rebuilt for java-17-openjdk as system jdk + +* Thu Jan 20 2022 Sandro Mani - 1.2.2-1 +- Update to 1.2.2 + +* Thu Jan 06 2022 Peter Robinson - 1.2.1-3 +- Drop aarch64 CFLAGS FTB workaround -* Wed Apr 26 2023 Martin Stransky - 1.2.0-4 -- Added fix for mzbz#1819244 +* Sun Jan 02 2022 Dennis Gilmore - 1.2.2-2 +- do not disable neon support -* Mon Aug 09 2021 Mohan Boddu - 1.2.0-3 -- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Related: rhbz#1991688 +* Sun Aug 15 2021 Sandro Mani - 1.2.1-1 +- Update to 1.2.1 -* Fri Apr 16 2021 Mohan Boddu - 1.2.0-2 -- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 +* Thu Jul 22 2021 Fedora Release Engineering - 1.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Mon Feb 01 2021 Sandro Mani - 1.2.0-1 - Update to 1.2.0