From nobody Tue Jun 9 14:59:18 2026 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4gZX9z0X8Cz6g7Gy for ; Tue, 09 Jun 2026 14:59:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4gZX9y73k3z42R9 for ; Tue, 09 Jun 2026 14:59:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1781017159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9VJwSf4XCbJIYc8Ymu5QgpC/R4Aiw/aYnzAaQFl4FzE=; b=uHXpLlEsCIKB0I1kUA/j+yTVZlGFzvSAcnCwnDI2ElZ6PkHWx0vzRAeJR0VfF8Ald3OYTo GUg4S7bursM73OaIE8NNo9UELeiFbLdF9koRiCOxoZ7kgbM6XxwstoBRnE7eUxhDMi3RCA eQir1kPbAT9CLdEix3M176s6ecCt36ziFvPZkxfULx8S18cUWcwNtUZYwC2j6c6+MFUQPB QVKxuJFfhutnc/2swYxYt+y6G2GUOenZ7DkFG9DR6iizYtOPqx2uDmZsTMNLaEWic/0ug4 L7kb/nkxBpbGE7ko9WdmGuBRjnwVoPFEd5eRRTQCjwjER4QKmj6U9MugIKfWFA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1781017159; a=rsa-sha256; cv=none; b=JUbXkhGMizM+myGjQ+xkV1BS2U5ndOKr6O77+2xqTB2tCMt9U2rKU0aBAVbQjsu9wpugce KlrTB9NssHizD0IPSYQh9J3Q6Gf7+02TpHJanxlBLTE/etvlagJZI2fplgiaQW5HIplFce V7n+JhQb3J4e6HZDfT++lnYnewVj0MThdJ9jTdLkj8sEuj3cCGMIejjdEhEiZVvQXU9qN1 PMObI4CP/CtQd9uwrEUcRgu892S9bVKcmeNrlB9wLPWZ5gO/ewaEjU9dp1Qs0IX737De9+ YTFPezT+EmmJvBWz5Ww5dwFer/XAy+jReszRlT+SxUkmhWaXbbgqVfzXJWF76A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1781017159; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9VJwSf4XCbJIYc8Ymu5QgpC/R4Aiw/aYnzAaQFl4FzE=; b=cUR1l6QJKRdLUJ/juF4zLtRvNLo0CQmnG5yP+cTrpV/K1Q9x5Nh95tZHZ2Obdx8tcb/t03 P/dFtDfteoZj02fGqMNK29zvBC3kdUnEGZVm9ihocC8QfdtAkxEv/kRVU1eiQci3qmyUDe BmUd+zJYyAtAY/wO8P0DbOSdI11a65ZBROQf5W3+llipSbBEzK/5AjTI5XtIDmdKZa8x0w 0f/gb2Q/CmQVIPuBj9CcwIAmTNsyGUnFjdHkszgneVj8u+dQZPHY8YqqHP4Paa0A6IWwJU 2aKwohOEA/VGh/WKuA8LaLxwPT6qdAzCu7d8JXIByj2TT2RNpy4TUEDPWnQBPA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4gZX9y6BwgzgCQ for ; Tue, 09 Jun 2026 14:59:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 19ca2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 09 Jun 2026 14:59:18 +0000 To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Mateusz Piotrowski <0mp@FreeBSD.org> Subject: git: 0de6f87f3fa8 - main - biology/linux-foldingathome: Add manual page fahclient(8) and clean up List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-all@freebsd.org Sender: owner-dev-commits-ports-all@FreeBSD.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: 0mp X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 0de6f87f3fa8e48fa695d4ed3bca09c9e479aab2 Auto-Submitted: auto-generated Date: Tue, 09 Jun 2026 14:59:18 +0000 Message-Id: <6a282a46.19ca2.2cbe2a48@gitrepo.freebsd.org> The branch main has been updated by 0mp: URL: https://cgit.FreeBSD.org/ports/commit/?id=0de6f87f3fa8e48fa695d4ed3bca09c9e479aab2 commit 0de6f87f3fa8e48fa695d4ed3bca09c9e479aab2 Author: Mateusz Piotrowski <0mp@FreeBSD.org> AuthorDate: 2026-06-09 13:54:13 +0000 Commit: Mateusz Piotrowski <0mp@FreeBSD.org> CommitDate: 2026-06-09 14:58:33 +0000 biology/linux-foldingathome: Add manual page fahclient(8) and clean up Move all documentation to fahclient.8. Reference the new manual page from pkg-message and the rc script. Remove outdated --chdir handling. The flag is gone from fah-client and rc(8) handles that automatically. Remove an incorrect description of what fahclient_flags does. Allow fahclient_team and fahclient_donor to be empty. This way we avoid warnings when the configuration file overrides the command-line flags, e.g.: 14:25:24:W :Option 'user' already set to 'Anonymous' reseting to '0mp'. 14:25:24:W :Option 'team' already set to '11743' reseting to '11743'. Pass --log-to-screen=true to showconfig's flags. This way we can see again the configuration. Improve quoting of variables in fahclient. Update to the v8.5 branch is currently blocked by some missing libraries. It seems that we would need to add a Rocky Linux 9.7 version of bzip2 to proceed. --- biology/linux-foldingathome/Makefile | 4 +- biology/linux-foldingathome/files/fahclient.8.in | 181 +++++++++++++++++++++++ biology/linux-foldingathome/files/fahclient.in | 71 ++------- biology/linux-foldingathome/files/pkg-message.in | 84 +---------- biology/linux-foldingathome/pkg-plist | 1 + 5 files changed, 198 insertions(+), 143 deletions(-) diff --git a/biology/linux-foldingathome/Makefile b/biology/linux-foldingathome/Makefile index 6b8c70ff3e5d..85ecf868cc1c 100644 --- a/biology/linux-foldingathome/Makefile +++ b/biology/linux-foldingathome/Makefile @@ -1,5 +1,6 @@ PORTNAME= foldingathome DISTVERSION= 8.4.9 +PORTREVISION= 1 CATEGORIES= biology linux MASTER_SITES= https://download.foldingathome.org/releases/public/fah-client/ PKGNAMEPREFIX= linux- @@ -27,7 +28,7 @@ ETCDIR= ${PREFIX}/etc/fahclient DOCSDIR= ${PREFIX}/share/doc/fahclient NO_BUILD= yes -SUB_FILES= pkg-message +SUB_FILES= fahclient.8 pkg-message SUB_LIST= FAHCLIENT_CONFIG_XML=${_FAHCLIENT_CONFIG_XML} \ FAHCLIENT_PROGRAM=${_FAHCLIENT_PROGRAM} \ FAHCLIENT_WORK_DIR=${_FAHCLIENT_WORK_DIR} @@ -60,6 +61,7 @@ do-install: ${INSTALL_DATA} ${FILESDIR}/config.xml.sample \ ${STAGEDIR}${_FAHCLIENT_CONFIG_XML}.sample @${MKDIR} ${STAGEDIR}${_FAHCLIENT_WORK_DIR} + ${INSTALL_MAN} ${WRKDIR}/fahclient.8 ${STAGEDIR}${PREFIX}/share/man/man8 post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} diff --git a/biology/linux-foldingathome/files/fahclient.8.in b/biology/linux-foldingathome/files/fahclient.8.in new file mode 100644 index 000000000000..042d1ecd99ca --- /dev/null +++ b/biology/linux-foldingathome/files/fahclient.8.in @@ -0,0 +1,181 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2020-2026 Mateusz Piotrowski <0mp@FreeBSD.org> +.\" +.Dd June 9, 2026 +.Dt FAHCLIENT 8 +.Os +.Sh NAME +.Nm fahclient +.Nd service daemon for the Folding@home Client +.Sh SYNOPSIS +.Nm +.Ar command Op Ar args ... +.Nm +.Cm log +.Nm +.Cm showconfig +.Sh DESCRIPTION +.Nm +is an +.Xr rc 8 +daemon for the Folding@home Client. +.Pp +Configure +.Nm +with the following +.Xr rc.conf 5 +variables: +.Bl -tag -width fahclient_extra_flags -offset 2n +.It Va fahclient_enable +Toggle to enable +.Nm . +Default: +.Dq NO . +.It Va fahclient_chdir +Working directory of +.Nm . +Default: +.Dq Pa %%FAHCLIENT_WORK_DIR%% . +.It Va fahclient_config +Configuration file. +Default: +.Dq Pa %%ETCDIR%%/config.xml . +.It Va fahclient_donor +Donor to attribute work units to. +Settings in the configuration file take precedence. +Default: +.Dq Anonymous . +.It Va fahclient_extra_flags +Extra flags passed to the Folding@home Client after other flags. +Default: empty. +.It Va fahclient_flags +Extra flags passed to +.Xr daemon 8 +before any other flags. +Default: empty. +.It Va fahclient_logfile +Log file. +Takes precedence over settings in the configuration file. +Default: +.Dq Pa %%FAHCLIENT_WORK_DIR%%/log.txt . +.It Va fahclient_team +Folding@home team to join and attribute work units to. +Settings in the configuration file take precedence. +Default: +.Ql 11743 , +Team +.Fx . +.It Va fahclient_pidfile +PID file. +Default: +.Dq Pa %%FAHCLIENT_WORK_DIR%%/fahclient.pid . +.It Va fahclient_user +System user to run +.Nm fahclient +as. +Default: +.Ql fahclient . +.El +.Pp +.Nm +supports the following extra commands: +.Bl -tag -width showconfig -offset 2n +.It Cm log +View +.Nm Ap s +folding logs. +.It Cm showconfig +Show the final configuration of +.Nm +after all configuration files and command-line flags are processed. +.El +.Pp +The Web Dashboard is available at +.Lk https://v8-4.foldingathome.org/ +and +.Lk http://localhost:7396/ +when +.Nm +is running. +Visit the Web Dashboard to connect +.Nm +to a Folding@home Account and manage folding work. +.Pp +Link +.Nm +to an existing account with an Account Token. +Generate it on the Web Dashboard. +Add the Account Token to either the configuration file +or specify it a command-line argument to +.Nm : +.Dl sysrc fahclient_extra_flags+=" --account-token=" +.Pp +Refer to the Folding@home Client's help message for more usage +information: +.Dl %%FAHCLIENT_PROGRAM%% --help +.Sh FILES +.Bl -tag -width "%%FAHCLIENT_PROGRAM%%" +.It Pa %%FAHCLIENT_PROGRAM%% +Folding@home Client program invoked by the +.Nm +daemon. +.Sh EXAMPLES +.Ss Example 1: Quick Start +Start +.Nm +by executing the following steps: +.Bd -literal -offset indent +# Mount linprocfs(5) at /compat/linux/proc: +mount -t linprocfs linprocfs /compat/linux/proc +# Mount linsysfs(5) at /compat/linux/proc: +mount -t linsysfs linsysfs /compat/linux/sys +# Enable fahclient: +service fahclient enable +# Optionally, set the desired donor name: +sysrc fahclient_donor="Anonymous" +# Start fahclient: +service fahclient start +.Ed +.Pp +Open the Folding@home Web Dashboard to finish the setup. +.Pp +Add +.Xr linprocfs 5 +and +.Xr linsysfs 5 +entries to +.Xr fstab 5 +to make the setup persistent across reboots. +.Sh SEE ALSO +.Lk https://foldingathome.org/guides/v8-4-client-guide/ "Folding@home v8.4 Client Guide" +.Pp +.Lk https://foldingathome.org/faq/ "Folding@home FAQ" +.Pp +.Lk https://foldingforum.org/ "Folding Forum" +.Pp +.Lk https://stats.foldingathome.org/team/11743 "Team FreeBSD Statistics" +.Sh HISTORY +Team +.Fx +was founded by +.An Frank Mayhar . +.Sh AUTHORS +The +.Nm +manual page was written by +.An Mateusz Piotrowski Aq Mt 0mp@FreeBSD.org . +.Sh CAVEATS +The working directory of +.Nm +must have the execute permissions enabled to function properly. +For example, on a +.Xr zfs 4 +dataset where +.Pa %%FAHCLIENT_WORK_DIR%% +is located the +.Ql exec +property +must be set to +.Ql on . diff --git a/biology/linux-foldingathome/files/fahclient.in b/biology/linux-foldingathome/files/fahclient.in index 8cc7e80e0d7d..b7933e380b74 100644 --- a/biology/linux-foldingathome/files/fahclient.in +++ b/biology/linux-foldingathome/files/fahclient.in @@ -2,59 +2,15 @@ # SPDX-License-Identifier: BSD-2-Clause # -# Copyright (c) 2020 Mateusz Piotrowski <0mp@FreeBSD.org> +# Copyright (c) 2020-2026 Mateusz Piotrowski <0mp@FreeBSD.org> # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# 1. Redistributions of source code must retain the above copyright notice, -# this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. # PROVIDE: fahclient # REQUIRE: DAEMON LOGIN NETWORKING linux # -# Add the following lines to /etc/rc.conf to enable nginx: -# fahclient_enable (bool): Set to "NO" by default. -# Set it to "YES" to enable fahclient. -# fahclient_user (str): Default: "fahclient" -# User to run fahclient as. -# fahclient_chdir (str): Default: "%%FAHCLIENT_WORK_DIR%%" -# Directory to chdir before starting fahclient. -# fahclient_config (str): Default: "%%ETCDIR%%/config.xml" -# Path to fahclient configuration file. -# fahclient_donor (str): Default: "Anonymous" -# Donor to attribute work units to. -# Settings in fahclient_config take precedence. -# fahclient_team (str): Default: "11743" (FreeBSD Team) -# Team to attribute work units to. -# Settings in fahclient_config take precedence. -# fahclient_pidfile (str): Default: "%%FAHCLIENT_WORK_DIR%%/fahclient.pid" -# Path to PID file. -# fahclient_logfile (str): Default: "%%FAHCLIENT_WORK_DIR%%/log.txt" -# Path to log file. Takes precedence over -# settings in fahclient_config. -# fahclient_flags (str): Default: "" -# Extra flags passed to start command *before* -# other options. -# fahclient_extra_flags (str): Defaults to "" -# Extra flags passed to start command *after* -# other options. +# Refer to to the fahclient(8) manual page for the configuration instructions. +# . /etc/rc.subr @@ -66,11 +22,13 @@ load_rc_config 'fahclient' # Default settings. : "${fahclient_enable:=NO}" : "${fahclient_user:=fahclient}" +# The program is going to create a lot of files in its working directory, +# so make sure that they all land in a sensible place. : "${fahclient_chdir:=%%FAHCLIENT_WORK_DIR%%}" : "${fahclient_svcj_options:=net_basic}" -: "${fahclient_donor:=Anonymous}" -: "${fahclient_team:=11743}" +: "${fahclient_donor=Anonymous}" +: "${fahclient_team=11743}" : "${fahclient_pidfile:=%%FAHCLIENT_WORK_DIR%%/fahclient.pid}" : "${fahclient_config:=%%ETCDIR%%/config.xml}" @@ -81,35 +39,28 @@ procname="%%FAHCLIENT_PROGRAM%%" command="/usr/sbin/daemon" command_args="-p ${pidfile} -- ${procname}" # Some notes on the specified options: -# - fahclient_flags are passed in before other options by the rc -# framework. # - --user sets the donor work units are attributed to (config file takes # precedence). # - --team sets the team work units are attributed to (cfg file takes # precedence). # - --config is necessary to point the program to the correct configuration # file. -# - --chdir is used to switch to a desired work directory. The program is going -# to create a lot of files in its current working directory so should not be -# just any directory on the system. # - fahclient_extra_flags are passed in after all other options. _fahclient_command_args= -_fahclient_command_args="${_fahclient_command_args} --user=${fahclient_donor}" -_fahclient_command_args="${_fahclient_command_args} --team=${fahclient_team}" +_fahclient_command_args="${_fahclient_command_args} ${fahclient_donor:+--user=${fahclient_donor}}" +_fahclient_command_args="${_fahclient_command_args} ${fahclient_team:+--team=${fahclient_team}}" _fahclient_command_args="${_fahclient_command_args} --config=${fahclient_config}" -#_fahclient_command_args="${_fahclient_command_args} --chdir=${fahclient_chdir}" _fahclient_command_args="${_fahclient_command_args} --log=${fahclient_logfile}" -_fahclient_command_args="${_fahclient_command_args} --log-rotate-dir=$(dirname ${fahclient_logfile})" +_fahclient_command_args="${_fahclient_command_args} --log-rotate-dir=$(dirname "${fahclient_logfile}")" _fahclient_command_args="${_fahclient_command_args} --log-to-screen=false" _fahclient_command_args="${_fahclient_command_args} ${fahclient_extra_flags}" command_args="${command_args} ${_fahclient_command_args}" extra_commands="log showconfig" log_cmd="tail -F -- ${fahclient_logfile}" -showconfig_cmd="${procname} ${fahclient_flags} ${_fahclient_command_args} --print" +showconfig_cmd="${procname} ${_fahclient_command_args} --log-to-screen=true --print" if [ -n "$fahclient_user" ]; then showconfig_cmd="su -m $fahclient_user -c 'sh -c \"$showconfig_cmd\"'" fi required_modules='linprocfs linsysfs linux64:linux64elf' -cd ${fahclient_chdir} run_rc_command "$1" diff --git a/biology/linux-foldingathome/files/pkg-message.in b/biology/linux-foldingathome/files/pkg-message.in index 3df201f3a973..12239a7c1488 100644 --- a/biology/linux-foldingathome/files/pkg-message.in +++ b/biology/linux-foldingathome/files/pkg-message.in @@ -1,88 +1,8 @@ [ { type: install message: <