From 8a16b7683ed1dcfee6211fdf48a953a8a6d706f1 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Fri, 29 Mar 2024 16:11:16 +0300 Subject: [PATCH] import pixman-0.38.4-4.el8 --- .gitignore | 1 + .pixman.metadata | 1 + ...erflow-leading-to-out-of-bounds-writ.patch | 29 +++ ...-filter-computation-in-wide-pipeline.patch | 84 +++++++++ ...rary-buffers-in-general_composite_re.patch | 34 ++++ SOURCES/make-pixman-snapshot.sh | 16 ++ SPECS/pixman.spec | 173 ++++++++++++++++++ 7 files changed, 338 insertions(+) create mode 100644 .gitignore create mode 100644 .pixman.metadata create mode 100644 SOURCES/0001-Avoid-integer-overflow-leading-to-out-of-bounds-writ.patch create mode 100644 SOURCES/0001-Fix-bilinear-filter-computation-in-wide-pipeline.patch create mode 100644 SOURCES/0001-Initialize-temporary-buffers-in-general_composite_re.patch create mode 100755 SOURCES/make-pixman-snapshot.sh create mode 100644 SPECS/pixman.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ff09245 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/pixman-0.38.4.tar.bz2 diff --git a/.pixman.metadata b/.pixman.metadata new file mode 100644 index 0000000..d7b3e25 --- /dev/null +++ b/.pixman.metadata @@ -0,0 +1 @@ +87e1abc91ac4e5dfcc275f744f1d0ec3277ee7cd SOURCES/pixman-0.38.4.tar.bz2 diff --git a/SOURCES/0001-Avoid-integer-overflow-leading-to-out-of-bounds-writ.patch b/SOURCES/0001-Avoid-integer-overflow-leading-to-out-of-bounds-writ.patch new file mode 100644 index 0000000..bbc7f77 --- /dev/null +++ b/SOURCES/0001-Avoid-integer-overflow-leading-to-out-of-bounds-writ.patch @@ -0,0 +1,29 @@ +From a1f88e842e0216a5b4df1ab023caebe33c101395 Mon Sep 17 00:00:00 2001 +From: Matt Turner +Date: Wed, 2 Nov 2022 12:07:32 -0400 +Subject: [PATCH] Avoid integer overflow leading to out-of-bounds write + +Thanks to Maddie Stone and Google's Project Zero for discovering this +issue, providing a proof-of-concept, and a great analysis. + +Closes: https://gitlab.freedesktop.org/pixman/pixman/-/issues/63 +--- + pixman/pixman-trap.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pixman/pixman-trap.c b/pixman/pixman-trap.c +index 91766fd..7560405 100644 +--- a/pixman/pixman-trap.c ++++ b/pixman/pixman-trap.c +@@ -74,7 +74,7 @@ pixman_sample_floor_y (pixman_fixed_t y, + + if (f < Y_FRAC_FIRST (n)) + { +- if (pixman_fixed_to_int (i) == 0x8000) ++ if (pixman_fixed_to_int (i) == 0xffff8000) + { + f = 0; /* saturate */ + } +-- +2.41.0 + diff --git a/SOURCES/0001-Fix-bilinear-filter-computation-in-wide-pipeline.patch b/SOURCES/0001-Fix-bilinear-filter-computation-in-wide-pipeline.patch new file mode 100644 index 0000000..84a6301 --- /dev/null +++ b/SOURCES/0001-Fix-bilinear-filter-computation-in-wide-pipeline.patch @@ -0,0 +1,84 @@ +From 8256c235d9b3854d039242356905eca854a890ba Mon Sep 17 00:00:00 2001 +From: Basile Clement +Date: Tue, 9 Apr 2019 23:16:13 +0200 +Subject: [PATCH] Fix bilinear filter computation in wide pipeline + +The recently introduced wide pipeline for filters has a typo which +causes it to improperly compute bilinear interpolation positions, +causing various glitches when enabled. + +This patch uses the proper computation for bilinear interpolation in the +wide pipeline. It also makes related `if` statements conformant to the +CODING_STYLE: + +* If a substatement spans multiple lines, then there must be braces + around it. + +* If one substatement of an if statement has braces, then the other + must too. + +Signed-off-by: Maarten Lankhorst +--- + pixman/pixman-bits-image.c | 9 +++++++++ + pixman/pixman-inlines.h | 2 +- + 2 files changed, 10 insertions(+), 1 deletion(-) + +diff --git a/pixman/pixman-bits-image.c b/pixman/pixman-bits-image.c +index 564789e..7bc2ba8 100644 +--- a/pixman/pixman-bits-image.c ++++ b/pixman/pixman-bits-image.c +@@ -432,29 +432,38 @@ bits_image_fetch_pixel_filtered (bits_image_t *image, + + case PIXMAN_FILTER_CONVOLUTION: + if (wide) ++ { + bits_image_fetch_pixel_convolution (image, x, y, + get_pixel, out, + accum_float, + reduce_float); ++ } + else ++ { + bits_image_fetch_pixel_convolution (image, x, y, + get_pixel, out, + accum_32, reduce_32); ++ } + break; + + case PIXMAN_FILTER_SEPARABLE_CONVOLUTION: + if (wide) ++ { + bits_image_fetch_pixel_separable_convolution (image, x, y, + get_pixel, out, + accum_float, + reduce_float); ++ } + else ++ { + bits_image_fetch_pixel_separable_convolution (image, x, y, + get_pixel, out, + accum_32, reduce_32); ++ } + break; + + default: ++ assert (0); + break; + } + } +diff --git a/pixman/pixman-inlines.h b/pixman/pixman-inlines.h +index 332e208..f785910 100644 +--- a/pixman/pixman-inlines.h ++++ b/pixman/pixman-inlines.h +@@ -231,7 +231,7 @@ bilinear_interpolation_float (argb_t tl, argb_t tr, + argb_t r; + + distxy = distx * disty; +- distxiy = distx - (1.f - distxy); ++ distxiy = distx * (1.f - disty); + distixy = (1.f - distx) * disty; + distixiy = (1.f - distx) * (1.f - disty); + +-- +2.37.1 + diff --git a/SOURCES/0001-Initialize-temporary-buffers-in-general_composite_re.patch b/SOURCES/0001-Initialize-temporary-buffers-in-general_composite_re.patch new file mode 100644 index 0000000..b6e9a77 --- /dev/null +++ b/SOURCES/0001-Initialize-temporary-buffers-in-general_composite_re.patch @@ -0,0 +1,34 @@ +From 6fe0131394fb029d2fccaee6b8edcb108840ad8a Mon Sep 17 00:00:00 2001 +From: Federico Mena Quintero +Date: Wed, 18 Mar 2020 18:49:30 -0600 +Subject: [PATCH] Initialize temporary buffers in general_composite_rect() + +Otherwise, Valgrind shows things like "conditional jump or move +depends on uninitialised values" errors much later in calling code. +For example, see https://gitlab.gnome.org/GNOME/librsvg/issues/572 + +Fixes https://gitlab.freedesktop.org/pixman/pixman/issues/9 +--- + pixman/pixman-general.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/pixman/pixman-general.c b/pixman/pixman-general.c +index 7d74f98..7e5a0d0 100644 +--- a/pixman/pixman-general.c ++++ b/pixman/pixman-general.c +@@ -165,6 +165,12 @@ general_composite_rect (pixman_implementation_t *imp, + + if (!scanline_buffer) + return; ++ ++ memset (scanline_buffer, 0, width * Bpp * 3 + 15 * 3); ++ } ++ else ++ { ++ memset (stack_scanline_buffer, 0, sizeof (stack_scanline_buffer)); + } + + src_buffer = ALIGN (scanline_buffer); +-- +2.34.1 + diff --git a/SOURCES/make-pixman-snapshot.sh b/SOURCES/make-pixman-snapshot.sh new file mode 100755 index 0000000..0cd65a3 --- /dev/null +++ b/SOURCES/make-pixman-snapshot.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +DIRNAME=pixman-$( date +%Y%m%d ) + +rm -rf $DIRNAME +git clone git://git.freedesktop.org/git/pixman $DIRNAME +cd $DIRNAME +if [ -z "$1" ]; then + git log | head -1 +else + git checkout $1 +fi +rm -rf .git +cd .. +tar jcf $DIRNAME.tar.bz2 $DIRNAME +rm -rf $DIRNAME diff --git a/SPECS/pixman.spec b/SPECS/pixman.spec new file mode 100644 index 0000000..42ae027 --- /dev/null +++ b/SPECS/pixman.spec @@ -0,0 +1,173 @@ +%define gitdate 20070827 +%define gitrev 8ff7213f39edc1b2b8b60d6b0cc5d5f14ca1928d + +Name: pixman +Version: 0.38.4 +Release: 4%{?dist} +Summary: Pixel manipulation library + +Group: System Environment/Libraries +License: MIT +URL: https://gitlab.freedesktop.org/pixman/pixman +#VCS: git:git://git.freedesktop.org/git/pixman +# To make git snapshots: +# ./make-pixman-snapshot.sh %{\?gitrev} +# if no revision specified, makes a new one from HEAD. +Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2 +Source1: make-pixman-snapshot.sh + +Patch0: 0001-Initialize-temporary-buffers-in-general_composite_re.patch +Patch1: 0001-Fix-bilinear-filter-computation-in-wide-pipeline.patch +Patch2: 0001-Avoid-integer-overflow-leading-to-out-of-bounds-writ.patch + +BuildRequires: automake autoconf libtool +BuildRequires: gcc + +%description +Pixman is a pixel manipulation library for X and Cairo. + +%package devel +Summary: Pixel manipulation library development package +Group: Development/Libraries +Requires: %{name}%{?isa} = %{version}-%{release} +Requires: pkgconfig + +%description devel +Development library for pixman. + +%prep +%autosetup -p1 + +%build +%configure \ +%ifarch %{arm} + --disable-arm-iwmmxt --disable-arm-iwmmxt2 \ +%endif + --disable-static + +make %{?_smp_mflags} V=1 + +%install +make install DESTDIR=$RPM_BUILD_ROOT + +find %{buildroot} -type f -name "*.la" -delete + +%check +make check %{?_smp_mflags} V=1 + +%ldconfig_post +%ldconfig_postun + +%files +%doc COPYING +%{_libdir}/libpixman-1*.so.* + +%files devel +%dir %{_includedir}/pixman-1 +%{_includedir}/pixman-1/pixman.h +%{_includedir}/pixman-1/pixman-version.h +%{_libdir}/libpixman-1*.so +%{_libdir}/pkgconfig/pixman-1.pc + +%changelog +* Fri Mar 29 2024 MSVSphere Packaging Team - 0.38.4-4 +- Rebuilt for MSVSphere 8.10 beta + +* Wed Oct 04 2023 José Expósito - 0.38.4-4 +- Backport fix for CVE-2022-44638 + +* Sat Sep 03 2022 Benjamin Gilbert - 0.38.4-3 +- Fix bilinear filter computation in wide pipeline + +* Tue Feb 22 2022 Adam Jackson - 0.38.4-2 +- Backport the pixman part of cairo CVE-2020-35492 + +* Tue Nov 19 2019 Adam Jackson - 0.38.4-1 +- pixman 0.38.4 + +* Thu Nov 29 2018 Adam Jackson - 0.36.0-1 +- pixman 0.36.0 + +* Fri Jul 13 2018 Fedora Release Engineering - 0.34.0-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Adam Jackson - 0.34.0-9 +- Use ldconfig scriptlet macros + +* Fri May 04 2018 Dan Horák - 0.34.0-8 +- fix vector loads in VMX (ppc64le) (#1572540) + +* Thu Apr 26 2018 Adam Jackson - 0.34.0-7 +- Enable %%check +- --disable-vmx to fix %%check failures with gcc8 +- Remove stray --disable-ssse3 + +* Fri Feb 09 2018 Fedora Release Engineering - 0.34.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 0.34.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 0.34.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 0.34.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 0.34.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Feb 01 2016 - 0.34.0-1 +- Update to 0.34.0 (#1249357) + +* Tue Dec 22 2015 Oded Gabbay 0.33.6-1 +- pixman 0.33.6 + +* Fri Oct 23 2015 Oded Gabbay 0.33.4-1 +- pixman 0.33.4 + +* Sun Aug 09 2015 Oded Gabbay 0.33.2-1 +- pixman 0.33.2 +- Enable VMX fast paths on ppc64le now that they are fixed + +* Tue Jun 16 2015 Peter Robinson 0.32.6-6 +- revert cflag option added in -5 the broke building + +* Mon May 11 2015 Adam Jackson 0.32.6-5 +- Fix devel's requirement on the base package to include %%{?isa} + +* Mon Nov 10 2014 Adam Jackson 0.32.6-4 +- Disable (broken) VMX fast paths on ppc64le for now. + +* Sun Aug 17 2014 Fedora Release Engineering - 0.32.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jul 11 2014 Peter Robinson 0.32.6-2 +- Enable make check but don't (currently) fail the build on failure +- Include COPYING as per packaging guidelines +- Minor spec cleanups + +* Sun Jul 06 2014 Soren Sandmann 0.32.6-1 +- pixman 0.32.6 +- drop SSSE3 patch + +* Sat Jun 07 2014 Fedora Release Engineering - 0.32.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Nov 14 2013 Soren Sandmann 0.32.0-2 +- Add patch to fix SSSE3 detection + +* Sun Nov 10 2013 Soren Sandmann 0.32.0-1 +- pixman 0.32.0 + +* Sat Nov 2 2013 Soren Sandmann 0.31.2-1 +- pixman 0.31.2 + +* Sun Aug 04 2013 Fedora Release Engineering - 0.30.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Jul 04 2013 Karsten Hopp 0.30.0-2 +- bump release and rebuild to fix dependencies on PPC + +* Wed May 8 2013 Soren Sandmann 0.30.0-1 +- pixman 0.30.0