summaryrefslogtreecommitdiff
path: root/net-misc/chrome-remote-desktop
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/chrome-remote-desktop')
-rw-r--r--net-misc/chrome-remote-desktop/Manifest6
-rw-r--r--net-misc/chrome-remote-desktop/chrome-remote-desktop-88.0.4324.33.ebuild141
-rw-r--r--net-misc/chrome-remote-desktop/files/chrome-remote-desktop-44.0.2403.44-always-sudo.patch20
-rw-r--r--net-misc/chrome-remote-desktop/files/chrome-remote-desktop.conf.d7
-rw-r--r--net-misc/chrome-remote-desktop/files/chrome-remote-desktop.rc65
-rw-r--r--net-misc/chrome-remote-desktop/metadata.xml10
6 files changed, 249 insertions, 0 deletions
diff --git a/net-misc/chrome-remote-desktop/Manifest b/net-misc/chrome-remote-desktop/Manifest
new file mode 100644
index 000000000000..d6f71e651cb5
--- /dev/null
+++ b/net-misc/chrome-remote-desktop/Manifest
@@ -0,0 +1,6 @@
+AUX chrome-remote-desktop-44.0.2403.44-always-sudo.patch 820 BLAKE2B f1e2c9d3a7bf2d53407b9ee4e4f34bf915d59502799bc4d38c9886d6c216dafb8ad957229a454da2ff750b00bc967e668cb022b06d4ad382e7427d61907970a1 SHA512 aa35c9e81b056fded2ff95b6fc7ab9cf3bb89282513b7bf1a04a9d25567d0e59da9c8c9877500e7290e40d712f4be06ae8b482d3f830d818ea5897e6ffde248b
+AUX chrome-remote-desktop.conf.d 283 BLAKE2B a0146298fa2e18e16911587de10aa3dd229cfb26a2d1865637cc4c69c317f4cb303b98daa7f91b6e69cc34c6fbbab3d19332396d4f5c11eeef4958401e26ff14 SHA512 5391c4a2d5787047f773abbf1c5a9dd3842160d768122edc32f0a0275e198882a41a3ca88526d52347f89d1fb4e1a51b6dc785c4dd4a0c0b5935e1e6eff30f49
+AUX chrome-remote-desktop.rc 1183 BLAKE2B d1d56ac91a2ced2c6f13019f9d5c7f1d554c2fbd3f57842d6d0b791f2e90233e4d6e8a49155b634a5e20c0bad212a5bc5f63924b1a83d45db01b1fd69445fa07 SHA512 831391b6fcaeeda476a3064d6fff1fdcebb8037aba124814a81ad4a1336a68973f319a003d1ed0938eea68f5ddad179fe29fb12efa05fd204f7fa9c5fb8dd735
+DIST chrome-remote-desktop_88.0.4324.33_amd64.deb 33645072 BLAKE2B 5fc565c3a27307e46ff307ad2e68a9a390b5fb86be9d3d8bb5f82f3d22013f70af18002c888d5df82956b6f33b3397cf2cb8b9a7e4c07db480ead81abbb5743c SHA512 0cf6ebe8ce916874be79255faf870b20df892ce4825902996685416cedd8d8ef52215e7f278301fd6ff11e2cbc3b2e82078d7b0ee23ab35669760b1102d5827e
+EBUILD chrome-remote-desktop-88.0.4324.33.ebuild 4716 BLAKE2B 32dd5fc913b4240e91d6bb62817e4d7fe1028ba93b1e51a0022e99e7e2bef4893b1e18c38bdd1da462bd1bd37ee84618a974cff71ec3947318177a5902aaa3f3 SHA512 6c8053cfb1137594e206b16a24bb1e765b2554c4159998cda82c499310cd3adae4466cec09d5d21d6f76664f00e56b0684b1a6fd4383d1941325aea017b77f51
+MISC metadata.xml 324 BLAKE2B 06aa537ecdc6bbcacbbfd245dfb6400f988a9479963032ba1f8734445342cb22cb943e8cbb77f1c1fb8a6f175506b19606ca43aafda5c503c6b38f36ece15a90 SHA512 0b117b42b32bda19d274c55a1673115eabdea39cd77fb5498d72040fa3eb1666c5e990b64918bf20fee113c42e8cba5888544621d284aa9db95fe895d805c121
diff --git a/net-misc/chrome-remote-desktop/chrome-remote-desktop-88.0.4324.33.ebuild b/net-misc/chrome-remote-desktop/chrome-remote-desktop-88.0.4324.33.ebuild
new file mode 100644
index 000000000000..ace3c7112e56
--- /dev/null
+++ b/net-misc/chrome-remote-desktop/chrome-remote-desktop-88.0.4324.33.ebuild
@@ -0,0 +1,141 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Base URL: https://dl.google.com/linux/chrome-remote-desktop/deb/
+# Fetch the Release file:
+# https://dl.google.com/linux/chrome-remote-desktop/deb/dists/stable/Release
+# Which gives you the Packages file:
+# https://dl.google.com/linux/chrome-remote-desktop/deb/dists/stable/main/binary-i386/Packages
+# https://dl.google.com/linux/chrome-remote-desktop/deb/dists/stable/main/binary-amd64/Packages
+# And finally gives you the file name:
+# pool/main/c/chrome-remote-desktop/chrome-remote-desktop_29.0.1547.32_amd64.deb
+#
+# Use curl to find the answer:
+# curl -q https://dl.google.com/linux/chrome-remote-desktop/deb/dists/stable/main/binary-amd64/Packages | grep ^Filename
+
+EAPI="7"
+
+PYTHON_COMPAT=( python3_{7,8,9} )
+PLOCALES="am ar bg bn ca cs da de el en_GB en es_419 es et fa fil fi fr gu he hi hr hu id it ja kn ko lt lv ml mr ms nb nl pl pt_BR pt_PT ro ru sk sl sr sv sw ta te th tr uk vi zh_CN zh_TW"
+
+inherit unpacker python-single-r1 l10n
+
+DESCRIPTION="access remote computers via Chrome!"
+PLUGIN_URL="https://chrome.google.com/remotedesktop"
+HOMEPAGE="https://support.google.com/chrome/answer/1649523
+ https://chrome.google.com/remotedesktop"
+BASE_URI="https://dl.google.com/linux/chrome-remote-desktop/deb/pool/main/c/${PN}/${PN}_${PV}"
+SRC_URI="amd64? ( ${BASE_URI}_amd64.deb )"
+
+LICENSE="google-chrome"
+SLOT="0"
+KEYWORDS="-* ~amd64"
+IUSE="xrandr"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="bindist mirror"
+
+# Packages we execute, but don't link.
+RDEPEND="app-admin/sudo
+ ${PYTHON_DEPS}"
+# All the libs this package links against.
+RDEPEND+="
+ >=dev-libs/expat-2
+ dev-libs/glib:2
+ dev-libs/nspr
+ dev-libs/nss
+ $(python_gen_cond_dep 'dev-python/psutil[${PYTHON_USEDEP}]')
+ gnome-base/gconf:2
+ media-libs/fontconfig
+ media-libs/freetype:2
+ sys-apps/dbus
+ sys-devel/gcc
+ sys-libs/glibc
+ sys-libs/pam
+ x11-apps/xdpyinfo
+ x11-apps/setxkbmap
+ x11-libs/cairo
+ x11-libs/gtk+:3
+ x11-libs/libX11
+ x11-libs/libxcb
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXrandr
+ x11-libs/libXtst
+ x11-libs/pango"
+# Settings we just need at runtime.
+# TODO: Look at switching to xf86-video-dummy & xf86-input-void instead of xvfb.
+# - The env var (CHROME_REMOTE_DESKTOP_USE_XORG) seems to be stripped before being checked.
+# - The Xorg invocation uses absolute paths with -logfile & -config which are rejected.
+# - The config takes over the active display in addition to starting up a virtual one.
+RDEPEND+="
+ xrandr? ( x11-apps/xrandr )
+ x11-base/xorg-server[xvfb]"
+DEPEND="$(unpacker_src_uri_depends)"
+
+S=${WORKDIR}
+
+QA_PREBUILT="/opt/google/chrome-remote-desktop/*"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-44.0.2403.44-always-sudo.patch #541708
+)
+
+src_prepare() {
+ default
+
+ gunzip usr/share/doc/${PN}/*.gz || die
+
+ cd opt/google/chrome-remote-desktop
+ python_fix_shebang chrome-remote-desktop
+
+ cd remoting_locales
+ rm fake-bidi* || die
+ PLOCALES=${PLOCALES//_/-} l10n_find_plocales_changes "${PWD}" '' '.pak'
+}
+
+src_install() {
+ pushd opt/google/chrome-remote-desktop/remoting_locales >/dev/null || die
+ rm_pak() { local l=${1//_/-}; rm "${l}.pak" "${l}.pak.info"; }
+ l10n_for_each_disabled_locale_do rm_pak
+ popd >/dev/null
+
+ insinto /etc
+ doins -r etc/opt
+ dosym ../opt/chrome/native-messaging-hosts /etc/chromium/native-messaging-hosts #581754
+
+ insinto /opt
+ doins -r opt/google
+ chmod a+rx "${ED}"/opt/google/${PN}/* || die
+ fperms +s /opt/google/${PN}/user-session
+
+ dodir /etc/pam.d
+ dosym system-remote-login /etc/pam.d/${PN}
+
+ dodoc usr/share/doc/${PN}/changelog*
+
+ newinitd "${FILESDIR}"/${PN}.rc ${PN}
+ newconfd "${FILESDIR}"/${PN}.conf.d ${PN}
+}
+
+pkg_postinst() {
+ if [[ -z ${REPLACING_VERSIONS} ]] ; then
+ elog "Two ways to launch the server:"
+ elog "(1) access an existing desktop"
+ elog " (a) install the Chrome plugin on the server & client:"
+ elog " ${PLUGIN_URL}"
+ elog " (b) on the server, run the Chrome plugin & enable remote access"
+ elog " (c) on the client, connect to the server"
+ elog "(2) headless system"
+ elog " (a) install the Chrome plugin on the client:"
+ elog " ${PLUGIN_URL}"
+ elog " (b) run ${EPREFIX}/opt/google/chrome-remote-desktop/start-host --help to get the auth URL"
+ elog " (c) when it redirects you to a blank page, look at the URL for a code=XXX field"
+ elog " (d) run start-host again, and past the code when asked for an authorization code"
+ elog " (e) on the client, connect to the server"
+ elog
+ elog "Configuration settings you might want to be aware of:"
+ elog " ~/.${PN}-session - shell script to start your session"
+ elog " /etc/init.d/${PN} - script to auto-restart server"
+ fi
+}
diff --git a/net-misc/chrome-remote-desktop/files/chrome-remote-desktop-44.0.2403.44-always-sudo.patch b/net-misc/chrome-remote-desktop/files/chrome-remote-desktop-44.0.2403.44-always-sudo.patch
new file mode 100644
index 000000000000..d303e5e753f9
--- /dev/null
+++ b/net-misc/chrome-remote-desktop/files/chrome-remote-desktop-44.0.2403.44-always-sudo.patch
@@ -0,0 +1,20 @@
+https://bugs.gentoo.org/541708
+
+just use `sudo` for everything
+
+--- a/opt/google/chrome-remote-desktop/chrome-remote-desktop
++++ b/opt/google/chrome-remote-desktop/chrome-remote-desktop
+@@ -1092,12 +1092,7 @@
+ logging.info("Group '%s' not found." % CHROME_REMOTING_GROUP_NAME)
+
+ command = [SCRIPT_PATH, '--add-user-as-root', user]
+- if os.getenv("DISPLAY"):
+- # TODO(rickyz): Add a Polkit policy that includes a more friendly message
+- # about what this command does.
+- command = ["/usr/bin/pkexec"] + command
+- else:
+- command = ["/usr/bin/sudo", "-k", "--"] + command
++ command = ["/usr/bin/sudo", "-k", "--"] + command
+
+ # Run with an empty environment out of paranoia, though if an attacker
+ # controls the environment this script is run under, we're already screwed
diff --git a/net-misc/chrome-remote-desktop/files/chrome-remote-desktop.conf.d b/net-misc/chrome-remote-desktop/files/chrome-remote-desktop.conf.d
new file mode 100644
index 000000000000..aa3d8919c87f
--- /dev/null
+++ b/net-misc/chrome-remote-desktop/files/chrome-remote-desktop.conf.d
@@ -0,0 +1,7 @@
+# /etc/conf.d/chrome-remote-desktop: config file for /etc/init.d/chrome-remote-desktop
+
+# List of users to start Chrome Remote Desktop for.
+CHROME_REMOTING_USERS=''
+
+# Options to pass to chrome-remote-desktop. Only the -s option is interesting.
+#OPTIONS='-s 1600x1200 -s 3840x1600'
diff --git a/net-misc/chrome-remote-desktop/files/chrome-remote-desktop.rc b/net-misc/chrome-remote-desktop/files/chrome-remote-desktop.rc
new file mode 100644
index 000000000000..272923ce6afb
--- /dev/null
+++ b/net-misc/chrome-remote-desktop/files/chrome-remote-desktop.rc
@@ -0,0 +1,65 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="checkconfig reload"
+
+CRD=/opt/google/chrome-remote-desktop/chrome-remote-desktop
+
+depend() {
+ need net
+ use logger
+}
+
+checkconfig() {
+ local ret=0
+ if [ -z "${CHROME_REMOTING_USERS}" ] ; then
+ eerror "You must set CHROME_REMOTING_USERS in /etc/conf.d/${SVCNAME} first"
+ ret=1
+ else
+ local user
+ for user in ${CHROME_REMOTING_USERS} ; do
+ if ! id "${user}" >/dev/null ; then
+ eerror "Invalid user found in CHROME_REMOTING_USERS: ${user}"
+ ret=1
+ fi
+ done
+ fi
+ return ${ret}
+}
+
+for_users() {
+ local user ret msg log
+ msg=$1; shift
+
+ for user in ${CHROME_REMOTING_USERS} ; do
+ ebegin "${msg} ${SVCNAME} for ${user}"
+
+ # We need to background the app as it won't fork until the network
+ # (including DNS) is available.
+ start-stop-daemon \
+ -b \
+ -u "${user}" \
+ -x "${CRD}" \
+ -- \
+ ${OPTIONS} \
+ "$@"
+ eend $?
+ : $(( ret |= $? ))
+ done
+
+ return ${ret}
+}
+
+start() {
+ checkconfig || return
+ for_users Starting --start
+}
+
+stop() {
+ for_users Stopping --stop
+}
+
+reload() {
+ for_users Reloading --reload
+}
diff --git a/net-misc/chrome-remote-desktop/metadata.xml b/net-misc/chrome-remote-desktop/metadata.xml
new file mode 100644
index 000000000000..09ff7ff62a4c
--- /dev/null
+++ b/net-misc/chrome-remote-desktop/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>vapier@gentoo.org</email>
+</maintainer>
+<use>
+ <flag name="xrandr">Enable support for the XRandR extension for dynamic desktop resizing</flag>
+</use>
+</pkgmetadata>