blob: 98867942b1eb810ff49d31c31b31c75f3ece718e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
# 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..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}]
dev-python/pyxdg[${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
}
|