From 4734f3affe7c1c9896a9f176f604f63bda63f18d5f7d0bf1f9a5cc1f9a7cc042 Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Tue, 13 Apr 2010 19:08:39 +0000 Subject: [PATCH] Accepting request 37642 from X11:XOrg checked in (request 37642) OBS-URL: https://build.opensuse.org/request/show/37642 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=252 --- ...atch => moblin-xorg-x11-nonroot-vesa.patch | 0 moblin-xserver-no-root-2.patch | 105 +++++++ pio_ia64.diff | 87 ------ sw_cursor_on_randr.patch | 13 - xlog2xconf.sh | 83 ++++++ xorg-server-nohwaccess.diff | 52 ---- xorg-x11-server.changes | 34 --- xorg-x11-server.spec | 267 ++++++++++++++---- ....patch => xserver-1.5.0-bg-none-root.patch | 97 ++++--- xserver-boottime.patch | 38 +++ 10 files changed, 493 insertions(+), 283 deletions(-) rename xorg-x11-nonroot-vesa.patch => moblin-xorg-x11-nonroot-vesa.patch (100%) create mode 100644 moblin-xserver-no-root-2.patch delete mode 100644 pio_ia64.diff delete mode 100644 sw_cursor_on_randr.patch create mode 100644 xlog2xconf.sh delete mode 100644 xorg-server-nohwaccess.diff rename xserver-bg-none-root.patch => xserver-1.5.0-bg-none-root.patch (63%) create mode 100644 xserver-boottime.patch diff --git a/xorg-x11-nonroot-vesa.patch b/moblin-xorg-x11-nonroot-vesa.patch similarity index 100% rename from xorg-x11-nonroot-vesa.patch rename to moblin-xorg-x11-nonroot-vesa.patch diff --git a/moblin-xserver-no-root-2.patch b/moblin-xserver-no-root-2.patch new file mode 100644 index 0000000..73091aa --- /dev/null +++ b/moblin-xserver-no-root-2.patch @@ -0,0 +1,105 @@ +Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_init.c +=================================================================== +--- xorg-server-1.6.3.orig/hw/xfree86/os-support/linux/lnx_init.c ++++ xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_init.c +@@ -49,6 +49,7 @@ static Bool KeepTty = FALSE; + static int VTnum = -1; + static Bool VTSwitch = TRUE; + static Bool ShareVTs = FALSE; ++Bool NoHwAccess = FALSE; + static int activeVT = -1; + + static int vtPermSave[4]; +@@ -80,9 +81,11 @@ saveVtPerms(void) + static void + restoreVtPerms(void) + { +- /* Set the terminal permissions back to before we started. */ +- chown("/dev/tty0", vtPermSave[0], vtPermSave[1]); +- chown(vtname, vtPermSave[2], vtPermSave[3]); ++ if (geteuid() == 0) { ++ /* Set the terminal permissions back to before we started. */ ++ (void)chown("/dev/tty0", vtPermSave[0], vtPermSave[1]); ++ (void)chown(vtname, vtPermSave[2], vtPermSave[3]); ++ } + } + + static void *console_handler; +@@ -210,20 +213,22 @@ xf86OpenConsole(void) + xf86Msg(X_WARNING, + "xf86OpenConsole: Could not save ownership of VT\n"); + +- /* change ownership of the vt */ +- if (chown(vtname, getuid(), getgid()) < 0) +- xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n", +- vtname, strerror(errno)); +- +- /* +- * the current VT device we're running on is not "console", we want +- * to grab all consoles too +- * +- * Why is this needed?? +- */ +- if (chown("/dev/tty0", getuid(), getgid()) < 0) +- xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n", +- strerror(errno)); ++ if (geteuid() == 0) { ++ /* change ownership of the vt */ ++ if (chown(vtname, getuid(), getgid()) < 0) ++ xf86Msg(X_WARNING,"xf86OpenConsole: chown %s failed: %s\n", ++ vtname, strerror(errno)); ++ ++ /* ++ * the current VT device we're running on is not ++ * "console", we want to grab all consoles too ++ * ++ * Why is this needed?? ++ */ ++ if (chown("/dev/tty0", getuid(), getgid()) < 0) ++ xf86Msg(X_WARNING,"xf86OpenConsole: chown /dev/tty0 failed: %s\n", ++ strerror(errno)); ++ } + } + + /* +@@ -434,6 +439,11 @@ xf86ProcessArgument(int argc, char *argv + ShareVTs = TRUE; + return(1); + } ++ if (!strcmp(argv[i], "-nohwaccess")) ++ { ++ NoHwAccess = TRUE; ++ return(1); ++ } + if ((argv[i][0] == 'v') && (argv[i][1] == 't')) + { + if (sscanf(argv[i], "vt%2d", &VTnum) == 0) +@@ -455,5 +465,6 @@ xf86UseMsg() + ErrorF("don't detach controlling tty (for debugging only)\n"); + ErrorF("-novtswitch don't immediately switch to new VT\n"); + ErrorF("-sharevts share VTs with another X server\n"); ++ ErrorF("-nohwaccess don't access hardware ports directly\n"); + return; + } +Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_video.c +=================================================================== +--- xorg-server-1.6.3.orig/hw/xfree86/os-support/linux/lnx_video.c ++++ xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_video.c +@@ -51,6 +51,7 @@ + #define MAP_FAILED ((void *)-1) + #endif + ++extern Bool NoHwAccess; + static Bool ExtendedEnabled = FALSE; + + #ifdef __ia64__ +@@ -509,6 +510,9 @@ xf86EnableIO(void) + int fd; + unsigned int ioBase_phys; + #endif ++ /* Fake it... */ ++ if (NoHwAccess) ++ return TRUE; + + if (ExtendedEnabled) + return TRUE; diff --git a/pio_ia64.diff b/pio_ia64.diff deleted file mode 100644 index 8601143..0000000 --- a/pio_ia64.diff +++ /dev/null @@ -1,87 +0,0 @@ -Index: xorg-server-1.8.0/hw/xfree86/common/compiler.h -=================================================================== ---- xorg-server-1.8.0.orig/hw/xfree86/common/compiler.h -+++ xorg-server-1.8.0/hw/xfree86/common/compiler.h -@@ -409,12 +409,18 @@ extern _X_EXPORT unsigned int inl(unsign - # undef inb - # undef inw - # undef inl --extern _X_EXPORT void outb(unsigned long port, unsigned char val); --extern _X_EXPORT void outw(unsigned long port, unsigned short val); --extern _X_EXPORT void outl(unsigned long port, unsigned int val); --extern _X_EXPORT unsigned int inb(unsigned long port); --extern _X_EXPORT unsigned int inw(unsigned long port); --extern _X_EXPORT unsigned int inl(unsigned long port); -+#define outb(p,v) outb_ia64(p,v) -+#define outw(p,v) outw_ia64(p,v) -+#define outl(p,v) outl_ia64(p,v) -+#define inb(p) inb_ia64(p) -+#define inw(p) inw_ia64(p) -+#define inl(p) inl_ia64(p) -+extern _X_EXPORT void outb_ia64(unsigned long port, unsigned char val); -+extern _X_EXPORT void outw_ia64(unsigned long port, unsigned short val); -+extern _X_EXPORT void outl_ia64(unsigned long port, unsigned int val); -+extern _X_EXPORT unsigned int inb_ia64(unsigned long port); -+extern _X_EXPORT unsigned int inw_ia64(unsigned long port); -+extern _X_EXPORT unsigned int inl_ia64(unsigned long port); - - # elif (defined(linux) || defined(__FreeBSD__)) && defined(__amd64__) - -Index: xorg-server-1.8.0/hw/xfree86/os-support/shared/ia64Pci.c -=================================================================== ---- xorg-server-1.8.0.orig/hw/xfree86/os-support/shared/ia64Pci.c -+++ xorg-server-1.8.0/hw/xfree86/os-support/shared/ia64Pci.c -@@ -60,7 +60,7 @@ static int ia64_port_to_fd(unsigned long - return (port >> 24) & 0xffffffff; - } - --void outb(unsigned long port, unsigned char val) -+void outb_ia64(unsigned long port, unsigned char val) - { - int fd = ia64_port_to_fd(port); - -@@ -80,7 +80,7 @@ void outb(unsigned long port, unsigned c - return; - } - --void outw(unsigned long port, unsigned short val) -+void outw_ia64(unsigned long port, unsigned short val) - { - int fd = ia64_port_to_fd(port); - -@@ -100,7 +100,7 @@ void outw(unsigned long port, unsigned s - return; - } - --void outl(unsigned long port, unsigned int val) -+void outl_ia64(unsigned long port, unsigned int val) - { - int fd = ia64_port_to_fd(port); - -@@ -120,7 +120,7 @@ void outl(unsigned long port, unsigned i - return; - } - --unsigned int inb(unsigned long port) -+unsigned int inb_ia64(unsigned long port) - { - int fd = ia64_port_to_fd(port); - unsigned char val; -@@ -142,7 +142,7 @@ unsigned int inb(unsigned long port) - return val; - } - --unsigned int inw(unsigned long port) -+unsigned int inw_ia64(unsigned long port) - { - int fd = ia64_port_to_fd(port); - unsigned short val; -@@ -164,7 +164,7 @@ unsigned int inw(unsigned long port) - return val; - } - --unsigned int inl(unsigned long port) -+unsigned int inl_ia64(unsigned long port) - { - int fd = ia64_port_to_fd(port); - unsigned int val; diff --git a/sw_cursor_on_randr.patch b/sw_cursor_on_randr.patch deleted file mode 100644 index 1a102da..0000000 --- a/sw_cursor_on_randr.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: xorg-server-1.8.0/hw/xfree86/modes/xf86Cursors.c -=================================================================== ---- xorg-server-1.8.0.orig/hw/xfree86/modes/xf86Cursors.c -+++ xorg-server-1.8.0/hw/xfree86/modes/xf86Cursors.c -@@ -611,7 +611,7 @@ xf86_reload_cursors (ScreenPtr screen) - cursor_screen_priv = dixLookupPrivate(&screen->devPrivates, - xf86CursorScreenKey); - /* return if HW cursor is inactive, to avoid displaying two cursors */ -- if (!cursor_screen_priv->isUp) -+ if (!cursor_screen_priv || !cursor_screen_priv->isUp) - return; - - scrn = xf86Screens[screen->myNum]; diff --git a/xlog2xconf.sh b/xlog2xconf.sh new file mode 100644 index 0000000..89a6507 --- /dev/null +++ b/xlog2xconf.sh @@ -0,0 +1,83 @@ +#!/bin/sh +# +# Create minimal xorg.conf extracted from Xorg..log +# +# -c (use to specify configfile to create) +# -e (edit file with $EDITOR after creation) +# -f (overwrite existing ) +# -l (use to specify X logfile to read) +# + +if [ $UID -ne 0 ]; then + echo "You must be root" + exit 1 +fi + +configfile=/etc/X11/xorg.conf +editor=false +overwrite=false +logfile=/var/log/Xorg.0.log + +while getopts ":c:efl:" opt; do + case $opt in + c ) configfile=${OPTARG} + ;; + e ) editor=true + ;; + f ) overwrite=true + ;; + l ) logfile=${OPTARG} + ;; + * ) echo 'usage: minimal-xconfig [-c ] [-e] [-f] [-l ]' + exit 1 + ;; + esac +done + +if [ ! -f $logfile ]; then + echo "$logfile does not exist." + echo "Use \"-l \" to specify a different logfile." + exit 1 +fi + +if ! grep -q -- "(==) --- Start of built-in configuration ---" $logfile; then + echo "$logfile does not contain the required xorg.conf section." + echo "Probably it uses a regular xorg.conf." + echo "Use \"-l \" to specify a different logfile." + exit 1 +fi + +if [ -f $configfile -a "$overwrite" == "false" ]; then + echo "$configfile already exists." + echo "Use \"-f\" to overwrite or \"-c \" to specify a different configfile." + exit 1 +fi + +begin=false + +cat $logfile | \ +while read line; do + if [ "$begin" == "true" ]; then + if echo $line | grep -q -- "(==) --- End of built-in configuration ---"; then + break + else + if ! echo $line | grep -q ^Section; then + if ! echo $line | grep -q ^EndSection; then + echo -n " " + fi + fi + echo $line + test "$line" == "EndSection" && echo + fi + elif echo $line | grep -q -- "(==) --- Start of built-in configuration ---"; then + begin=true + fi +done > $configfile + +if [ "$editor" == "true" ]; then + $EDITOR $configfile +else + echo "created $configfile" +fi + +exit 0 diff --git a/xorg-server-nohwaccess.diff b/xorg-server-nohwaccess.diff deleted file mode 100644 index b630f8f..0000000 --- a/xorg-server-nohwaccess.diff +++ /dev/null @@ -1,52 +0,0 @@ -Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_init.c -=================================================================== ---- xorg-server-1.6.3.orig/hw/xfree86/os-support/linux/lnx_init.c -+++ xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_init.c -@@ -49,6 +49,7 @@ static Bool KeepTty = FALSE; - static int VTnum = -1; - static Bool VTSwitch = TRUE; - static Bool ShareVTs = FALSE; -+Bool NoHwAccess = FALSE; - static int activeVT = -1; - - static int vtPermSave[4]; -@@ -434,6 +439,11 @@ xf86ProcessArgument(int argc, char *argv - ShareVTs = TRUE; - return(1); - } -+ if (!strcmp(argv[i], "-nohwaccess")) -+ { -+ NoHwAccess = TRUE; -+ return(1); -+ } - if ((argv[i][0] == 'v') && (argv[i][1] == 't')) - { - if (sscanf(argv[i], "vt%2d", &VTnum) == 0) -@@ -455,4 +465,5 @@ xf86UseMsg() - ErrorF("don't detach controlling tty (for debugging only)\n"); - ErrorF("-novtswitch don't immediately switch to new VT\n"); - ErrorF("-sharevts share VTs with another X server\n"); -+ ErrorF("-nohwaccess don't access hardware ports directly\n"); - } -Index: xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_video.c -=================================================================== ---- xorg-server-1.6.3.orig/hw/xfree86/os-support/linux/lnx_video.c -+++ xorg-server-1.6.3/hw/xfree86/os-support/linux/lnx_video.c -@@ -51,6 +51,7 @@ - #define MAP_FAILED ((void *)-1) - #endif - -+extern Bool NoHwAccess; - static Bool ExtendedEnabled = FALSE; - - #ifdef __ia64__ -@@ -509,6 +510,9 @@ xf86EnableIO(void) - int fd; - unsigned int ioBase_phys; - #endif -+ /* Fake it... */ -+ if (NoHwAccess) -+ return TRUE; - - if (ExtendedEnabled) - return TRUE; diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 2554e54..7e4f36a 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,37 +1,3 @@ -------------------------------------------------------------------- -Sat Apr 10 20:54:18 CEST 2010 - sndirsch@suse.de - -- specfile cleanup -- removed no longer useful xlog2xconf.sh - -------------------------------------------------------------------- -Sat Apr 10 12:26:46 CEST 2010 - sndirsch@suse.de - -- adjusted moblin-xserver-no-root-2.patch, renamed it to - xorg-server-nohwaccess.diff and enable it by default -- rename moblin-xorg-x11-nonroot-vesa.patch to - xorg-x11-nonroot-vesa.patch -- removed obsolete patch 'xserver-boottime.patch' - -------------------------------------------------------------------- -Thu Apr 8 13:42:43 UTC 2010 - eich@novell.com - -- Adapted and fixed 'noroot-background' patch originally coming from - the Moblin project and enable by default. - -------------------------------------------------------------------- -Thu Apr 8 12:20:38 UTC 2010 - eich@suse.de - -- On ia64 the Xserver brings its own PIO functions (inb, outb, ...). - These are supposed to overrule the ones provided by glibc. - Unfortunately this doesn't seem to work under all circumstances. - Therefore use inX/outX_ia64 and set appropriate defines. - -------------------------------------------------------------------- -Thu Apr 8 11:50:30 UTC 2010 - eich@suse.de - -- Fix SIG11 on VT switch when using SW cursor with RandR (bnc #592614). - ------------------------------------------------------------------- Thu Apr 8 11:49:46 CEST 2010 - ro@suse.de diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 69401d0..b811398 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -21,6 +21,8 @@ Name: xorg-x11-server %define dirsuffix 1.8.0 +%define fglrx_driver_hack 0 +### FIXME %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) @@ -31,6 +33,7 @@ BuildRequires: libudev-devel BuildRequires: libjpeg-devel %endif Url: http://xorg.freedesktop.org/ +%define EXPERIMENTAL 0 Version: 7.5_%{dirsuffix} Release: 3 License: GPLv2+ ; MIT License (or similar) @@ -40,20 +43,27 @@ Group: System/X11/Servers/XF86_4 PreReq: %fillup_prereq %endif Requires: pkgconfig xorg-x11-fonts-core xorg-x11 +%if %suse_version > 1010 %ifnarch s390 s390x Provides: VIDEO_ABI_VERSION = 7 Provides: INPUT_ABI_VERSION = 9 Requires: libpixman-1-0 >= 0.15.2 %endif +%endif Provides: xorg-x11-server-glx Obsoletes: xorg-x11-server-glx Summary: X.Org Server Source: xorg-server-%{dirsuffix}.tar.bz2 +%ifnarch s390 s390x Source1: sysconfig.displaymanager.template +%endif Source3: README.updates Source4: xorgcfg.tar.bz2 +%if %suse_version > 1010 Source5: modprobe.nvidia +%endif Source7: xorg-docs-1.4.tar.bz2 +Source8: xlog2xconf.sh Patch1: fpic.diff Patch2: p_default-module-path.diff Patch6: pu_fixes.diff @@ -97,11 +107,20 @@ Patch132: fixed-SYNC-extension-trigger-BlockHandler-test.diff Patch143: autoconfig_fallback_fbdev_first.diff Patch145: driver-autoconfig.diff Patch147: xserver-1.6.1-nouveau.patch +# Moblin Patch162: cache-xkbcomp-output-for-fast-start-up.patch -Patch163: xserver-bg-none-root.patch +%if %moblin +Patch163: xserver-1.5.0-bg-none-root.patch +%endif Patch164: xorg-detect-psb.patch -Patch168: xorg-server-nohwaccess.diff -Patch169: xorg-x11-nonroot-vesa.patch +%if %moblin +Patch168: moblin-xserver-no-root-2.patch +%endif +Patch169: moblin-xorg-x11-nonroot-vesa.patch +%if %moblin +Patch170: xserver-boottime.patch +Patch171: moblin-use_preferred_mode_for_all_outputs.diff +%endif 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 @@ -110,11 +129,6 @@ Patch205: xorg-server-1.8.0.diff Patch206: fix_fglrx_screendepth_issue.patch Patch207: xorg-server-option_libxf86config.diff Patch208: xorg-evdev-conf.diff -Patch209: sw_cursor_on_randr.patch -Patch210: pio_ia64.diff -%if %moblin -Patch300: moblin-use_preferred_mode_for_all_outputs.diff -%endif %description This package contains the X.Org Server. @@ -220,10 +234,19 @@ popd %patch145 -p0 %patch147 -p1 %patch162 -p1 +%if %moblin %patch163 -p1 +%endif %patch164 -p1 +%if %moblin %patch168 -p1 +%endif %patch169 -p1 +%if %moblin +%patch170 -p1 +%patch171 -p1 +%endif +# %patch200 -p1 %patch202 -p1 %patch203 -p1 @@ -232,44 +255,67 @@ popd %patch206 -p0 %patch207 -p0 %patch208 -p0 -%patch209 -p1 -%patch210 -p1 -%if %moblin -%patch300 -p1 -%endif %build pushd xorg-docs-* autoreconf -fi -%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" -%{__make} %{?jobs:-j%jobs} +export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" +%configure +make popd autoreconf -fi -%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \ +# DRI2 disabled for Xserver 1.5 as libdrm 2.3.1 doesn't have the +# drmBO functionality. +./configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" \ +%if %fglrx_driver_hack + --with-release-major=7 \ + --with-release-minor=2 \ + --with-release-patch=0 \ + --with-release-snap=0 \ + --with-release-date="%(date)" \ + --with-release-version=7.2.0.0 \ +%endif +%if %vnc + --enable-vnc \ + --disable-xcliplist \ +%endif + --prefix=/usr \ --sysconfdir=/etc \ + --libdir=%{_libdir} \ + --mandir=%{_mandir} \ --enable-builddocs \ --enable-install-libxf86config \ +%ifarch %EXPERIMENTAL + --enable-glx-tls \ + --enable-multibuffer \ +%endif +%ifarch s390 s390x + --disable-aiglx \ +%else + --enable-aiglx \ +%endif + --enable-lbx \ --enable-xdmcp \ --enable-xdm-auth-1 \ --enable-dri \ --enable-dri2 \ +%ifarch s390 s390x + --disable-xorg \ +%else + --enable-xorg \ +%endif --disable-dmx \ --enable-xnest \ --enable-kdrive \ --enable-xephyr \ + --disable-xsdl \ + --enable-xprint \ + --disable-kbd_mode \ + --disable-xprint \ --enable-record \ --enable-xcsecurity \ -%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" \ @@ -277,7 +323,8 @@ autoreconf -fi --with-fontrootdir="/usr/share/fonts" \ --with-xkb-path="/usr/share/X11/xkb" \ --with-xkb-output="/var/lib/xkb/compiled" -make %{?jobs:-j %jobs} +#make %{?jobs:-j %jobs} +make V=1 make -C hw/kdrive %{?jobs:-j %jobs} %install @@ -290,17 +337,37 @@ 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 +# add compatibility symlinks for SUSE <= 10.1 +%if %suse_version <= 1010 +mkdir -p $RPM_BUILD_ROOT/usr/X11R6/bin +ln -snf ../../bin/X $RPM_BUILD_ROOT/usr/X11R6/bin/X +ln -snf ../../bin/Xorg $RPM_BUILD_ROOT/usr/X11R6/bin/Xorg +%endif 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 +%if %suse_version <= 1010 +mkdir -p $RPM_BUILD_ROOT/etc/permissions.d +cat > $RPM_BUILD_ROOT/etc/permissions.d/xorg-x11-server.easy << EOF +/usr/bin/Xorg root:root 4711 +EOF +cat > $RPM_BUILD_ROOT/etc/permissions.d/xorg-x11-server.paranoid << EOF +/usr/bin/Xorg root:root 0711 +EOF +cat > $RPM_BUILD_ROOT/etc/permissions.d/xorg-x11-server.secure << EOF +/usr/bin/Xorg root:root 0711 +EOF +%endif %else rm -f $RPM_BUILD_ROOT/usr/share/aclocal/*.m4 %endif +%if %suse_version > 1010 +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 +%endif %if %vnc mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF @@ -310,10 +377,10 @@ TCP="5801 5901" EOF %endif %ifarch s390 s390x -rm $RPM_BUILD_ROOT/etc/X11/10-evdev.conf +rm $RPM_BUILD_ROOT/usr/%{_lib}/pkgconfig/*.pc make -C hw/xfree86/parser mkdir -p $RPM_BUILD_ROOT/usr/include/xorg \ - $RPM_BUILD_ROOT/usr/%{_lib} + $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 \ @@ -324,6 +391,7 @@ 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 %_sourcedir/xlog2xconf.sh %buildroot/usr/bin/xlog2xconf %clean rm -rf "$RPM_BUILD_ROOT" @@ -332,11 +400,66 @@ rm -rf "$RPM_BUILD_ROOT" %verify_permissions -e /usr/bin/Xorg %endif +%pre +test -L usr/lib/X11 && rm usr/lib/X11 +rm -rf etc/X11/xserver/ +exit 0 + %post %ifnarch s390 s390x %{fillup_only -an displaymanager} %run_permissions +rm -f var/log/XFree86.*.log* +# SaX2 writes xorg.conf since SuSE 9.3 +# - create backup of XF86Config +# - copy XF86Config to xorg.conf +# - set XF86Config symlink to xorg.conf +pushd etc/X11 &> /dev/null + # get rid of symlinks + for file in xorg.conf XF86Config; do + if [ -L $file ]; then + symlink=$file + while test -L $symlink; do + tmp=$(readlink $symlink) + rm -f $symlink + symlink=$tmp + done + mv $symlink $file + fi + done + if [ ! -f xorg.conf -a -f XF86Config ]; then + cp XF86Config xorg.conf + fi + if [ -f xorg.conf ]; then + #test -f XF86Config && old XF86Config + ln -snf xorg.conf XF86Config + fi +popd &> /dev/null if [ -f etc/X11/xorg.conf ]; then + # SuSE 10.1 --> SuSE 10.2: X11 fonts have moved to /usr/share/fonts + # SuSE 10.1 --> SuSE 10.2: radeonold --> radeon + # openSUSE 11.0 --> openSUSE 11.1: i810 --> intel (Bug #448458) + if grep -q -e /usr/X11R6/lib/X11/fonts/ \ + -e /usr/X11/lib/X11/fonts/ \ + -e /usr/lib/X11/fonts/ \ + etc/X11/xorg.conf; then + sed -i.post_xorg-x11-server \ + -e 's+/usr/X11R6/lib/X11/fonts/+/usr/share/fonts/+g' \ + -e 's+/usr/X11/lib/X11/fonts/+/usr/share/fonts/+g' \ + -e 's+/usr/lib/X11/fonts/+/usr/share/fonts/+g' \ + etc/X11/xorg.conf + fi + if grep -q \"radeonold\" etc/X11/xorg.conf; then + # only switch to radeon if radeonold is no longer available (Bug #355009) + if test ! -f /usr/%{_lib}/xorg/modules/drivers/radeonold_drv.so; then + sed -i.post_xorg-x11-server -e 's/\"radeonold\"/\"radeon\"/g' \ + etc/X11/xorg.conf + fi + fi + if grep -q \"i810\" etc/X11/xorg.conf; then + sed -i.post_xorg-x11-server -e 's/\"i810\"/\"intel\"/g' \ + etc/X11/xorg.conf + fi # 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 @@ -355,49 +478,97 @@ a\ fi fi %endif +# Installation of init script seems to be disabled by default +# Create symbolic run level links for xprint start script +if false; then + %{fillup_and_insserv -p xprint} +fi +exit 0 + +%preun +# Installation of init script seems to be disabled by default +if false; then + %stop_on_removal xprint +fi +exit 0 + +%postun +# installation of init script seems to be disabled by default +# Rearrange run level symlinks after removing the xprint init script +if false; then + %{insserv_cleanup} +fi +exit 0 + +%pre sdk +test -L usr/include/X11 && rm usr/include/X11 exit 0 %files %defattr(-,root,root) -%ifnarch s390 s390x -%if %suse_version > 1120 -%dir /etc/X11/xorg.conf.d -%endif +%if %suse_version > 1010 %dir /etc/modprobe.d +/etc/modprobe.d/50-nvidia.conf +%endif +#%ifarch ppc64 x86_64 +#%dir /usr/%{_lib}/X11 +#%endif +%dir /usr/%{_lib}/xorg +%ifnarch s390 s390x %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/Xephyr.1* -%exclude %{_mandir}/man1/Xnest.1* -%exclude %{_mandir}/man1/Xvfb.1* -%{_mandir}/man7/* -/var/lib/xkb/compiled/README.compiled %ifnarch s390 s390x -%if %suse_version > 1120 -/etc/X11/xorg.conf.d/10-evdev.conf +%if %suse_version <= 1010 +/etc/permissions.d/%name.* +%endif +%if %suse_version <= 1010 +/usr/X11R6/bin/X +/usr/X11R6/bin/Xorg %endif -/etc/modprobe.d/50-nvidia.conf -%verify(not mode) /usr/bin/Xorg /usr/bin/X +%endif +%ifnarch s390 s390x +%verify(not mode) /usr/bin/Xorg +/usr/bin/xlog2xconf +%endif +%ifnarch s390 s390x /usr/bin/cvt +%endif +%ifnarch s390 s390x /usr/bin/gtf +%endif +%ifnarch s390 s390x +#/usr/%{_lib}/X11/* /usr/%{_lib}/xorg/modules/ %{_mandir}/man4/* +%endif +/usr/%{_lib}/xorg/protocol.txt +%{_mandir}/man1/* +%exclude %{_mandir}/man1/Xnest.1* +%exclude %{_mandir}/man1/Xvfb.1* +%ifnarch s390 s390x %{_mandir}/man5/* -/var/adm/fillup-templates/sysconfig.displaymanager-%name +%endif +%{_mandir}/man7/* +%ifnarch s390 s390x /var/lib/X11/X %endif +/var/lib/xkb/compiled/README.compiled +%ifnarch s390 s390x +/var/adm/fillup-templates/sysconfig.displaymanager-%name +%endif +%if %suse_version > 1120 +%dir /etc/X11/xorg.conf.d +/etc/X11/xorg.conf.d/10-evdev.conf +%endif %files extra %defattr(-,root,root) /usr/bin/Xephyr /usr/bin/Xnest /usr/bin/Xvfb -%{_mandir}/man1/Xephyr.1* %{_mandir}/man1/Xnest.1* %{_mandir}/man1/Xvfb.1* diff --git a/xserver-bg-none-root.patch b/xserver-1.5.0-bg-none-root.patch similarity index 63% rename from xserver-bg-none-root.patch rename to xserver-1.5.0-bg-none-root.patch index 8be3b21..a085fbe 100644 --- a/xserver-bg-none-root.patch +++ b/xserver-1.5.0-bg-none-root.patch @@ -12,11 +12,11 @@ Subject: [PATCH] Add nr for background=none root os/utils.c | 3 +++ 6 files changed, 32 insertions(+), 11 deletions(-) -Index: xorg-server-1.8.0/dix/globals.c +Index: xorg-server-1.6.3/dix/globals.c =================================================================== ---- xorg-server-1.8.0.orig/dix/globals.c -+++ xorg-server-1.8.0/dix/globals.c -@@ -124,6 +124,7 @@ FontPtr defaultFont; /* not declared i +--- xorg-server-1.6.3.orig/dix/globals.c ++++ xorg-server-1.6.3/dix/globals.c +@@ -141,6 +141,7 @@ FontPtr defaultFont; /* not declared i CursorPtr rootCursor; Bool party_like_its_1989 = FALSE; Bool whiteRoot = FALSE; @@ -24,11 +24,11 @@ Index: xorg-server-1.8.0/dix/globals.c int cursorScreenDevPriv[MAXSCREENS]; -Index: xorg-server-1.8.0/dix/window.c +Index: xorg-server-1.6.3/dix/window.c =================================================================== ---- xorg-server-1.8.0.orig/dix/window.c -+++ xorg-server-1.8.0/dix/window.c -@@ -465,23 +465,24 @@ InitRootWindow(WindowPtr pWin) +--- xorg-server-1.6.3.orig/dix/window.c ++++ xorg-server-1.6.3/dix/window.c +@@ -479,23 +479,24 @@ InitRootWindow(WindowPtr pWin) pWin->cursorIsNone = FALSE; pWin->optional->cursor = rootCursor; rootCursor->refcnt++; @@ -59,19 +59,19 @@ Index: xorg-server-1.8.0/dix/window.c MapWindow(pWin, serverClient); } -Index: xorg-server-1.8.0/hw/xfree86/common/xf86Init.c +Index: xorg-server-1.6.3/hw/xfree86/common/xf86Init.c =================================================================== ---- xorg-server-1.8.0.orig/hw/xfree86/common/xf86Init.c -+++ xorg-server-1.8.0/hw/xfree86/common/xf86Init.c -@@ -77,6 +77,7 @@ +--- xorg-server-1.6.3.orig/hw/xfree86/common/xf86Init.c ++++ xorg-server-1.6.3/hw/xfree86/common/xf86Init.c +@@ -79,6 +79,7 @@ #ifdef RENDER #include "picturestr.h" #endif +#include "xace.h" - #include "xf86VGAarbiter.h" #include "globals.h" -@@ -256,6 +257,7 @@ xf86CreateRootWindow(WindowPtr pWin) + +@@ -328,6 +329,7 @@ xf86CreateRootWindow(WindowPtr pWin) int ret = TRUE; int err = Success; ScreenPtr pScreen = pWin->drawable.pScreen; @@ -79,38 +79,37 @@ Index: xorg-server-1.8.0/hw/xfree86/common/xf86Init.c RootWinPropPtr pProp; CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr) dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey); -@@ -306,6 +308,16 @@ xf86CreateRootWindow(WindowPtr pWin) - ret = FALSE; +@@ -381,6 +383,15 @@ xf86CreateRootWindow(WindowPtr pWin) } } -+ if (bgNoneRoot) { -+ if (pScrn->canDoBGNoneRoot) { -+ pWin->backgroundState = XaceBackgroundNoneState(pWin); -+ pWin->background.pixel = pScreen->whitePixel; -+ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore); -+ } else { -+ pWin->background.pixel = pScreen->blackPixel; -+ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore); -+ } -+ } - DebugF("xf86CreateRootWindow() returns %d\n", ret); - return (ret); -Index: xorg-server-1.8.0/hw/xfree86/common/xf86str.h ++ if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) { ++ pWin->backgroundState = XaceBackgroundNoneState(pWin); ++ pWin->background.pixel = pScreen->whitePixel; ++ pScreen->ChangeWindowAttributes(pWin, CWBackPixmap | CWBorderPixel | CWCursor | CWBackingStore); ++ } else { ++ pWin->background.pixel = pScreen->blackPixel; ++ pScreen->ChangeWindowAttributes(pWin, CWBackPixel | CWBorderPixel | CWCursor | CWBackingStore); ++ } ++ + #ifdef DEBUG + ErrorF("xf86CreateRootWindow() returns %d\n", ret); + #endif +Index: xorg-server-1.6.3/hw/xfree86/common/xf86str.h =================================================================== ---- xorg-server-1.8.0.orig/hw/xfree86/common/xf86str.h -+++ xorg-server-1.8.0/hw/xfree86/common/xf86str.h -@@ -503,7 +503,7 @@ typedef struct _confdrirec { +--- xorg-server-1.6.3.orig/hw/xfree86/common/xf86str.h ++++ xorg-server-1.6.3/hw/xfree86/common/xf86str.h +@@ -531,7 +531,7 @@ typedef struct _confdrirec { } confDRIRec, *confDRIPtr; /* These values should be adjusted when new fields are added to ScrnInfoRec */ -#define NUM_RESERVED_INTS 16 +#define NUM_RESERVED_INTS 15 - #define NUM_RESERVED_POINTERS 14 + #define NUM_RESERVED_POINTERS 15 #define NUM_RESERVED_FUNCS 11 -@@ -775,6 +775,9 @@ typedef struct _ScrnInfoRec { - ClockRangePtr clockRanges; +@@ -959,6 +959,9 @@ typedef struct _ScrnInfoRec { + ClockRangesPtr clockRanges; int adjustFlags; + /* -nr support */ @@ -119,23 +118,23 @@ Index: xorg-server-1.8.0/hw/xfree86/common/xf86str.h /* * These can be used when the minor ABI version is incremented. * The NUM_* parameters must be reduced appropriately to keep the -Index: xorg-server-1.8.0/include/opaque.h +Index: xorg-server-1.6.3/include/opaque.h =================================================================== ---- xorg-server-1.8.0.orig/include/opaque.h -+++ xorg-server-1.8.0/include/opaque.h -@@ -71,6 +71,7 @@ extern _X_EXPORT Bool defeatAccessContro - extern _X_EXPORT long maxBigRequestSize; - extern _X_EXPORT Bool party_like_its_1989; - extern _X_EXPORT Bool whiteRoot; -+extern _X_EXPORT Bool bgNoneRoot; +--- xorg-server-1.6.3.orig/include/opaque.h ++++ xorg-server-1.6.3/include/opaque.h +@@ -71,6 +71,7 @@ extern Bool defeatAccessControl; + extern long maxBigRequestSize; + extern Bool party_like_its_1989; + extern Bool whiteRoot; ++extern Bool bgNoneRoot; - extern _X_EXPORT Bool CoreDump; + extern Bool CoreDump; -Index: xorg-server-1.8.0/os/utils.c +Index: xorg-server-1.6.3/os/utils.c =================================================================== ---- xorg-server-1.8.0.orig/os/utils.c -+++ xorg-server-1.8.0/os/utils.c -@@ -511,6 +511,7 @@ void UseMsg(void) +--- xorg-server-1.6.3.orig/os/utils.c ++++ xorg-server-1.6.3/os/utils.c +@@ -515,6 +515,7 @@ void UseMsg(void) #endif ErrorF("-nolisten string don't listen on protocol\n"); ErrorF("-noreset don't reset after last client exists\n"); @@ -143,7 +142,7 @@ Index: xorg-server-1.8.0/os/utils.c ErrorF("-reset reset after last client exists\n"); ErrorF("-p # screen-saver pattern duration (minutes)\n"); ErrorF("-pn accept failure to listen on all ports\n"); -@@ -852,6 +853,8 @@ ProcessCommandLine(int argc, char *argv[ +@@ -859,6 +860,8 @@ ProcessCommandLine(int argc, char *argv[ defaultBackingStore = WhenMapped; else if ( strcmp( argv[i], "-wr") == 0) whiteRoot = TRUE; diff --git a/xserver-boottime.patch b/xserver-boottime.patch new file mode 100644 index 0000000..34011e2 --- /dev/null +++ b/xserver-boottime.patch @@ -0,0 +1,38 @@ +Index: xorg-server-1.6.3/os/log.c +=================================================================== +--- xorg-server-1.6.3.orig/os/log.c ++++ xorg-server-1.6.3/os/log.c +@@ -255,6 +255,33 @@ LogVWrite(int verb, const char *f, va_li + static char tmpBuffer[1024]; + int len = 0; + ++ struct timeval time; ++ time_t tv_sec; ++ suseconds_t tv_usec; ++ static Bool first = TRUE; ++ static time_t start_tv_sec; ++ static suseconds_t start_usec; ++ int diff_sec, diff_usec; ++ ++ gettimeofday(&time, NULL); ++ tv_sec = time.tv_sec; ++ tv_usec = time.tv_usec; ++ if (first == TRUE) { ++ start_tv_sec = tv_sec; ++ start_usec = tv_usec; ++ first = FALSE; ++ } ++ diff_sec = (int)difftime(tv_sec, start_tv_sec); ++ diff_usec = (tv_usec - start_usec); ++ if (diff_usec < 0) { ++ diff_sec--; ++ diff_usec += 1000000; ++ } ++ sprintf(tmpBuffer, "[%d sec: %06d usec]", diff_sec , diff_usec); ++ len = strlen(tmpBuffer); ++ if (logFile) ++ fwrite(tmpBuffer, len, 1, logFile); ++ + /* + * Since a va_list can only be processed once, write the string to a + * buffer, and then write the buffer out to the appropriate output