Files
Jochen Neumeister 4f23e42cfd www/code-server: Update to 4.129.0
Update to code-server 4.129.0, which bundles VS Code 1.129.0.

VS Code 1.129 changed how the built-in GitHub Copilot extension is
handled: it is now built from source during the reh-web build instead
of being fetched as a prebuilt VSIX. This requires a few build-time
workarounds:

- The copilot extension postinstall expects a platform package for the
  host. A Copilot CLI SDK distfile is provided and placed as
  @github/copilot-freebsd-x64 so the postinstall passes. GitHub Copilot
  is closed-source and not usable on FreeBSD; this only lets the build
  complete.
- The reh-web build calls ensureCopilotPlatformPackage(), which runs
  "npm pack" and thus needs network access (unavailable in poudriere).
  Providing @github/copilot-linux-x64 in remote/node_modules makes the
  function find it locally and skip the network fetch.
- Copilot bundles prebuilt Linux rg/tgrep binaries. These are replaced
  with native FreeBSD binaries from textproc/ripgrep and textproc/tgrep
  so that no Linux ELF binaries ship in the package.

Additional changes:

- Add ONLY_FOR_ARCHS=amd64; only a linux-x64 vscode-reh-web distfile is
  provided.
- Drop test/* entries from VSCODE_NODE_MODULES; test suites do not
  belong in the server package.
- Add a code_server_shell rc variable (default /bin/sh) so the built-in
  terminal works when the service runs as nobody, whose login shell is
  /usr/sbin/nologin.
- Fix ${PREFIX} expansion in pkg-message.

Sponsored by:	Netzkommune GmbH
2026-07-19 02:21:03 +02:00

79 lines
2.4 KiB
Bash

#!/bin/sh
# PROVIDE: code_server
# REQUIRE: LOGIN NETWORKING DAEMON
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable code-server:
#
# code_server_enable="YES"
#
# Optional settings:
#
# code_server_run_user="nobody"
# code_server_run_group="nobody"
# code_server_config="%%PREFIX%%/etc/code-server/config.yaml"
# code_server_host="127.0.0.1"
# code_server_port="8080"
# code_server_auth="password"
# code_server_user_data_dir="/var/db/code-server/user-data"
# code_server_extensions_dir="/var/db/code-server/extensions"
# code_server_shell="/bin/sh"
# code_server_extra_args=""
. /etc/rc.subr
name="code_server"
rcvar="code_server_enable"
load_rc_config "${name}"
: ${code_server_enable:="NO"}
: ${code_server_run_user:="nobody"}
: ${code_server_run_group:="nobody"}
: ${code_server_config:="%%PREFIX%%/etc/code-server/config.yaml"}
: ${code_server_host:="127.0.0.1"}
: ${code_server_port:="8080"}
: ${code_server_auth:="password"}
: ${code_server_user_data_dir:="/var/db/code-server/user-data"}
: ${code_server_extensions_dir:="/var/db/code-server/extensions"}
: ${code_server_shell:="/bin/sh"}
: ${code_server_extra_args:=""}
pidfile="/var/run/code-server/${name}.pid"
command="/usr/sbin/daemon"
procname="%%LOCALBASE%%/bin/node"
command_args="-f \
-p ${pidfile} \
-u ${code_server_run_user} \
/usr/bin/env \
HOME=/var/db/code-server \
XDG_DATA_HOME=${code_server_user_data_dir} \
XDG_CONFIG_HOME=$(dirname ${code_server_config}) \
XDG_CACHE_HOME=/var/db/code-server/cache \
SHELL=${code_server_shell} \
%%PREFIX%%/bin/code-server \
--config ${code_server_config} \
--host ${code_server_host} \
--port ${code_server_port} \
--auth ${code_server_auth} \
--user-data-dir ${code_server_user_data_dir} \
--extensions-dir ${code_server_extensions_dir} \
${code_server_extra_args}"
start_precmd="${name}_prestart"
code_server_prestart()
{
install -d -o ${code_server_run_user} -g ${code_server_run_group} -m 0750 /var/run/code-server
install -d -o ${code_server_run_user} -g ${code_server_run_group} -m 0750 /var/db/code-server
install -d -o ${code_server_run_user} -g ${code_server_run_group} -m 0750 /var/db/code-server/cache
install -d -o ${code_server_run_user} -g ${code_server_run_group} -m 0750 ${code_server_user_data_dir}
install -d -o ${code_server_run_user} -g ${code_server_run_group} -m 0750 ${code_server_extensions_dir}
install -d -o ${code_server_run_user} -g ${code_server_run_group} -m 0750 "$(dirname "${code_server_config}")"
}
run_rc_command "$1"