Browse Source

initial package creation

Signed-off-by: Toshaan Bharvani <toshaan@powerel.org>
master
Toshaan Bharvani 2 years ago
commit
0379eafc01
  1. 100
      SOURCES/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch
  2. 376
      SPECS/libXt.spec

100
SOURCES/0001-xt-Work-around-a-compiler-issue-with-gcc-10.patch

@ -0,0 +1,100 @@ @@ -0,0 +1,100 @@
From f3079e509c5cf60042ae2261499ee13b6b02498a Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
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

376
SPECS/libXt.spec

@ -0,0 +1,376 @@ @@ -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 <mboddu@redhat.com> - 1.2.0-6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688

* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.2.0-5
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Thu Nov 5 12:26:39 AEST 2020 Peter Hutterer <peter.hutterer@redhat.com> - 1.2.0-3
- Add BuildRequires for make

* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Thu Feb 06 2020 Adam Jackson <ajax@redhat.com> - 1.2.0-1
- libXt 1.2.0
- Work around a gcc10 issue

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-13.20190424gitba4ec9376
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-12.20190424gitba4ec9376
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Wed Apr 24 2019 Benjamin Tissoires <benjamin.tissoires@redhat.com> 1.1.5-11.20190424gitba4ec9376
- Update to git snapshot to fix some covscan issues

* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Fri Jun 29 2018 Adam Jackson <ajax@redhat.com> - 1.1.5-8
- Use ldconfig scriptlet macros

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.1.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Fri May 01 2015 Adam Jackson <ajax@redhat.com> 1.1.5-1
- libXt 1.1.5

* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.4-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.4-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Fri Dec 13 2013 Michael Schwendt <mschwendt@fedoraproject.org> - 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 <ajax@redhat.com> 1.1.4-7
- Exclude docs from main package

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.4-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Fri May 31 2013 Peter Hutterer <peter.hutterer@redhat.com> 1.1.4-5
- libXt 1.1.4

* Mon May 27 2013 Peter Hutterer <peter.hutterer@redhat.com> - 1.1.3-5.20130524git1f4802b74
- Require libX11 1.6RC2 for _XEatDataWords

* Fri May 24 2013 Peter Hutterer <peter.hutterer@redhat.com> 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 <peter.hutterer@redhat.com> - 1.1.3-3
- autoreconf for aarch64

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Thu Jul 26 2012 Adam Jackson <ajax@redhat.com> 1.1.3-1
- libXt 1.1.3

* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Thu Mar 15 2012 Adam Jackson <ajax@redhat.com> 1.1.2-2
- libXt-1.1.2-git.patch: Bugfix from git.

* Thu Mar 08 2012 Adam Jackson <ajax@redhat.com> 1.1.2-1
- libXt 1.1.2

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Thu Mar 10 2011 Adam Jackson <ajax@redhat.com> 1.1.1-1
- libXt 1.1.1

* Mon Mar 07 2011 Adam Jackson <ajax@redhat.com> 1.1.0-1
- libXt 1.1.0

* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Mon Nov 08 2010 Adam Jackson <ajax@redhat.com> 1.0.9-1
- libXt 1.0.9

* Tue Oct 13 2009 Adam Jackson <ajax@redhat.com> 1.0.7-1
- libXt 1.0.7

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Thu Jul 23 2009 Adam Jackson <ajax@redhat.com> 1.0.6-2
- Un-require xorg-x11-filesystem
- Remove useless %%dir

* Thu Jul 02 2009 Adam Jackson <ajax@redhat.com> 1.0.6-1
- libXt 1.0.6

* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.0.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Thu Sep 04 2008 Adam Jackson <ajax@redhat.com> 1.0.5-1
- libXt 1.0.5

* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1.0.4-5
- Autorebuild for GCC 4.3

* Tue Jan 15 2008 parag <paragn@fedoraproject.org> - 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 <ajax@redhat.com> - 1.0.4-3
- Rebuild for build id

* Sat Apr 21 2007 Matthias Clasen <mclasen@redhat.com> 1.0.4-2
- Don't install INSTALL

* Mon Nov 20 2006 Adam Jackson <ajax@redhat.com> 1.0.4-1.fc7
- Update to 1.0.4

* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> 1.0.2-3.1.fc6
- rebuild

* Tue Jul 11 2006 Mike A. Harris <mharris@redhat.com> 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 <ajackson@redhat.com> 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 <mharris@redhat.com> 1.0.2-1
- Updated libXt to version 1.0.2 from X11R7.1

* Fri Jun 09 2006 Mike A. Harris <mharris@redhat.com> 1.0.1-3
- Added "Requires: xorg-x11-proto-devel" to devel package for xt.pc

* Mon Jun 05 2006 Mike A. Harris <mharris@redhat.com> 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 <ajackson@redhat.com> 1.0.1-1
- Update to 1.0.1

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> 1.0.0-2.2
- bump again for double-long bug on ppc(64)

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> 1.0.0-2.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Mon Jan 23 2006 Mike A. Harris <mharris@redhat.com> 1.0.0-2
- Bumped and rebuilt

* Fri Dec 16 2005 Mike A. Harris <mharris@redhat.com> 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 <mharris@redhat.com> 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 <jkeating@redhat.com>
- rebuilt

* Fri Dec 02 2005 Kristian Høgsberg <krh@redhat.com> 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 <mharris@redhat.com> 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 <mharris@redhat.com> 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 <mharris@redhat.com> 0.99.2-3
- Actually spell RPM_OPT_FLAGS correctly this time.

* Mon Oct 31 2005 Mike A. Harris <mharris@redhat.com> 0.99.2-2
- Build with -fno-strict-aliasing to work around possible pointer aliasing
issue

* Mon Oct 24 2005 Mike A. Harris <mharris@redhat.com> 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 <mharris@redhat.com> 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 <mharris@redhat.com> 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 <mharris@redhat.com> 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 <mharris@redhat.com> 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<name>" and "Provides: lib<name>-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 <mharris@redhat.com> 0.99.0-1
- Initial build.
Loading…
Cancel
Save