File xorg-x11-server.spec of Package xorg-x11-server

#
# spec file for package xorg-x11-server
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
#

# norootforbuild

%define moblin 0

Name:           xorg-x11-server
%define dirsuffix 1.9.3
%define vnc 1
BuildRequires:  Mesa-devel bison flex fontconfig-devel freetype2-devel ghostscript-library libdrm-devel libopenssl-devel pkgconfig xorg-x11 xorg-x11-devel xorg-x11-fonts-devel xorg-x11-libICE-devel xorg-x11-libSM-devel xorg-x11-libX11-devel xorg-x11-libXau-devel xorg-x11-libXdmcp-devel xorg-x11-libXext-devel xorg-x11-libXfixes-devel xorg-x11-libXmu-devel xorg-x11-libXp-devel xorg-x11-libXpm-devel xorg-x11-libXprintUtil-devel xorg-x11-libXrender-devel xorg-x11-libXt-devel xorg-x11-libXv-devel xorg-x11-libfontenc-devel xorg-x11-libxkbfile-devel xorg-x11-proto-devel xorg-x11-xtrans-devel
### udev support (broken on openSUSE 11.2, see also bnc #589997)
%if %suse_version > 1120
BuildRequires:  libudev-devel
%endif
%if %vnc
BuildRequires:  libjpeg-devel
%endif
Url:            http://xorg.freedesktop.org/
Version:        7.6_%{dirsuffix}
Release:        15.<RELEASE3>
License:        GPLv2+ ; MIT License (or similar)
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Group:          System/X11/Servers/XF86_4
%ifnarch s390 s390x
PreReq:         %fillup_prereq
%endif
Requires:       pkgconfig xorg-x11-fonts-core xorg-x11
%ifnarch s390 s390x
Provides:       VIDEO_ABI_VERSION = 8
Provides:       INPUT_ABI_VERSION = 11
Requires:       libpixman-1-0 >= 0.15.2
%endif
Provides:       xorg-x11-server-glx xorg-x11-Xvfb
Obsoletes:      xorg-x11-server-glx xorg-x11-Xvfb
Summary:        X.Org Server
Source:         xorg-server-%{dirsuffix}.tar.bz2
Source1:        sysconfig.displaymanager.template
Source3:        README.updates
Source4:        xorgcfg.tar.bz2
Source5:        modprobe.nvidia
Source7:        xorg-docs-1.6.tar.bz2
Source8:        xorg-backtrace
Patch1:         fpic.diff
Patch2:         p_default-module-path.diff
Patch6:         pu_fixes.diff
Patch8:         p_bug96328.diff
Patch13:        p_xorg_acpi.diff
Patch14:        p_xkills_wrong_client.diff
Patch16:        p_xnest-ignore-getimage-errors.diff
Patch23:        disable-fbblt-opt.diff
Patch27:        mouse.diff
Patch29:        xephyr.diff
Patch36:        libdrm.diff
%if %vnc
### Dan Nicholson <dbn.lists@gmail.com>
#http://people.freedesktop.org/~dbn/xorg-server-xf4vnc.patch
Patch39:        xorg-server-xf4vnc.patch
Patch40:        xorg-server-xf4vnc-disable-dmxvnc.diff
Patch42:        xorg-server-xf4vnc-TranslateNone.diff
Patch43:        xorg-server-xf4vnc-abi-version.diff
Patch44:        xorg-server-xf4vnc-cutpaste.diff
Patch46:        xorg-server-xf4vnc-busyloop.diff
Patch47:        xorg-server-xf4vnc-clientTimeout.diff
Patch48:        xorg-server-xf4vnc-fix.diff
Patch49:        xorg-server-xf4vnc-fixes_1_8.diff
Patch50:        xorg-server-xf4vnc-fixes_1_9.diff
Patch51:        xorg-server-xf4vnc-bug605015-vnc-umlauts.diff
%endif
Patch45:        bug-197858_dpms.diff
Patch67:        xorg-docs.diff
Patch77:        fbdevhw.diff
Patch79:        edit_data_sanity_check.diff
Patch93:        pixman.diff
Patch101:       zap_warning_xserver.diff
Patch103:       confine_to_shape.diff
Patch104:       bitmap_always_unscaled.diff
Patch106:       randr1_1-sig11.diff
Patch112:       fix-dpi-values.diff
Patch123:       vidmode-sig11.diff
Patch125:       0001-Xinput-Catch-missing-configlayout-when-deleting-dev.patch
Patch127:       dpms_screensaver.diff
Patch128:       pci-legacy-mem-fallback.diff
Patch129:       bug474071-fix1.diff
Patch143:       autoconfig_fallback_fbdev_first.diff
Patch145:       driver-autoconfig.diff
Patch147:       xserver-1.6.1-nouveau.patch
Patch162:       cache-xkbcomp-output-for-fast-start-up.patch
Patch163:       xserver-bg-none-root.patch
Patch164:       xorg-detect-psb.patch
Patch168:       xorg-server-nohwaccess.diff
Patch169:       xorg-x11-nonroot-vesa.patch
Patch200:       bug534768-prefer_local_symbols.patch
Patch202:       0001-Check-harder-for-primary-PCI-device.patch
Patch203:       0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch
Patch204:       missing_font_paths.diff
Patch205:       xorg-server-1.8.0.diff
Patch206:       fix_fglrx_screendepth_issue.patch
Patch207:       xorg-server-option_libxf86config.diff
Patch210:       pio_ia64.diff
Patch211:       0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
Patch213:       xorg-server-xdmcp.patch
Patch217:       CVE-2010-2240-address_space_limit.patch
Patch218:       CVE-2010-2240-tree_depth_limit.patch
Patch220:       Use-external-tool-for-creating-backtraces-on-crashes.patch
Patch221:       commit-5c6a2f9.diff
Patch222:       sync-fix.patch
Patch223:       use-last-screen.patch
Patch224:       pad-size-of-system-memory-copy-for-1x1-pixmaps
Patch225:       xorg-server-stop-cpu-eating.diff
%if %moblin
Patch300:       moblin-use_preferred_mode_for_all_outputs.diff
%endif

