File libX11.spec of Package libX11.19843

#
# spec file for package libX11
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


Name:           libX11
Version:        1.6.2
Release:        0
Summary:        Core X11 protocol client library
License:        MIT
Group:          Development/Libraries/C and C++
URL:            http://xorg.freedesktop.org/

# To fix bsc#1094327 we had to expose the 64-bit sequence number from XCB
# API without changing the version of the package. We need to ensure that
# libX11 won't be upgraded without also upgrading libxcb.
# This Requires marks that this package needs libxcb with that mechanism.
Requires:       libxcb:64bit-sequence
#Git-Clone:	git://anongit.freedesktop.org/xorg/lib/libX11
#Git-Web:       http://cgit.freedesktop.org/xorg/lib/libX11/
Source:         http://xorg.freedesktop.org/archive/individual/lib/%{name}-%{version}.tar.bz2
# PATCH-FIX-UPSTREAM p_khmer-compose.diff fdo#48595 bnc#143348 -- required compose entries for Khmer
Patch7:         p_khmer-compose.diff
# PATCH-FEATURE-UPSTREAM p_xlib_skip_ext_env.diff fdo#48588 bnc#167317 -- Add support for disabling extensions through environment variables
Patch9:         p_xlib_skip_ext_env.diff
# PATCH-FIX-UPSTREAM en-locales.diff fdo#48596 bnc#388711 -- Add missing data for more en locales
Patch15:        en-locales.diff
Patch16:        U_nls-en_US.UTF-8-Compose.pre-Fix-typo.patch
Patch17:        U_The-validation-of-server-responses-avoids-out-of-bou.patch
Patch18:        U_Validation-of-server-responses-in-XGetImage.patch
Patch19:        U_Plug-a-memory-leak.patch
Patch20:        U_Fix-for-XLib-32-bit-request-number-issues.patch
# CVE-2018-14599
Patch1102062:   u_off-by-one-write-in-XListExtensions.patch
# CVE-2018-14600
Patch1102068:   u_out-of-boundary-write-in-XListExtensions.patch
# CVE-2018-14598
Patch1102073:   u_crash-on-invalid-reply-in-XListExtensions.patch
Patch21:        U_001-ChangeTheData_lenParameterOf_XimAttributeToValueToCARD16.patch
Patch22:        U_002-FixIntegerOverflowsIn_XimAttributeToValue.patch
Patch23:        U_003-FixMoreUncheckedLengths.patch
Patch24:        U_004-FixSignedLengthValuesIn_XimGetAttributeID.patch
Patch25:        U_005-ZeroOutBuffersInFunctions.patch
Patch26:        U_006-Fix-size-calculation-in-_XimAttributeToValue.patch
Patch1175239:   U_0001-Fix-an-integer-overflow-in-init_om.patch
Patch1182506:   U_CVE-2021-31535.patch

BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  autoconf >= 2.60
BuildRequires:  automake
BuildRequires:  libtool
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(inputproto)
BuildRequires:  pkgconfig(kbproto)
BuildRequires:  pkgconfig(xcb) >= 1.1.92
BuildRequires:  pkgconfig(xextproto)
BuildRequires:  pkgconfig(xf86bigfontproto)
BuildRequires:  pkgconfig(xorg-macros) >= 1.11
BuildRequires:  pkgconfig(xproto)
BuildRequires:  pkgconfig(xproto) >= 7.0.13
BuildRequires:  pkgconfig(xtrans)

%description
The X Window System is a network-transparent window system that was
designed at MIT. X display servers run on computers with either
monochrome or color bitmap display hardware. The server distributes
user input to and accepts output requests from various client
programs located either on the same machine or elsewhere in the
network. Xlib is a C subroutine library that application programs
(clients) use to interface with the window system by means of a
stream connection.

%package -n libX11-6
Summary:        Core X11 protocol client library
Group:          System/Libraries
Requires:       %name-data >= %version

# O/P added for 12.2. Ideally remove before 12.2 release.
Provides:       xorg-x11-libX11 = 7.6_%version-%release
Obsoletes:      xorg-x11-libX11 < 7.6_%version-%release

%description -n libX11-6
The X Window System is a network-transparent window system that was
designed at MIT. X display servers run on computers with either
monochrome or color bitmap display hardware. The server distributes
user input to and accepts output requests from various client
programs located either on the same machine or elsewhere in the
network. Xlib is a C subroutine library that application programs
(clients) use to interface with the window system by means of a
stream connection.

%package -n libX11-xcb1
Summary:        XCB X11 protocol client library
Group:          System/Libraries
Requires:       %name-data >= %version

%description -n libX11-xcb1
The X Window System is a network-transparent window system that was
designed at MIT. X display servers run on computers with either
monochrome or color bitmap display hardware. The server distributes
user input to and accepts output requests from various client
programs located either on the same machine or elsewhere in the
network. Xlib is a C subroutine library that application programs
(clients) use to interface with the window system by means of a
stream connection.

%package data
Summary:        Shared data for the Core X11 protocol library
Group:          System/Libraries
%if 0%{?suse_version} >= 1130
BuildArch:      noarch
%endif

%description data
The X Window System is a network-transparent window system that was
designed at MIT. X display servers run on computers with either
monochrome or color bitmap display hardware. The server distributes
user input to and accepts output requests from various client
programs located either on the same machine or elsewhere in the
network. Xlib is a C subroutine library that application programs
(clients) use to interface with the window system by means of a
stream connection.

%package devel
Summary:        Development files for the Core X11 protocol library
Group:          Development/Libraries/C and C++
Requires:       libX11-6 = %version
Requires:       libX11-xcb1 = %version
# O/P added for 12.2
Provides:       xorg-x11-libX11-devel = 7.6_%version-%release
Obsoletes:      xorg-x11-libX11-devel < 7.6_%version-%release

%description devel
The X Window System is a network-transparent window system that was
designed at MIT. X display servers run on computers with either
monochrome or color bitmap display hardware. The server distributes
user input to and accepts output requests from various client
programs located either on the same machine or elsewhere in the
network. Xlib is a C subroutine library that application programs
(clients) use to interface with the window system by means of a
stream connection.

This package contains the development headers for the library found
in libX11-6 and libX11-xcb1.

%prep
%setup -q
# make legal department happy (Bug #153744)
test -f nls/ja.U90/XLC_LOCALE.pre && exit 1
test -f nls/ja.S90/XLC_LOCALE.pre && exit 1
#
%patch7 -p0
%patch9 -p0
%patch15 -p0
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch1102062 -p1
%patch1102068 -p1
%patch1102073 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch1175239 -p1
%patch1182506 -p1

%build
# Got patches which change auto*files
autoreconf -fi
%configure --docdir=%_docdir/%name --disable-static
# "--enable-loadable-i18n" is currently broken
#--datadir=/usr/share
make %{?_smp_mflags}

%install
make install DESTDIR="%buildroot"
rm -f "%buildroot/%_libdir"/*.la

# Some files are empty/missing for some UTF-8 locales
pushd "%buildroot/usr/share/X11/locale"
for i in *.UTF-8; do
	echo "$i"
	if [ "$i" == "en_US.UTF-8" ]; then
		continue
	fi
	touch "$i/Compose" "$i/XI18N_OBJS"
	test -s "$i/Compose"    || ln -fns ../en_US.UTF-8/Compose    "$i"
	test -s "$i/XI18N_OBJS" || ln -fns ../en_US.UTF-8/XI18N_OBJS "$i"
	test -s "$i/XLC_LOCALE" || ln -fns ../en_US.UTF-8/XLC_LOCALE "$i"
done
popd

# fdupes %buildroot/%_prefix

%post   -n libX11-6 -p /sbin/ldconfig

%postun -n libX11-6 -p /sbin/ldconfig

%post   -n libX11-xcb1 -p /sbin/ldconfig

%postun -n libX11-xcb1 -p /sbin/ldconfig

%files -n libX11-6
%defattr(-,root,root)
%_libdir/libX11.so.6*

%files -n libX11-xcb1
%defattr(-,root,root)
%_libdir/libX11-xcb.so.1*

%files data
%defattr(-,root,root)
%_datadir/X11

%files devel
%defattr(-,root,root)
%_includedir/X11/*
%_libdir/*.so
%_libdir/pkgconfig/*.pc
%_docdir/%name
%_mandir/man?/*

%changelog
openSUSE Build Service is sponsored by