commit 8c1c6a87bb5cdc1e20a958460c4a11660a16d29e Author: MSVSphere Packaging Team Date: Mon Oct 9 22:58:05 2023 +0300 import libwebp-1.2.0-7.el9 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6d21619 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libwebp-1.2.0.tar.gz diff --git a/.libwebp.metadata b/.libwebp.metadata new file mode 100644 index 0000000..375764f --- /dev/null +++ b/.libwebp.metadata @@ -0,0 +1 @@ +350503d8ffea6cb1cb3ac1eaa9bc371458de10ae SOURCES/libwebp-1.2.0.tar.gz diff --git a/SOURCES/libwebp-freeglut.patch b/SOURCES/libwebp-freeglut.patch new file mode 100644 index 0000000..99facf6 --- /dev/null +++ b/SOURCES/libwebp-freeglut.patch @@ -0,0 +1,26 @@ +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() + + if(WEBP_BUILD_VWEBP) + # vwebp +- find_package(GLUT) +- if(GLUT_FOUND) ++ find_package(FreeGLUT) ++ if(FreeGLUT_FOUND) + 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 +@@ -27,7 +27,7 @@ + #if defined(HAVE_GLUT_GLUT_H) + #include + #else +-#include ++#include + #ifdef FREEGLUT + #include + #endif diff --git a/SOURCES/libwebp_jni_example.java b/SOURCES/libwebp_jni_example.java new file mode 100644 index 0000000..d28d9b8 --- /dev/null +++ b/SOURCES/libwebp_jni_example.java @@ -0,0 +1,27 @@ +import com.google.webp.libwebp; + +import java.lang.reflect.Method; + +public class libwebp_jni_example { + static { + try { + System.load("/usr/lib64/libwebp-java/libwebp_jni.so"); + } catch (UnsatisfiedLinkError e) { + System.load("/usr/lib/libwebp-java/libwebp_jni.so"); + } + } + + /** + * usage: java -cp libwebp.jar:. libwebp_jni_example + */ + public static void main(String argv[]) { + final int version = libwebp.WebPGetDecoderVersion(); + System.out.println("libwebp version: " + Integer.toHexString(version)); + + System.out.println("libwebp methods:"); + final Method[] libwebpMethods = libwebp.class.getDeclaredMethods(); + for (int i = 0; i < libwebpMethods.length; i++) { + System.out.println(libwebpMethods[i]); + } + } +} diff --git a/SOURCES/mozilla-1819244.patch b/SOURCES/mozilla-1819244.patch new file mode 100644 index 0000000..05fa0f8 --- /dev/null +++ b/SOURCES/mozilla-1819244.patch @@ -0,0 +1,68 @@ + +# HG changeset patch +# User Timothy Nikkel +# Date 1678835815 0 +# Node ID 53b805c752ff23080e100eda2b3b4280d4370b2e +# Parent 8fcdaf8d685d5903b127e041feb1716637b6008f +Bug 1819244. Cherry pic webp commit fix. r=aosmond, a=dsmith + +https://github.com/webmproject/libwebp/commit/a486d800b60d0af4cc0836bf7ed8f21e12974129 + +Differential Revision: https://phabricator.services.mozilla.com/D171814 + +diff --git a/media/libwebp/src/enc/alpha_enc.c b/media/libwebp/src/enc/alpha_enc.c +--- a/src/enc/alpha_enc.c ++++ b/src/enc/alpha_enc.c +@@ -8,16 +8,17 @@ + // ----------------------------------------------------------------------------- + // + // Alpha-plane compression. + // + // Author: Skal (pascal.massimino@gmail.com) + + #include + #include ++#include + + #include "src/enc/vp8i_enc.h" + #include "src/dsp/dsp.h" + #include "src/utils/filters_utils.h" + #include "src/utils/quant_levels_utils.h" + #include "src/utils/utils.h" + #include "src/webp/format_constants.h" + +@@ -143,31 +144,32 @@ static int EncodeAlphaInternal(const uin + output_size = VP8LBitWriterNumBytes(&tmp_bw); + if (output_size > data_size) { + // compressed size is larger than source! Revert to uncompressed mode. + method = ALPHA_NO_COMPRESSION; + VP8LBitWriterWipeOut(&tmp_bw); + } + } else { + VP8LBitWriterWipeOut(&tmp_bw); ++ memset(&result->bw, 0, sizeof(result->bw)); + return 0; + } + } + + if (method == ALPHA_NO_COMPRESSION) { + output = alpha_src; + output_size = data_size; + ok = 1; + } + + // Emit final result. + header = method | (filter << 2); + if (reduce_levels) header |= ALPHA_PREPROCESSED_LEVELS << 4; + +- VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size); ++ if (!VP8BitWriterInit(&result->bw, ALPHA_HEADER_LEN + output_size)) ok = 0; + ok = ok && VP8BitWriterAppend(&result->bw, &header, ALPHA_HEADER_LEN); + ok = ok && VP8BitWriterAppend(&result->bw, output, output_size); + + if (method != ALPHA_NO_COMPRESSION) { + VP8LBitWriterWipeOut(&tmp_bw); + } + ok = ok && !result->bw.error_; + result->score = VP8BitWriterSize(&result->bw); + diff --git a/SPECS/libwebp.spec b/SPECS/libwebp.spec new file mode 100644 index 0000000..9fcadbb --- /dev/null +++ b/SPECS/libwebp.spec @@ -0,0 +1,332 @@ +%global _hardened_build 1 + +Name: libwebp +Version: 1.2.0 +Release: 7%{?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 +Patch0: libwebp-freeglut.patch +Patch1: mozilla-1819244.patch + +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: giflib-devel +BuildRequires: libtiff-devel +BuildRequires: java-devel +BuildRequires: jpackage-utils +BuildRequires: swig +BuildRequires: autoconf automake libtool +BuildRequires: freeglut-devel +BuildRequires: make + +%description +WebP is an image format that does lossy compression of digital +photographic images. WebP consists of a codec based on VP8, and a +container based on RIFF. Webmasters, web developers and browser +developers can use WebP to compress, archive and distribute digital +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 +photographic images. WebP consists of a codec based on VP8, and a +container based on RIFF. Webmasters, web developers and browser +developers can use WebP to compress, archive and distribute digital +images more efficiently. + + +%package devel +Summary: Development files for libwebp, a library for the WebP format +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +WebP is an image format that does lossy compression of digital +photographic images. WebP consists of a codec based on VP8, and a +container based on RIFF. Webmasters, web developers and browser +developers can use WebP to compress, archive and distribute digital +images more efficiently. + + +%package java +Summary: Java bindings for libwebp, a library for the WebP format +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: java-headless +Requires: jpackage-utils + +%description java +Java bindings for libwebp. + + +%prep +%autosetup -p1 + + +%build +autoreconf -vif +%ifarch aarch64 +export CFLAGS="%{optflags} -frename-registers" +%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 +cp %{SOURCE1} . +cd swig +rm -rf libwebp.jar libwebp_java_wrap.c +mkdir -p java/com/google/webp +swig -ignoremissing -I../src -java \ + -package com.google.webp \ + -outdir java/com/google/webp \ + -o libwebp_java_wrap.c libwebp.swig + +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 \ + -o libwebp_jni.so + +cd java +javac com/google/webp/libwebp.java +jar cvf ../libwebp.jar com/google/webp/*.class + + +%install +%make_install +find "%{buildroot}/%{_libdir}" -type f -name "*.la" -delete + +# swig generated Java bindings +mkdir -p %{buildroot}/%{_libdir}/%{name}-java +cp swig/*.jar swig/*.so %{buildroot}/%{_libdir}/%{name}-java/ + + +%ldconfig_scriptlets + + +%files tools +%{_bindir}/cwebp +%{_bindir}/dwebp +%{_bindir}/gif2webp +%{_bindir}/img2webp +%{_bindir}/webpinfo +%{_bindir}/webpmux +%{_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/* + +%files java +%doc libwebp_jni_example.java +%{_libdir}/%{name}-java/ + + +%changelog +* Mon Oct 09 2023 MSVSphere Packaging Team - 1.2.0-7 +- Rebuilt for MSVSphere 9.3 beta + +* Wed May 03 2023 Tomas Popela - 1.2.0-7 +- Bump the release to "7" to accommodate the 9.1.0.z release bumps as + libwebp-1.2.0-6.el9 < libwebp-1.2.0-6.el9_1 + +* Wed May 03 2023 Tomas Popela - 1.2.0-6 +- Add fix for mzbz#1819244 +- Fix tools subpackage dependency +- Bump the release to "6" to accommodate the 9.1.0.z release bumps + +* Mon Aug 09 2021 Mohan Boddu - 1.2.0-3 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 1.2.0-2 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Mon Feb 01 2021 Sandro Mani - 1.2.0-1 +- Update to 1.2.0 + +* Tue Jan 26 2021 Fedora Release Engineering - 1.1.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 1.1.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jul 11 2020 Jiri Vanek - 1.1.0-4 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Mon May 18 2020 Sandro Mani - 1.1.0-3 +- Don't manually and incorrectly install vwebp, Makefile already does it correctly (#1836640) + +* Wed Jan 29 2020 Fedora Release Engineering - 1.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Jan 07 2020 Sandro Mani - 1.1.0-1 +- Update to 1.1.0 + +* Tue Sep 17 2019 Gwyn Ciesla - 1.0.3-3 +- Rebuilt for new freeglut + +* Thu Jul 25 2019 Fedora Release Engineering - 1.0.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Jul 15 2019 Sandro Mani - 1.0.3-1 +- Update to 1.0.3 + +* Fri Feb 01 2019 Fedora Release Engineering - 1.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Jan 22 2019 Sandro Mani - 1.0.2-1 +- Update to 1.0.2 + +* Fri Jul 13 2018 Fedora Release Engineering - 1.0.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Apr 26 2018 Sandro Mani - 1.0.0-1 +- Update to 1.0.0 + +* Tue Feb 27 2018 Sandro Mani - 0.6.1-8 +- Fix LDFLAGS not passed when building libwebp_jni.so (#1548718) + +* Mon Feb 26 2018 Sandro Mani - 0.6.1-7 +- More big-endian fixes + +* Fri Feb 16 2018 Sandro Mani - 0.6.1-6 +- Backport another big-endian fix + +* Fri Feb 16 2018 Sandro Mani - 0.6.1-5 +- Backport upstream big-endian fix + +* Tue Feb 13 2018 Sandro Mani - 0.6.1-4 +- Rebuild (giflib) + +* Wed Feb 07 2018 Fedora Release Engineering - 0.6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 0.6.1-2 +- Switch to %%ldconfig_scriptlets + +* Thu Nov 30 2017 Sandro Mani - 0.6.1-1 +- Update to 0.6.1 + +* Thu Aug 03 2017 Fedora Release Engineering - 0.6.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 0.6.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 01 2017 Sandro Mani - 0.6.0-1 +- Update to 0.6.0 + +* Thu Dec 22 2016 Sandro Mani - 0.5.2-1 +- Update to 0.5.2 + +* Sat Oct 29 2016 Sandro Mani - 0.5.1-2 +- Backport e2affacc35f1df6cc3b1a9fa0ceff5ce2d0cce83 (CVE-2016-9085, rhbz#1389338) + +* Fri Aug 12 2016 Sandro Mani - 0.5.1-1 +- upstream release 0.5.1 + +* Thu Feb 04 2016 Fedora Release Engineering - 0.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Dec 28 2015 Sandro Mani - 0.5.0-1 +- upstream release 0.5.0 + +* Fri Oct 30 2015 Sandro Mani - 0.4.4-1 +- upstream release 0.4.4 + +* Wed Jun 17 2015 Fedora Release Engineering - 0.4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Mar 27 2015 Sandro Mani - 0.4.3-2 +- Add BuildRequires: freeglut-devel to build vwebp + +* Thu Mar 12 2015 Sandro Mani - 0.4.3-1 +- upstream release 0.4.3 + +* Fri Oct 17 2014 Sandro Mani - 0.4.2-1 +- upstream release 0.4.2 + +* Sun Aug 17 2014 Fedora Release Engineering - 0.4.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Aug 13 2014 Peter Robinson 0.4.1-2 +- Use frename-registers cflag to fix FTBFS on aarch64 + +* Tue Aug 05 2014 Sandro Mani - 0.4.1-1 +- upstream release 0.4.1 + +* Sat Jun 07 2014 Fedora Release Engineering - 0.4.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Apr 08 2014 Jaromir Capik - 0.4.0-3 +- Fixing endian checks (#962091) +- Fixing FTPBS caused by rpath presence + +* Fri Mar 28 2014 Michael Simacek - 0.4.0-2 +- Use Requires: java-headless rebuild (#1067528) + +* Thu Jan 02 2014 Sandro Mani - 0.4.0-1 +- upstream release 0.4.0 + +* Wed Oct 02 2013 Sandro Mani - 0.3.1-2 +- enable webpdemux + +* Sun Aug 04 2013 Sandro Mani - 0.3.1-1 +- upstream release 0.3.1 + +* Sat Aug 03 2013 Fedora Release Engineering - 0.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon May 13 2013 Rahul Sundaram - 0.3.0-1 +- upstream release 0.3.0 +- enable gif2webp +- add build requires on giflib-devel and libtiff-devel +- use make_install and hardened macros +- list binaries explicitly + +* Thu Feb 14 2013 Fedora Release Engineering - 0.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Jan 18 2013 Adam Tkac - 0.2.1-2 +- rebuild due to "jpeg8-ABI" feature drop + +* Thu Dec 27 2012 Rahul Sundaram - 0.2.1-1 +- new upstream release 0.2.1 + +* Fri Dec 21 2012 Adam Tkac - 0.1.3-3 +- rebuild against new libjpeg + +* Thu Jul 19 2012 Fedora Release Engineering - 0.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Feb 02 2012 Rahul Sundaram - 0.1.3-1 +- Several spec improvements by Scott Tsai + +* Wed May 25 2011 Rahul Sundaram - 0.1.2-1 +- Initial spec. Based on openSUSE one