%description
This package contains the X.Org Server.



%package extra
License:        GPLv2+ ; MIT License (or similar)
Summary:        Additional Xservers (Xdmx, Xephyr, Xnest)
Group:          System/X11/Servers/XF86_4
Provides:       xorg-x11-Xnest
Obsoletes:      xorg-x11-Xnest
Requires:       xorg-x11-fonts-core xorg-x11 Mesa
Requires:       xkeyboard-config
AutoReqProv:    on

%description extra
This package contains additional Xservers (Xdmx, Xephyr, Xnest).



%package sdk
License:        GPLv2+ ; MIT License (or similar)
Summary:        X.Org Server SDK
Group:          System/Libraries
Provides:       xorg-x11-sdk
Obsoletes:      xorg-x11-sdk
Requires:       xorg-x11-proto-devel xorg-x11-xtrans-devel xorg-x11-libXau-devel xorg-x11-libXdmcp-devel xorg-x11-libX11-devel xorg-x11-libXext-devel xorg-x11-libXp-devel xorg-x11-libXpm-devel xorg-x11-libXrender-devel xorg-x11-libICE-devel xorg-x11-libSM-devel xorg-x11-libXt-devel xorg-x11-libXmu-devel xorg-x11-libXfixes-devel xorg-x11-libxkbfile-devel  xorg-x11-libfontenc-devel xorg-x11-libXv-devel xorg-x11-libXprintUtil-devel xorg-x11-devel freetype2-devel fontconfig-devel libdrm-devel xorg-x11-server
AutoReqProv:    on

%description sdk
This package contains the X.Org Server SDK.



%if %vnc

%package -n xorg-x11-Xvnc
License:        GPLv2+ ; MIT License (or similar)
Summary:        VNC Server for the X Window System
Group:          System/X11/Servers/XF86_4
Requires:       xorg-x11-fonts-core xorg-x11
Provides:       vnc:/usr/X11R6/bin/Xvnc XFree86-Xvnc
Obsoletes:      XFree86-Xvnc
%ifarch ia64
Provides:       vnc-x86
Obsoletes:      vnc-x86
%endif
AutoReqProv:    on

%description -n xorg-x11-Xvnc
An X Window System server for Virtual Network Computing (VNC).



%endif

