public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Leonardo Hernandez" <leohdz172@proton.me>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/proj/guru:dev commit in: www-apps/code-server-bin/, www-apps/code-server-bin/files/
Date: Fri,  9 Jun 2023 07:20:25 +0000 (UTC)	[thread overview]
Message-ID: <1686295215.6a6e0013d14ed626692045b82795de5a41ccfba8.leohdz172@gentoo> (raw)

commit:     6a6e0013d14ed626692045b82795de5a41ccfba8
Author:     Leonardo Hernández Hernández <leohdz172 <AT> proton <DOT> me>
AuthorDate: Fri Jun  9 07:19:25 2023 +0000
Commit:     Leonardo Hernandez <leohdz172 <AT> proton <DOT> me>
CommitDate: Fri Jun  9 07:20:15 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=6a6e0013

www-apps/code-server-bin: add OpenRC init script

Closes: https://bugs.gentoo.org/907847
Signed-off-by: Leonardo Hernández Hernández <leohdz172 <AT> proton.me>

 .../code-server-bin-4.13.0-r1.ebuild               | 105 +++++++++++++++++++++
 .../code-server-bin/files/code-server-bin.conf     |  13 +++
 www-apps/code-server-bin/files/code-server-bin.rc  |  47 +++++++++
 3 files changed, 165 insertions(+)

diff --git a/www-apps/code-server-bin/code-server-bin-4.13.0-r1.ebuild b/www-apps/code-server-bin/code-server-bin-4.13.0-r1.ebuild
new file mode 100644
index 000000000..35845168a
--- /dev/null
+++ b/www-apps/code-server-bin/code-server-bin-4.13.0-r1.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="${PN/-bin/}"
+MY_P="${MY_PN}-${PV}"
+BASE_URI="https://github.com/coder/${MY_PN}/releases/download/v${PV}/${MY_P}-linux"
+
+inherit systemd
+
+DESCRIPTION="VS Code in the browser (binary version with unbundled node and ripgrep)"
+HOMEPAGE="https://coder.com/"
+SRC_URI="
+	amd64? ( ${BASE_URI}-amd64.tar.gz )
+	arm64? ( ${BASE_URI}-arm64.tar.gz )
+"
+RESTRICT="test"
+LICENSE="MIT 0BSD ISC PYTHON BSD-2 BSD Apache-2.0 Unlicense LGPL-2.1+
+	|| ( BSD-2 MIT Apache-2.0 )
+	|| ( MIT WTFPL )
+	|| ( BSD GPL-2 )
+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+	${DEPEND}
+	>=net-libs/nodejs-16.0.0[ssl]
+	sys-apps/ripgrep
+	app-crypt/libsecret
+"
+
+S="${WORKDIR}/${MY_P}-linux-${ARCH}"
+
+PATCHES=( "${FILESDIR}/${PN}-node.patch" )
+
+DOCS=( "LICENSE" "README.md" "ThirdPartyNotices.txt" )
+
+QA_PREBUILT="*"
+
+# Relative
+VSCODE_MODULES="lib/vscode/node_modules"
+
+QA_PRESTRIPPED="
+	opt/${PN}/node_modules/@node-rs/argon2-linux-x64-musl/argon2.linux-x64-musl.node
+	opt/${PN}/${VSCODE_MODULES}/@parcel/watcher/prebuilds/linux-x64/node.napi.musl.node
+	opt/${PN}/${VSCODE_MODULES}/@parcel/watcher/prebuilds/linux-x64/node.napi.glibc.node
+"
+
+src_prepare() {
+	default
+
+	# We remove as much precompiled code as we can,
+	# node modules not written in JS cannot be removed
+	# thus "-bin".
+
+	# use system node
+	rm ./lib/node || die "Failed to remove bundled nodejs"
+
+	# remove bundled ripgrep binary
+	rm ./"${VSCODE_MODULES}"/@vscode/ripgrep/bin/rg \
+		|| die "Failed to remove bundled ripgrep"
+
+	# Only required at build time
+	find "${S}" -type l -name python3 -delete || die
+
+	# not needed
+	rm ./postinstall.sh || die
+
+	# For windows
+	rm -r ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/win32-x64 || die
+
+	if [[ $ELIBC != "musl" ]]; then
+		rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/linux-x64/node.napi.musl.node || die
+	elif [[ $ELIBC != "glibc" ]]; then
+		rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/linux-x64/node.napi.glibc.node || die
+		rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/darwin-x64/node.napi.glibc.node || die
+		rm ./"${VSCODE_MODULES}"/@parcel/watcher/prebuilds/darwin-arm64/node.napi.glibc.node || die
+	fi
+
+	rm -r ./lib/vscode/extensions/node_modules/.bin || die
+}
+
+src_install() {
+	einstalldocs
+
+	insinto "/opt/${PN}"
+	doins -r .
+	fperms +x "/opt/${PN}/bin/${MY_PN}"
+	dosym -r "/opt/${PN}/bin/${MY_PN}" "/opt/${PN}/bin/${PN}"
+	dosym -r "/opt/${PN}/bin/${PN}" "${EPREFIX}/usr/bin/${PN}"
+
+	dosym -r "/usr/bin/rg" \
+		"${EPREFIX}/opt/${PN}/${VSCODE_MODULES}/@vscode/ripgrep/bin/rg"
+
+	systemd_douserunit "${FILESDIR}/${PN}.service"
+	newinitd "${FILESDIR}/${PN}.rc" "${PN}"
+	newconfd "${FILESDIR}/${PN}.conf" "${PN}"
+}
+
+pkg_postinst() {
+	elog "When using code-server systemd service run it as a user"
+	elog "For example: 'systemctl --user enable --now code-server'"
+}

