# TODO
-# - consider XSELINUX
+# - consider XSELINUX by default
# - Xvfb initscript runs Xvfb as root! add user there!
#
# Conditional build:
%bcond_with dbus # D-BUS support for configuration (if no udev)
%bcond_with hal # HAL support for configuration (if no udev)
%bcond_without udev # UDEV support for configuration
-%bcond_without dmx # DMX support
%bcond_without dri2 # DRI2 extension
+%bcond_without dri3 # DRI3 extension
%bcond_without record # RECORD extension
-%bcond_without systemtap # systemtap/dtrace probes
%bcond_with xcsecurity # XC-SECURITY extension (deprecated)
%bcond_with xf86bigfont # XF86BigFont extension
%bcond_with xselinux # SELinux extension
+%bcond_without dmx # DMX DDX (Xdmx server)
+%bcond_without wayland # Wayland DDX (Xwayland server)
+%bcond_without glamor # glamor dix module
+%bcond_without systemtap # systemtap/dtrace probes
+%bcond_without libunwind # use libunwind for backtracing
#
# ABI versions, see hw/xfree86/common/xf86Module.h
%define xorg_xserver_server_ansic_abi 0.4
-%define xorg_xserver_server_extension_abi 8.0
+%define xorg_xserver_server_extension_abi 10.0
%define xorg_xserver_server_font_abi 0.6
-%define xorg_xserver_server_videodrv_abi 15.0
-%define xorg_xserver_server_xinput_abi 20.0
+%define xorg_xserver_server_videodrv_abi 23.0
+%define xorg_xserver_server_xinput_abi 24.1
%define pixman_ver 0.30.0
+%ifarch x32
+%undefine with_libunwind
+%endif
+
Summary: X.org server
Summary(pl.UTF-8): Serwer X.org
Name: xorg-xserver-server
-Version: 1.15.2
+Version: 1.19.3
Release: 1
License: MIT
Group: X11/Servers
Source0: http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-%{version}.tar.bz2
-# Source0-md5: 69229fe5cdf3f20f74665d57b7601d26
+# Source0-md5: 015d2fc4b9f2bfe7a626edb63a62c65e
Source1: 10-quirks.conf
Source2: xserver.pamd
Source10: %{name}-Xvfb.init
Source11: %{name}-Xvfb.sysconfig
Source12: xvfb-run.sh
-
-Patch0: %{name}-xwrapper.patch
-Patch1: %{name}-pic-libxf86config.patch
+Patch1: %{name}-xwrapper-pam.patch
Patch4: %{name}-builtin-SHA1.patch
-Patch5: %{name}-export-GetMaster.patch
+
Patch6: 110_nvidia_slowdow_fix.patch
-Patch7: %{name}-include-defs.patch
URL: http://xorg.freedesktop.org/
BuildRequires: Mesa-libGL-devel >= 7.8.1
+%{?with_dri2:BuildRequires: Mesa-libGL-devel >= 9.2.0}
+%{?with_glamor:BuildRequires: Mesa-libgbm-devel >= 10.2.0}
# for glx headers
BuildRequires: OpenGL-GLX-devel
%{?with_xselinux:BuildRequires: audit-libs-devel}
BuildRequires: dbus-devel >= 1.0
%endif
%{?with_hal:BuildRequires: hal-devel}
-BuildRequires: libdrm-devel >= 2.4.39
+BuildRequires: libdrm-devel >= 2.4.46
+%if %{with glamor} || %{with wayland}
+BuildRequires: libepoxy-devel
+%endif
%{?with_xselinux:BuildRequires: libselinux-devel >= 2.0.86}
-BuildRequires: libtool
-BuildRequires: libunwind-devel
+BuildRequires: libtool >= 2:2.2
+%{?with_libunwind:BuildRequires: libunwind-devel}
BuildRequires: libxcb-devel >= 1.6
-BuildRequires: ncurses-devel
BuildRequires: pam-devel
BuildRequires: perl-base
BuildRequires: pixman-devel >= %{pixman_ver}
BuildRequires: pkgconfig >= 1:0.19
%{?with_systemtap:BuildRequires: systemtap-sdt-devel}
+BuildRequires: systemd-devel >= 209
BuildRequires: udev-devel >= 1:143
+# wayland-client
+%{?with_wayland:BuildRequires: wayland-devel >= 1.3.0}
+%{?with_wayland:BuildRequires: wayland-protocols >= 1.1}
BuildRequires: xcb-util-devel
BuildRequires: xcb-util-image-devel
BuildRequires: xcb-util-keysyms-devel
+BuildRequires: xcb-util-renderutil-devel
BuildRequires: xcb-util-wm-devel
BuildRequires: xmlto >= 0.0.20
BuildRequires: xorg-app-mkfontscale
BuildRequires: xorg-font-font-util >= 1.1
BuildRequires: xorg-lib-libX11-devel >= 1.6
BuildRequires: xorg-lib-libXau-devel
-BuildRequires: xorg-lib-libXaw-devel
+%{?with_dmx:BuildRequires: xorg-lib-libXaw-devel}
BuildRequires: xorg-lib-libXdamage-devel
BuildRequires: xorg-lib-libXdmcp-devel
BuildRequires: xorg-lib-libXext-devel >= 1.0.99.4
BuildRequires: xorg-lib-libXfixes-devel
-BuildRequires: xorg-lib-libXfont-devel >= 1.4.2
+BuildRequires: xorg-lib-libXfont2-devel >= 2.0.0
BuildRequires: xorg-lib-libXi-devel >= 1.2.99.1
-BuildRequires: xorg-lib-libXmu-devel
-BuildRequires: xorg-lib-libXpm-devel
+%{?with_dmx:BuildRequires: xorg-lib-libXmu-devel}
+%{?with_dmx:BuildRequires: xorg-lib-libXpm-devel}
BuildRequires: xorg-lib-libXrender-devel
BuildRequires: xorg-lib-libXres-devel
-BuildRequires: xorg-lib-libXt-devel >= 1.0.0
+%{?with_dmx:BuildRequires: xorg-lib-libXt-devel >= 1.0.0}
BuildRequires: xorg-lib-libXtst-devel >= 1.0.99.2
BuildRequires: xorg-lib-libXv-devel
BuildRequires: xorg-lib-libXxf86dga-devel
BuildRequires: xorg-lib-libpciaccess-devel >= 0.12.901
BuildRequires: xorg-lib-libxkbfile-devel
BuildRequires: xorg-lib-libxshmfence-devel >= 1.1
-BuildRequires: xorg-lib-xtrans-devel >= 1.3.2
+BuildRequires: xorg-lib-xtrans-devel >= 1.3.5
BuildRequires: xorg-proto-bigreqsproto-devel >= 1.1.0
BuildRequires: xorg-proto-compositeproto-devel >= 0.4
BuildRequires: xorg-proto-damageproto-devel >= 1.1
BuildRequires: xorg-proto-dri3proto-devel >= 1.0
BuildRequires: xorg-proto-fixesproto-devel >= 5.0
BuildRequires: xorg-proto-fontcacheproto-devel
-BuildRequires: xorg-proto-fontsproto-devel
+BuildRequires: xorg-proto-fontsproto-devel >= 2.1.3
BuildRequires: xorg-proto-glproto-devel >= 1.4.17
BuildRequires: xorg-proto-inputproto-devel >= 2.3
BuildRequires: xorg-proto-kbproto-devel >= 1.0.3
BuildRequires: xorg-proto-presentproto-devel >= 1.0
BuildRequires: xorg-proto-printproto-devel
-BuildRequires: xorg-proto-randrproto-devel >= 1.4.0
+BuildRequires: xorg-proto-randrproto-devel >= 1.5.0
%{?with_record:BuildRequires: xorg-proto-recordproto-devel >= 1.13.99.1}
BuildRequires: xorg-proto-renderproto-devel >= 0.11
BuildRequires: xorg-proto-resourceproto-devel >= 1.2.0
BuildRequires: xorg-proto-xf86miscproto-devel
BuildRequires: xorg-proto-xf86vidmodeproto-devel >= 2.2.99.1
BuildRequires: xorg-proto-xineramaproto-devel
-BuildRequires: xorg-proto-xproto-devel >= 7.0.22
+BuildRequires: xorg-proto-xproto-devel >= 7.0.31
BuildRequires: xorg-sgml-doctools >= 1.8
BuildRequires: xorg-util-util-macros >= 1.14
#BR: tslib (for KDRIVE only)
Requires(triggerpostun): sed >= 4.0
-Requires: libdrm >= 2.4.39
+%{?with_glamor:Requires: Mesa-libgbm >= 10.2.0}
+Requires: libdrm >= 2.4.46
Requires: pixman >= %{pixman_ver}
Requires: udev-libs >= 1:143
Requires: xkeyboard-config
# for rgb.txt
Requires: xorg-app-rgb >= 0.99.3
Requires: xorg-app-xkbcomp
-# xserver requires fixed and cursor fonts
-Requires: xorg-font-font-alias
-Requires: xorg-font-font-cursor-misc
-Requires: xorg-font-font-misc-misc-base >= 1.0.0-0.3
-Requires: xorg-lib-libXfont >= 1.4.2
+Requires: xorg-lib-libXfont2 >= 2.0.0
Requires: xorg-lib-libpciaccess >= 0.12.901
Requires: xorg-lib-libxshmfence >= 1.1
Suggests: dbus-x11 >= 1.0
Suggests: udev-acl >= 1:143
%{?with_udev:Suggests: udev-core >= 1:143}
Suggests: xkeyboard-config
-Suggests: xorg-driver-input-evdev
+Suggests: xorg-driver-input-libinput
# Usual desktop setups need least one video driver to run, see xorg.log which one exactly
Suggests: xorg-driver-video
+Provides: xorg-driver-video-modesetting
Provides: xorg-xserver-libdri = %{version}-%{release}
Provides: xorg-xserver-module(dri)
Provides: xorg-xserver-server(ansic-abi) = %{xorg_xserver_server_ansic_abi}
Obsoletes: XFree86-modules < 1:7.0.0
Obsoletes: XFree86-setup < 1:7.0.0
Obsoletes: Xserver
+%{?with_glamor:Obsoletes: glamor}
Obsoletes: xorg-xserver-libdri
Obsoletes: xorg-xserver-server-xorgcfg
+Obsoletes: xorg-driver-video-modesetting
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-# avoid self-dependencies on included modules
-%define _noautoreq libscanpci.so libxf1bpp.so
-
%description
Xorg server is a generally used X server which uses display hardware.
It requires proper driver for your display hardware.
Requires: pixman >= %{pixman_ver}
Requires: xorg-lib-libX11 >= 1.6
Requires: xorg-lib-libXext >= 1.0.99.4
-Requires: xorg-lib-libXfont >= 1.4.2
+Requires: xorg-lib-libXfont2 >= 2.0.0
Requires: xorg-lib-libXi >= 1.2.99.1
Requires: xorg-lib-libdmx >= 1.0.99.1
Group: X11/Servers
Requires: pixman >= %{pixman_ver}
Requires: xorg-lib-libXext >= 1.0.99.4
-Requires: xorg-lib-libXfont >= 1.4.2
+Requires: xorg-lib-libXfont2 >= 2.0.0
Obsoletes: X11-Xnest < 1:7.0.0
Obsoletes: XFree86-Xnest < 1:7.0.0
Obsoletes: Xserver-Xnest
Requires: Mesa-libGL >= 7.1.0
Requires: libxcb >= 1.6
Requires: pixman >= %{pixman_ver}
-Requires: xorg-lib-libXfont >= 1.4.2
+Requires: xorg-lib-libXfont2 >= 2.0.0
%description -n xorg-xserver-Xephyr
-Xephyr is a a kdrive server that outputs to a window on a pre-existing
+Xephyr is a kdrive server that outputs to a window on a pre-existing
'host' X display. Think Xnest but with support for modern extensions
like composite, damage and randr.
Summary(pl.UTF-8): Xfbdev - serwer X dla framebuffera
Group: X11/Servers
Requires: pixman >= %{pixman_ver}
-Requires: xorg-lib-libXfont >= 1.4.2
+Requires: xorg-lib-libXfont2 >= 2.0.0
%description -n xorg-xserver-Xfbdev
Xfbdev is a Linux framebuffer device X server based on the kdrive X
Requires: util-linux
Requires: which
Requires: xkeyboard-config
-Requires: xorg-app-xkbcomp
Requires: xorg-app-xauth
-# requires fixed and cursor fonts
-Requires: xorg-font-font-alias
-Requires: xorg-font-font-cursor-misc
-Requires: xorg-font-font-misc-misc-base >= 1.0.0-0.3
-Requires: xorg-lib-libXfont >= 1.4.2
+Requires: xorg-app-xkbcomp
+Requires: xorg-lib-libXfont2 >= 2.0.0
Obsoletes: X11-Xvfb < 1:7.0.0
Obsoletes: XFree86-Xvfb < 1:7.0.0
Ten pakiet zawiera skrypty startowe dla Xvfb oraz rejestruje Xvfb jako
usługę systemową.
+%package -n xorg-xserver-Xwayland
+Summary: Xwayland - X server integrated into a Wayland window system
+Summary(pl.UTF-8): Xwayland - serwer X integrowalny w Wayland
+Group: X11/Servers
+Requires: pixman >= %{pixman_ver}
+Requires: xorg-lib-libX11 >= 1.6
+Requires: xorg-lib-libXext >= 1.0.99.4
+Requires: xorg-lib-libXfont2 >= 2.0.0
+Requires: xorg-lib-libXi >= 1.2.99.1
+
+%description -n xorg-xserver-Xwayland
+Xwayland - server integrated into a Wayland window system.
+
+%description -n xorg-xserver-Xwayland -l pl.UTF-8
+Xwayland - serwer X integrowalny w Wayland.
+
%package devel
Summary: Header files for X.org server
Summary(pl.UTF-8): Pliki nagłówkowe dla serwera X.org
Group: X11/Development/Libraries
Requires: Mesa-libGL-devel >= 7.8.0
-Requires: libdrm-devel >= 2.4.39
+Requires: libdrm-devel >= 2.4.46
Requires: pixman-devel >= %{pixman_ver}
+Requires: xorg-lib-libXfont2-devel >= 2.0.0
Requires: xorg-lib-libpciaccess-devel >= 0.12.901
Requires: xorg-lib-libxkbfile-devel
%{?with_dri2:Requires: xorg-proto-dri2proto-devel >= 2.8}
+%{?with_dri3:Requires: xorg-proto-dri3proto-devel >= 1.0}
Requires: xorg-proto-dri3proto-devel >= 1.0
-Requires: xorg-proto-fontsproto-devel
+Requires: xorg-proto-fontsproto-devel >= 2.1.3
Requires: xorg-proto-glproto-devel >= 1.4.17
Requires: xorg-proto-inputproto-devel >= 2.3
Requires: xorg-proto-kbproto-devel >= 1.0.3
Requires: xorg-proto-presentproto-devel >= 1.0
-Requires: xorg-proto-randrproto-devel >= 1.4.0
+Requires: xorg-proto-randrproto-devel >= 1.5.0
Requires: xorg-proto-renderproto-devel >= 0.11
Requires: xorg-proto-resourceproto-devel >= 1.2.0
Requires: xorg-proto-scrnsaverproto-devel >= 1.1
Requires: xorg-proto-xextproto-devel >= 1:7.3.0
Requires: xorg-proto-xf86driproto-devel >= 2.1.0
Requires: xorg-proto-xineramaproto-devel
-Requires: xorg-proto-xproto-devel >= 7.0.22
+Requires: xorg-proto-xproto-devel >= 7.0.31
Obsoletes: X11-Xserver-devel < 1:7.0.0
Obsoletes: XFree86-Xserver-devel < 1:7.0.0
+%{?with_glamor:Obsoletes: glamor-devel}
%description devel
Header files for X.org server.
Group: X11/Servers
Requires: %{name} = %{version}-%{release}
Requires: Mesa-libGL >= 7.1.0
+%{?with_dri2:Requires: Mesa-libGL >= 9.2.0}
# Mesa version glapi tables in glx/ dir come from
Provides: xorg-xserver-libglx(glapi) = 7.1.0
Provides: xorg-xserver-module(glx)
%prep
%setup -q -n xorg-server-%{version}
-%patch0 -p0
%patch1 -p1
%patch4 -p1
-%patch5 -p1
-%patch6 -p1
-#unfortunately breaks build
-#patch7 -p1
+%patch6 -p1
# xserver uses pixman-1 API/ABI so put that explictly here
sed -i -e 's#<pixman\.h#<pixman-1/pixman.h#g' ./fb/fb.h ./include/miscstruct.h ./render/picture.h
%{__autoheader}
%{__automake}
%configure \
+ --libexecdir=%{_libdir}/xorg \
--with-os-name="PLD/Linux" \
--with-os-vendor="PLD/Team" \
--with-default-font-path="%{_fontsdir}/misc,%{_fontsdir}/TTF,%{_fontsdir}/OTF,%{_fontsdir}/Type1,%{_fontsdir}/100dpi,%{_fontsdir}/75dpi" \
--with-xkb-output=/var/lib/xkb \
- %{!?with_systemtap:--without-dtrace} \
- --without-fop \
--disable-linux-acpi \
--disable-linux-apm \
--enable-aiglx \
--enable-dga \
%{?with_dmx:--enable-dmx} \
--enable-dri2%{!?with_dri2:=no} \
- --enable-glx-tls \
- --enable-install-libxf86config \
+ --enable-dri3%{!?with_dri3:=no} \
+ %{?with_glamor:--enable-glamor} \
--enable-kdrive \
- --enable-libunwind \
+ %{?with_libunwind:--enable-libunwind} \
%{?with_record:--enable-record} \
--enable-secure-rpc \
%{?with_xcsecurity:--enable-xcsecurity} \
%{?with_xf86bigfont:--enable-xf86bigfont} \
--disable-xfake \
--enable-xfbdev \
- %{?with_xselinux:--enable-xselinux}
+ %{?with_xselinux:--enable-xselinux} \
+ %{?with_wayland:--enable-xwayland} \
+ %{!?with_systemtap:--without-dtrace} \
+ --without-fop \
+ --enable-suid-wrapper \
+ --with-systemd-daemon
-%{__make}
+%{__make} -j1
%install
rm -rf $RPM_BUILD_ROOT
install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/Xvfb
cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/sysconfig/Xvfb
+# Xorg.wrap config
+cat >$RPM_BUILD_ROOT/etc/X11/Xwrapper.config <<EOF
+# allowed values: rootonly console anybody pam
+allowed_users = pam
+
+# set to yes if hardware or console access requires root rights (and Xwrapper fails to detect it)
+#needs_root_rights = yes
+EOF
+
+# compatibility with old xwrapper
+ln -s %{_libdir}/xorg/Xorg.wrap $RPM_BUILD_ROOT%{_bindir}/Xwrapper
+
# prepare source package
install -d $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}
cp -a * $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}
%attr(755,root,root) %{_bindir}/gtf
%dir %{_libdir}/xorg
%{_libdir}/xorg/protocol.txt
+%attr(755,root,root) %{_libdir}/xorg/Xorg
+%attr(4755,root,root) %{_libdir}/xorg/Xorg.wrap
%dir %{_libdir}/xorg/modules
+%attr(755,root,root) %{_libdir}/xorg/modules/libexa.so
+%attr(755,root,root) %{_libdir}/xorg/modules/libfb.so
+%attr(755,root,root) %{_libdir}/xorg/modules/libfbdevhw.so
+%{?with_glamor:%attr(755,root,root) %{_libdir}/xorg/modules/libglamoregl.so}
+%attr(755,root,root) %{_libdir}/xorg/modules/libint10.so
+%attr(755,root,root) %{_libdir}/xorg/modules/libshadow.so
+%attr(755,root,root) %{_libdir}/xorg/modules/libshadowfb.so
+%attr(755,root,root) %{_libdir}/xorg/modules/libvbe.so
+%attr(755,root,root) %{_libdir}/xorg/modules/libvgahw.so
+%attr(755,root,root) %{_libdir}/xorg/modules/libwfb.so
%dir %{_libdir}/xorg/modules/dri
%dir %{_libdir}/xorg/modules/drivers
+%attr(755,root,root) %{_libdir}/xorg/modules/drivers/modesetting_drv.so
%dir %{_libdir}/xorg/modules/extensions
%dir %{_libdir}/xorg/modules/input
-%dir %{_libdir}/xorg/modules/multimedia
-%attr(755,root,root) %{_libdir}/xorg/modules/multimedia/*.so
-%attr(755,root,root) %{_libdir}/xorg/modules/lib*.so
%if "%{_libdir}" != "%{_exec_prefix}/lib"
%dir %{_exec_prefix}/lib/xorg
%dir %{_exec_prefix}/lib/xorg/modules
%config(missingok) /etc/security/console.apps/xserver
%{?with_dbus:/etc/dbus-1/system.d/xorg-server.conf}
%dir /etc/X11/xorg.conf.d
+%config(noreplace) %verify(not md5 mtime size) /etc/X11/Xwrapper.config
%dir %{_datadir}/X11/xorg.conf.d
# overwrite these settings with local configs in /etc/X11/xorg.conf.d
-%verify(not md5 mtime size) %{_datadir}/X11/xorg.conf.d/*.conf
+%verify(not md5 mtime size) %{_datadir}/X11/xorg.conf.d/10-quirks.conf
%{_mandir}/man1/Xorg.1*
+%{_mandir}/man1/Xorg.wrap.1*
%{_mandir}/man1/Xserver.1*
%{_mandir}/man1/cvt.1*
%{_mandir}/man1/gtf.1*
%{_mandir}/man4/exa.4*
%{_mandir}/man4/fbdevhw.4*
+%{_mandir}/man4/modesetting.4*
+%{_mandir}/man5/Xwrapper.config.5*
%{_mandir}/man5/xorg.conf.5*
%{_mandir}/man5/xorg.conf.d.5*
%attr(754,root,root) /etc/rc.d/init.d/Xvfb
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/Xvfb
+%if %{with wayland}
+%files -n xorg-xserver-Xwayland
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/Xwayland
+%endif
+
%files devel
%defattr(644,root,root,755)
%doc doc/{Xinput,Xserver-spec}.html %{?with_systemtap:doc/dtrace/Xserver-DTrace.html}
%{_includedir}/xorg
-%{_libdir}/libxf86config.a
-%{_libdir}/libxf86config.la
%{_aclocaldir}/xorg-server.m4
%{_pkgconfigdir}/xorg-server.pc