%prep
%setup -q -n xorg-server-%{dirsuffix} -a4 -a7
%patch1
%patch2
%patch6
%patch8 -p0
%patch13
%patch14
%patch16 -p2
%patch23
%patch27
%patch29
%patch36 -p0
%if %vnc
%patch39 -p1
%patch40 -p0
%patch42 -p1
%patch43 -p0
%patch44
%patch46 -p1
%patch47 -p1
%patch48 -p1
%patch49 -p0
%patch50 -p1
#%patch51 -p1
chmod 755 hw/vnc/symlink-vnc.sh
%endif
%patch45 -p0
pushd xorg-docs-*
%patch67
popd
%patch77
%patch79 -p1
%patch93
%patch101 -p1
%patch103
%patch104 -p1
%patch106 -p1
%patch112 -p0
%patch123 -p0
%patch125 -p1
%patch127 -p1
%patch128
pushd hw/xfree86/os-support/bus
%patch129 -p0
popd
%patch143 -p0
%patch145 -p0
%patch147 -p1
%patch162 -p1
%patch163 -p1
%patch164 -p1
%patch168 -p1
%patch169 -p1
%patch200 -p1
%patch202 -p1
%patch203 -p1
%patch204 -p0
%patch205 -p0
%patch206 -p0
%patch207 -p0
%patch210 -p1
%patch211 -p1
%patch213 -p1
%patch217 -p1
%patch218 -p1
# Disable backtrace generation patch for now
#%patch220 -p1
%patch221 -p1
%patch222 -p1
%patch223 -p1
%patch224 -p1
%patch225 -p1
%if %moblin
%patch300 -p1
%endif

%build
pushd xorg-docs-*
autoreconf -fi
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%{__make} %{?jobs:-j%jobs}
popd
autoreconf -fi
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \
	    --sysconfdir=/etc \
            --enable-builddocs \
            --enable-install-libxf86config \
            --enable-xdmcp \
            --enable-xdm-auth-1 \
            --enable-dri \
            --enable-dri2 \
            --enable-dmx \
            --enable-xnest \
            --enable-kdrive \
            --enable-xephyr \
            --enable-record \
            --enable-xcsecurity \
            --with-sha1=libcrypto \
%ifarch s390 s390x
            --disable-xorg \
            --disable-aiglx \
%else
            --enable-xorg \
%if %suse_version > 1120
	    --enable-config-udev \
%endif
%endif
%if %vnc
            --disable-xcliplist \
%endif
            --with-log-dir="/var/log" \
            --with-os-name="openSUSE" \
            --with-os-vendor="SUSE LINUX" \
            --with-fontrootdir="/usr/share/fonts" \
            --with-xkb-path="/usr/share/X11/xkb" \
            --with-xkb-output="/var/lib/xkb/compiled"
make %{?jobs:-j %jobs}
make -C hw/kdrive %{?jobs:-j %jobs}

%install
make -C xorg-docs-* install DESTDIR=$RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
make -C hw/kdrive install DESTDIR=$RPM_BUILD_ROOT
%ifnarch s390 s390x
# remove .la files
find $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/ -name "*.la" | \
  xargs rm
install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \
  $RPM_BUILD_ROOT/usr/include/xorg
