+# TODO: consider XSELINUX
#
# Conditional build:
-%bcond_with multigl # package libglx.so in a way allowing concurrent install with nvidia/fglrx drivers
-%bcond_without dri2 # DRI2 support
-%bcond_with dbus # D-BUS support
-%bcond_with hal # HAL support
-%bcond_without udev # UDEV support
-%bcond_without dmx # DMX support
-%bcond_without record # RECORD extension
+%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 dri2 # DRI2 extension
+%bcond_without dmx # DMX support
+%bcond_without record # RECORD extension
+%bcond_with xcsecurity # XC-SECURITY extension (deprecated)
+%bcond_with xf86bigfont # XF86BigFont extension
+%bcond_with xselinux # SELinux extension
#
# ABI versions, see hw/xfree86/common/xf86Module.h
%define xorg_xserver_server_ansic_abi 0.4
-%define xorg_xserver_server_extension_abi 5.0
+%define xorg_xserver_server_extension_abi 7.0
%define xorg_xserver_server_font_abi 0.6
-%define xorg_xserver_server_videodrv_abi 10.0
-%define xorg_xserver_server_xinput_abi 12.2
+%define xorg_xserver_server_videodrv_abi 13.1
+%define xorg_xserver_server_xinput_abi 18.0
+#
+%define pixman_ver 0.28.0
-%define rel 2
Summary: X.org server
Summary(pl.UTF-8): Serwer X.org
Name: xorg-xserver-server
-Version: 1.10.3
-Release: %{rel}%{?with_multigl:.mgl}
+Version: 1.13.0.901
+Release: 0.1
License: MIT
Group: X11/Servers
Source0: http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-%{version}.tar.bz2
-# Source0-md5: fc1bb18a09244cd43a998625a6a1b071
+# Source0-md5: 8da850ca5d6f6aab8c620abb0ad21675
Source1: 10-quirks.conf
Source2: xserver.pamd
Source10: %{name}-Xvfb.init
Source11: %{name}-Xvfb.sysconfig
Patch0: %{name}-xwrapper.patch
Patch1: %{name}-pic-libxf86config.patch
-Patch2: %{name}-fb-size.patch
+
Patch3: %{name}-less-acpi-brokenness.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
# for glx headers
BuildRequires: OpenGL-GLX-devel
+%{?with_xselinux:BuildRequires: audit-libs-devel}
BuildRequires: autoconf >= 2.57
BuildRequires: automake
BuildRequires: cpp
BuildRequires: dbus-devel >= 1.0
%endif
%{?with_hal:BuildRequires: hal-devel}
-BuildRequires: libdrm-devel >= 2.4.5
+BuildRequires: libdrm-devel >= 2.4.39
+%{?with_xselinux:BuildRequires: libselinux-devel >= 2.0.86}
BuildRequires: libtool
BuildRequires: ncurses-devel
BuildRequires: pam-devel
BuildRequires: perl-base
-BuildRequires: pixman-devel >= 0.16.0
+BuildRequires: pixman-devel >= %{pixman_ver}
BuildRequires: pkgconfig >= 1:0.19
BuildRequires: udev-devel >= 1:143
BuildRequires: xmlto >= 0.0.20
BuildRequires: xorg-lib-libXxf86vm-devel
%{?with_dmx:BuildRequires: xorg-lib-libdmx-devel >= 1.0.99.1}
BuildRequires: xorg-lib-libfontenc-devel
-BuildRequires: xorg-lib-libpciaccess-devel >= 0.8.0
+BuildRequires: xorg-lib-libpciaccess-devel >= 0.12.901
BuildRequires: xorg-lib-libxkbfile-devel
BuildRequires: xorg-lib-libxkbui-devel >= 1.0.2
BuildRequires: xorg-lib-xtrans-devel >= 1.2.2
BuildRequires: xorg-proto-compositeproto-devel >= 0.4
BuildRequires: xorg-proto-damageproto-devel >= 1.1
%{?with_dmx:BuildRequires: xorg-proto-dmxproto-devel >= 2.2.99.1}
-%{?with_dri2:BuildRequires: xorg-proto-dri2proto-devel >= 2.3}
-BuildRequires: xorg-proto-fixesproto-devel >= 4.1
+%{?with_dri2:BuildRequires: xorg-proto-dri2proto-devel >= 2.8}
+BuildRequires: xorg-proto-fixesproto-devel >= 5.0
BuildRequires: xorg-proto-fontcacheproto-devel
BuildRequires: xorg-proto-fontsproto-devel
-BuildRequires: xorg-proto-glproto-devel >= 1.4.10
-BuildRequires: xorg-proto-inputproto-devel >= 1.9.99.902
+BuildRequires: xorg-proto-glproto-devel >= 1.4.16
+BuildRequires: xorg-proto-inputproto-devel >= 2.2
BuildRequires: xorg-proto-kbproto-devel >= 1.0.3
BuildRequires: xorg-proto-printproto-devel
-BuildRequires: xorg-proto-randrproto-devel >= 1.3
+BuildRequires: xorg-proto-randrproto-devel >= 1.4.0
%{?with_record:BuildRequires: xorg-proto-recordproto-devel >= 1.13.99.1}
BuildRequires: xorg-proto-renderproto-devel >= 0.11
-BuildRequires: xorg-proto-resourceproto-devel
+BuildRequires: xorg-proto-resourceproto-devel >= 1.2.0
BuildRequires: xorg-proto-scrnsaverproto-devel >= 1.1
BuildRequires: xorg-proto-videoproto-devel
BuildRequires: xorg-proto-xcmiscproto-devel >= 1.2.0
BuildRequires: xorg-proto-xextproto-devel >= 1:7.2.0
-BuildRequires: xorg-proto-xf86bigfontproto-devel >= 1.2.0
+%{?with_xf86bigfont:BuildRequires: xorg-proto-xf86bigfontproto-devel >= 1.2.0}
BuildRequires: xorg-proto-xf86dgaproto-devel >= 2.0.99.1
BuildRequires: xorg-proto-xf86driproto-devel >= 2.1.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.17
-BuildRequires: xorg-sgml-doctools >= 1.5
-BuildRequires: xorg-util-util-macros >= 1.10
-#BR: glitz-devel >= 0.4.3 (for XGL and EGL only)
-#BR: xcalibrateproto, tslib (for KDRIVE only)
+BuildRequires: xorg-proto-xproto-devel >= 7.0.22
+BuildRequires: xorg-sgml-doctools >= 1.8
+BuildRequires: xorg-util-util-macros >= 1.14
+#BR: tslib (for KDRIVE only)
Requires(triggerpostun): sed >= 4.0
-Requires: pixman >= 0.16.0
+Requires: pixman >= %{pixman_ver}
Requires: xkeyboard-config
# for rgb.txt
-Requires: dbus-x11
Requires: xorg-app-rgb >= 0.99.3
Requires: xorg-app-xkbcomp
%{?with_hal:Suggests: hal}
-Suggests: udev-acl
+Suggests: udev-acl >= 1:143
%{?with_udev:Suggests: udev-core >= 1:143}
Suggests: xorg-driver-input-evdev
# 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
+Suggests: dbus-x11 >= 1.0
Suggests: xkeyboard-config
+# Usual desktop setups need least one video driver to run, see xorg.log which one exactly
+Suggests: xorg-driver-video
Provides: xorg-xserver-server(ansic-abi) = %{xorg_xserver_server_ansic_abi}
Provides: xorg-xserver-server(extension-abi) = %{xorg_xserver_server_extension_abi}
Provides: xorg-xserver-server(font-abi) = %{xorg_xserver_server_font_abi}
Provides: xorg-xserver-server(videodrv-abi) = %{xorg_xserver_server_videodrv_abi}
Provides: xorg-xserver-server(xinput-abi) = %{xorg_xserver_server_xinput_abi}
+Provides: xorg-xserver-module(dri)
+Provides: xorg-xserver-libdri = %{version}-%{release}
Obsoletes: X11-Xserver < 1:7.0.0
Obsoletes: X11-driver-i2c < 1:7.0.0
Obsoletes: X11-modules < 1:7.0.0
Obsoletes: XFree86-setup < 1:7.0.0
Obsoletes: Xserver
Obsoletes: xorg-xserver-server-xorgcfg
+Obsoletes: xorg-xserver-libdri
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# avoid self-dependencies on included modules
%define _noautoreq libscanpci.so libxf1bpp.so
-%if %{with multigl}
-# executable Xorg provides symbols this library:
-%define skip_post_check_so libglx.so.*
-%endif
-
%description
Xorg server is a generally used X server which uses display hardware.
It requires proper driver for your display hardware.
Summary: Xephyr - nested X server
Summary(pl.UTF-8): Xephyr - zagnieżdżony serwer X
Group: X11/Servers
-Requires: pixman >= 0.16.0
+Requires: pixman >= %{pixman_ver}
%description -n xorg-xserver-Xephyr
Xephyr is a a kdrive server that outputs to a window on a pre-existing
Summary: Header files for X.org server
Summary(pl.UTF-8): Pliki nagłówkowe dla serwera X.org
Group: X11/Development/Libraries
-Requires: libdrm-devel >= 2.4.5
-Requires: pixman-devel >= 0.16.0
-Requires: xorg-lib-libpciaccess-devel >= 0.8.0
+Requires: libdrm-devel >= 2.4.39
+Requires: pixman-devel >= %{pixman_ver}
+Requires: xorg-lib-libpciaccess-devel >= 0.12.901
Requires: xorg-lib-libxkbfile-devel
-Requires: xorg-proto-dri2proto-devel >= 2.3
+%{?with_dri2:Requires: xorg-proto-dri2proto-devel >= 2.8}
Requires: xorg-proto-fontsproto-devel
-Requires: xorg-proto-inputproto-devel >= 1.9.99.902
+Requires: xorg-proto-inputproto-devel >= 2.2
Requires: xorg-proto-kbproto-devel >= 1.0.3
-Requires: xorg-proto-randrproto-devel >= 1.3
+Requires: xorg-proto-randrproto-devel >= 1.4.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-videoproto-devel
Requires: xorg-proto-xextproto-devel >= 1:7.2.0
Requires: xorg-proto-xf86driproto-devel >= 2.1.0
Requires: xorg-proto-xineramaproto-devel
-Requires: xorg-proto-xproto-devel >= 7.0.17
+Requires: xorg-proto-xproto-devel >= 7.0.22
Obsoletes: X11-Xserver-devel < 1:7.0.0
Obsoletes: XFree86-Xserver-devel < 1:7.0.0
%description source -l pl.UTF-8
Pliki źródłowe dla serwera X.org.
-%package -n xorg-xserver-libdri
-Summary: DRI extension library for X.org server
-Summary(pl.UTF-8): Biblioteka rozszerzenia DRI dla serwera X.org
-Group: X11/Servers
-Requires: %{name} = %{version}-%{release}
-Provides: xorg-xserver-module(dri)
-%if %{without multigl}
-Conflicts: xorg-driver-video-fglrx
-Conflicts: xorg-driver-video-nvidia
-%endif
-
-%description -n xorg-xserver-libdri
-DRI extension library for X.org server.
-
-%description -n xorg-xserver-libdri -l pl.UTF-8
-Biblioteka rozszerzenia DRI dla serwera X.org.
-
%package -n xorg-xserver-libglx
Summary: GLX extension library for X.org server
Summary(pl.UTF-8): Biblioteka rozszerzenia GLX dla serwera X.org
Group: X11/Servers
Requires: %{name} = %{version}-%{release}
-Requires: xorg-xserver-libdri = %{version}-%{release}
# Mesa version glapi tables in glx/ dir come from
Provides: xorg-xserver-libglx(glapi) = 7.1.0
Provides: xorg-xserver-module(glx)
Obsoletes: X11-OpenGL-core < 1:7.0.0
Obsoletes: XFree86-OpenGL-core < 1:7.0.0
-%if %{without multigl}
-Conflicts: xorg-driver-video-fglrx
-Conflicts: xorg-driver-video-nvidia
-%endif
%description -n xorg-xserver-libglx
GLX extension library for X.org server.
%setup -q -n xorg-server-%{version}
%patch0 -p0
%patch1 -p1
-%patch2 -p1
+
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+
+#unfortunately breaks build
+#patch7 -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
--with-os-name="PLD/Linux" \
--with-os-vendor="PLD/Team" \
--without-fop \
- --%{?with_dbus:en}%{!?with_dbus:dis}able-config-dbus \
- %{!?with_hal:--disable-config-hal} \
- --%{?with_udev:en}%{!?with_udev:dis}able-config-udev \
+ %{?with_dbus:--enable-config-dbus} \
+ --enable-config-hal%{!?with_hal:=no} \
+ --enable-config-udev%{!?with_udev:=no} \
--enable-aiglx \
- --enable-builddocs \
--enable-dga \
%{?with_dmx:--enable-dmx} \
--enable-glx-tls \
--enable-install-libxf86config \
%{?with_record:--enable-record} \
--enable-kdrive \
+ %{?with_xcsecurity:--enable-xcsecurity} \
--enable-xephyr \
+ %{?with_xf86bigfont:--enable-xf86bigfont} \
--enable-xfbdev \
+ %{?with_xselinux:--enable-xselinux} \
--enable-glx-tls \
--disable-xfake \
--enable-secure-rpc \
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/xserver
+install -Dp %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/xserver
install -d $RPM_BUILD_ROOT/etc/{security/console.apps,X11/xorg.conf.d}
install -d $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{dri,drivers,input}
install -d $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d
rm -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{*,*/*}.{la,a}
-install %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d/10-quirks.conf
+cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/X11/xorg.conf.d/10-quirks.conf
install -d $RPM_BUILD_ROOT/etc/rc.d/init.d
install -d $RPM_BUILD_ROOT/etc/sysconfig
-install %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/Xvfb
-install %{SOURCE11} $RPM_BUILD_ROOT/etc/sysconfig/Xvfb
-
-%if %{with multigl}
-cd $RPM_BUILD_ROOT%{_libdir}/xorg/modules/extensions
-mv -f libglx.so libglx.so.%{version}
-ln -sf libglx.so.%{version} libglx.so
-cd -
-%endif
+install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/Xvfb
+cp -p %{SOURCE11} $RPM_BUILD_ROOT/etc/sysconfig/Xvfb
install -d $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}
cp -a * $RPM_BUILD_ROOT%{_usrsrc}/%{name}-%{version}
%clean
rm -rf $RPM_BUILD_ROOT
-%if %{with multigl}
-%post -n xorg-xserver-libglx
-if [ ! -e %{_libdir}/xorg/modules/extensions/libglx.so ]; then
- ln -sf libglx.so.%{version} %{_libdir}/xorg/modules/extensions/libglx.so
-fi
-%endif
-
%triggerpostun -- xorg-xserver-server < 1.5.0
if [ -f /etc/X11/xorg.conf ]; then
sed -i -e 's/^\s*RgbPath.*$/#& # obsolete option/' /etc/X11/xorg.conf
%dir %{_libdir}/xorg/modules/dri
%dir %{_libdir}/xorg/modules/drivers
%dir %{_libdir}/xorg/modules/extensions
-%attr(755,root,root) %{_libdir}/xorg/modules/extensions/libdbe.so
-%{?with_dri2:%attr(755,root,root) %{_libdir}/xorg/modules/extensions/libdri2.so}
-%attr(755,root,root) %{_libdir}/xorg/modules/extensions/libextmod.so
-%{?with_record:%attr(755,root,root) %{_libdir}/xorg/modules/extensions/librecord.so}
%dir %{_libdir}/xorg/modules/input
%dir %{_libdir}/xorg/modules/multimedia
%attr(755,root,root) %{_libdir}/xorg/modules/multimedia/*.so
%files devel
%defattr(644,root,root,755)
-%doc doc/xml/Xserver-spec.html
+%doc doc/{Xinput,Xserver-spec}.html
%{_includedir}/xorg
%{_libdir}/libxf86config.a
%{_libdir}/libxf86config.la
%{_pkgconfigdir}/xorg-server.pc
%files source
+%defattr(644,root,root,755)
+# keep file perms from install time, but have default defattr to keep adapter happy
%defattr(-,root,root,755)
%{_usrsrc}/%{name}-%{version}
-%files -n xorg-xserver-libdri
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/xorg/modules/extensions/libdri.so
-
%files -n xorg-xserver-libglx
%defattr(644,root,root,755)
-%if %{with multigl}
-%ghost %{_libdir}/xorg/modules/extensions/libglx.so
-%attr(755,root,root) %{_libdir}/xorg/modules/extensions/libglx.so.%{version}
-%else
%attr(755,root,root) %{_libdir}/xorg/modules/extensions/libglx.so
-%endif