diff --git a/www-apps/code-server-bin/files/code-server-bin.conf b/www-apps/code-server-bin/files/code-server-bin.conf
new file mode 100644
index 000000000..336f7bc71
--- /dev/null
+++ b/www-apps/code-server-bin/files/code-server-bin.conf
@@ -0,0 +1,13 @@
+# /etc/conf.d/code-server-bin: config file for /etc/init.d/code-server-bin.<user>
+# This can also be used as multiplexed configuration, i.e. openrc-run
+# looks for both /etc/conf.d/code-server-bin and /etc/conf.d/code-server-bin.<user>.
+
+# Options to pass to code-server-bin.
+# NOTE: if you want to run multiple instances, be make sure to change
+# the port for each one (it is preferred to use the configuration file).
+#command_args="--port 8080"
+
+# Specify the network service that corresponds to the "bind-addr" setting
+# in your configuration file. For example, if you bind to 127.0.0.1,
+# this should be set to "loopback" which provides the loopback interface.
+rc_need="loopback"

diff --git a/www-apps/code-server-bin/files/code-server-bin.rc b/www-apps/code-server-bin/files/code-server-bin.rc
new file mode 100644
index 000000000..445f05a64
--- /dev/null
+++ b/www-apps/code-server-bin/files/code-server-bin.rc
@@ -0,0 +1,47 @@
+#!/sbin/openrc-run
+# Copyright 2023 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2 or later
+
+NAME=${RC_SVCNAME%%.*}
+USER=${RC_SVCNAME##*.}
+PIDFILE_DIR=/run/${NAME}/${USER}
+
+description="Start code server in the background"
+command="/usr/bin/${NAME}"
+command_user="${USER}"
+pidfile="${PIDFILE_DIR}/${NAME}.pid"
+command_background=true
+
+depend() {
+  use logger dns
+}
+
+checkconfig() {
+    if [ "${RC_VERSION:-0}" = "0" ]; then
+        eerror "This script cannot be used for baselayout-1."
+        return 1
+    fi
+
+    if [ "${USER}" = "${RC_SVCNAME}" ]; then
+	eerror "You have to create an init script for each user:"
+	eerror "ln -s emacs /etc/init.d/emacs.<user>"
+	return 1
+    fi
+
+    if ! id -u "${USER}" >/dev/null; then
+	eerror "${USER}: No such user"
+	return 1
+    fi
+
+    checkpath -d --owner 0 --mode 0755 "${PIDFILE_DIR%/*}"
+    checkpath -d --owner "${USER}" --mode 0755 "${PIDFILE_DIR}"
+}
+
+start() {
+  local home
+  checkconfig || return 1
+
+  eval home="~${USER}"
+  
+  default_start
+}


             reply	other threads:[~2023-06-09  7:20 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-09  7:20 Leonardo Hernandez [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-08-02 19:50 [gentoo-commits] repo/proj/guru:dev commit in: www-apps/code-server-bin/, www-apps/code-server-bin/files/ Leonardo Hernandez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1686295215.6a6e0013d14ed626692045b82795de5a41ccfba8.leohdz172@gentoo \
    --to=leohdz172@proton.me \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox