diff --git a/.gitignore b/.gitignore index f2a781c..7d642d8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1 @@ -libXext-1.1.2.tar.bz2 -/libXext-1.2.0.tar.bz2 -/libXext-1.3.0.tar.bz2 -/libXext-1.3.1.tar.bz2 -/libXext-20130524.tar.bz2 -/libXext-1.3.2.tar.bz2 -/libXext-1.3.3.tar.bz2 -/libXext-1.3.4.tar.bz2 -/libXext-1.3.5.tar.xz -/libXext-1.3.6.tar.xz +libXext-1.0.99.4.tar.bz2 diff --git a/commitid b/commitid deleted file mode 100644 index f6993ae..0000000 --- a/commitid +++ /dev/null @@ -1 +0,0 @@ -dfe6e1f3b8ede3d0bab7a5fa57f73513a09ec649 diff --git a/libXext-1.1-XAllocID.patch b/libXext-1.1-XAllocID.patch new file mode 100644 index 0000000..d525633 --- /dev/null +++ b/libXext-1.1-XAllocID.patch @@ -0,0 +1,35 @@ +From 956fd30e1046e5779ac0b6c07ec4f0e87250869a Mon Sep 17 00:00:00 2001 +From: Jamey Sharp +Date: Wed, 7 Oct 2009 19:31:21 -0700 +Subject: [PATCH] XAllocID must only be called with the Display lock held. + +This patch makes XShmAttach follow the same XID allocation pattern used in +other stubs, such as XShmCreatePixmap. + +Reported-by: +Signed-off-by: Jamey Sharp +--- + src/XShm.c | 3 +-- + 1 files changed, 1 insertions(+), 2 deletions(-) + +diff --git a/src/XShm.c b/src/XShm.c +index 922b4cb..38efa9f 100644 +--- a/src/XShm.c ++++ b/src/XShm.c +@@ -235,12 +235,11 @@ Status XShmAttach(Display *dpy, XShmSegmentInfo *shminfo) + + ShmCheckExtension (dpy, info, 0); + +- shminfo->shmseg = XAllocID(dpy); + LockDisplay(dpy); + GetReq(ShmAttach, req); + req->reqType = info->codes->major_opcode; + req->shmReqType = X_ShmAttach; +- req->shmseg = shminfo->shmseg; ++ req->shmseg = shminfo->shmseg = XAllocID(dpy); + req->shmid = shminfo->shmid; + req->readOnly = shminfo->readOnly ? xTrue : xFalse; + UnlockDisplay(dpy); +-- +1.6.5.2 + diff --git a/libXext-1.1-event_vec-smash.patch b/libXext-1.1-event_vec-smash.patch new file mode 100644 index 0000000..eff89f9 --- /dev/null +++ b/libXext-1.1-event_vec-smash.patch @@ -0,0 +1,87 @@ +From 83fdb27df4ddc2fb088ddf2ec65f0db6b7c57287 Mon Sep 17 00:00:00 2001 +From: Peter Hutterer +Date: Thu, 26 Nov 2009 09:38:31 +1000 +Subject: [PATCH] Don't smash the event_vec if num_events differs between lib and server. + +If the library extension thinks there's more events to an extension than the +server actually has, the event_vec for the overlapping range can get +overwritten. This depends on the initialization order of the libraries. + +Reported-by: Nathan Kidd +Signed-off-by: Peter Hutterer +Reviewed-by: Julien Cristau +--- + src/extutil.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++- + 1 files changed, 46 insertions(+), 1 deletions(-) + +diff --git a/src/extutil.c b/src/extutil.c +index 8f4923a..a8f4d5d 100644 +--- a/src/extutil.c ++++ b/src/extutil.c +@@ -103,6 +103,7 @@ XExtDisplayInfo *XextAddDisplay ( + int nevents, + XPointer data) + { ++ static unsigned char ext_handlers[64] = {0}; + XExtDisplayInfo *dpyinfo; + + dpyinfo = (XExtDisplayInfo *) Xmalloc (sizeof (XExtDisplayInfo)); +@@ -117,10 +118,54 @@ XExtDisplayInfo *XextAddDisplay ( + */ + if (dpyinfo->codes) { + int i, j; ++ int idx = dpyinfo->codes->first_event & 0x3f; ++ ++ ++ /* Xlib extensions use compiled in event numbers. A new library ++ * against an older server may thus expect a different (higher) ++ * number of events than the server will send. We have no way of ++ * knowing the number of events for an extension, the server won't ++ * tell us. ++ * ++ * Depending on the extension initialization order, this smashes the ++ * event_vec[type] for anything after the extension with the ++ * different number of events. ++ * ++ * e.g. server with inputproto 1.3 expects 15 events, libXi with ++ * inputproto 2.0 expects 17 events. ++ * base code is 80, events [80,96] are handled by libXi. events [95, ++ * 96] belong to the next extension already though. ++ * This requires XI to be initialized after the extension occupying ++ * the next range of event codes. ++ * ++ * To avoid this, we have a zeroed out array of extension handlers. ++ * If an extension handler for an event type is already set, and the ++ * previous event code (before base_code) is the same extension, we ++ * have the nevents conflict. Unset all those handlers and allow ++ * overwriting them with the new handlers. ++ * ++ * If a handler for a (base + n) event is already set, stop ++ * registering this extension for the event codes. ++ * ++ * event_codes are subtracted by 64 since we don't need to worry ++ * about core. ++ */ ++ ++ if (idx && ext_handlers[idx - 1] == ext_handlers[idx]) { ++ for (i = idx; i < 64; i++) { ++ if (ext_handlers[idx - 1] == ext_handlers[i]) ++ ext_handlers[i] = 0; ++ else ++ break; ++ } ++ } + +- for (i = 0, j = dpyinfo->codes->first_event; i < nevents; i++, j++) { ++ for (i = 0, j = dpyinfo->codes->first_event; i < nevents; i++, j++, idx++) { ++ if (ext_handlers[idx]) /* don't smash the following extension */ ++ break; + XESetWireToEvent (dpy, j, hooks->wire_to_event); + XESetEventToWire (dpy, j, hooks->event_to_wire); ++ ext_handlers[idx] = dpyinfo->codes->first_event & 0x3f; + } + + /* register extension for XGE */ +-- +1.6.5.2 + diff --git a/libXext.spec b/libXext.spec index 2d03722..b85d43d 100644 --- a/libXext.spec +++ b/libXext.spec @@ -1,48 +1,46 @@ -%global tarball libXext -#global gitdate 20130524 -%global gitversion dfe6e1f3b - Summary: X.Org X11 libXext runtime library Name: libXext -Version: 1.3.6 -Release: 4%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} -License: MIT-open-group AND X11 AND HPND AND HPND-sell-variant AND SMLNJ AND MIT AND ISC AND HPND-doc AND HPND-doc-sell +Version: 1.1 +Release: 2%{?dist} +License: MIT +Group: System Environment/Libraries URL: http://www.x.org +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -%if 0%{?gitdate} -Source0: %{tarball}-%{gitdate}.tar.bz2 -Source1: make-git-snapshot.sh -Source2: commitid -%else -Source0: http://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.xz -%endif +Source0: ftp://ftp.x.org/pub/individual/lib/%{name}-%{version}.tar.bz2 +# From upstream, drop if updating to 1.1.1 +Patch1: libXext-1.1-XAllocID.patch +# From upstream +Patch2: libXext-1.1-event_vec-smash.patch -Requires: libX11 >= 1.5.99.902 - -BuildRequires: make -BuildRequires: autoconf automake libtool BuildRequires: xorg-x11-proto-devel >= 7.4-23 -BuildRequires: libX11-devel >= 1.5.99.902 +BuildRequires: libX11-devel BuildRequires: libXau-devel BuildRequires: xorg-x11-util-macros BuildRequires: autoconf automake libtool pkgconfig -BuildRequires: xmlto %description X.Org X11 libXext runtime library %package devel Summary: X.Org X11 libXext development package +Group: Development/Libraries Requires: %{name} = %{version}-%{release} +Requires: libX11-devel pkgconfig +# xorg-x11-proto-devel is needed by xext.pc +Requires: xorg-x11-proto-devel >= 7.0-1 + + %description devel X.Org X11 libXext development package %prep -%setup -q -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}} +%setup -q +%patch1 -p1 +%patch2 -p1 %build -autoreconf -v --install --force %configure --disable-static make %{?_smp_mflags} @@ -54,18 +52,20 @@ make install DESTDIR=$RPM_BUILD_ROOT # We intentionally don't ship *.la files rm -f $RPM_BUILD_ROOT%{_libdir}/*.la -# do this with %%doc below -rm -rf $RPM_BUILD_ROOT%{_docdir} +%clean +rm -rf $RPM_BUILD_ROOT -%ldconfig_post -%ldconfig_postun +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig %files +%defattr(-,root,root,-) %doc AUTHORS COPYING %{_libdir}/libXext.so.6 %{_libdir}/libXext.so.6.4.0 %files devel +%defattr(-,root,root,-) %{_includedir}/X11/extensions/MITMisc.h %{_includedir}/X11/extensions/XEVI.h %{_includedir}/X11/extensions/XLbx.h @@ -77,6 +77,9 @@ rm -rf $RPM_BUILD_ROOT%{_docdir} %{_includedir}/X11/extensions/Xge.h %{_includedir}/X11/extensions/dpms.h %{_includedir}/X11/extensions/extutil.h +%{_includedir}/X11/extensions/lbxbuf.h +%{_includedir}/X11/extensions/lbxbufstr.h +%{_includedir}/X11/extensions/lbximage.h %{_includedir}/X11/extensions/multibuf.h %{_includedir}/X11/extensions/security.h %{_includedir}/X11/extensions/shape.h @@ -88,152 +91,7 @@ rm -rf $RPM_BUILD_ROOT%{_docdir} %{_mandir}/man3/*.3* %changelog -* Thu Jul 24 2025 Fedora Release Engineering - 1.3.6-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Fri Jan 17 2025 Fedora Release Engineering - 1.3.6-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Thu Jul 18 2024 Fedora Release Engineering - 1.3.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Mon Feb 05 2024 José Expósito - 1.3.6-1 -- libXext 1.3.6-1 - -* Thu Jan 25 2024 Fedora Release Engineering - 1.3.5-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sun Jan 21 2024 Fedora Release Engineering - 1.3.5-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Mon Oct 02 2023 Benjamin Tissoires - 1.3.5-4 -- SPDX migration - -* Thu Jul 20 2023 Fedora Release Engineering - 1.3.5-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Jan 19 2023 Fedora Release Engineering - 1.3.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Fri Nov 04 2022 Benjamin Tissoires 1.3.5-1 -- libXext 1.3.5-1 - -* Thu Jul 21 2022 Fedora Release Engineering - 1.3.4-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Thu Jan 20 2022 Fedora Release Engineering - 1.3.4-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Thu Jul 22 2021 Fedora Release Engineering - 1.3.4-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Tue Jan 26 2021 Fedora Release Engineering - 1.3.4-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Thu Nov 5 11:24:29 AEST 2020 Peter Hutterer - 1.3.4-5 -- Add BuildRequires for make - -* Tue Jul 28 2020 Fedora Release Engineering - 1.3.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jan 29 2020 Fedora Release Engineering - 1.3.4-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Thu Jul 25 2019 Fedora Release Engineering - 1.3.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Tue Mar 19 2019 Peter Hutterer 1.3.4-1 -- libXext 1.3.4 - -* Fri Feb 01 2019 Fedora Release Engineering - 1.3.3-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Fri Jul 13 2018 Fedora Release Engineering - 1.3.3-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Fri Jun 29 2018 Adam Jackson - 1.3.3-9 -- Use ldconfig scriptlet macros - -* Wed Feb 07 2018 Fedora Release Engineering - 1.3.3-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Thu Aug 03 2017 Fedora Release Engineering - 1.3.3-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 1.3.3-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 1.3.3-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Thu Feb 04 2016 Fedora Release Engineering - 1.3.3-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Thu Jan 28 2016 Peter Hutterer -- Remove unnecessary defattr - -* Wed Jun 17 2015 Fedora Release Engineering - 1.3.3-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Sun Aug 17 2014 Fedora Release Engineering - 1.3.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Thu Jul 24 2014 Peter Hutterer 1.3.3-1 -- libXext 1.3.3 - -* Tue Jul 22 2014 Benjamin Tissoires 1.3.2-4 -- Xge: remove warning messages about missing Xge extension event translations (rhbz #1122011) - -* Sat Jun 07 2014 Fedora Release Engineering - 1.3.2-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sat Aug 03 2013 Fedora Release Engineering - 1.3.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Mon Jun 03 2013 Peter Hutterer 1.3.2-1 -- libXext 1.3.2 - -* Mon May 27 2013 Peter Hutterer - 1.3.1-6.20130524gitdfe6e1f3b -- Really require libX11 1.6RC2 for _XEatDataWords - -* Mon May 27 2013 Peter Hutterer - 1.3.1-5.20130524gitdfe6e1f3b -- Require libX11 1.6RC2 for _XEatDataWords - -* Fri May 24 2013 Peter Hutterer 1.3.1-3.20130524gitdfe6e1f3b -- Update to git snapshot to fix CVEs listed below -- CVE-2013-1982 - -* Thu Mar 07 2013 Peter Hutterer - 1.3.1-4 -- autoreconf for aarch64 - -* Thu Feb 14 2013 Fedora Release Engineering - 1.3.1-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Thu Jul 19 2012 Fedora Release Engineering - 1.3.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Mar 08 2012 Adam Jackson 1.3.1-1 -- libXext 1.3.1 - -* Fri Jan 13 2012 Fedora Release Engineering - 1.3.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Thu Nov 17 2011 Adam Jackson 1.3.0-1 -- libXext 1.3.0 - -* Mon Feb 07 2011 Fedora Release Engineering - 1.2.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Thu Oct 28 2010 Adam Jackson 1.2.0-1 -- libXext 1.2.0 - -* Tue Aug 24 2010 Adam Tkac 1.1.2-2 -- rebuild to ensure F14 NVR is higher than F13 - -* Fri Jun 04 2010 Adam Jackson 1.1.2-1 -- libXext 1.1.2 - -* Sat Dec 12 2009 Robert Scheck 1.1-2 +* Thu Dec 03 2009 Peter Hutterer 1.1-2 - libXext-1.1-XAllocID.patch: call XAllocID with the display lock held. - libXext-1.1-event_vec-smash.patch: don't smash the event processing vector if the server has an older extension version than the client. diff --git a/make-git-snapshot.sh b/make-git-snapshot.sh deleted file mode 100755 index 9399b57..0000000 --- a/make-git-snapshot.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -DIRNAME=libXext-$( date +%Y%m%d ) - -rm -rf $DIRNAME -git clone git://git.freedesktop.org/git/xorg/lib/libXext $DIRNAME -cd $DIRNAME -if [ -z "$1" ]; then - git log | head -1 -else - git checkout $1 -fi -git log | head -1 | awk '{ print $2 }' > ../commitid -git repack -a -d -cd .. -tar jcf $DIRNAME.tar.bz2 $DIRNAME -rm -rf $DIRNAME diff --git a/sources b/sources index e8cfe81..743c2ad 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libXext-1.3.6.tar.xz) = fd7693b5698cc4f5e80002a2cd4bd88e5d52c755c19a0417ee73029bd65f9d77b0969e765a1febc4d8fce1ba5dfb7278717f47be742e33d8fc5eb941e769792e +b8ee455effbcaf5a475870e92ed6973c libXext-1.1.tar.bz2