git: d9d158c21913 - main - devel/jenkins{,-lts}: Fix rc script output handling

Li-Wen Hsu <[email protected]> Thu, 06 Aug 2026 01:30:24 +0000
Newsgroups gmane.os.freebsd.devel.cvs.ports
Message-ID <[email protected]>
The branch main has been updated by lwhsu:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d9d158c2191330894d27f12a48fe8808c56ccda5

commit d9d158c2191330894d27f12a48fe8808c56ccda5
Author:     Li-Wen Hsu <[email protected]>
AuthorDate: 2026-08-06 01:30:17 +0000
Commit:     Li-Wen Hsu <[email protected]>
CommitDate: 2026-08-06 01:30:17 +0000

    devel/jenkins{,-lts}: Fix rc script output handling
    
    - Add -f to daemon(8) so the service does not keep the caller's
      terminal or pipe open.  Before this, `service jenkins restart | tail`
      hung forever.
    - Let rc.subr handle the user switch instead of a custom start_cmd.
    
    Sponsored by:   The FreeBSD Foundation
---
 devel/jenkins-lts/Makefile         |  1 +
 devel/jenkins-lts/files/jenkins.in | 14 ++++++--------
 devel/jenkins/Makefile             |  1 +
 devel/jenkins/files/jenkins.in     | 14 ++++++--------
 4 files changed, 14 insertions(+), 16 deletions(-)

diff --git a/devel/jenkins-lts/Makefile b/devel/jenkins-lts/Makefile
index fbba82037b01..3bef58166d36 100644
--- a/devel/jenkins-lts/Makefile
+++ b/devel/jenkins-lts/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	jenkins
 PORTVERSION=	2.568.2
+PORTREVISION=	1
 CATEGORIES=	devel java
 MASTER_SITES=	https://get.jenkins.io/war-stable/${PORTVERSION}/
 PKGNAMESUFFIX=	-lts
diff --git a/devel/jenkins-lts/files/jenkins.in b/devel/jenkins-lts/files/jenkins.in
index 52dcaf5274c5..5ef3927bbbf3 100644
--- a/devel/jenkins-lts/files/jenkins.in
+++ b/devel/jenkins-lts/files/jenkins.in
@@ -38,6 +38,10 @@
 #   Set to "%%JENKINS_LOG_FILE%%" by default.
 #   Log file location.
 #
+# jenkins_env (str):
+#   Set to "HOME=${jenkins_home}" by default.
+#   Environment variables for the jenkins process.
+#
 
 . /etc/rc.subr
 
@@ -54,16 +58,16 @@ load_rc_config "${name}"
 : ${jenkins_user="%%JENKINS_USER%%"}
 : ${jenkins_group="%%JENKINS_GROUP%%"}
 : ${jenkins_log_file="%%JENKINS_LOG_FILE%%"}
+: ${jenkins_env="HOME=${jenkins_home}"}
 
 pidfile=/var/run/jenkins/jenkins.pid
 command=/usr/sbin/daemon
 java_cmd="${jenkins_java_home}/bin/java"
 procname="${java_cmd}"
-command_args="-p ${pidfile} ${java_cmd} -DJENKINS_HOME=${jenkins_home} ${jenkins_java_opts} -jar %%DATADIR%%/jenkins.war ${jenkins_args} --logfile=${jenkins_log_file}"
+command_args="-f -p ${pidfile} ${java_cmd} -DJENKINS_HOME=${jenkins_home} ${jenkins_java_opts} -jar %%DATADIR%%/jenkins.war ${jenkins_args} --logfile=${jenkins_log_file}"
 required_files="${java_cmd}"
 
 start_precmd=jenkins_prestart
-start_cmd=jenkins_start
 
 jenkins_prestart()
 {
@@ -75,10 +79,4 @@ jenkins_prestart()
 	fi
 }
 
-jenkins_start()
-{
-	check_startmsgs && echo "Starting ${name}."
-	su -l ${jenkins_user} -c "exec ${command} ${command_args} ${rc_arg}"
-}
-
 run_rc_command "$1"
diff --git a/devel/jenkins/Makefile b/devel/jenkins/Makefile
index 9ec892e10049..4682ea724e40 100644
--- a/devel/jenkins/Makefile
+++ b/devel/jenkins/Makefile
@@ -1,5 +1,6 @@
 PORTNAME=	jenkins
 PORTVERSION=	2.576
+PORTREVISION=	1
 CATEGORIES=	devel java
 MASTER_SITES=	https://get.jenkins.io/war/${PORTVERSION}/
 DISTNAME=	jenkins
diff --git a/devel/jenkins/files/jenkins.in b/devel/jenkins/files/jenkins.in
index 52dcaf5274c5..5ef3927bbbf3 100644
--- a/devel/jenkins/files/jenkins.in
+++ b/devel/jenkins/files/jenkins.in
@@ -38,6 +38,10 @@
 #   Set to "%%JENKINS_LOG_FILE%%" by default.
 #   Log file location.
 #
+# jenkins_env (str):
+#   Set to "HOME=${jenkins_home}" by default.
+#   Environment variables for the jenkins process.
+#
 
 . /etc/rc.subr
 
@@ -54,16 +58,16 @@ load_rc_config "${name}"
 : ${jenkins_user="%%JENKINS_USER%%"}
 : ${jenkins_group="%%JENKINS_GROUP%%"}
 : ${jenkins_log_file="%%JENKINS_LOG_FILE%%"}
+: ${jenkins_env="HOME=${jenkins_home}"}
 
 pidfile=/var/run/jenkins/jenkins.pid
 command=/usr/sbin/daemon
 java_cmd="${jenkins_java_home}/bin/java"
 procname="${java_cmd}"
-command_args="-p ${pidfile} ${java_cmd} -DJENKINS_HOME=${jenkins_home} ${jenkins_java_opts} -jar %%DATADIR%%/jenkins.war ${jenkins_args} --logfile=${jenkins_log_file}"
+command_args="-f -p ${pidfile} ${java_cmd} -DJENKINS_HOME=${jenkins_home} ${jenkins_java_opts} -jar %%DATADIR%%/jenkins.war ${jenkins_args} --logfile=${jenkins_log_file}"
 required_files="${java_cmd}"
 
 start_precmd=jenkins_prestart
-start_cmd=jenkins_start
 
 jenkins_prestart()
 {
@@ -75,10 +79,4 @@ jenkins_prestart()
 	fi
 }
 
-jenkins_start()
-{
-	check_startmsgs && echo "Starting ${name}."
-	su -l ${jenkins_user} -c "exec ${command} ${command_args} ${rc_arg}"
-}
-
 run_rc_command "$1"