# bnc #632737
chmod u-s $RPM_BUILD_ROOT/usr/bin/Xorg
mkdir -p $RPM_BUILD_ROOT/var/lib/X11
ln -snf ../../../usr/bin/Xorg $RPM_BUILD_ROOT/var/lib/X11/X
ln -snf ../../var/lib/X11/X $RPM_BUILD_ROOT/usr/bin/X
mkdir -p $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/updates/{fonts,input,linux,drivers,multimedia,extensions}
install -m 644 $RPM_SOURCE_DIR/README.updates $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/updates
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
install -m 644 $RPM_SOURCE_DIR/modprobe.nvidia $RPM_BUILD_ROOT/etc/modprobe.d/50-nvidia.conf
gzip -c hw/dmx/Xdmx.man > $RPM_BUILD_ROOT/%{_mandir}/man1/Xdmx.1.gz
%else
rm -f $RPM_BUILD_ROOT/usr/share/aclocal/*.m4
%endif
%if %vnc
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services
cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF
## Name: VNC Server
## Description: Opens ports for VNC Server
TCP="5801 5901"
EOF
%endif
%ifarch s390 s390x
rm $RPM_BUILD_ROOT/etc/X11/10-evdev.conf
make -C hw/xfree86/parser
mkdir -p $RPM_BUILD_ROOT/usr/include/xorg \
         $RPM_BUILD_ROOT/usr/%{_lib}
install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \
         $RPM_BUILD_ROOT/usr/include/xorg
install -m 644 hw/xfree86/parser/libxf86config.a \
         $RPM_BUILD_ROOT//usr/%{_lib}
%endif
%ifnarch s390 s390x
mkdir -p %buildroot/var/adm/fillup-templates
install -m 644 %_sourcedir/sysconfig.displaymanager.template \
  %buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name
%endif
install -m 755 $RPM_SOURCE_DIR/xorg-backtrace $RPM_BUILD_ROOT/usr/bin/xorg-backtrace

%clean
rm -rf "$RPM_BUILD_ROOT"
%ifnarch s390 s390x
%verifyscript
%verify_permissions -e /usr/bin/Xorg
%endif

%post
%ifnarch s390 s390x
%{fillup_only -an displaymanager}
%run_permissions
if [ -f etc/X11/xorg.conf ]; then
 # Document how to restore previous input driver behaviour in xorg.conf files created
 # on openSUSE <= 11.1
 if ! grep -q "will be disabled unless 'Option \"AutoAddDevices\" \"off\"'" etc/X11/xorg.conf; then
  if ! grep -q "\"AutoAddDevices\" \"off\"" etc/X11/xorg.conf; then
   sed -i '
/Section "ServerFlags"/{
h
g
a\
  # Uncomment the following option to reenable kbd/mouse driver input sections. \
  # Otherwise evdev driver is used. \
  #Option       "AutoAddDevices" "off"
}
'  etc/X11/xorg.conf
  fi
 fi
fi
%endif
exit 0

%files
%defattr(-,root,root)
%ifnarch s390 s390x
%if %suse_version > 1120
%dir /etc/X11/xorg.conf.d
%endif
%dir /etc/modprobe.d
%dir /var/lib/X11
%endif
%dir /var/lib/xkb
%dir /var/lib/xkb/compiled
%dir /usr/%{_lib}/xorg
/usr/%{_lib}/xorg/protocol.txt
%{_mandir}/man1/*
%exclude %{_mandir}/man1/Xdmx.1*
%exclude %{_mandir}/man1/Xephyr.1*
%exclude %{_mandir}/man1/Xnest.1*
%{_mandir}/man7/*
/var/lib/xkb/compiled/README.compiled
%ifnarch s390 s390x
%if %suse_version > 1120
/etc/X11/xorg.conf.d/10-evdev.conf
%endif
/etc/modprobe.d/50-nvidia.conf
%verify(not mode) /usr/bin/Xorg
/usr/bin/X
/usr/bin/Xvfb
/usr/bin/cvt
/usr/bin/gtf
/usr/%{_lib}/xorg/modules/
%{_mandir}/man4/*
%{_mandir}/man5/*
/var/adm/fillup-templates/sysconfig.displaymanager-%name
/var/lib/X11/X
%endif
/usr/bin/xorg-backtrace

%files extra
%defattr(-,root,root)
/usr/bin/Xephyr
/usr/bin/Xnest
/usr/bin/Xdmx
/usr/bin/dmxaddinput
/usr/bin/dmxaddscreen
/usr/bin/dmxinfo
/usr/bin/dmxreconfig
/usr/bin/dmxresize
/usr/bin/dmxrminput
/usr/bin/dmxrmscreen
/usr/bin/dmxtodmx
/usr/bin/dmxwininfo
/usr/bin/vdltodmx
/usr/bin/xdmxconfig
%{_mandir}/man1/Xdmx.1*
%{_mandir}/man1/Xephyr.1*
%{_mandir}/man1/Xnest.1*

%files sdk
%defattr(-,root,root)
/usr/include/xorg/
/usr/%{_lib}/*.a
%ifnarch s390 s390x
/usr/%{_lib}/pkgconfig/*.pc
/usr/share/aclocal/*.m4
%endif
%if %vnc

%files -n xorg-x11-Xvnc
%defattr(-, root, root)
/etc/sysconfig/SuSEfirewall2.d/services/%{name}
/usr/bin/Xvnc
%endif

%changelog
openSUSE Build Service is sponsored by