# TODO # - use epoxy >= 1.4.4 when available # - 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 dri2 # DRI2 extension %bcond_without dri3 # DRI3 extension %bcond_without record # RECORD extension %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_with eglstream # XWayland eglstream support %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 10.0 %define xorg_xserver_server_videodrv_abi 24.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.20.4 Release: 1 License: MIT Group: X11/Servers Source0: http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-%{version}.tar.bz2 # Source0-md5: c4841cc24b79420205d082fe82e0a650 Source1: 10-quirks.conf Source2: xserver.pamd Source10: %{name}-Xvfb.init Source11: %{name}-Xvfb.sysconfig Source12: xvfb-run.sh Patch1: %{name}-xwrapper-pam.patch Patch4: %{name}-builtin-SHA1.patch Patch6: 110_nvidia_slowdow_fix.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: autoconf >= 2.60 BuildRequires: automake BuildRequires: cpp BuildRequires: docbook-dtd43-xml #BuildRequires: doxygen >= 1.6.1 %if %{with hal} || %{with dbus} BuildRequires: dbus-devel >= 1.0 %endif %{?with_eglstream:BuildRequires: egl-wayland-devel >= 1.0.2} %{?with_hal:BuildRequires: hal-devel} BuildRequires: libdrm-devel >= 2.4.89 %if %{with glamor} || %{with wayland} BuildRequires: libepoxy-devel # >= 1.4.4 %{?with_eglstream:BuildRequires: libepoxy-devel >= 1.5.0} %endif %{?with_xselinux:BuildRequires: libselinux-devel >= 2.0.86} BuildRequires: libtool >= 2:2.2 %{?with_libunwind:BuildRequires: libunwind-devel} BuildRequires: libxcb-devel >= 1.9.3 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 >= 1:209 BuildRequires: udev-devel >= 1:143 # wayland-client %{?with_wayland:BuildRequires: wayland-devel >= 1.3.0} %{?with_wayland:BuildRequires: wayland-protocols >= 1.10} 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 %{?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-libXfont2-devel >= 2.0.0 BuildRequires: xorg-lib-libXi-devel >= 1.2.99.1 %{?with_dmx:BuildRequires: xorg-lib-libXmu-devel} %{?with_dmx:BuildRequires: xorg-lib-libXpm-devel} BuildRequires: xorg-lib-libXrender-devel BuildRequires: xorg-lib-libXres-devel %{?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-libXxf86misc-devel 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.12.901 BuildRequires: xorg-lib-libxkbfile-devel BuildRequires: xorg-lib-libxshmfence-devel >= 1.1 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 %{?with_dmx:BuildRequires: xorg-proto-dmxproto-devel >= 2.2.99.1} %{?with_dri2:BuildRequires: xorg-proto-dri2proto-devel >= 2.8} BuildRequires: xorg-proto-dri3proto-devel >= 1.2 BuildRequires: xorg-proto-fixesproto-devel >= 5.0 BuildRequires: xorg-proto-fontcacheproto-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.1 BuildRequires: xorg-proto-printproto-devel BuildRequires: xorg-proto-randrproto-devel >= 1.6.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-scrnsaverproto-devel >= 1.1 BuildRequires: xorg-proto-videoproto-devel BuildRequires: xorg-proto-xcmiscproto-devel >= 1.2.0 BuildRequires: xorg-proto-xextproto-devel >= 1:7.3.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.31 BuildRequires: xorg-sgml-doctools >= 1.8 BuildRequires: xorg-util-util-macros >= 1.14 #BR: tslib (for KDRIVE only) Requires(triggerpostun): sed >= 4.0 %{?with_glamor:Requires: Mesa-libgbm >= 10.2.0} Requires: libdrm >= 2.4.89 Requires: libepoxy # >= 1.4.4 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 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 %{?with_hal:Suggests: hal} Suggests: udev-acl >= 1:143 %{?with_udev:Suggests: udev-core >= 1:143} Suggests: xkeyboard-config 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} Provides: xorg-xserver-server(extension-abi) = %{xorg_xserver_server_extension_abi} Provides: xorg-xserver-server(videodrv-abi) = %{xorg_xserver_server_videodrv_abi} Provides: xorg-xserver-server(xinput-abi) = %{xorg_xserver_server_xinput_abi} Obsoletes: X11-Xserver < 1:7.0.0 Obsoletes: X11-driver-i2c < 1:7.0.0 Obsoletes: X11-modules < 1:7.0.0 Obsoletes: X11-setup < 1:7.0.0 Obsoletes: XFree86-Xserver < 1:7.0.0 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) %description Xorg server is a generally used X server which uses display hardware. It requires proper driver for your display hardware. %description -l pl.UTF-8 Serwer Xorg to podstawowy serwer X wyświetlający obraz na karcie graficznej. Do działania wymaga odpowiedniego sterownika. %package -n xorg-xserver-Xdmx Summary: Xdmx - distributed multi-head X server Summary(pl.UTF-8): Xdmx - rozproszony, wielomonitorowy serwer X 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 Requires: xorg-lib-libdmx >= 1.0.99.1 %description -n xorg-xserver-Xdmx Xdmx - distributed multi-head X server. %description -n xorg-xserver-Xdmx -l pl.UTF-8 Xdmx - rozproszony, wielomonitorowy serwer X. %package -n xorg-xserver-Xnest Summary: Xnest - nested X server Summary(pl.UTF-8): Xnest - zagnieżdżony serwer X Group: X11/Servers Requires: pixman >= %{pixman_ver} Requires: xorg-lib-libXext >= 1.0.99.4 Requires: xorg-lib-libXfont2 >= 2.0.0 Obsoletes: X11-Xnest < 1:7.0.0 Obsoletes: XFree86-Xnest < 1:7.0.0 Obsoletes: Xserver-Xnest %description -n xorg-xserver-Xnest Xnest is an X Window System server which runs in an X window. Xnest is a 'nested' window server, actually a client of the real X server, which manages windows and graphics requests for Xnest, while Xnest manages the windows and graphics requests for its own clients. %description -n xorg-xserver-Xnest -l pl.UTF-8 Xnest jest serwerem X uruchamianym w okienku innego serwera X. Xnest zachowuje się jak klient X w stosunku do prawdziwego serwera X, a jak serwer X dla własnych klientów. %description -n xorg-xserver-Xnest -l ru.UTF-8 Xnest - это сервер X Window System, который работает в окне X. На самом деле это клиент реального X-сервера, который управляет окнами и графическими запросами для Xnest в то время, как Xnest управляет окнами и графическими запросами для своих собственных клиентов. %description -n xorg-xserver-Xnest -l uk.UTF-8 Xnest - це сервер X Window System, який працює у вікні X. Фактично це клієнт реального X-сервера, який керує вікнами та графічними запитами для Xnest в той час, як Xnest керує вікнами та графічними запитами для своїх власних клієнтів. %package -n xorg-xserver-Xephyr Summary: Xephyr - nested X server Summary(pl.UTF-8): Xephyr - zagnieżdżony serwer X Group: X11/Servers Requires: Mesa-libGL >= 7.1.0 Requires: libepoxy # >= 1.4.4 Requires: libxcb >= 1.9.3 Requires: pixman >= %{pixman_ver} Requires: xorg-lib-libXfont2 >= 2.0.0 %description -n xorg-xserver-Xephyr 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. Unlike Xnest which is an X proxy, i.e. limited to the capabilities of the host X server, Xephyr is a real X server which uses the host X server window as "framebuffer" via fast SHM XImages. It also has support for 'visually' debugging what the server is painting. %description -n xorg-xserver-Xephyr -l pl.UTF-8 Xephyr jest serwerem opartym na kdrive wyświetlającym w oknie na istniejącym ekranie X. Można o nim myśleć jako o Xnest ze wsparciem do wspólczesnych rozszerzeń jak composite, damage i randr. %package -n xorg-xserver-Xvfb Summary: Xvfb - virtual framebuffer X server Summary(pl.UTF-8): Xvfb - serwer X z wirtualnym framebufferem Group: X11/Servers Requires: Mesa-libGL >= 7.1.0 Requires: mktemp Requires: pixman >= %{pixman_ver} Requires: util-linux Requires: which Requires: xkeyboard-config Requires: xorg-app-xauth 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 %description -n xorg-xserver-Xvfb Xvfb (X Virtual Frame Buffer) is an X Window System server that is capable of running on machines with no display hardware and no physical input devices. Xvfb emulates a dumb framebuffer using virtual memory. Xvfb doesn't open any devices, but behaves otherwise as an X display. Xvfb is normally used for testing servers. Using Xvfb, the mfb or cfb code for any depth can be exercised without using real hardware that supports the desired depths. Xvfb has also been used to test X clients against unusual depths and screen configurations, to do batch processing with Xvfb as a background rendering engine, to do load testing, to help with porting an X server to a new platform, and to provide an unobtrusive way of running applications which really don't need an X server but insist on having one. %description -n xorg-xserver-Xvfb -l pl.UTF-8 Xvfb (X Virtual Frame Buffer) jest serwerem X, który można uruchamiać na maszynach bez urządzeń wyświetlających ani fizycznych urządzeń wejściowych. Xvfb emuluje prosty framebuffer w pamięci. Zwykle jest używany do testowania serwerów X, może też być używany do testowania klientów X w rzadko używanych konfiguracjach ekranu. Można też użyć Xvfb do uruchomienia aplikacji, które w rzeczywistości nie wymagają serwera X, ale odmawiają uruchomienia bez niego. %package -n xorg-xserver-Xvfb-init Summary: Init scripts for Xvfb Summary(pl.UTF-8): Skrypty startowe dla Xvfb Group: X11/Servers Requires: xorg-xserver-Xvfb %description -n xorg-xserver-Xvfb-init This package contains init scripts for Xvfb and registers Xvfb as system service. %description -n xorg-xserver-Xvfb-init -l pl.UTF-8 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 %{?with_eglstream:Requires: egl-wayland >= 1.0.2} %if %{with eglstream} Requires: libepoxy >= 1.5.0 %else Requires: libepoxy # >= 1.4.4 %endif 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.89 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 >= 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.1 Requires: xorg-proto-randrproto-devel >= 1.6.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.3.0 Requires: xorg-proto-xf86driproto-devel >= 2.1.0 Requires: xorg-proto-xineramaproto-devel 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. %description devel -l pl.UTF-8 Pliki nagłówkowe dla serwera X.org. %package source Summary: X.org server source code Summary(pl.UTF-8): Pliki źródłowe dla serwera X.org Group: X11/Development/Libraries %description source X.org server source code. %description source -l pl.UTF-8 Pliki źródłowe 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: 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) Obsoletes: X11-OpenGL-core < 1:7.0.0 Obsoletes: XFree86-OpenGL-core < 1:7.0.0 %description -n xorg-xserver-libglx GLX extension library for X.org server. %description -n xorg-xserver-libglx -l pl.UTF-8 Biblioteka rozszerzenia GLX dla serwera X.org. %prep %setup -q -n xorg-server-%{version} %patch1 -p1 %patch4 -p1 %patch6 -p1 # xserver uses pixman-1 API/ABI so put that explictly here sed -i -e 's# $RPM_BUILD_ROOT/etc/security/console.apps/xserver :> $RPM_BUILD_ROOT/etc/security/blacklist.xserver %{__rm} $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{*,*/*}.la 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 -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 <