This commit is contained in:
Mario Fetka
2023-04-06 11:47:15 +02:00
parent 011cd6e696
commit 1f44a2d3b4
96 changed files with 3912 additions and 51 deletions

View File

@@ -0,0 +1,6 @@
AUX chrome-remote-desktop-91.0.4472.10-always-sudo.patch 593 BLAKE2B 4cba2a4869437d2d392274c0f0586153406480eb1614297420e161285d981eedf03a4e090a309dfe55163e13387bf4c649586847ccee64dd2e88f9c7263b6b66 SHA512 f4aa5a2473c1872d06fea2611594f63c888717cd93618587b020dcb6aaeb7889443358dbc74da5c7763fb6ef08a6ecf9345d94874c582c799abbf8db8957c790
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_110.0.5481.14_amd64.deb 17742536 BLAKE2B 3a010b73f786e013aa4bf358811ab306e87681860c1db12b5e915c80b653da0a7e190ff36c78c91fa7a68a8873c7f66a23bb6bdb98630fd881b30c33f12559f7 SHA512 66a374f04664c26e15c5c42b2dbd942dd9cdbc23127733f2f1c136deff868509db80c17028b5f9cae48a460b22443f39af337313dfd865705134737d72372600
EBUILD chrome-remote-desktop-110.0.5481.14.ebuild 4812 BLAKE2B 7d7be0891730a1c34a30f2ea9713b426138f4a93baeef7c5e577bbe2e9fef53c713e6f890df93c2ea768f3b70197ec5c76ef9fedb6b93278989c59878247e467 SHA512 5d5dd89039b2ae57e6535c78044c33369150fb78af609530c9f06a98f767173588b52cc1569bba6070e04be2f48ae68b8cf193f13d0c65a7c85e7cdbabe99bcd
MISC metadata.xml 248 BLAKE2B 2545c58c45b8fd57a236bab059e0bd3da47a3e0d3881d141a9b2dc2e275a2d8f0663d83366b45103b48fd257d62a4a2314a8dd6b79113f8b86c91a90524918c5 SHA512 1397e06cb2ad5941988872f37df6f54100aaa06bfc7ef30ba394f95191ddaa1e9f2180d8eb856eb10f9646d9cbc4a6f020805470633c492519e66e3de788439a

View File

@@ -0,0 +1,144 @@
# Copyright 1999-2023 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_{9,10,11} )
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 optfeature plocale
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=""
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}]')
media-libs/fontconfig
media-libs/freetype:2
sys-apps/dbus
sys-devel/gcc
sys-libs/glibc
sys-libs/libutempter
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/libxkbcommon
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+="
x11-base/xorg-server[xvfb]"
BDEPEND="$(unpacker_src_uri_depends)"
S=${WORKDIR}
QA_PREBUILT="/opt/google/chrome-remote-desktop/*"
PATCHES=(
"${FILESDIR}"/${PN}-91.0.4472.10-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
# These isn't always included.
rm -f fake-bidi* || die
PLOCALES=${PLOCALES//_/-} plocale_find_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"; }
plocale_for_each_disabled_locale 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() {
optfeature "Dynamic resolution changes" "x11-apps/xrandr"
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
}

View File

@@ -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 @@
def run_command_as_root(command):
- 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
return subprocess.call(command)

View File

@@ -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'

View File

@@ -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
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<name>Mike Frysinger</name>
<email>vapier@gentoo.org</email>
</maintainer>
</pkgmetadata>