diff options
Diffstat (limited to 'x11-base')
13 files changed, 1 insertions, 1251 deletions
diff --git a/x11-base/xorg-server/Manifest b/x11-base/xorg-server/Manifest index 76e64eb035da..3c7db008745d 100644 --- a/x11-base/xorg-server/Manifest +++ b/x11-base/xorg-server/Manifest @@ -1,5 +1 @@ -DIST xorg-server-1.12-cve-2014-8091..8103.patches.tar.xz 14832 SHA256 a98fd1589ef92d6f8a633326d387f2f203df72452788a6aaa2bcd4242700fe7f SHA512 2ac18d36cd8b6d9fcaf98a32e3e6b9107e420476e066a4ac9581f12e9afb7e397614761373a20d96c8fa840886b81ee0ec5cfc812e16876b4922bf6c5fe3f736 WHIRLPOOL 5c3ddd654fdecf3285d865b4b864bcaa3de87cd6005f8d500da4250b5b659db69e103743109ec3c72cb79abf24910b6de4ac05c0a7b7bcb2656d5a95c9703d38 -DIST xorg-server-1.12.4.tar.bz2 5444761 SHA256 8ac07c35306ba3fb3c0972722dd4e919303039eca1d40ac7862560e0b2c94cf7 SHA512 70997e8ba4f948829c158e52924753c5691a783dd14e5a86fdce4fc601638dd4e0b281590876b0315a303bf8d5195bdf43ede7113d1d569415a41ab03d938d85 WHIRLPOOL bfee61329ca85ecedb991ca933de6e3a1e94e34a04d9a723a0e9c90a36e067824701c38e8a0034498ed28dfca82eb653d1e1ab5c0223020f5da69cbbf80bbf98 -DIST xorg-server-1.15.2.tar.bz2 5551426 SHA256 3c0585607c654ded836da43a45a75492fc13454ff4149704fb08dac39f051163 SHA512 5fcbf0012af309f80e1db206e05d7861796146d765cd17f3963fde6da7f43f0e57d63dbbdbf2c554612a557aa4dee623ef62f7ca7d007834aafd7a46ca7bb1d6 WHIRLPOOL 22cdbad68462f9bac32b13be958df496411ca72fe47435ec7e3ebb470b121ba4b4a0e023913f31a92113c5a56bc4be660dfec5086bc1fb72a617d2cdeaa8adf1 -DIST xorg-server-1.16-cve-2014-8091..8103.patches.tar.xz 27892 SHA256 47d8c9bb79c829389e7599aef1110d43afbc5bf744dbcf73d8f3cf01796d287a SHA512 f8b55c009166883b3e6ec2c8c7a2ff4ed61df6970afcc4f0efb9efa36741af194456a368d4b1c7ba9345ef973fb139a48eb50cb5a7ebc144b43749b9ffdb1f7b WHIRLPOOL 2f8b26c018f4ad4cf780ed7dcb0b844de64e7a612adc30c622d1956dfcee710086ffcc837ff0a64cdcc14d47720d82d8797374488bf0b52d77ca63adf6806885 -DIST xorg-server-1.19.5.tar.bz2 5965044 SHA256 18fffa8eb93d06d2800d06321fc0df4d357684d8d714315a66d8dfa7df251447 SHA512 928dea5850b98cd815004cfa133eca23cfa9521920c934c68a92787f2cae13cca1534eee772a4fb74b8ae8cb92662b5d68b95b834c8aa8ec57cd57cb4e5dd45c WHIRLPOOL 01039d524a876ba6bd72713993b1d4d6e21f8ba53536ee3189dce9cc7186010e143754fa708d2ccf10905dd272bc68b14c63f4322548e041dfc23cf00e4c364e +DIST xorg-server-1.19.5.tar.bz2 5965044 BLAKE2B 23375793ea4459a962f412440e307081ce2acd3c646e5db4d1bfac20e267bcbb1752ba8f6de66df06d25eaf92d1b55082a80eced0d44c257a757d5926ca6a7f3 SHA512 928dea5850b98cd815004cfa133eca23cfa9521920c934c68a92787f2cae13cca1534eee772a4fb74b8ae8cb92662b5d68b95b834c8aa8ec57cd57cb4e5dd45c diff --git a/x11-base/xorg-server/files/xdm.initd-9 b/x11-base/xorg-server/files/xdm.initd-9 deleted file mode 100644 index d6e20a6dd73e..000000000000 --- a/x11-base/xorg-server/files/xdm.initd-9 +++ /dev/null @@ -1,215 +0,0 @@ -#!/sbin/openrc-run -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License, v2 - -# This is here to serve as a note to myself, and future developers. -# -# Any Display manager (gdm,kdm,xdm) has the following problem: if -# it is started before any getty, and no vt is specified, it will -# usually run on vt2. When the getty on vt2 then starts, and the -# DM is already started, the getty will take control of the keyboard, -# leaving us with a "dead" keyboard. -# -# Resolution: add the following line to /etc/inittab -# -# x:a:once:/etc/X11/startDM.sh -# -# and have /etc/X11/startDM.sh start the DM in daemon mode if -# a lock is present (with the info of what DM should be started), -# else just fall through. -# -# How this basically works, is the "a" runlevel is a additional -# runlevel that you can use to fork processes with init, but the -# runlevel never gets changed to this runlevel. Along with the "a" -# runlevel, the "once" key word means that startDM.sh will only be -# run when we specify it to run, thus eliminating respawning -# startDM.sh when "xdm" is not added to the default runlevel, as was -# done previously. -# -# This script then just calls "telinit a", and init will run -# /etc/X11/startDM.sh after the current runlevel completes (this -# script should only be added to the actual runlevel the user is -# using). -# -# Martin Schlemmer -# aka Azarah -# 04 March 2002 - -depend() { - need localmount xdm-setup - - # this should start as early as possible - # we can't do 'before *' as that breaks it - # (#139824) Start after ypbind and autofs for network authentication - # (#145219 #180163) Could use lirc mouse as input device - # (#70689 comment #92) Start after consolefont to avoid display corruption - # (#291269) Start after quota, since some dm need readable home - # (#390609) gdm-3 will fail when dbus is not running - # (#366753) starting keymaps after X causes problems - after bootmisc consolefont modules netmount - after readahead-list ypbind autofs openvpn gpm lircmd - after quota keymaps - before alsasound - - # Start before X - use consolekit dbus xfs -} - -setup_dm() { - local MY_XDM - - MY_XDM=$(echo "${DISPLAYMANAGER}" | tr '[:upper:]' '[:lower:]') - - # Load our root path from profile.env - # Needed for kdm - PATH=${PATH}:$(. /etc/profile.env; echo "${ROOTPATH}") - - NAME= - case "${MY_XDM}" in - kdm|kde) - EXE=/usr/bin/kdm - PIDFILE=/var/run/kdm.pid - ;; - entrance*) - EXE=/usr/sbin/entrance - PIDFILE=/var/run/entrance.pid - ;; - gdm|gnome) - EXE=/usr/bin/gdm - [ "${RC_UNAME}" != "Linux" ] && NAME=gdm-binary - PIDFILE=/var/run/gdm.pid - ;; - wdm) - EXE=/usr/bin/wdm - PIDFILE= - ;; - gpe) - EXE=/usr/bin/gpe-dm - PIDFILE=/var/run/gpe-dm.pid - ;; - lxdm) - EXE=/usr/sbin/lxdm-binary - PIDFILE=/var/run/lxdm.pid - START_STOP_ARGS="--background" - ;; - lightdm) - EXE=/usr/sbin/lightdm - PIDFILE=/var/run/lightdm.pid - START_STOP_ARGS="--background" - ;; - *) - # first find out if there is such executable - EXE="$(command -v ${MY_XDM} 2>/dev/null)" - PIDFILE="/var/run/${MY_XDM}.pid" - - # warn user that he is doing sick things if the exe was not found - if [ -z "${EXE}" ]; then - echo "ERROR: Your XDM value is invalid." - echo " No ${MY_XDM} executable could be found on your system." - fi - ;; - esac - - if ! [ -x "${EXE}" ]; then - EXE=/usr/bin/xdm - PIDFILE=/var/run/xdm.pid - if ! [ -x "/usr/bin/xdm" ]; then - echo "ERROR: Please set your DISPLAYMANAGER variable in /etc/conf.d/xdm," - echo " or install x11-apps/xdm package" - eend 255 - fi - fi -} - -# Check to see if something is defined on our VT -vtstatic() { - if [ -e /etc/inittab ] ; then - grep -Eq "^[^#]+.*\<tty$1\>" /etc/inittab - elif [ -e /etc/ttys ] ; then - grep -q "^ttyv$(($1 - 1))" /etc/ttys - else - return 1 - fi -} - -start() { - local EXE NAME PIDFILE - setup_dm - - if [ -f /etc/.noxdm ]; then - einfo "Skipping ${EXE##*/}, /etc/.noxdm found or \"nox\" bootparam passed." - rm /etc/.noxdm - return 0 - fi - - ebegin "Setting up ${EXE##*/}" - - # save the prefered DM - save_options "service" "${EXE}" - save_options "name" "${NAME}" - save_options "pidfile" "${PIDFILE}" - save_options "start_stop_args" "${START_STOP_ARGS}" - - if [ -n "${CHECKVT-y}" ] ; then - if vtstatic "${CHECKVT:-7}" ; then - if [ -x /sbin/telinit ] && [ "${SOFTLEVEL}" != "BOOT" ] && [ "${RC_SOFTLEVEL}" != "BOOT" ]; then - ewarn "Something is already defined on VT ${CHECKVT:-7}, will start X later" - telinit a >/dev/null 2>&1 - return 0 - else - eerror "Something is already defined on VT ${CHECKVT:-7}, not starting" - return 1 - fi - fi - fi - - /etc/X11/startDM.sh - eend 0 -} - -stop() { - local curvt retval - - retval=0 - if [ -t 0 ]; then - if type fgconsole >/dev/null 2>&1; then - curvt=$(fgconsole 2>/dev/null) - else - curvt=$(tty) - case "${curvt}" in - /dev/ttyv[0-9]*) curvt=${curvt#/dev/ttyv} ;; - *) curvt= ;; - esac - fi - fi - local myexe myname mypidfile myservice - myexe=$(get_options "service") - myname=$(get_options "name") - mypidfile=$(get_options "pidfile") - myservice=${myexe##*/} - - [ -z "${myexe}" ] && return 0 - - ebegin "Stopping ${myservice}" - - if start-stop-daemon --quiet --test --stop --exec "${myexe}"; then - start-stop-daemon --stop --exec "${myexe}" --retry TERM/5/TERM/5 \ - ${mypidfile:+--pidfile} ${mypidfile} \ - ${myname:+--name} ${myname} - retval=${?} - fi - - # switch back to original vt - if [ -n "${curvt}" ]; then - if type chvt >/dev/null 2>&1; then - chvt "${curvt}" - else - vidcontrol -s "$((curvt + 1))" - fi - fi - - eend ${retval} "Error stopping ${myservice}" - return ${retval} -} - -# vim: set ts=4 : diff --git a/x11-base/xorg-server/files/xorg-server-1.12-cve-2013-1940.patch b/x11-base/xorg-server/files/xorg-server-1.12-cve-2013-1940.patch deleted file mode 100644 index d85494f90293..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.12-cve-2013-1940.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 6ca03b9161d33b1d2b55a3a1a913cf88deb2343f Mon Sep 17 00:00:00 2001 -From: Dave Airlie <airlied@gmail.com> -Date: Wed, 10 Apr 2013 06:09:01 +0000 -Subject: xf86: fix flush input to work with Linux evdev devices. - -So when we VT switch back and attempt to flush the input devices, -we don't succeed because evdev won't return part of an event, -since we were only asking for 4 bytes, we'd only get -EINVAL back. - -This could later cause events to be flushed that we shouldn't have -gotten. - -This is a fix for CVE-2013-1940. - -Signed-off-by: Dave Airlie <airlied@redhat.com> -Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> ---- -diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c -index ab3757a..4d08c1e 100644 ---- a/hw/xfree86/os-support/shared/posix_tty.c -+++ b/hw/xfree86/os-support/shared/posix_tty.c -@@ -421,7 +421,8 @@ xf86FlushInput(int fd) - { - fd_set fds; - struct timeval timeout; -- char c[4]; -+ /* this needs to be big enough to flush an evdev event. */ -+ char c[256]; - - DebugF("FlushingSerial\n"); - if (tcflush(fd, TCIFLUSH) == 0) --- -cgit v0.9.0.2-2-gbebe diff --git a/x11-base/xorg-server/files/xorg-server-1.12-cve-2013-4396.patch b/x11-base/xorg-server/files/xorg-server-1.12-cve-2013-4396.patch deleted file mode 100644 index 4b6727e61c05..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.12-cve-2013-4396.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 7bddc2ba16a2a15773c2ea8947059afa27727764 Mon Sep 17 00:00:00 2001 -From: Alan Coopersmith <alan.coopersmith@oracle.com> -Date: Mon, 16 Sep 2013 21:47:16 -0700 -Subject: [PATCH] Avoid use-after-free in dix/dixfonts.c: doImageText() - [CVE-2013-4396] - -Save a pointer to the passed in closure structure before copying it -and overwriting the *c pointer to point to our copy instead of the -original. If we hit an error, once we free(c), reset c to point to -the original structure before jumping to the cleanup code that -references *c. - -Since one of the errors being checked for is whether the server was -able to malloc(c->nChars * itemSize), the client can potentially pass -a number of characters chosen to cause the malloc to fail and the -error path to be taken, resulting in the read from freed memory. - -Since the memory is accessed almost immediately afterwards, and the -X server is mostly single threaded, the odds of the free memory having -invalid contents are low with most malloc implementations when not using -memory debugging features, but some allocators will definitely overwrite -the memory there, leading to a likely crash. - -Reported-by: Pedro Ribeiro <pedrib@gmail.com> -Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> -Reviewed-by: Julien Cristau <jcristau@debian.org> ---- - dix/dixfonts.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/dix/dixfonts.c b/dix/dixfonts.c -index feb765d..2e34d37 100644 ---- a/dix/dixfonts.c -+++ b/dix/dixfonts.c -@@ -1425,6 +1425,7 @@ doImageText(ClientPtr client, ITclosurePtr c) - GC *pGC; - unsigned char *data; - ITclosurePtr new_closure; -+ ITclosurePtr old_closure; - - /* We're putting the client to sleep. We need to - save some state. Similar problem to that handled -@@ -1436,12 +1437,14 @@ doImageText(ClientPtr client, ITclosurePtr c) - err = BadAlloc; - goto bail; - } -+ old_closure = c; - *new_closure = *c; - c = new_closure; - - data = malloc(c->nChars * itemSize); - if (!data) { - free(c); -+ c = old_closure; - err = BadAlloc; - goto bail; - } -@@ -1452,6 +1455,7 @@ doImageText(ClientPtr client, ITclosurePtr c) - if (!pGC) { - free(c->data); - free(c); -+ c = old_closure; - err = BadAlloc; - goto bail; - } -@@ -1464,6 +1468,7 @@ doImageText(ClientPtr client, ITclosurePtr c) - FreeScratchGC(pGC); - free(c->data); - free(c); -+ c = old_closure; - err = BadAlloc; - goto bail; - } --- -1.7.9.2 diff --git a/x11-base/xorg-server/files/xorg-server-1.12-cve-2015-3418.patch b/x11-base/xorg-server/files/xorg-server-1.12-cve-2015-3418.patch deleted file mode 100644 index 4b6a6aeab29e..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.12-cve-2015-3418.patch +++ /dev/null @@ -1,29 +0,0 @@ -From dc777c346d5d452a53b13b917c45f6a1bad2f20b Mon Sep 17 00:00:00 2001 -From: Keith Packard <keithp@keithp.com> -Date: Sat, 3 Jan 2015 08:46:45 -0800 -Subject: dix: Allow zero-height PutImage requests - -The length checking code validates PutImage height and byte width by -making sure that byte-width >= INT32_MAX / height. If height is zero, -this generates a divide by zero exception. Allow zero height requests -explicitly, bypassing the INT32_MAX check. - -Signed-off-by: Keith Packard <keithp@keithp.com> -Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> - -diff --git a/dix/dispatch.c b/dix/dispatch.c -index 55b978d..9044ac7 100644 ---- a/dix/dispatch.c -+++ b/dix/dispatch.c -@@ -2000,7 +2000,7 @@ ProcPutImage(ClientPtr client) - tmpImage = (char *) &stuff[1]; - lengthProto = length; - -- if (lengthProto >= (INT32_MAX / stuff->height)) -+ if (stuff->height != 0 && lengthProto >= (INT32_MAX / stuff->height)) - return BadLength; - - if ((bytes_to_int32(lengthProto * stuff->height) + --- -cgit v0.10.2 - diff --git a/x11-base/xorg-server/files/xorg-server-1.12-disable-acpi.patch b/x11-base/xorg-server/files/xorg-server-1.12-disable-acpi.patch deleted file mode 100644 index df43dbde8288..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.12-disable-acpi.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -ur a/configure.ac b/configure.ac ---- a/configure.ac 2011-10-31 19:40:02.000000000 +0100 -+++ b/configure.ac 2011-10-31 19:41:02.372745481 +0100 -@@ -1624,7 +1624,6 @@ - linux_alpha=yes - ;; - i*86|amd64*|x86_64*|ia64*) -- linux_acpi="yes" - ;; - *) - ;; diff --git a/x11-base/xorg-server/files/xorg-server-1.12-ia64-fix_inx_outx.patch b/x11-base/xorg-server/files/xorg-server-1.12-ia64-fix_inx_outx.patch deleted file mode 100644 index 24a5a02f4fd6..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.12-ia64-fix_inx_outx.patch +++ /dev/null @@ -1,60 +0,0 @@ -diff -r --context xorg-server-1.12.3/hw/xfree86/common/compiler.h xorg-server-1.12.3-fix/hw/xfree86/common/compiler.h -*** xorg-server-1.12.3/hw/xfree86/common/compiler.h 2012-07-06 07:17:19.000000000 +0200 ---- xorg-server-1.12.3-fix/hw/xfree86/common/compiler.h 2012-08-29 00:14:39.000000000 +0200 -*************** -*** 421,426 **** ---- 421,474 ---- - #include <machine/pio.h> - #endif /* __NetBSD__ */ - -+ #elif defined(linux) && defined(__ia64__) -+ /* for Linux on ia64, we use the LIBC _inx/_outx routines */ -+ /* note that the appropriate setup via "ioperm" needs to be done */ -+ /* *before* any inx/outx is done. */ -+ -+ extern _X_EXPORT void _outb(unsigned char val, unsigned long port); -+ extern _X_EXPORT void _outw(unsigned short val, unsigned long port); -+ extern _X_EXPORT void _outl(unsigned int val, unsigned long port); -+ 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); -+ -+ static __inline__ void -+ outb(unsigned long port, unsigned char val) -+ { -+ _outb(val, port); -+ } -+ -+ static __inline__ void -+ outw(unsigned long port, unsigned short val) -+ { -+ _outw(val, port); -+ } -+ -+ static __inline__ void -+ outl(unsigned long port, unsigned int val) -+ { -+ _outl(val, port); -+ } -+ -+ static __inline__ unsigned int -+ inb(unsigned long port) -+ { -+ return _inb(port); -+ } -+ -+ static __inline__ unsigned int -+ inw(unsigned long port) -+ { -+ return _inw(port); -+ } -+ -+ static __inline__ unsigned int -+ inl(unsigned long port) -+ { -+ return _inl(port); -+ } -+ - #elif (defined(linux) || defined(__FreeBSD__)) && defined(__amd64__) - - #include <inttypes.h> diff --git a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-0.patch b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-0.patch deleted file mode 100644 index 9540e31694ea..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-0.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 81c90dc8f0aae3b65730409b1b615b5fa7280ebd Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan <ofourdan@redhat.com> -Date: Fri, 16 Jan 2015 20:08:59 +0100 -Subject: xkb: Don't swap XkbSetGeometry data in the input buffer - -The XkbSetGeometry request embeds data which needs to be swapped when the -server and the client have different endianess. - -_XkbSetGeometry() invokes functions that swap these data directly in the -input buffer. - -However, ProcXkbSetGeometry() may call _XkbSetGeometry() more than once -(if there is more than one keyboard), thus causing on swapped clients the -same data to be swapped twice in memory, further causing a server crash -because the strings lengths on the second time are way off bounds. - -To allow _XkbSetGeometry() to run reliably more than once with swapped -clients, do not swap the data in the buffer, use variables instead. - -Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -diff --git a/xkb/xkb.c b/xkb/xkb.c -index 15c7f34..b9a3ac4 100644 ---- a/xkb/xkb.c -+++ b/xkb/xkb.c -@@ -4961,14 +4961,13 @@ static char * - _GetCountedString(char **wire_inout, Bool swap) - { - char *wire, *str; -- CARD16 len, *plen; -+ CARD16 len; - - wire = *wire_inout; -- plen = (CARD16 *) wire; -+ len = *(CARD16 *) wire; - if (swap) { -- swaps(plen); -+ swaps(&len); - } -- len = *plen; - str = malloc(len + 1); - if (str) { - memcpy(str, &wire[2], len); -@@ -4985,25 +4984,28 @@ _CheckSetDoodad(char **wire_inout, - { - char *wire; - xkbDoodadWireDesc *dWire; -+ xkbAnyDoodadWireDesc any; -+ xkbTextDoodadWireDesc text; - XkbDoodadPtr doodad; - - dWire = (xkbDoodadWireDesc *) (*wire_inout); -+ any = dWire->any; - wire = (char *) &dWire[1]; - if (client->swapped) { -- swapl(&dWire->any.name); -- swaps(&dWire->any.top); -- swaps(&dWire->any.left); -- swaps(&dWire->any.angle); -+ swapl(&any.name); -+ swaps(&any.top); -+ swaps(&any.left); -+ swaps(&any.angle); - } - CHK_ATOM_ONLY(dWire->any.name); -- doodad = XkbAddGeomDoodad(geom, section, dWire->any.name); -+ doodad = XkbAddGeomDoodad(geom, section, any.name); - if (!doodad) - return BadAlloc; - doodad->any.type = dWire->any.type; - doodad->any.priority = dWire->any.priority; -- doodad->any.top = dWire->any.top; -- doodad->any.left = dWire->any.left; -- doodad->any.angle = dWire->any.angle; -+ doodad->any.top = any.top; -+ doodad->any.left = any.left; -+ doodad->any.angle = any.angle; - switch (doodad->any.type) { - case XkbOutlineDoodad: - case XkbSolidDoodad: -@@ -5026,12 +5028,13 @@ _CheckSetDoodad(char **wire_inout, - dWire->text.colorNdx); - return BadMatch; - } -+ text = dWire->text; - if (client->swapped) { -- swaps(&dWire->text.width); -- swaps(&dWire->text.height); -+ swaps(&text.width); -+ swaps(&text.height); - } -- doodad->text.width = dWire->text.width; -- doodad->text.height = dWire->text.height; -+ doodad->text.width = text.width; -+ doodad->text.height = text.height; - doodad->text.color_ndx = dWire->text.colorNdx; - doodad->text.text = _GetCountedString(&wire, client->swapped); - doodad->text.font = _GetCountedString(&wire, client->swapped); --- -cgit v0.10.2 - diff --git a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-1.patch b/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-1.patch deleted file mode 100644 index be131c2762fd..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.17-cve-2015-0255-1.patch +++ /dev/null @@ -1,138 +0,0 @@ -From 20079c36cf7d377938ca5478447d8b9045cb7d43 Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan <ofourdan@redhat.com> -Date: Fri, 16 Jan 2015 08:44:45 +0100 -Subject: xkb: Check strings length against request size - -Ensure that the given strings length in an XkbSetGeometry request remain -within the limits of the size of the request. - -Signed-off-by: Olivier Fourdan <ofourdan@redhat.com> -Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -diff --git a/xkb/xkb.c b/xkb/xkb.c -index b9a3ac4..f3988f9 100644 ---- a/xkb/xkb.c -+++ b/xkb/xkb.c -@@ -4957,25 +4957,29 @@ ProcXkbGetGeometry(ClientPtr client) - - /***====================================================================***/ - --static char * --_GetCountedString(char **wire_inout, Bool swap) -+static Status -+_GetCountedString(char **wire_inout, ClientPtr client, char **str) - { -- char *wire, *str; -+ char *wire, *next; - CARD16 len; - - wire = *wire_inout; - len = *(CARD16 *) wire; -- if (swap) { -+ if (client->swapped) { - swaps(&len); - } -- str = malloc(len + 1); -- if (str) { -- memcpy(str, &wire[2], len); -- str[len] = '\0'; -- } -- wire += XkbPaddedSize(len + 2); -- *wire_inout = wire; -- return str; -+ next = wire + XkbPaddedSize(len + 2); -+ /* Check we're still within the size of the request */ -+ if (client->req_len < -+ bytes_to_int32(next - (char *) client->requestBuffer)) -+ return BadValue; -+ *str = malloc(len + 1); -+ if (!*str) -+ return BadAlloc; -+ memcpy(*str, &wire[2], len); -+ *(*str + len) = '\0'; -+ *wire_inout = next; -+ return Success; - } - - static Status -@@ -4987,6 +4991,7 @@ _CheckSetDoodad(char **wire_inout, - xkbAnyDoodadWireDesc any; - xkbTextDoodadWireDesc text; - XkbDoodadPtr doodad; -+ Status status; - - dWire = (xkbDoodadWireDesc *) (*wire_inout); - any = dWire->any; -@@ -5036,8 +5041,14 @@ _CheckSetDoodad(char **wire_inout, - doodad->text.width = text.width; - doodad->text.height = text.height; - doodad->text.color_ndx = dWire->text.colorNdx; -- doodad->text.text = _GetCountedString(&wire, client->swapped); -- doodad->text.font = _GetCountedString(&wire, client->swapped); -+ status = _GetCountedString(&wire, client, &doodad->text.text); -+ if (status != Success) -+ return status; -+ status = _GetCountedString(&wire, client, &doodad->text.font); -+ if (status != Success) { -+ free (doodad->text.text); -+ return status; -+ } - break; - case XkbIndicatorDoodad: - if (dWire->indicator.onColorNdx >= geom->num_colors) { -@@ -5072,7 +5083,9 @@ _CheckSetDoodad(char **wire_inout, - } - doodad->logo.color_ndx = dWire->logo.colorNdx; - doodad->logo.shape_ndx = dWire->logo.shapeNdx; -- doodad->logo.logo_name = _GetCountedString(&wire, client->swapped); -+ status = _GetCountedString(&wire, client, &doodad->logo.logo_name); -+ if (status != Success) -+ return status; - break; - default: - client->errorValue = _XkbErrCode2(0x4F, dWire->any.type); -@@ -5304,18 +5317,20 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) - char *wire; - - wire = (char *) &req[1]; -- geom->label_font = _GetCountedString(&wire, client->swapped); -+ status = _GetCountedString(&wire, client, &geom->label_font); -+ if (status != Success) -+ return status; - - for (i = 0; i < req->nProperties; i++) { - char *name, *val; - -- name = _GetCountedString(&wire, client->swapped); -- if (!name) -- return BadAlloc; -- val = _GetCountedString(&wire, client->swapped); -- if (!val) { -+ status = _GetCountedString(&wire, client, &name); -+ if (status != Success) -+ return status; -+ status = _GetCountedString(&wire, client, &val); -+ if (status != Success) { - free(name); -- return BadAlloc; -+ return status; - } - if (XkbAddGeomProperty(geom, name, val) == NULL) { - free(name); -@@ -5349,9 +5364,9 @@ _CheckSetGeom(XkbGeometryPtr geom, xkbSetGeometryReq * req, ClientPtr client) - for (i = 0; i < req->nColors; i++) { - char *name; - -- name = _GetCountedString(&wire, client->swapped); -- if (!name) -- return BadAlloc; -+ status = _GetCountedString(&wire, client, &name); -+ if (status != Success) -+ return status; - if (!XkbAddGeomColor(geom, name, geom->num_colors)) { - free(name); - return BadAlloc; --- -cgit v0.10.2 - diff --git a/x11-base/xorg-server/files/xorg-server-1.17.2-uninit-clientsWritable.patch b/x11-base/xorg-server/files/xorg-server-1.17.2-uninit-clientsWritable.patch deleted file mode 100644 index 681819619ebc..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.17.2-uninit-clientsWritable.patch +++ /dev/null @@ -1,65 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=555776 - -From 7cc7ffd25d5e50b54cb942d07d4cb160f20ff9c5 Mon Sep 17 00:00:00 2001 -From: Martin Peres <martin.peres@linux.intel.com> -Date: Fri, 17 Jul 2015 17:21:26 +0300 -Subject: [PATCH] os: make sure the clientsWritable fd_set is initialized - before use - -In WaitForSomething(), the fd_set clientsWritable may be used unitialized when -the boolean AnyClientsWriteBlocked is set in the WakeupHandler(). This leads to -a crash in FlushAllOutput() after x11proto's commit -2c94cdb453bc641246cc8b9a876da9799bee1ce7. - -The problem did not manifest before because both the XFD_SIZE and the maximum -number of clients were set to 256. As the connectionTranslation table was -initalized for the 256 clients to 0, the test on the index not being 0 was -aborting before dereferencing the client #0. - -As of commit 2c94cdb453bc641246cc8b9a876da9799bee1ce7 in x11proto, the XFD_SIZE -got bumped to 512. This lead the OutputPending fd_set to have any fd above 256 -to be uninitialized which in turns lead to reading an index after the end of -the ConnectionTranslation table. This index would then be used to find the -client corresponding to the fd marked as pending writes and would also result -to an out-of-bound access which would usually be the fatal one. - -Fix this by zeroing the clientsWritable fd_set at the beginning of -WaitForSomething(). In this case, the bottom part of the loop, which would -indirectly call FlushAllOutput, will not do any work but the next call to -select will result in the execution of the right codepath. This is exactly what -we want because we need to know the writable clients before handling them. In -the end, it also makes sure that the fds above MaxClient are initialized, -preventing the crash in FlushAllOutput(). - -Thanks to everyone involved in tracking this one down! - -Reported-by: Karol Herbst <freedesktop@karolherbst.de> -Reported-by: Tobias Klausmann <tobias.klausmann@mni.thm.de> -Signed-off-by: Martin Peres <martin.peres@linux.intel.com> -Tested-by: Martin Peres <martin.peres@linux.intel.com> -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91316 -Cc: Ilia Mirkin <imirkin@alum.mit.edu> -Cc: Martin Peres <martin.peres@linux.intel.com> -Cc: Olivier Fourdan <ofourdan@redhat.com -Cc: Adam Jackson <ajax@redhat.com> -Cc: Alan Coopersmith <alan.coopersmith@oracle.com -Cc: Chris Wilson <chris@chris-wilson.co.uk> ---- - os/WaitFor.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/os/WaitFor.c b/os/WaitFor.c -index 431f1a6..993c14e 100644 ---- a/os/WaitFor.c -+++ b/os/WaitFor.c -@@ -158,6 +158,7 @@ WaitForSomething(int *pClientsReady) - Bool someReady = FALSE; - - FD_ZERO(&clientsReadable); -+ FD_ZERO(&clientsWritable); - - if (nready) - SmartScheduleStopTimer(); --- -2.4.5 - diff --git a/x11-base/xorg-server/files/xorg-server-1.18-sysmacros.patch b/x11-base/xorg-server/files/xorg-server-1.18-sysmacros.patch deleted file mode 100644 index 5a3dea366121..000000000000 --- a/x11-base/xorg-server/files/xorg-server-1.18-sysmacros.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 1df7e4f5c1090631ff6584176f7d1370d08bc15e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <petr.pisar@atlas.cz> -Date: Sat, 16 Apr 2016 13:04:59 +0200 -Subject: [PATCH] Include sys/sysmacros.h for major(3) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -GNU major(3) manual page prescribes <sys/types.h>, but that does not work with -sys-libs/glibc-2.23-r1. - -https://bugs.gentoo.org/show_bug.cgi?id=580044 -Signed-off-by: Petr Písař <petr.pisar@atlas.cz> ---- - config/udev.c | 1 + - hw/xfree86/common/xf86Xinput.c | 2 ++ - hw/xfree86/os-support/linux/lnx_init.c | 1 + - 3 files changed, 4 insertions(+) - -diff --git a/config/udev.c b/config/udev.c -index 28c2658..62908f4 100644 ---- a/config/udev.c -+++ b/config/udev.c -@@ -30,6 +30,7 @@ - #include <libudev.h> - #include <ctype.h> - #include <unistd.h> -+#include <sys/sysmacros.h> - - #include "input.h" - #include "inputstr.h" -diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c -index c56a2b9..d33c165 100644 ---- a/hw/xfree86/common/xf86Xinput.c -+++ b/hw/xfree86/common/xf86Xinput.c -@@ -86,6 +86,8 @@ - #include <unistd.h> - #ifdef HAVE_SYS_MKDEV_H - #include <sys/mkdev.h> /* for major() & minor() on Solaris */ -+#else -+#include <sys/sysmacros.h> - #endif - - #include "mi.h" -diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c -index 1ed213c..6caf531 100644 ---- a/hw/xfree86/os-support/linux/lnx_init.c -+++ b/hw/xfree86/os-support/linux/lnx_init.c -@@ -38,6 +38,7 @@ - #include "xf86_OSlib.h" - - #include <sys/stat.h> -+#include <sys/sysmacros.h> - - #ifndef K_OFF - #define K_OFF 0x4 --- -2.8.1 - diff --git a/x11-base/xorg-server/xorg-server-1.12.4-r7.ebuild b/x11-base/xorg-server/xorg-server-1.12.4-r7.ebuild deleted file mode 100644 index 3948af492ead..000000000000 --- a/x11-base/xorg-server/xorg-server-1.12.4-r7.ebuild +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -XORG_DOC=doc -inherit xorg-2 multilib versionator flag-o-matic -EGIT_REPO_URI="https://anongit.freedesktop.org/git/xorg/xserver.git" - -DESCRIPTION="X.Org X servers" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd" - -SRC_URI="${SRC_URI} mirror://gentoo/${PN}-1.12-cve-2014-8091..8103.patches.tar.xz" - -IUSE_SERVERS="dmx kdrive xnest xorg xvfb" -IUSE="${IUSE_SERVERS} ipv6 minimal nptl selinux tslib +udev" - -RDEPEND=">=app-eselect/eselect-opengl-1.3.0 - dev-libs/openssl:0= - >=x11-apps/iceauth-1.0.2 - >=x11-apps/rgb-1.0.3 - >=x11-apps/xauth-1.0.3 - x11-apps/xkbcomp - >=x11-libs/libpciaccess-0.12.901 - >=x11-libs/libXau-1.0.4 - >=x11-libs/libXdmcp-1.0.2 - >=x11-libs/libXfont-1.4.2 - <x11-libs/libXfont-1.5.0 - >=x11-libs/libxkbfile-1.0.4 - >=x11-libs/pixman-0.21.8 - >=x11-libs/xtrans-1.2.2 - >=x11-misc/xbitmaps-1.0.1 - >=x11-misc/xkeyboard-config-2.4.1-r3 - dmx? ( - x11-libs/libXt - >=x11-libs/libdmx-1.0.99.1 - >=x11-libs/libX11-1.1.5 - >=x11-libs/libXaw-1.0.4 - >=x11-libs/libXext-1.0.99.4 - >=x11-libs/libXfixes-5.0 - >=x11-libs/libXi-1.2.99.1 - >=x11-libs/libXmu-1.0.3 - x11-libs/libXrender - >=x11-libs/libXres-1.0.3 - >=x11-libs/libXtst-1.0.99.2 - ) - kdrive? ( - >=x11-libs/libXext-1.0.5 - x11-libs/libXv - ) - !minimal? ( - >=x11-libs/libX11-1.1.5 - >=x11-libs/libXext-1.0.5 - >=media-libs/mesa-10.3.7-r2[nptl=] - ) - tslib? ( >=x11-libs/tslib-1.0 ) - udev? ( >=virtual/udev-150 ) - >=x11-apps/xinit-1.3 - selinux? ( sec-policy/selinux-xserver )" - -DEPEND="${RDEPEND} - sys-devel/flex - >=x11-proto/bigreqsproto-1.1.0 - >=x11-proto/compositeproto-0.4 - >=x11-proto/damageproto-1.1 - >=x11-proto/fixesproto-5.0 - >=x11-proto/fontsproto-2.0.2 - <x11-proto/fontsproto-2.1.3 - >=x11-proto/glproto-1.4.17-r1 - >=x11-proto/inputproto-2.1.99.3 - >=x11-proto/kbproto-1.0.3 - >=x11-proto/randrproto-1.2.99.3 - >=x11-proto/recordproto-1.13.99.1 - >=x11-proto/renderproto-0.11 - >=x11-proto/resourceproto-1.0.2 - >=x11-proto/scrnsaverproto-1.1 - >=x11-proto/trapproto-3.4.3 - >=x11-proto/videoproto-2.2.2 - >=x11-proto/xcmiscproto-1.2.0 - >=x11-proto/xextproto-7.1.99 - >=x11-proto/xf86dgaproto-2.0.99.1 - >=x11-proto/xf86rushproto-1.1.2 - >=x11-proto/xf86vidmodeproto-2.2.99.1 - >=x11-proto/xineramaproto-1.1.3 - >=x11-proto/xproto-7.0.22 - dmx? ( - >=x11-proto/dmxproto-2.2.99.1 - doc? ( - || ( - www-client/links - www-client/lynx - www-client/w3m - ) - ) - ) - !minimal? ( - >=x11-proto/xf86driproto-2.1.0 - >=x11-proto/dri2proto-2.6 - >=x11-libs/libdrm-2.4.20 - )" - -PDEPEND=" - xorg? ( >=x11-base/xorg-drivers-$(get_version_component_range 1-2) )" - -REQUIRED_USE="!minimal? ( - || ( ${IUSE_SERVERS} ) - )" - -# Security patches taken from Debian from their 1.12 package -UPSTREAMED_PATCHES=( - "${WORKDIR}"/patches/${PN}-1.12-cve-2014-8091..8103.patch -) - -PATCHES=( - "${UPSTREAMED_PATCHES[@]}" - "${FILESDIR}"/${PN}-1.12-disable-acpi.patch - "${FILESDIR}"/${PN}-1.12-cve-2013-1940.patch - "${FILESDIR}"/${PN}-1.12-cve-2013-4396.patch - "${FILESDIR}"/${PN}-1.17-cve-2015-0255-0.patch - "${FILESDIR}"/${PN}-1.17-cve-2015-0255-1.patch - "${FILESDIR}"/${PN}-1.12-cve-2015-3418.patch - "${FILESDIR}"/${PN}-1.17.2-uninit-clientsWritable.patch -) - -pkg_pretend() { - # older gcc is not supported - [[ "${MERGE_TYPE}" != "binary" && $(gcc-major-version) -lt 4 ]] && \ - die "Sorry, but gcc earlier than 4.0 wont work for xorg-server." -} - -src_configure() { - # localstatedir is used for the log location; we need to override the default - # from ebuild.sh - # sysconfdir is used for the xorg.conf location; same applies - # --enable-install-setuid needed because sparcs default off - # NOTE: fop is used for doc generating ; and i have no idea if gentoo - # package it somewhere - XORG_CONFIGURE_OPTIONS=( - $(use_enable ipv6) - $(use_enable dmx) - $(use_enable kdrive) - $(use_enable kdrive kdrive-kbd) - $(use_enable kdrive kdrive-mouse) - $(use_enable kdrive kdrive-evdev) - $(use_enable tslib) - $(use_enable !minimal record) - $(use_enable !minimal xfree86-utils) - $(use_enable !minimal install-libxf86config) - $(use_enable !minimal dri) - $(use_enable !minimal dri2) - $(use_enable !minimal glx) - $(use_enable xnest) - $(use_enable xorg) - $(use_enable xvfb) - $(use_enable nptl glx-tls) - $(use_enable udev config-udev) - $(use_with doc doxygen) - $(use_with doc xmlto) - --sysconfdir=/etc/X11 - --localstatedir=/var - --enable-install-setuid - --with-fontrootdir=/usr/share/fonts - --with-xkb-output=/var/lib/xkb - --disable-config-hal - --without-dtrace - --without-fop - --with-os-vendor=Gentoo - ) - - xorg-2_src_configure -} - -src_install() { - xorg-2_src_install - - server_based_install - - if ! use minimal && use xorg; then - # Install xorg.conf.example into docs - dodoc "${AUTOTOOLS_BUILD_DIR}"/hw/xfree86/xorg.conf.example - fi - - newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup - newinitd "${FILESDIR}"/xdm.initd-9 xdm - newconfd "${FILESDIR}"/xdm.confd-4 xdm - - # install the @x11-module-rebuild set for Portage - insinto /usr/share/portage/config/sets - newins "${FILESDIR}"/xorg-sets.conf xorg.conf -} - -pkg_postinst() { - # sets up libGL and DRI2 symlinks if needed (ie, on a fresh install) - eselect opengl set xorg-x11 --use-old - - if [[ ${PV} != 9999 && $(get_version_component_range 2 ${REPLACING_VERSIONS}) != $(get_version_component_range 2 ${PV}) ]]; then - ewarn "You must rebuild all drivers if upgrading from <xorg-server-$(get_version_component_range 1-2)" - ewarn "because the ABI changed. If you cannot start X because" - ewarn "of module version mismatch errors, this is your problem." - - echo - ewarn "You can generate a list of all installed packages in the x11-drivers" - ewarn "category using this command:" - ewarn " emerge portage-utils; qlist -I -C x11-drivers/" - ewarn "or using sets from portage-2.2:" - ewarn " emerge @x11-module-rebuild" - fi -} - -pkg_postrm() { - # Get rid of module dir to ensure opengl-update works properly - if [[ -z ${REPLACED_BY_VERSION} && -e ${ROOT}/usr/$(get_libdir)/xorg/modules ]]; then - rm -rf "${ROOT}"/usr/$(get_libdir)/xorg/modules - fi -} - -server_based_install() { - if ! use xorg; then - rm "${D}"/usr/share/man/man1/Xserver.1x \ - "${D}"/usr/$(get_libdir)/xserver/SecurityPolicy \ - "${D}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \ - "${D}"/usr/share/man/man1/Xserver.1x - fi -} diff --git a/x11-base/xorg-server/xorg-server-1.15.2-r4.ebuild b/x11-base/xorg-server/xorg-server-1.15.2-r4.ebuild deleted file mode 100644 index 9ba84cb401c9..000000000000 --- a/x11-base/xorg-server/xorg-server-1.15.2-r4.ebuild +++ /dev/null @@ -1,233 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -XORG_EAUTORECONF=yes -XORG_DOC=doc -inherit xorg-2 multilib versionator flag-o-matic -EGIT_REPO_URI="https://anongit.freedesktop.org/git/xorg/xserver.git" - -DESCRIPTION="X.Org X servers" -SLOT="0/${PV}" -KEYWORDS="~alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux" - -SRC_URI="${SRC_URI} mirror://gentoo/${PN}-1.16-cve-2014-8091..8103.patches.tar.xz" - -IUSE_SERVERS="dmx kdrive xnest xorg xvfb" -IUSE="${IUSE_SERVERS} ipv6 minimal nptl selinux +suid tslib +udev unwind" - -CDEPEND=">=app-eselect/eselect-opengl-1.3.0 - dev-libs/openssl:0= - >=x11-apps/iceauth-1.0.2 - >=x11-apps/rgb-1.0.3 - >=x11-apps/xauth-1.0.3 - x11-apps/xkbcomp - >=x11-libs/libdrm-2.4.20 - >=x11-libs/libpciaccess-0.12.901 - >=x11-libs/libXau-1.0.4 - >=x11-libs/libXdmcp-1.0.2 - >=x11-libs/libXfont-1.4.2 - <x11-libs/libXfont-1.5.0 - >=x11-libs/libxkbfile-1.0.4 - >=x11-libs/libxshmfence-1.1 - >=x11-libs/pixman-0.27.2 - >=x11-libs/xtrans-1.3.2 - >=x11-misc/xbitmaps-1.0.1 - >=x11-misc/xkeyboard-config-2.4.1-r3 - dmx? ( - x11-libs/libXt - >=x11-libs/libdmx-1.0.99.1 - >=x11-libs/libX11-1.1.5 - >=x11-libs/libXaw-1.0.4 - >=x11-libs/libXext-1.0.99.4 - >=x11-libs/libXfixes-5.0 - >=x11-libs/libXi-1.2.99.1 - >=x11-libs/libXmu-1.0.3 - x11-libs/libXrender - >=x11-libs/libXres-1.0.3 - >=x11-libs/libXtst-1.0.99.2 - ) - kdrive? ( - >=x11-libs/libXext-1.0.5 - x11-libs/libXv - ) - !minimal? ( - >=x11-libs/libX11-1.1.5 - >=x11-libs/libXext-1.0.5 - >=media-libs/mesa-10.3.7-r2[nptl=] - ) - tslib? ( >=x11-libs/tslib-1.0 ) - udev? ( >=virtual/udev-150 ) - unwind? ( sys-libs/libunwind ) - >=x11-apps/xinit-1.3" - -DEPEND="${CDEPEND} - sys-devel/flex - >=x11-proto/bigreqsproto-1.1.0 - >=x11-proto/compositeproto-0.4 - >=x11-proto/damageproto-1.1 - >=x11-proto/fixesproto-5.0 - >=x11-proto/fontsproto-2.0.2 - <x11-proto/fontsproto-2.1.3 - >=x11-proto/glproto-1.4.17-r1 - >=x11-proto/inputproto-2.2.99.1 - >=x11-proto/kbproto-1.0.3 - >=x11-proto/randrproto-1.4.0 - >=x11-proto/recordproto-1.13.99.1 - >=x11-proto/renderproto-0.11 - >=x11-proto/resourceproto-1.2.0 - >=x11-proto/scrnsaverproto-1.1 - >=x11-proto/trapproto-3.4.3 - >=x11-proto/videoproto-2.2.2 - >=x11-proto/xcmiscproto-1.2.0 - >=x11-proto/xextproto-7.2.99.901 - >=x11-proto/xf86dgaproto-2.0.99.1 - >=x11-proto/xf86rushproto-1.1.2 - >=x11-proto/xf86vidmodeproto-2.2.99.1 - >=x11-proto/xineramaproto-1.1.3 - >=x11-proto/xproto-7.0.22 - >=x11-proto/presentproto-1.0 - >=x11-proto/dri3proto-1.0 - dmx? ( - >=x11-proto/dmxproto-2.2.99.1 - doc? ( - || ( - www-client/links - www-client/lynx - www-client/w3m - ) - ) - ) - !minimal? ( - >=x11-proto/xf86driproto-2.1.0 - >=x11-proto/dri2proto-2.8 - )" - -RDEPEND="${CDEPEND} - selinux? ( sec-policy/selinux-xserver ) -" - -PDEPEND=" - xorg? ( >=x11-base/xorg-drivers-$(get_version_component_range 1-2) )" - -REQUIRED_USE="!minimal? ( - || ( ${IUSE_SERVERS} ) - )" - -pkg_pretend() { - # older gcc is not supported - [[ "${MERGE_TYPE}" != "binary" && $(gcc-major-version) -lt 4 ]] && \ - die "Sorry, but gcc earlier than 4.0 will not work for xorg-server." -} - -src_prepare() { - UPSTREAMED_PATCHES=( - "${WORKDIR}"/patches/*.patch - ) - PATCHES=( - "${UPSTREAMED_PATCHES[@]}" - "${FILESDIR}"/${PN}-1.12-ia64-fix_inx_outx.patch - "${FILESDIR}"/${PN}-1.12-unloadsubmodule.patch - "${FILESDIR}"/${PN}-1.17-cve-2015-0255-0.patch - "${FILESDIR}"/${PN}-1.17-cve-2015-0255-1.patch - "${FILESDIR}"/${PN}-1.17.2-uninit-clientsWritable.patch - ) - xorg-2_src_prepare -} - -src_configure() { - # localstatedir is used for the log location; we need to override the default - # from ebuild.sh - # sysconfdir is used for the xorg.conf location; same applies - # NOTE: fop is used for doc generating ; and i have no idea if gentoo - # package it somewhere - XORG_CONFIGURE_OPTIONS=( - $(use_enable ipv6) - $(use_enable dmx) - $(use_enable kdrive) - $(use_enable kdrive kdrive-kbd) - $(use_enable kdrive kdrive-mouse) - $(use_enable kdrive kdrive-evdev) - $(use_enable suid install-setuid) - $(use_enable tslib) - $(use_enable unwind libunwind) - $(use_enable !minimal record) - $(use_enable !minimal xfree86-utils) - $(use_enable !minimal install-libxf86config) - $(use_enable !minimal dri) - $(use_enable !minimal dri2) - $(use_enable !minimal glx) - $(use_enable xnest) - $(use_enable xorg) - $(use_enable xvfb) - $(use_enable nptl glx-tls) - $(use_enable udev config-udev) - $(use_with doc doxygen) - $(use_with doc xmlto) - --enable-libdrm - --sysconfdir="${EPREFIX}"/etc/X11 - --localstatedir="${EPREFIX}"/var - --with-fontrootdir="${EPREFIX}"/usr/share/fonts - --with-xkb-output="${EPREFIX}"/var/lib/xkb - --disable-config-hal - --disable-linux-acpi - --without-dtrace - --without-fop - --with-os-vendor=Gentoo - --with-sha1=libcrypto - ) - - xorg-2_src_configure -} - -src_install() { - xorg-2_src_install - - server_based_install - - if ! use minimal && use xorg; then - # Install xorg.conf.example into docs - dodoc "${AUTOTOOLS_BUILD_DIR}"/hw/xfree86/xorg.conf.example - fi - - newinitd "${FILESDIR}"/xdm-setup.initd-1 xdm-setup - newinitd "${FILESDIR}"/xdm.initd-11 xdm - newconfd "${FILESDIR}"/xdm.confd-4 xdm - - # install the @x11-module-rebuild set for Portage - insinto /usr/share/portage/config/sets - newins "${FILESDIR}"/xorg-sets.conf xorg.conf -} - -pkg_postinst() { - # sets up libGL and DRI2 symlinks if needed (ie, on a fresh install) - eselect opengl set xorg-x11 --use-old - - if [[ ${PV} != 9999 && $(get_version_component_range 2 ${REPLACING_VERSIONS}) != $(get_version_component_range 2 ${PV}) ]]; then - ewarn "You must rebuild all drivers if upgrading from <xorg-server-$(get_version_component_range 1-2)" - ewarn "because the ABI changed. If you cannot start X because" - ewarn "of module version mismatch errors, this is your problem." - - echo - ewarn "You can rebuild all installed packages in the x11-drivers" - ewarn "category using this command:" - ewarn " emerge @x11-module-rebuild" - fi -} - -pkg_postrm() { - # Get rid of module dir to ensure opengl-update works properly - if [[ -z ${REPLACED_BY_VERSION} && -e ${EROOT}/usr/$(get_libdir)/xorg/modules ]]; then - rm -rf "${EROOT}"/usr/$(get_libdir)/xorg/modules - fi -} - -server_based_install() { - if ! use xorg; then - rm "${ED}"/usr/share/man/man1/Xserver.1x \ - "${ED}"/usr/$(get_libdir)/xserver/SecurityPolicy \ - "${ED}"/usr/$(get_libdir)/pkgconfig/xorg-server.pc \ - "${ED}"/usr/share/man/man1/Xserver.1x - fi -} |