diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..720e3bb --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libXt-1.2.0.tar.bz2 diff --git a/.libXt.metadata b/.libXt.metadata new file mode 100644 index 0000000..2364e9e --- /dev/null +++ b/.libXt.metadata @@ -0,0 +1 @@ +f6b5ed799bc2e8d721e5407a09c2a8f570963f1b SOURCES/libXt-1.2.0.tar.bz2 diff --git a/SOURCES/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch b/SOURCES/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch new file mode 100644 index 0000000..ac9295d --- /dev/null +++ b/SOURCES/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch @@ -0,0 +1,100 @@ +From f3079e509c5cf60042ae2261499ee13b6b02498a Mon Sep 17 00:00:00 2001 +From: Adam Jackson +Date: Thu, 6 Feb 2020 13:45:35 -0500 +Subject: [PATCH] xt: Work around a compiler issue with gcc 10 + +GRABEXT() is used to look up a pointer that sometimes lives just past +the end of an XtServerGrabRec. Whether it's really there or not depends +on XtServerGrabRec::hasExt. In a couple of places, we build those +structs on the stack and pass them to other functions; such structs +always have hasExt == 0, so GRABEXT would never get called in practice. +However, there exists a bug in gcc 10 - more or less difficult to hit, +depending on your compiler options and architecture - where it would not +notice that the dereference after GRABEXT is dead code, at which point +it looks like you're dereferencing one past the end of the array, which +is illegal, and you you get: + + PassivGrab.c:292:35: error: array subscript 0 is outside array bounds + of 'XtServerGrabRec[1]' {aka 'struct _XtServerGrabRec[1]'} + [-Werror=array-bounds] + +As a completely stupid workaround, build those on-stack structs as +arrays of two, so that the (dead) dereference looks like it's pointing +into the dummy member of the array. This is almost certainly a compiler +bug and I don't encourage merging this patch upstream, but if you need +to build libXt with gcc 10 absolutely right this second, here it is. + +For details on the gcc issue, see: + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93582 +--- + src/PassivGrab.c | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/src/PassivGrab.c b/src/PassivGrab.c +index bece0d9..b174d40 100644 +--- a/src/PassivGrab.c ++++ b/src/PassivGrab.c +@@ -553,7 +553,7 @@ XtServerGrabPtr _XtCheckServerGrabsOnWidget ( + _XtBoolean isKeyboard) + { + register XtServerGrabPtr grab; +- XtServerGrabRec tempGrab; ++ XtServerGrabRec tempGrab[2]; + XtServerGrabPtr *passiveListPtr; + XtPerWidgetInput pwi; + +@@ -577,13 +577,13 @@ XtServerGrabPtr _XtCheckServerGrabsOnWidget ( + /* Take only the lower thirteen bits as modifier state. The X Keyboard + * Extension may be representing keyboard group state in two upper bits. + */ +- tempGrab.widget = widget; +- tempGrab.keybut = (KeyCode) event->xkey.keycode; /* also xbutton.button */ +- tempGrab.modifiers = event->xkey.state & 0x1FFF; /*also xbutton.state*/ +- tempGrab.hasExt = False; ++ tempGrab[0].widget = widget; ++ tempGrab[0].keybut = (KeyCode) event->xkey.keycode; /* also xbutton.button */ ++ tempGrab[0].modifiers = event->xkey.state & 0x1FFF; /*also xbutton.state*/ ++ tempGrab[0].hasExt = False; + + for (grab = *passiveListPtr; grab; grab = grab->next) { +- if (GrabMatchesSecond(&tempGrab, grab)) ++ if (GrabMatchesSecond(tempGrab, grab)) + return (grab); + } + return (XtServerGrabPtr)NULL; +@@ -775,17 +775,17 @@ void UngrabKeyOrButton ( + Modifiers modifiers, + Boolean isKeyboard) + { +- XtServerGrabRec tempGrab; ++ XtServerGrabRec tempGrab[2]; + XtPerWidgetInput pwi; + + XtCheckSubclass(widget, coreWidgetClass, + "in XtUngrabKey or XtUngrabButton"); + + /* Build a temporary grab list entry */ +- tempGrab.widget = widget; +- tempGrab.modifiers = (unsigned short) modifiers; +- tempGrab.keybut = (KeyCode) keyOrButton; +- tempGrab.hasExt = False; ++ tempGrab[0].widget = widget; ++ tempGrab[0].modifiers = (unsigned short) modifiers; ++ tempGrab[0].keybut = (KeyCode) keyOrButton; ++ tempGrab[0].hasExt = False; + + LOCK_PROCESS; + pwi = _XtGetPerWidgetInput(widget, FALSE); +@@ -817,7 +817,7 @@ void UngrabKeyOrButton ( + + /* Delete all entries which are encompassed by the specified grab. */ + DeleteServerGrabFromList(isKeyboard ? &pwi->keyList : &pwi->ptrList, +- &tempGrab); ++ tempGrab); + } + + void XtGrabKey ( +-- +2.23.0 + diff --git a/SPECS/libXt.spec b/SPECS/libXt.spec new file mode 100644 index 0000000..bb45482 --- /dev/null +++ b/SPECS/libXt.spec @@ -0,0 +1,376 @@ +%global tarball libXt +#global gitdate 20190424 +#global gitversion ba4ec9376 + +Summary: X.Org X11 libXt runtime library +Name: libXt +Version: 1.2.0 +Release: 6%{?gitdate:.%{gitdate}git%{gitversion}}%{?dist} +License: MIT +URL: https://www.x.org + +%if 0%{?gitdate} +Source0: %{tarball}-%{gitdate}.tar.bz2 +Source1: make-git-snapshot.sh +Source2: commitid +%else +Source0: https://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2 +%endif + +Patch0: 0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch + +Requires: libX11%{?_isa} >= 1.6 + +BuildRequires: make +BuildRequires: xorg-x11-util-macros +BuildRequires: autoconf automake libtool +BuildRequires: pkgconfig(xproto) pkgconfig(x11) pkgconfig(sm) +BUildRequires: libX11-devel >= 1.6 + +%description +X.Org X11 libXt runtime library + +%package devel +Summary: X.Org X11 libXt development package +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +X.Org X11 libXt development package + +%prep +%autosetup -p1 -n %{tarball}-%{?gitdate:%{gitdate}}%{!?gitdate:%{version}} + +%build +autoreconf -v --install --force +# FIXME: Work around pointer aliasing warnings from compiler for now +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +%configure --disable-static \ + --with-xfile-search-path="%{_sysconfdir}/X11/%%L/%%T/%%N%%C%%S:%{_sysconfdir}/X11/%%l/%%T/\%%N%%C%%S:%{_sysconfdir}/X11/%%T/%%N%%C%%S:%{_sysconfdir}/X11/%%L/%%T/%%N%%S:%{_sysconfdir}/X\11/%%l/%%T/%%N%%S:%{_sysconfdir}/X11/%%T/%%N%%S:%{_datadir}/X11/%%L/%%T/%%N%%C%%S:%{_datadir}/X1\1/%%l/%%T/%%N%%C%%S:%{_datadir}/X11/%%T/%%N%%C%%S:%{_datadir}/X11/%%L/%%T/%%N%%S:%{_datadir}/X11/%%\l/%%T/%%N%%S:%{_datadir}/X11/%%T/%%N%%S" + +V=1 make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT + +make install DESTDIR=$RPM_BUILD_ROOT +mkdir -p -m 0755 $RPM_BUILD_ROOT%{_datadir}/X11/app-defaults +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la + +# adding to installed docs in order to avoid using %%doc magic +cp -p COPYING ${RPM_BUILD_ROOT}%{_datadir}/doc/%{name}/COPYING + +%ldconfig_post +%ldconfig_postun + +%files +%{_libdir}/libXt.so.6 +%{_libdir}/libXt.so.6.0.0 +%dir %{_datadir}/X11/app-defaults +# not using %%doc because of side-effect (#1001246) +%dir %{_docdir}/%{name} +%{_docdir}/%{name}/COPYING + +%files devel +%{_docdir}/%{name}/*.xml +%{_includedir}/X11/CallbackI.h +%{_includedir}/X11/Composite.h +%{_includedir}/X11/CompositeP.h +%{_includedir}/X11/ConstrainP.h +%{_includedir}/X11/Constraint.h +%{_includedir}/X11/ConvertI.h +%{_includedir}/X11/Core.h +%{_includedir}/X11/CoreP.h +%{_includedir}/X11/CreateI.h +%{_includedir}/X11/EventI.h +%{_includedir}/X11/HookObjI.h +%{_includedir}/X11/InitialI.h +%{_includedir}/X11/Intrinsic.h +%{_includedir}/X11/IntrinsicI.h +%{_includedir}/X11/IntrinsicP.h +%{_includedir}/X11/Object.h +%{_includedir}/X11/ObjectP.h +%{_includedir}/X11/PassivGraI.h +%{_includedir}/X11/RectObj.h +%{_includedir}/X11/RectObjP.h +%{_includedir}/X11/ResConfigP.h +%{_includedir}/X11/ResourceI.h +%{_includedir}/X11/SelectionI.h +%{_includedir}/X11/Shell.h +%{_includedir}/X11/ShellI.h +%{_includedir}/X11/ShellP.h +%{_includedir}/X11/StringDefs.h +%{_includedir}/X11/ThreadsI.h +%{_includedir}/X11/TranslateI.h +%{_includedir}/X11/VarargsI.h +%{_includedir}/X11/Vendor.h +%{_includedir}/X11/VendorP.h +%{_includedir}/X11/Xtos.h +%{_libdir}/libXt.so +%{_libdir}/pkgconfig/xt.pc +%{_mandir}/man3/*.3* + +%changelog +* Mon Aug 09 2021 Mohan Boddu - 1.2.0-6 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 1.2.0-5 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Jan 26 2021 Fedora Release Engineering - 1.2.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Nov 5 12:26:39 AEST 2020 Peter Hutterer - 1.2.0-3 +- Add BuildRequires for make + +* Tue Jul 28 2020 Fedora Release Engineering - 1.2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Feb 06 2020 Adam Jackson - 1.2.0-1 +- libXt 1.2.0 +- Work around a gcc10 issue + +* Wed Jan 29 2020 Fedora Release Engineering - 1.1.5-13.20190424gitba4ec9376 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 1.1.5-12.20190424gitba4ec9376 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Apr 24 2019 Benjamin Tissoires 1.1.5-11.20190424gitba4ec9376 +- Update to git snapshot to fix some covscan issues + +* Fri Feb 01 2019 Fedora Release Engineering - 1.1.5-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 1.1.5-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Fri Jun 29 2018 Adam Jackson - 1.1.5-8 +- Use ldconfig scriptlet macros + +* Wed Feb 07 2018 Fedora Release Engineering - 1.1.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.1.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.1.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.1.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.1.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri May 01 2015 Adam Jackson 1.1.5-1 +- libXt 1.1.5 + +* Sun Aug 17 2014 Fedora Release Engineering - 1.1.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 1.1.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Dec 13 2013 Michael Schwendt - 1.1.4-8 +- Fix duplicate documentation (#1001246) by not using %%doc +- Turn on verbose build output via V=1 make +- Remove %%defattr +- Use %%?_isa in explicit package deps + +* Wed Oct 02 2013 Adam Jackson 1.1.4-7 +- Exclude docs from main package + +* Sat Aug 03 2013 Fedora Release Engineering - 1.1.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri May 31 2013 Peter Hutterer 1.1.4-5 +- libXt 1.1.4 + +* Mon May 27 2013 Peter Hutterer - 1.1.3-5.20130524git1f4802b74 +- Require libX11 1.6RC2 for _XEatDataWords + +* Fri May 24 2013 Peter Hutterer 1.1.3-4.20130524git1f4802b74 +- Update to git snapshot to fix CVEs listed below: +- CVE-2013-2002 +- CVE-2013-2005 + +* Thu Mar 07 2013 Peter Hutterer - 1.1.3-3 +- autoreconf for aarch64 + +* Thu Feb 14 2013 Fedora Release Engineering - 1.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 26 2012 Adam Jackson 1.1.3-1 +- libXt 1.1.3 + +* Thu Jul 19 2012 Fedora Release Engineering - 1.1.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Mar 15 2012 Adam Jackson 1.1.2-2 +- libXt-1.1.2-git.patch: Bugfix from git. + +* Thu Mar 08 2012 Adam Jackson 1.1.2-1 +- libXt 1.1.2 + +* Fri Jan 13 2012 Fedora Release Engineering - 1.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Mar 10 2011 Adam Jackson 1.1.1-1 +- libXt 1.1.1 + +* Mon Mar 07 2011 Adam Jackson 1.1.0-1 +- libXt 1.1.0 + +* Mon Feb 07 2011 Fedora Release Engineering - 1.0.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Nov 08 2010 Adam Jackson 1.0.9-1 +- libXt 1.0.9 + +* Tue Oct 13 2009 Adam Jackson 1.0.7-1 +- libXt 1.0.7 + +* Fri Jul 24 2009 Fedora Release Engineering - 1.0.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jul 23 2009 Adam Jackson 1.0.6-2 +- Un-require xorg-x11-filesystem +- Remove useless %%dir + +* Thu Jul 02 2009 Adam Jackson 1.0.6-1 +- libXt 1.0.6 + +* Wed Feb 25 2009 Fedora Release Engineering - 1.0.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Thu Sep 04 2008 Adam Jackson 1.0.5-1 +- libXt 1.0.5 + +* Tue Feb 19 2008 Fedora Release Engineering - 1.0.4-5 +- Autorebuild for GCC 4.3 + +* Tue Jan 15 2008 parag - 1.0.4-4 +- Merge-Review #226090 +- Removed XFree86-libs, xorg-x11-libs XFree86-devel, xorg-x11-devel as Obsoletes +- Removed BR:pkgconfig +- Removed zero-length README AUTHORS NEWS file + +* Tue Aug 21 2007 Adam Jackson - 1.0.4-3 +- Rebuild for build id + +* Sat Apr 21 2007 Matthias Clasen 1.0.4-2 +- Don't install INSTALL + +* Mon Nov 20 2006 Adam Jackson 1.0.4-1.fc7 +- Update to 1.0.4 + +* Wed Jul 12 2006 Jesse Keating 1.0.2-3.1.fc6 +- rebuild + +* Tue Jul 11 2006 Mike A. Harris 1.0.2-3.fc6 +- Add the {_datadir}/X11/app-defaults directory to the file manifest, as + libXt is the canonical owner of the directory. Discovered in (#198025). + +* Wed Jun 28 2006 Adam Jackson 1.0.2-2 +- Added libXt-1.0.2-libsm-fix.patch to remove libSM from the Requires: line + in the installed pkgconfig file. Apps should link against libSM if they + need it, but we shouldn't force them to link against it if they don't. + +* Wed Jun 21 2006 Mike A. Harris 1.0.2-1 +- Updated libXt to version 1.0.2 from X11R7.1 + +* Fri Jun 09 2006 Mike A. Harris 1.0.1-3 +- Added "Requires: xorg-x11-proto-devel" to devel package for xt.pc + +* Mon Jun 05 2006 Mike A. Harris 1.0.1-2 +- Added "BuildRequires: pkgconfig" for (#193503) +- Replace "makeinstall" with "make install DESTDIR=..." +- Remove package ownership of mandir/libdir/etc. + +* Thu Apr 27 2006 Adam Jackson 1.0.1-1 +- Update to 1.0.1 + +* Fri Feb 10 2006 Jesse Keating 1.0.0-2.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating 1.0.0-2.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Jan 23 2006 Mike A. Harris 1.0.0-2 +- Bumped and rebuilt + +* Fri Dec 16 2005 Mike A. Harris 1.0.0-1 +- Updated libXt to version 1.0.0 from X11R7 RC4 +- Added makestrs and it's manpage to the devel subpackage. + +* Tue Dec 13 2005 Mike A. Harris 0.99.3-1 +- Updated libXt to version 0.99.3 from X11R7 RC3 +- Added "Requires(pre): xorg-x11-filesystem >= 0.99.2-3", to ensure + that /usr/lib/X11 and /usr/include/X11 pre-exist. +- Removed 'x' suffix from manpage directories to match RC3 upstream. + +* Fri Dec 09 2005 Jesse Keating +- rebuilt + +* Fri Dec 02 2005 Kristian Høgsberg 0.99.2-3 +- Use the default value from configure.ac for --with-xfile-search-path + except with %%{_datadir} instead of $(libdir), so Xt can search for + app-default files as usual. +- Move the --with-xfile-search-path outside the with_static condition. + +* Tue Nov 29 2005 Mike A. Harris 0.99.2-2 +- Invoke ./configure --with-xfile-search-path=%%{_datadir}/X11/app-defaults + to make sure Xt is looking in the right place for app-defaults files. + +* Fri Nov 11 2005 Mike A. Harris 0.99.2-1 +- Updated libXt to version 0.99.2 from X11R7 RC2 +- Changed 'Conflicts: XFree86-devel, xorg-x11-devel' to 'Obsoletes' +- Changed 'Conflicts: XFree86-libs, xorg-x11-libs' to 'Obsoletes' + +* Wed Nov 02 2005 Mike A. Harris 0.99.2-3 +- Actually spell RPM_OPT_FLAGS correctly this time. + +* Mon Oct 31 2005 Mike A. Harris 0.99.2-2 +- Build with -fno-strict-aliasing to work around possible pointer aliasing + issue + +* Mon Oct 24 2005 Mike A. Harris 0.99.1-1 +- Updated libXt to version 0.99.1 from X11R7 RC1 +- Updated file manifest to find manpages in 'man3x' + +* Thu Oct 06 2005 Mike A. Harris 0.99.0-5 +- Added Requires: libX11-devel to libXt-devel subpackage, as Xt headers + include Xlib headers causing xterm and other things to fail to compile. + +* Thu Sep 29 2005 Mike A. Harris 0.99.0-4 +- Renamed package to remove xorg-x11 from the name due to unanimous decision + between developers. +- Use Fedora Extras style BuildRoot tag. +- Disable static library creation by default. +- Add missing defattr to devel subpackage +- Add missing documentation files to doc macro +- Fix BuildRequires to use new style X library package names + +* Wed Aug 24 2005 Mike A. Harris 0.99.0-3 +- Changed all virtual BuildRequires to the "xorg-x11-" prefixed non-virtual + package names, as we want xorg-x11 libs to explicitly build against + X.Org supplied libs, rather than "any implementation", which is what the + virtual provides is intended for. + +* Tue Aug 23 2005 Mike A. Harris 0.99.0-2 +- Renamed package to prepend "xorg-x11" to the name for consistency with + the rest of the X11R7 packages. +- Added "Requires: %%{name} = %%{version}-%%{release}" dependency to devel + subpackage to ensure the devel package matches the installed shared libs. +- Added virtual "Provides: lib" and "Provides: lib-devel" to + allow applications to use implementation agnostic dependencies. +- Added post/postun scripts which call ldconfig. +- Added Conflicts with XFree86-libs and xorg-x11-libs to runtime package, + and Conflicts with XFree86-devel and xorg-x11-devel to devel package. + +* Mon Aug 22 2005 Mike A. Harris 0.99.0-1 +- Initial build.