diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /net-misc/x11rdp | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'net-misc/x11rdp')
10 files changed, 417 insertions, 0 deletions
diff --git a/net-misc/x11rdp/Manifest b/net-misc/x11rdp/Manifest new file mode 100644 index 00000000000..4b9d79679a9 --- /dev/null +++ b/net-misc/x11rdp/Manifest @@ -0,0 +1,2 @@ +DIST xorg-server-1.9.5.tar.bz2 5172054 SHA256 3fc775097c4f0e8f731447d0183ee709ae37c44c0c286ba00a4b028274e029dc SHA512 f17baa6e871c7df4dc61330e32e235906d9e4c842a70226b0833d2b64ab62811131b960eb942f4dc9359ea828676ce60afd82802aa7cffc711d27c4946c32345 WHIRLPOOL a8ede9d5e4ae80713e2b363042a80fe7ac9a03f8623dbf058b241a4237edd2397b437dda5ea56076ec1da71b946dc5b936adfd4afd436893b5c8350996ba169e +DIST xrdp-0.8.0.tar.xz 1671376 SHA256 433535039f8b8766d9c22f62de9599afa94dd553e72d9791cec85a5e2f436a60 SHA512 bb2afefce7f53b6c3bca30cb6913171211df63a700f7d70325c1722348d5d31981e1d417727e48fd14aad500d0454e4126e6e1f81f8c09da4928b02f4acff26b WHIRLPOOL 39c1d4852f6f927fd348d345a8d4f4a79824eca0d5682340908d28f3b6b497ae33bfed944294b061b118e4154ed7c5dce15878302145ffabc2ca6b3a2eb07818 diff --git a/net-misc/x11rdp/files/xorg-cve-2011-4028+4029.patch b/net-misc/x11rdp/files/xorg-cve-2011-4028+4029.patch new file mode 100644 index 00000000000..66e77f66e00 --- /dev/null +++ b/net-misc/x11rdp/files/xorg-cve-2011-4028+4029.patch @@ -0,0 +1,22 @@ +diff --git a/os/utils.c b/os/utils.c +index e8ecb71..18ff1ca 100644 +--- a/os/utils.c ++++ b/os/utils.c +@@ -297,7 +297,7 @@ LockServer(void) + FatalError("Could not create lock file in %s\n", tmp); + (void) sprintf(pid_str, "%10ld\n", (long)getpid()); + (void) write(lfd, pid_str, 11); +- (void) chmod(tmp, 0444); ++ (void) fchmod(lfd, 0444); + (void) close(lfd); + + /* +@@ -318,7 +318,7 @@ LockServer(void) + /* + * Read the pid from the existing file + */ +- lfd = open(LockFile, O_RDONLY); ++ lfd = open(LockFile, O_RDONLY|O_NOFOLLOW); + if (lfd < 0) { + unlink(tmp); + FatalError("Can't read lock file %s\n", LockFile); diff --git a/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-1940.patch b/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-1940.patch new file mode 100644 index 00000000000..f06b923f3d9 --- /dev/null +++ b/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-1940.patch @@ -0,0 +1,31 @@ +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 -ur a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c +--- a/hw/xfree86/os-support/shared/posix_tty.c 2010-06-11 08:10:22.000000000 +0200 ++++ b/hw/xfree86/os-support/shared/posix_tty.c 2013-04-17 22:49:20.389795964 +0200 +@@ -460,7 +460,8 @@ + { + 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) diff --git a/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch b/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch new file mode 100644 index 00000000000..fa8b4825f7e --- /dev/null +++ b/net-misc/x11rdp/files/xorg-server-1.9-cve-2013-4396.patch @@ -0,0 +1,43 @@ +diff -ur a/dix/dixfonts.c b/dix/dixfonts.c +--- a/dix/dixfonts.c 2011-12-18 05:44:54.000000000 +0100 ++++ b/dix/dixfonts.c 2013-10-10 12:06:44.579225694 +0200 +@@ -1479,6 +1479,7 @@ + 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 +@@ -1491,6 +1492,7 @@ + err = BadAlloc; + goto bail; + } ++ old_closure = c; + *new_closure = *c; + c = new_closure; + +@@ -1498,6 +1500,7 @@ + if (!data) + { + free(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } +@@ -1509,6 +1512,7 @@ + { + free(c->data); + free(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } +@@ -1522,6 +1526,7 @@ + FreeScratchGC(pGC); + free(c->data); + free(c); ++ c = old_closure; + err = BadAlloc; + goto bail; + } diff --git a/net-misc/x11rdp/files/xorg-server-1.9-nouveau-default.patch b/net-misc/x11rdp/files/xorg-server-1.9-nouveau-default.patch new file mode 100644 index 00000000000..2b05967a943 --- /dev/null +++ b/net-misc/x11rdp/files/xorg-server-1.9-nouveau-default.patch @@ -0,0 +1,30 @@ +diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c +index 74016af..9c296f5 100644 +--- a/hw/xfree86/common/xf86pciBus.c ++++ b/hw/xfree86/common/xf86pciBus.c +@@ -1118,7 +1118,23 @@ videoPtrToDriverList(struct pci_device *dev, + break; + case 0x102b: driverList[0] = "mga"; break; + case 0x10c8: driverList[0] = "neomagic"; break; +- case 0x10de: case 0x12d2: driverList[0] = "nv"; break; ++ case 0x10de: case 0x12d2: ++ switch (dev->device_id) { ++ /* NV1 */ ++ case 0x0008: ++ case 0x0009: ++ driverList[0] = "vesa"; ++ break; ++ /* NV3 */ ++ case 0x0018: ++ case 0x0019: ++ driverList[0] = "nv"; ++ break; ++ default: ++ driverList[0] = "nouveau"; ++ break; ++ } ++ break; + case 0x1106: driverList[0] = "openchrome"; break; + case 0x1b36: driverList[0] = "qxl"; break; + case 0x1163: driverList[0] = "rendition"; break; +-- diff --git a/net-misc/x11rdp/files/xorg-server-disable-acpi.patch b/net-misc/x11rdp/files/xorg-server-disable-acpi.patch new file mode 100644 index 00000000000..cc80e6cef4e --- /dev/null +++ b/net-misc/x11rdp/files/xorg-server-disable-acpi.patch @@ -0,0 +1,31 @@ +From a8079882f1884edc62a9de28af915bd8b65dfbbe Mon Sep 17 00:00:00 2001 +From: Adam Jackson <ajax@redhat.com> +Date: Wed, 11 Mar 2009 14:02:11 -0400 +Subject: [PATCH] Don't build the ACPI code. + +No good can come of this. +--- + configure.ac | 2 -- + 1 files changed, 0 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 72ae67e..04716f8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1269,13 +1269,11 @@ if test "x$XORG" = xyes; then + case $host_cpu in + ia64*) + linux_ia64=yes +- linux_acpi="yes" + ;; + alpha*) + linux_alpha=yes + ;; + i*86|amd64*|x86_64*) +- linux_acpi="yes" + ;; + *) + ;; +-- +1.6.1.3 + diff --git a/net-misc/x11rdp/files/xrdp-0.8.0-0001-Include-xorg-list.h-to-fix-build-errors.patch b/net-misc/x11rdp/files/xrdp-0.8.0-0001-Include-xorg-list.h-to-fix-build-errors.patch new file mode 100644 index 00000000000..c78d2e3fa21 --- /dev/null +++ b/net-misc/x11rdp/files/xrdp-0.8.0-0001-Include-xorg-list.h-to-fix-build-errors.patch @@ -0,0 +1,25 @@ +From 13b7150aef9c61966d39d779c652f988232d7381 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Mon, 27 Oct 2014 09:52:56 +0100 +Subject: [PATCH 1/2] Include <xorg/list.h> to fix build errors + +--- + xorg/X11R7.6/rdp/rdp.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/xorg/X11R7.6/rdp/rdp.h b/xorg/X11R7.6/rdp/rdp.h +index 00725d1..a2f5bdc 100644 +--- a/xorg/X11R7.6/rdp/rdp.h ++++ b/xorg/X11R7.6/rdp/rdp.h +@@ -46,6 +46,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + //#include "cfb.h" + ++#include <xorg/list.h> ++ + #include "mibstore.h" + #include "colormapst.h" + #include "gcstruct.h" +-- +2.1.2 + diff --git a/net-misc/x11rdp/files/xrdp-0.8.0-0002-Remove-dither-printing.patch b/net-misc/x11rdp/files/xrdp-0.8.0-0002-Remove-dither-printing.patch new file mode 100644 index 00000000000..1d004181b42 --- /dev/null +++ b/net-misc/x11rdp/files/xrdp-0.8.0-0002-Remove-dither-printing.patch @@ -0,0 +1,40 @@ +From fef4e6d15aa42a7d3bb4b134cba9253323398cc6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Mon, 27 Oct 2014 09:55:49 +0100 +Subject: [PATCH 2/2] Remove dither printing + +--- + xorg/X11R7.6/rdp/rdpComposite.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/xorg/X11R7.6/rdp/rdpComposite.c b/xorg/X11R7.6/rdp/rdpComposite.c +index f763783..50ee6d7 100644 +--- a/xorg/X11R7.6/rdp/rdpComposite.c ++++ b/xorg/X11R7.6/rdp/rdpComposite.c +@@ -240,9 +240,9 @@ compsoite_print(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, + if (pSrc != 0) + { + LLOGLN(0, (" src depth %d width %d height %d repeat %d repeatType %d " +- "dither %d filter %d alphaMap %p componentAlpha %d", pSrc->pDrawable->depth, ++ "filter %d alphaMap %p componentAlpha %d", pSrc->pDrawable->depth, + pSrc->pDrawable->width, pSrc->pDrawable->height, +- pSrc->repeat, pSrc->repeatType, pSrc->dither, pSrc->filter, ++ pSrc->repeat, pSrc->repeatType, pSrc->filter, + pSrc->alphaMap, pSrc->componentAlpha)); + LLOGLN(0, (" transform %p", pSrc->transform)); + LLOGLN(0, (" detail format red %d red mask %d green %d green mask %d " +@@ -277,9 +277,9 @@ compsoite_print(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, + if (pDst != 0) + { + LLOGLN(0, (" dst depth %d width %d height %d repeat %d repeatType %d " +- "dither %d filter %d alphaMap %p", pDst->pDrawable->depth, ++ "filter %d alphaMap %p", pDst->pDrawable->depth, + pDst->pDrawable->width, pDst->pDrawable->height, +- pDst->repeat, pDst->repeatType, pDst->dither, pDst->filter, ++ pDst->repeat, pDst->repeatType, pDst->filter, + pDst->alphaMap)); + LLOGLN(0, (" transform %p", pDst->transform)); + print_format(pDst->format); +-- +2.1.2 + diff --git a/net-misc/x11rdp/metadata.xml b/net-misc/x11rdp/metadata.xml new file mode 100644 index 00000000000..5cb9324943a --- /dev/null +++ b/net-misc/x11rdp/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>mgorny@gentoo.org</email> + <name>Michał Górny</name> + </maintainer> +</pkgmetadata> diff --git a/net-misc/x11rdp/x11rdp-0.8.0.1.9.5.ebuild b/net-misc/x11rdp/x11rdp-0.8.0.1.9.5.ebuild new file mode 100644 index 00000000000..c017e2abba8 --- /dev/null +++ b/net-misc/x11rdp/x11rdp-0.8.0.1.9.5.ebuild @@ -0,0 +1,185 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit flag-o-matic versionator + +XRDP_P=xrdp-$(get_version_component_range 1-3) +XORG_P=xorg-server-$(get_version_component_range 4-6) + +DESCRIPTION="A X11 server for RDP clients (used by xrdp)" +HOMEPAGE="http://www.xrdp.org/" +# mirrored from https://github.com/neutrinolabs/xrdp/releases +SRC_URI="http://dev.gentoo.org/~mgorny/dist/${XRDP_P}.tar.xz + http://xorg.freedesktop.org/releases/individual/xserver/${XORG_P}.tar.bz2" + +LICENSE="Apache-2.0 MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="nptl" + +RDEPEND="dev-libs/openssl + media-libs/freetype + >=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.10.3 + >=x11-libs/libXau-1.0.4 + >=x11-libs/libXdmcp-1.0.2 + >=x11-libs/libXfont-1.4.2 + >=x11-libs/libxkbfile-1.0.4 + >=x11-libs/pixman-0.15.20 + >=x11-libs/xtrans-1.2.2 + >=x11-misc/xbitmaps-1.0.1 + >=x11-misc/xkeyboard-config-1.4 + >=x11-libs/libX11-1.1.5 + >=x11-libs/libXext-1.0.5 + >=media-libs/mesa-7.8_rc[nptl=] + <x11-base/xorg-server-1.17" + +DEPEND="${RDEPEND} + sys-devel/flex + >=x11-proto/bigreqsproto-1.1.0 + >=x11-proto/compositeproto-0.4 + >=x11-proto/damageproto-1.1 + >=x11-proto/fixesproto-4.1 + >=x11-proto/fontsproto-2.0.2 + >=x11-proto/glproto-1.4.11 + >=x11-proto/inputproto-1.9.99.902 + >=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.0.99.3 + >=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.17 + >=x11-proto/xf86driproto-2.1.0 + >=x11-proto/dri2proto-2.3 + >=x11-libs/libdrm-2.4.20 + >=x11-apps/xinit-1.3" + +# xrdp-specific +DEPEND="${DEPEND} + app-arch/xz-utils" + +S=${WORKDIR}/${XRDP_P} + +src_prepare() { + # -- xrdp patches -- + epatch "${FILESDIR}"/${XRDP_P}-0001-Include-xorg-list.h-to-fix-build-errors.patch + epatch "${FILESDIR}"/${XRDP_P}-0002-Remove-dither-printing.patch + + # missing -pthread linking + sed -i -e 's:LLIBS =:& -pthread:' xorg/X11R7.6/rdp/Makefile || die + + # -- xrdp fancy build layout -- + + mv "${WORKDIR}/${XORG_P}" ./ || die + mv "${S}"/xorg/X11R7.6/rdp "${XORG_P}/hw" || die + ln -s ../.. "${XORG_P}/hw/build_dir" || die + ln -s "${XORG_P}" xorg-server-1.9.3 || die + + # -- xorg-server patches -- + local xorg_patches=( + "${FILESDIR}"/xorg-server-disable-acpi.patch + "${FILESDIR}"/xorg-server-1.9-nouveau-default.patch + "${FILESDIR}"/xorg-cve-2011-4028+4029.patch + "${FILESDIR}"/xorg-server-1.9-cve-2013-1940.patch + "${FILESDIR}"/xorg-server-1.9-cve-2013-4396.patch + ) + cd "${XORG_P}" || die + epatch "${xorg_patches[@]}" + + # -- stuff copied from xorg follows -- + + # Xorg-server requires includes from OS mesa which are not visible for + # users of binary drivers. + # Due to the limitations of CONFIGURE_OPTIONS, we have to export this + mkdir -p "${T}/mesa-symlinks/GL" + for i in gl glx glxmd glxproto glxtokens; do + ln -s "${EROOT}usr/$(get_libdir)/opengl/xorg-x11/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die + done + for i in glext glxext; do + ln -s "${EROOT}usr/$(get_libdir)/opengl/global/include/$i.h" "${T}/mesa-symlinks/GL/$i.h" || die + done + append-cppflags "-I${T}/mesa-symlinks" + + # (#121394) Causes window corruption + filter-flags -fweb + + # Incompatible with GCC 3.x SSP on x86, bug #244352 + if use x86 ; then + if [[ $(gcc-major-version) -lt 4 ]]; then + filter-flags -fstack-protector + fi + fi + + # Incompatible with GCC 3.x CPP, bug #314615 + if [[ $(gcc-major-version) -lt 4 ]]; then + ewarn "GCC 3.x C preprocessor may cause build failures. Use GCC 4.x" + ewarn "or set CPP=cpp-4.3.4 (replace with the actual installed version)" + fi +} + +src_configure() { + local myconf=( + --disable-ipv6 + --disable-dmx + --disable-kdrive + --disable-kdrive-kbd + --disable-kdrive-mouse + --disable-kdrive-evdev + --disable-tslib + --disable-xcalibrate + --enable-record + --disable-xfree86-utils + --disable-install-libxf86config + --disable-dri + --disable-dri2 + --enable-glx + --disable-xnest + --enable-xorg + --disable-xvfb + $(use_enable nptl glx-tls) + --disable-config-udev + --without-doxygen + --without-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 + --with-sha1=libcrypto + ) + + # configure xorg-server, no need to configure xrdp + cd "${XORG_P}" || die + econf "${myconf[@]}" +} + +src_compile() { + # build xorg-server + emake -C "${XORG_P}" + + # build x11rdp + emake -C "${XORG_P}"/hw/rdp X11RDPBASE=/usr +} + +src_install() { + dobin "${XORG_P}"/hw/rdp/X11rdp +} |