summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlayman <layman@localhost>2017-01-28 00:15:16 +0100
committerlayman <layman@localhost>2017-01-28 00:15:16 +0100
commit57102cf16e459aae19d9e6e3233f18accc64323a (patch)
treeb756d5416d4fb1b73bbe3b3406695b6486e155c6
parentmedia-gfx/openscad live ebuild by Michał Górny - thanks! :-) (diff)
downloadbleeding-edge-57102cf16e459aae19d9e6e3233f18accc64323a.tar.gz
bleeding-edge-57102cf16e459aae19d9e6e3233f18accc64323a.tar.bz2
bleeding-edge-57102cf16e459aae19d9e6e3233f18accc64323a.zip
net-misc/tigervnc-9999 works with xorg-server-1.19.1, git part from booboo overlay
-rw-r--r--net-misc/tigervnc/Manifest3
-rw-r--r--net-misc/tigervnc/files/tigervnc.confd9
-rw-r--r--net-misc/tigervnc/files/tigervnc.initd73
-rw-r--r--net-misc/tigervnc/metadata.xml14
-rw-r--r--net-misc/tigervnc/tigervnc-9999.ebuild194
5 files changed, 293 insertions, 0 deletions
diff --git a/net-misc/tigervnc/Manifest b/net-misc/tigervnc/Manifest
new file mode 100644
index 0000000..1379c41
--- /dev/null
+++ b/net-misc/tigervnc/Manifest
@@ -0,0 +1,3 @@
+DIST tigervnc-1.4.2-patches-0.1.tar.bz2 7361 SHA256 21c77708d303192108ffeef02acc0e7310461b4910bb49ae78c8a944e52c436e SHA512 86235aba8e735e4afed21d2940cee8ea2f4f1bc951db79aaf481ae79ab81d4518add6be2619ce9371f77fd068c8dbf069754ecc0168e5afe9e8505d3d61cc573 WHIRLPOOL 97a8c1719e7959ce8abd29f9ad249c7acf1b5a21ef36c0ce00b6e3bae8e6e78e9cdb0b34a23da6bd44c9e513e95f22716b286c5ec57bf1a854101c4810c7b481
+DIST tigervnc.png 4958 SHA256 e0828aeb92ccaaf93e690e9ee5e17803de1cb140d3ca79fb756fe08ebbc4492e SHA512 97f9a42e9b9f50f1c91de3b7d7991aa8965240fe4958d6da4e9f72f9baa4510ad615765f7c59d6e0a90c9d4b5fe53ad1547c766f2da45e4a6b6e29b03ced2b8b WHIRLPOOL bbf01f6702724bc4329d053bd3fbf856103371abce20f6f74aa3c2e5eed0eebcdcccd287788b1efbb8de3008cb484a8da5ccd1bd667727e4b0861f3bb550529c
+DIST xorg-server-1.19.1.tar.bz2 6041792 SHA256 79ae2cf39d3f6c4a91201d8dad549d1d774b3420073c5a70d390040aa965a7fb SHA512 37d413fdd96ce6b15ae20ca5028331498586044cfc7a6ab0acb99201b04063c69bcd06867f2dc33237b244ce2870a1c5a4be3cbe4560f2461894f46f8d5dbdd7 WHIRLPOOL 9fab4118e866e11a7742ba63d7f681490d43718a329416fb742e268fdf56f348bc9f1f2b5229fbaac98ce78f41fc1e9e5aa7587ee120fcccaba752ff4bac1555
diff --git a/net-misc/tigervnc/files/tigervnc.confd b/net-misc/tigervnc/files/tigervnc.confd
new file mode 100644
index 0000000..e651dbb
--- /dev/null
+++ b/net-misc/tigervnc/files/tigervnc.confd
@@ -0,0 +1,9 @@
+# Config file for /etc/init.d/tigervnc
+
+# Specify the user(s) Xvnc(1) should be run for. The syntax is: "username:display".
+# example: "DISPLAYS="foo:1 bar:2" You can specify more users separated by space.
+# DISPLAYS="myuser:1"
+
+# Specify any of vncserver(1) and Xvnc(1) options. See the respective man pages for more information.
+# VNC_OPTS=""
+
diff --git a/net-misc/tigervnc/files/tigervnc.initd b/net-misc/tigervnc/files/tigervnc.initd
new file mode 100644
index 0000000..f1d3a40
--- /dev/null
+++ b/net-misc/tigervnc/files/tigervnc.initd
@@ -0,0 +1,73 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License, v2 or later
+# $Id$
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ -n "${DISPLAYS}" ]; then
+ if [ $1 = "start" ]; then
+ local user
+ for user in $DISPLAYS; do
+ if eval [ ! -f "~${user%%:*}/.vnc/passwd" ]; then
+ eerror "There are no passwords defined for user ${user%%:*}."
+ return 1
+ elif [ -e "/tmp/.X11-unix/X${user##*:}" ]; then
+ eerror "Display :${user##*:} appears to be already in use because of /tmp/.X11-unix/X${user##*:}"
+ eerror "Remove this file if there is no X server $HOSTNAME:${user##*:}"
+ return 1
+ elif [ -e "/tmp/.X${user##*:}-lock" ]; then
+ eerror "Display :${user##*:} appears to be already in use because of /tmp/.X${user##*:}-lock"
+ eerror "Remove this file if there is no X server $HOSTNAME:${user##*:}"
+ return 1
+ fi
+ done
+ fi
+ return 0
+ else
+ eerror 'Please define $DISPLAYS in /etc/conf.d/tigervnc'
+ return 1
+ fi
+}
+
+start() {
+ checkconfig start || return 1
+ ebegin "Starting TigerVNC server"
+ for user in $DISPLAYS; do
+ usrname=${user%%:*}
+ usropts=VNC_OPTS_${usrname}
+ usrdisp=${user##*:}
+ usrvar=$usropts"["$usrdisp"]"
+ [ -z ${!usrvar} ] && vnc_opts=$VNC_OPTS || vnc_opts=${!usrvar}
+
+ # A user may have an invalid shell, so we default to /bin/sh if its the case
+ if [ -x /usr/bin/getent ] ; then
+ usrshell=`getent passwd ${user%%:*} | cut -d: -f 7`
+ case "$usrshell" in
+ */bash|*/ksh|*/sh|*/csh|*/tcsh) ;;
+ *) shell="-s /bin/sh" ;;
+ esac
+ echo $usrshell $shell
+ fi
+
+ su ${shell} ${user%%:*} -c "source /etc/profile && cd ~${user%%:*} && vncserver :${user##*:} $vnc_opts" &>/dev/null
+ done
+ eend $?
+}
+
+stop() {
+ checkconfig stop || return 2
+ ebegin "Stopping TigerVNC server"
+ for user in $DISPLAYS; do
+ su -s /bin/sh ${user%%:*} -c "vncserver -kill :${user##*:}" &>/dev/null
+ done
+ eend $?
+}
+
+restart() {
+ svc_stop
+ svc_start
+}
diff --git a/net-misc/tigervnc/metadata.xml b/net-misc/tigervnc/metadata.xml
new file mode 100644
index 0000000..8df2e3d
--- /dev/null
+++ b/net-misc/tigervnc/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer needed -->
+ <use>
+ <flag name="drm">build with DRM support</flag>
+ <flag name="server">Build TigerVNC server</flag>
+ <flag name="xorgmodule">Build the Xorg module</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">TigerVNC/tigervnc</remote-id>
+ <remote-id type="sourceforge">tigervnc</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-misc/tigervnc/tigervnc-9999.ebuild b/net-misc/tigervnc/tigervnc-9999.ebuild
new file mode 100644
index 0000000..50b72c4
--- /dev/null
+++ b/net-misc/tigervnc/tigervnc-9999.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+CMAKE_IN_SOURCE_BUILD=1
+
+inherit git-r3 unpacker autotools cmake-utils eutils flag-o-matic java-pkg-opt-2 systemd
+
+XSERVER_VERSION="1.19.1"
+
+DESCRIPTION="Remote desktop viewer display system"
+HOMEPAGE="http://www.tigervnc.org"
+SRC_URI="
+ mirror://gentoo/${PN}.png
+ https://dev.gentoo.org/~armin76/dist/tigervnc-1.4.2-patches-0.1.tar.bz2
+ server? ( ftp://ftp.freedesktop.org/pub/xorg/individual/xserver/xorg-server-${XSERVER_VERSION}.tar.bz2 )"
+EGIT_REPO_URI="https://github.com/TigerVNC/tigervnc/"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="+drm gnutls java +opengl pam server +xorgmodule"
+
+CDEPEND="virtual/jpeg:0
+ sys-libs/zlib
+ >=x11-libs/libXtst-1.0.99.2
+ >=x11-libs/fltk-1.3.1
+ gnutls? ( net-libs/gnutls:= )
+ pam? ( virtual/pam )
+ server? (
+ dev-lang/perl
+ >=x11-libs/libXi-1.2.99.1
+ >=x11-libs/libXfont-1.4.2
+ >=x11-libs/libxkbfile-1.0.4
+ x11-libs/libXrender
+ >=x11-libs/pixman-0.27.2
+ >=x11-apps/xauth-1.0.3
+ x11-apps/xsetroot
+ >=x11-misc/xkeyboard-config-2.4.1-r3
+ opengl? ( >=app-eselect/eselect-opengl-1.3.1-r1 )
+ xorgmodule? ( =x11-base/xorg-server-${XSERVER_VERSION%.*}* )
+ drm? ( x11-libs/libdrm )
+ )"
+
+RDEPEND="${CDEPEND}
+ java? ( >=virtual/jre-1.5:* )
+ !net-misc/vnc
+ !net-misc/tightvnc
+ !net-misc/xf4vnc"
+
+DEPEND="${CDEPEND}
+ amd64? ( dev-lang/nasm )
+ x86? ( dev-lang/nasm )
+ >=x11-proto/inputproto-2.2.99.1
+ >=x11-proto/xextproto-7.2.99.901
+ >=x11-proto/xproto-7.0.26
+ java? ( >=virtual/jdk-1.5 )
+ server? (
+ virtual/pkgconfig
+ media-fonts/font-util
+ x11-misc/util-macros
+ >=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.1.3
+ >=x11-proto/glproto-1.4.17
+ >=x11-proto/randrproto-1.4.0
+ >=x11-proto/renderproto-0.11
+ >=x11-proto/resourceproto-1.2.0
+ >=x11-proto/scrnsaverproto-1.1
+ >=x11-proto/videoproto-2.2.2
+ >=x11-proto/xcmiscproto-1.2.0
+ >=x11-proto/xineramaproto-1.1.3
+ >=x11-libs/xtrans-1.3.3
+ >=x11-proto/dri2proto-2.8
+ opengl? ( >=media-libs/mesa-10.3.4-r1 )
+ )"
+
+src_unpack() {
+ git-r3_src_unpack
+ unpacker
+}
+
+PATCHES=(
+ "${WORKDIR}"/patches/030_manpages.patch
+ "${WORKDIR}"/patches/055_xstartup.patch
+)
+
+src_prepare() {
+ if use server ; then
+ cp -r "${WORKDIR}"/xorg-server-${XSERVER_VERSION}/. unix/xserver || die
+ fi
+
+ default
+
+ if use server ; then
+ cd unix/xserver || die
+ PATCH_VERSION=${XSERVER_VERSION%.*}
+ eapply ../xserver${PATCH_VERSION/./}.patch
+ eautoreconf
+ fi
+}
+
+src_configure() {
+ use arm || use hppa && append-flags "-fPIC"
+
+ local mycmakeargs=(
+ -DENABLE_GNUTLS=$(usex gnutls)
+ -DENABLE_PAM=$(usex pam)
+ -DBUILD_JAVA=$(usex java)
+ )
+
+ cmake-utils_src_configure
+
+ if use server; then
+ cd unix/xserver || die
+ econf \
+ $(use_enable opengl glx) \
+ $(use_enable drm libdrm) \
+ --disable-config-hal \
+ --disable-config-udev \
+ --disable-devel-docs \
+ --disable-dmx \
+ --disable-dri \
+ --disable-dri3 \
+ --disable-glamor \
+ --disable-kdrive \
+ --disable-libunwind \
+ --disable-linux-acpi \
+ --disable-record \
+ --disable-selective-werror \
+ --disable-silent-rules \
+ --disable-static \
+ --disable-tslib \
+ --disable-unit-tests \
+ --disable-xephyr \
+ --disable-xinerama \
+ --disable-xnest \
+ --disable-xorg \
+ --disable-xvfb \
+ --disable-xwin \
+ --disable-xwayland \
+ --enable-dri2 \
+ --with-pic \
+ --without-dtrace \
+ --disable-present \
+ --disable-unit-tests
+ fi
+}
+
+src_compile() {
+ cmake-utils_src_compile
+
+ if use server; then
+ # deps of the vnc module and the module itself
+ local d subdirs=(
+ fb xfixes Xext dbe $(usex opengl glx "") randr render damageext miext Xi xkb
+ composite dix mi os hw/vnc
+ )
+ for d in "${subdirs[@]}"; do
+ emake -C unix/xserver/"${d}"
+ done
+ fi
+}
+
+src_install() {
+ cmake-utils_src_install
+
+ newicon "${DISTDIR}"/tigervnc.png vncviewer.png
+ make_desktop_entry vncviewer vncviewer vncviewer Network
+
+ if use server ; then
+ emake -C unix/xserver/hw/vnc DESTDIR="${D}" install
+ if ! use xorgmodule; then
+ rm -r "${ED%/}"/usr/$(get_libdir)/xorg || die
+ else
+ rm "${ED%/}"/usr/$(get_libdir)/xorg/modules/extensions/libvnc.la || die
+ fi
+
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ systemd_douserunit contrib/systemd/user/vncserver@.service
+ else
+ local f
+ cd "${ED}" || die
+ for f in vncserver vncpasswd x0vncserver vncconfig; do
+ rm usr/bin/$f || die
+ rm usr/share/man/man1/$f.1 || die
+ done
+ fi
+}