diff options
author | layman <layman@localhost> | 2017-01-28 00:15:16 +0100 |
---|---|---|
committer | layman <layman@localhost> | 2017-01-28 00:15:16 +0100 |
commit | 57102cf16e459aae19d9e6e3233f18accc64323a (patch) | |
tree | b756d5416d4fb1b73bbe3b3406695b6486e155c6 | |
parent | media-gfx/openscad live ebuild by Michał Górny - thanks! :-) (diff) | |
download | bleeding-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/Manifest | 3 | ||||
-rw-r--r-- | net-misc/tigervnc/files/tigervnc.confd | 9 | ||||
-rw-r--r-- | net-misc/tigervnc/files/tigervnc.initd | 73 | ||||
-rw-r--r-- | net-misc/tigervnc/metadata.xml | 14 | ||||
-rw-r--r-- | net-misc/tigervnc/tigervnc-9999.ebuild | 194 |
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 +} |