1
0

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
This commit is contained in:
OBS User autobuild 2010-04-13 19:08:39 +00:00 committed by Git OBS Bridge
parent 2e541a871f
commit 4734f3affe
10 changed files with 493 additions and 283 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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];

83
xlog2xconf.sh Normal file
View File

@ -0,0 +1,83 @@
#!/bin/sh
#
# Create minimal xorg.conf extracted from Xorg.<DISPLAY>.log
#
# -c <configfile> (use to specify configfile to create)
# -e (edit file with $EDITOR after creation)
# -f (overwrite existing <configfile>)
# -l <logfile> (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 <configfile>] [-e] [-f] [-l <logfile>]'
exit 1
;;
esac
done
if [ ! -f $logfile ]; then
echo "$logfile does not exist."
echo "Use \"-l <logfile>\" 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 <logfile>\" 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 <configfile>\" 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

View File

@ -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;

View File

@ -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 Thu Apr 8 11:49:46 CEST 2010 - ro@suse.de

View File

@ -21,6 +21,8 @@
Name: xorg-x11-server Name: xorg-x11-server
%define dirsuffix 1.8.0 %define dirsuffix 1.8.0
%define fglrx_driver_hack 0
### FIXME
%define vnc 1 %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 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) ### udev support (broken on openSUSE 11.2, see also bnc #589997)
@ -31,6 +33,7 @@ BuildRequires: libudev-devel
BuildRequires: libjpeg-devel BuildRequires: libjpeg-devel
%endif %endif
Url: http://xorg.freedesktop.org/ Url: http://xorg.freedesktop.org/
%define EXPERIMENTAL 0
Version: 7.5_%{dirsuffix} Version: 7.5_%{dirsuffix}
Release: 3 Release: 3
License: GPLv2+ ; MIT License (or similar) License: GPLv2+ ; MIT License (or similar)
@ -40,20 +43,27 @@ Group: System/X11/Servers/XF86_4
PreReq: %fillup_prereq PreReq: %fillup_prereq
%endif %endif
Requires: pkgconfig xorg-x11-fonts-core xorg-x11 Requires: pkgconfig xorg-x11-fonts-core xorg-x11
%if %suse_version > 1010
%ifnarch s390 s390x %ifnarch s390 s390x
Provides: VIDEO_ABI_VERSION = 7 Provides: VIDEO_ABI_VERSION = 7
Provides: INPUT_ABI_VERSION = 9 Provides: INPUT_ABI_VERSION = 9
Requires: libpixman-1-0 >= 0.15.2 Requires: libpixman-1-0 >= 0.15.2
%endif %endif
%endif
Provides: xorg-x11-server-glx Provides: xorg-x11-server-glx
Obsoletes: xorg-x11-server-glx Obsoletes: xorg-x11-server-glx
Summary: X.Org Server Summary: X.Org Server
Source: xorg-server-%{dirsuffix}.tar.bz2 Source: xorg-server-%{dirsuffix}.tar.bz2
%ifnarch s390 s390x
Source1: sysconfig.displaymanager.template Source1: sysconfig.displaymanager.template
%endif
Source3: README.updates Source3: README.updates
Source4: xorgcfg.tar.bz2 Source4: xorgcfg.tar.bz2
%if %suse_version > 1010
Source5: modprobe.nvidia Source5: modprobe.nvidia
%endif
Source7: xorg-docs-1.4.tar.bz2 Source7: xorg-docs-1.4.tar.bz2
Source8: xlog2xconf.sh
Patch1: fpic.diff Patch1: fpic.diff
Patch2: p_default-module-path.diff Patch2: p_default-module-path.diff
Patch6: pu_fixes.diff Patch6: pu_fixes.diff
@ -97,11 +107,20 @@ Patch132: fixed-SYNC-extension-trigger-BlockHandler-test.diff
Patch143: autoconfig_fallback_fbdev_first.diff Patch143: autoconfig_fallback_fbdev_first.diff
Patch145: driver-autoconfig.diff Patch145: driver-autoconfig.diff
Patch147: xserver-1.6.1-nouveau.patch Patch147: xserver-1.6.1-nouveau.patch
# Moblin
Patch162: cache-xkbcomp-output-for-fast-start-up.patch 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 Patch164: xorg-detect-psb.patch
Patch168: xorg-server-nohwaccess.diff %if %moblin
Patch169: xorg-x11-nonroot-vesa.patch 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 Patch200: bug534768-prefer_local_symbols.patch
Patch202: 0001-Check-harder-for-primary-PCI-device.patch Patch202: 0001-Check-harder-for-primary-PCI-device.patch
Patch203: 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.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 Patch206: fix_fglrx_screendepth_issue.patch
Patch207: xorg-server-option_libxf86config.diff Patch207: xorg-server-option_libxf86config.diff
Patch208: xorg-evdev-conf.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 %description
This package contains the X.Org Server. This package contains the X.Org Server.
@ -220,10 +234,19 @@ popd
%patch145 -p0 %patch145 -p0
%patch147 -p1 %patch147 -p1
%patch162 -p1 %patch162 -p1
%if %moblin
%patch163 -p1 %patch163 -p1
%endif
%patch164 -p1 %patch164 -p1
%if %moblin
%patch168 -p1 %patch168 -p1
%endif
%patch169 -p1 %patch169 -p1
%if %moblin
%patch170 -p1
%patch171 -p1
%endif
#
%patch200 -p1 %patch200 -p1
%patch202 -p1 %patch202 -p1
%patch203 -p1 %patch203 -p1
@ -232,44 +255,67 @@ popd
%patch206 -p0 %patch206 -p0
%patch207 -p0 %patch207 -p0
%patch208 -p0 %patch208 -p0
%patch209 -p1
%patch210 -p1
%if %moblin
%patch300 -p1
%endif
%build %build
pushd xorg-docs-* pushd xorg-docs-*
autoreconf -fi autoreconf -fi
%configure CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
%{__make} %{?jobs:-j%jobs} %configure
make
popd popd
autoreconf -fi 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 \ --sysconfdir=/etc \
--libdir=%{_libdir} \
--mandir=%{_mandir} \
--enable-builddocs \ --enable-builddocs \
--enable-install-libxf86config \ --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-xdmcp \
--enable-xdm-auth-1 \ --enable-xdm-auth-1 \
--enable-dri \ --enable-dri \
--enable-dri2 \ --enable-dri2 \
%ifarch s390 s390x
--disable-xorg \
%else
--enable-xorg \
%endif
--disable-dmx \ --disable-dmx \
--enable-xnest \ --enable-xnest \
--enable-kdrive \ --enable-kdrive \
--enable-xephyr \ --enable-xephyr \
--disable-xsdl \
--enable-xprint \
--disable-kbd_mode \
--disable-xprint \
--enable-record \ --enable-record \
--enable-xcsecurity \ --enable-xcsecurity \
%ifarch s390 s390x
--disable-xorg \
--disable-aiglx \
%else
--enable-xorg \
%if %suse_version > 1120 %if %suse_version > 1120
--enable-config-udev \ --enable-config-udev \
%endif
%endif
%if %vnc
--disable-xcliplist \
%endif %endif
--with-log-dir="/var/log" \ --with-log-dir="/var/log" \
--with-os-name="openSUSE" \ --with-os-name="openSUSE" \
@ -277,7 +323,8 @@ autoreconf -fi
--with-fontrootdir="/usr/share/fonts" \ --with-fontrootdir="/usr/share/fonts" \
--with-xkb-path="/usr/share/X11/xkb" \ --with-xkb-path="/usr/share/X11/xkb" \
--with-xkb-output="/var/lib/xkb/compiled" --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} make -C hw/kdrive %{?jobs:-j %jobs}
%install %install
@ -290,17 +337,37 @@ find $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/ -name "*.la" | \
xargs rm xargs rm
install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \ install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \
$RPM_BUILD_ROOT/usr/include/xorg $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 chmod u+s $RPM_BUILD_ROOT/usr/bin/Xorg
mkdir -p $RPM_BUILD_ROOT/var/lib/X11 mkdir -p $RPM_BUILD_ROOT/var/lib/X11
ln -snf ../../../usr/bin/Xorg $RPM_BUILD_ROOT/var/lib/X11/X ln -snf ../../../usr/bin/Xorg $RPM_BUILD_ROOT/var/lib/X11/X
ln -snf ../../var/lib/X11/X $RPM_BUILD_ROOT/usr/bin/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} 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 install -m 644 $RPM_SOURCE_DIR/README.updates $RPM_BUILD_ROOT/usr/%{_lib}/xorg/modules/updates
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d %if %suse_version <= 1010
install -m 644 $RPM_SOURCE_DIR/modprobe.nvidia $RPM_BUILD_ROOT/etc/modprobe.d/50-nvidia.conf 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 %else
rm -f $RPM_BUILD_ROOT/usr/share/aclocal/*.m4 rm -f $RPM_BUILD_ROOT/usr/share/aclocal/*.m4
%endif %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 %if %vnc
mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services mkdir -p $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services
cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF cat > $RPM_BUILD_ROOT/etc/sysconfig/SuSEfirewall2.d/services/%{name} << EOF
@ -310,10 +377,10 @@ TCP="5801 5901"
EOF EOF
%endif %endif
%ifarch s390 s390x %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 make -C hw/xfree86/parser
mkdir -p $RPM_BUILD_ROOT/usr/include/xorg \ 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} \ install -m 644 hw/xfree86/parser/{xf86Parser.h,xf86Optrec.h} \
$RPM_BUILD_ROOT/usr/include/xorg $RPM_BUILD_ROOT/usr/include/xorg
install -m 644 hw/xfree86/parser/libxf86config.a \ 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 \ install -m 644 %_sourcedir/sysconfig.displaymanager.template \
%buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name %buildroot/var/adm/fillup-templates/sysconfig.displaymanager-%name
%endif %endif
install -m 755 %_sourcedir/xlog2xconf.sh %buildroot/usr/bin/xlog2xconf
%clean %clean
rm -rf "$RPM_BUILD_ROOT" rm -rf "$RPM_BUILD_ROOT"
@ -332,11 +400,66 @@ rm -rf "$RPM_BUILD_ROOT"
%verify_permissions -e /usr/bin/Xorg %verify_permissions -e /usr/bin/Xorg
%endif %endif
%pre
test -L usr/lib/X11 && rm usr/lib/X11
rm -rf etc/X11/xserver/
exit 0
%post %post
%ifnarch s390 s390x %ifnarch s390 s390x
%{fillup_only -an displaymanager} %{fillup_only -an displaymanager}
%run_permissions %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 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 # Document how to restore previous input driver behaviour in xorg.conf files created
# on openSUSE <= 11.1 # on openSUSE <= 11.1
if ! grep -q "will be disabled unless 'Option \"AutoAddDevices\" \"off\"'" etc/X11/xorg.conf; then if ! grep -q "will be disabled unless 'Option \"AutoAddDevices\" \"off\"'" etc/X11/xorg.conf; then
@ -355,49 +478,97 @@ a\
fi fi
fi fi
%endif %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 exit 0
%files %files
%defattr(-,root,root) %defattr(-,root,root)
%ifnarch s390 s390x %if %suse_version > 1010
%if %suse_version > 1120
%dir /etc/X11/xorg.conf.d
%endif
%dir /etc/modprobe.d %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 %dir /var/lib/X11
%endif %endif
%dir /var/lib/xkb %dir /var/lib/xkb
%dir /var/lib/xkb/compiled %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 %ifnarch s390 s390x
%if %suse_version > 1120 %if %suse_version <= 1010
/etc/X11/xorg.conf.d/10-evdev.conf /etc/permissions.d/%name.*
%endif
%if %suse_version <= 1010
/usr/X11R6/bin/X
/usr/X11R6/bin/Xorg
%endif %endif
/etc/modprobe.d/50-nvidia.conf
%verify(not mode) /usr/bin/Xorg
/usr/bin/X /usr/bin/X
%endif
%ifnarch s390 s390x
%verify(not mode) /usr/bin/Xorg
/usr/bin/xlog2xconf
%endif
%ifnarch s390 s390x
/usr/bin/cvt /usr/bin/cvt
%endif
%ifnarch s390 s390x
/usr/bin/gtf /usr/bin/gtf
%endif
%ifnarch s390 s390x
#/usr/%{_lib}/X11/*
/usr/%{_lib}/xorg/modules/ /usr/%{_lib}/xorg/modules/
%{_mandir}/man4/* %{_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/* %{_mandir}/man5/*
/var/adm/fillup-templates/sysconfig.displaymanager-%name %endif
%{_mandir}/man7/*
%ifnarch s390 s390x
/var/lib/X11/X /var/lib/X11/X
%endif %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 %files extra
%defattr(-,root,root) %defattr(-,root,root)
/usr/bin/Xephyr /usr/bin/Xephyr
/usr/bin/Xnest /usr/bin/Xnest
/usr/bin/Xvfb /usr/bin/Xvfb
%{_mandir}/man1/Xephyr.1*
%{_mandir}/man1/Xnest.1* %{_mandir}/man1/Xnest.1*
%{_mandir}/man1/Xvfb.1* %{_mandir}/man1/Xvfb.1*

View File

@ -12,11 +12,11 @@ Subject: [PATCH] Add nr for background=none root
os/utils.c | 3 +++ os/utils.c | 3 +++
6 files changed, 32 insertions(+), 11 deletions(-) 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.6.3.orig/dix/globals.c
+++ xorg-server-1.8.0/dix/globals.c +++ xorg-server-1.6.3/dix/globals.c
@@ -124,6 +124,7 @@ FontPtr defaultFont; /* not declared i @@ -141,6 +141,7 @@ FontPtr defaultFont; /* not declared i
CursorPtr rootCursor; CursorPtr rootCursor;
Bool party_like_its_1989 = FALSE; Bool party_like_its_1989 = FALSE;
Bool whiteRoot = FALSE; Bool whiteRoot = FALSE;
@ -24,11 +24,11 @@ Index: xorg-server-1.8.0/dix/globals.c
int cursorScreenDevPriv[MAXSCREENS]; 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.6.3.orig/dix/window.c
+++ xorg-server-1.8.0/dix/window.c +++ xorg-server-1.6.3/dix/window.c
@@ -465,23 +465,24 @@ InitRootWindow(WindowPtr pWin) @@ -479,23 +479,24 @@ InitRootWindow(WindowPtr pWin)
pWin->cursorIsNone = FALSE; pWin->cursorIsNone = FALSE;
pWin->optional->cursor = rootCursor; pWin->optional->cursor = rootCursor;
rootCursor->refcnt++; rootCursor->refcnt++;
@ -59,19 +59,19 @@ Index: xorg-server-1.8.0/dix/window.c
MapWindow(pWin, serverClient); 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.6.3.orig/hw/xfree86/common/xf86Init.c
+++ xorg-server-1.8.0/hw/xfree86/common/xf86Init.c +++ xorg-server-1.6.3/hw/xfree86/common/xf86Init.c
@@ -77,6 +77,7 @@ @@ -79,6 +79,7 @@
#ifdef RENDER #ifdef RENDER
#include "picturestr.h" #include "picturestr.h"
#endif #endif
+#include "xace.h" +#include "xace.h"
#include "xf86VGAarbiter.h"
#include "globals.h" #include "globals.h"
@@ -256,6 +257,7 @@ xf86CreateRootWindow(WindowPtr pWin)
@@ -328,6 +329,7 @@ xf86CreateRootWindow(WindowPtr pWin)
int ret = TRUE; int ret = TRUE;
int err = Success; int err = Success;
ScreenPtr pScreen = pWin->drawable.pScreen; ScreenPtr pScreen = pWin->drawable.pScreen;
@ -79,38 +79,37 @@ Index: xorg-server-1.8.0/hw/xfree86/common/xf86Init.c
RootWinPropPtr pProp; RootWinPropPtr pProp;
CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr) CreateWindowProcPtr CreateWindow = (CreateWindowProcPtr)
dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey); dixLookupPrivate(&pScreen->devPrivates, xf86CreateRootWindowKey);
@@ -306,6 +308,16 @@ xf86CreateRootWindow(WindowPtr pWin) @@ -381,6 +383,15 @@ xf86CreateRootWindow(WindowPtr pWin)
ret = FALSE;
} }
} }
+ 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); + if (bgNoneRoot && pScrn->canDoBGNoneRoot || 1) {
return (ret); + pWin->backgroundState = XaceBackgroundNoneState(pWin);
Index: xorg-server-1.8.0/hw/xfree86/common/xf86str.h + 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.6.3.orig/hw/xfree86/common/xf86str.h
+++ xorg-server-1.8.0/hw/xfree86/common/xf86str.h +++ xorg-server-1.6.3/hw/xfree86/common/xf86str.h
@@ -503,7 +503,7 @@ typedef struct _confdrirec { @@ -531,7 +531,7 @@ typedef struct _confdrirec {
} confDRIRec, *confDRIPtr; } confDRIRec, *confDRIPtr;
/* These values should be adjusted when new fields are added to ScrnInfoRec */ /* These values should be adjusted when new fields are added to ScrnInfoRec */
-#define NUM_RESERVED_INTS 16 -#define NUM_RESERVED_INTS 16
+#define NUM_RESERVED_INTS 15 +#define NUM_RESERVED_INTS 15
#define NUM_RESERVED_POINTERS 14 #define NUM_RESERVED_POINTERS 15
#define NUM_RESERVED_FUNCS 11 #define NUM_RESERVED_FUNCS 11
@@ -775,6 +775,9 @@ typedef struct _ScrnInfoRec { @@ -959,6 +959,9 @@ typedef struct _ScrnInfoRec {
ClockRangePtr clockRanges; ClockRangesPtr clockRanges;
int adjustFlags; int adjustFlags;
+ /* -nr support */ + /* -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. * These can be used when the minor ABI version is incremented.
* The NUM_* parameters must be reduced appropriately to keep the * 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.6.3.orig/include/opaque.h
+++ xorg-server-1.8.0/include/opaque.h +++ xorg-server-1.6.3/include/opaque.h
@@ -71,6 +71,7 @@ extern _X_EXPORT Bool defeatAccessContro @@ -71,6 +71,7 @@ extern Bool defeatAccessControl;
extern _X_EXPORT long maxBigRequestSize; extern long maxBigRequestSize;
extern _X_EXPORT Bool party_like_its_1989; extern Bool party_like_its_1989;
extern _X_EXPORT Bool whiteRoot; extern Bool whiteRoot;
+extern _X_EXPORT Bool bgNoneRoot; +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.6.3.orig/os/utils.c
+++ xorg-server-1.8.0/os/utils.c +++ xorg-server-1.6.3/os/utils.c
@@ -511,6 +511,7 @@ void UseMsg(void) @@ -515,6 +515,7 @@ void UseMsg(void)
#endif #endif
ErrorF("-nolisten string don't listen on protocol\n"); ErrorF("-nolisten string don't listen on protocol\n");
ErrorF("-noreset don't reset after last client exists\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("-reset reset after last client exists\n");
ErrorF("-p # screen-saver pattern duration (minutes)\n"); ErrorF("-p # screen-saver pattern duration (minutes)\n");
ErrorF("-pn accept failure to listen on all ports\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; defaultBackingStore = WhenMapped;
else if ( strcmp( argv[i], "-wr") == 0) else if ( strcmp( argv[i], "-wr") == 0)
whiteRoot = TRUE; whiteRoot = TRUE;

38
xserver-boottime.patch Normal file
View File

@ -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