diff --git a/sysutils/cbsd/Makefile b/sysutils/cbsd/Makefile index 466beb26b480..6503954f6044 100644 --- a/sysutils/cbsd/Makefile +++ b/sysutils/cbsd/Makefile @@ -1,71 +1,71 @@ PORTNAME= cbsd -DISTVERSION= 13.1.23 +DISTVERSION= 13.1.24 CATEGORIES= sysutils MAINTAINER= olevole@olevole.ru COMMENT= Yet another FreeBSD Jail, XEN and Bhyve Management Utility WWW= https://www.bsdstore.ru LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libsqlite3.so:databases/sqlite3 \ libssh2.so:security/libssh2 RUN_DEPENDS= ${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss \ rsync:net/rsync \ sqlite3:databases/sqlite3 \ sudo:security/sudo USES= compiler:c++11-lang libedit pkgconfig:both USE_GITHUB= yes USE_RC_SUBR= cbsdd cbsdrsyncd cbsd-statsd-bhyve cbsd-statsd-hoster \ cbsd-statsd-jail MAKE_JOBS_UNSAFE= yes SUB_FILES= pkg-message USERS= ${PORTNAME} GROUPS= ${PORTNAME} OPTIONS_DEFINE= BHYVE_GOP OPTIONS_SUB= yes BHYVE_GOP_DESC= Include bhyve UEFI firmware with GPU PPT+GOP support CBSD_HOME?= ${PREFIX}/cbsd .include .if ${ARCH} == amd64 || ${ARCH} == i386 || ${ARCH} == x86_64 PLIST_SUB+= X86="" .else PLIST_SUB+= X86="@comment " .endif .if ${OPSYS} != FreeBSD PLIST_SUB+= FBSD="@comment " LIB_DEPENDS+= libelf.so:devel/libelf RUN_DEPENDS+= sysrc:sysutils/sysrc .else PLIST_SUB+= FBSD="" .endif do-install: @${ECHO} "Installing in ${CBSD_HOME}" ${MKDIR} ${STAGEDIR}${CBSD_HOME} ${CP} -a ${WRKSRC}/ ${STAGEDIR}${CBSD_HOME} ${INSTALL_PROGRAM} -s ${WRKSRC}/bin/cbsdsh/cbsd ${STAGEDIR}${PREFIX}/bin ${INSTALL_PROGRAM} -s ${WRKSRC}/misc/src/sipcalc/sipcalc \ ${STAGEDIR}${PREFIX}/cbsd/misc/sipcalc ${RM} -rf ${STAGEDIR}${PREFIX}/cbsd/bin/cbsdsh \ ${STAGEDIR}${PREFIX}/cbsd/bin/src \ ${STAGEDIR}${PREFIX}/cbsd/lib \ ${STAGEDIR}${PREFIX}/cbsd/misc/src \ ${STAGEDIR}${PREFIX}/cbsd/sbin/src \ ${STAGEDIR}${PREFIX}/cbsd/tools/src ${INSTALL_MAN} ${WRKSRC}/man/cbsd.8 ${STAGEDIR}${PREFIX}/man/man8/cbsd.8 post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/libexec/bsdconfig @${LN} -sf ${CBSD_HOME}/share/bsdconfig/cbsd ${STAGEDIR}${PREFIX}/libexec/bsdconfig/cbsd .include diff --git a/sysutils/cbsd/distinfo b/sysutils/cbsd/distinfo index e0f4bbb92e1d..0f0f8f9e6edd 100644 --- a/sysutils/cbsd/distinfo +++ b/sysutils/cbsd/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1676995850 -SHA256 (cbsd-cbsd-13.1.23_GH0.tar.gz) = c5c098c315fa310036ebf32c2ba05acdbcc808820a3da9bfa474064b2dca432f -SIZE (cbsd-cbsd-13.1.23_GH0.tar.gz) = 6497345 +TIMESTAMP = 1677920358 +SHA256 (cbsd-cbsd-13.1.24_GH0.tar.gz) = 7517e95f0dae287f6d62021863c3a5a6228fc7cd2297393c7e7e7cdb770bf841 +SIZE (cbsd-cbsd-13.1.24_GH0.tar.gz) = 6499073 diff --git a/sysutils/cbsd/files/cbsd-statsd-hoster.in b/sysutils/cbsd/files/cbsd-statsd-hoster.in index ae09eaae83ff..730898d63964 100644 --- a/sysutils/cbsd/files/cbsd-statsd-hoster.in +++ b/sysutils/cbsd/files/cbsd-statsd-hoster.in @@ -1,96 +1,103 @@ #!/bin/sh # # PROVIDE: cbsd_statsd_hoster # REQUIRE: LOGIN FILESYSTEMS sshd # KEYWORD: shutdown # # cbsd_statsd_hoster_enable="YES" # . /etc/rc.subr name=cbsd_statsd_hoster rcvar=cbsd_statsd_hoster_enable load_rc_config $name # Set defaults : ${cbsd_statsd_hoster_enable:="NO"} export workdir="${cbsd_workdir}" globalconf=${cbsd_globalconf:-"%%PREFIX%%/cbsd/cbsd.conf"} start_cmd=${name}_start restart_cmd=${name}_restart extra_commands="restart" command="%%PREFIX%%/cbsd/tools/racct-hoster-statsd" -pidfile="/var/run/$name.pid" +pidfile="/var/run/${name}.pid" +daemon_pidfile="/var/run/${name}-daemon.pid" +daemon_logdir="/var/log/${name}" +daemon_logfile="${daemon_logdir}/cbsd-statsd-hoster.log" + command_args="&" pidfile=/var/run/racct-hoster-statsd.pid if [ ! -f ${globalconf} ]; then echo "cbsd: no such ${globalconf}"; exit 1 fi if [ ! -f ${subr} ]; then echo "cbsd: no such ${subr}"; exit 1 fi . ${globalconf} -. ${subr} +. ${subrdir}/nc.subr cbsd_statsd_hoster_start() { local args= racct_enabled= # RACCT enabled? racct_enabled=$( /sbin/sysctl -qn kern.racct.enable ) [ $? -ne 0 ] && err 1 "cbsd-statsd-hoster: RACCT not enabled" [ "${racct_enabled}" != "1" ] && err 1 "cbsd-statsd-hoster: RACCT not enabled" readconf racct-hoster-statsd.conf [ -n "${log_file}" ] && args="${args} --log_file=${log_file}" [ -n "${log_level}" ] && args="${args} --log_level=${log_level}" [ -n "${loop_interval}" ] && args="${args} --loop_interval=${loop_interval}" [ -n "${save_loop_count}" ] && args="${args} --save_loop_count=${save_loop_count}" case "${prometheus_exporter_enable}" in [Yy][Ee][Ss]) args="${args} --prometheus_exporter=1" ;; [No][Oo]) args="${args} --prometheus_exporter=0" ;; esac case "${beanstald_enable}" in [Yy][Ee][Ss]) args="${args} --save_beanstalkd=1" ;; [No][Oo]) args="${args} --save_beanstalkd=0" ;; esac case "${sqlite3_enable}" in [Yy][Ee][Ss]) args="${args} --save_sqlite=1" ;; [No][Oo]) args="${args} --save_sqlite=0" ;; esac - exec env workdir=${cbsd_workdir} %%PREFIX%%/cbsd/tools/racct-hoster-statsd ${args} + [ ! -d ${daemon_logdir} ] && mkdir -p ${daemon_logdir} + touch ${daemon_logfile} + + /usr/sbin/daemon -f -R5 -p ${pidfile} -P ${daemon_pidfile} -o ${daemon_logfile} /usr/bin/env workdir=${cbsd_workdir} ${command} ${args} } cbsd_statsd_hoster_restart() { cbsd_statsd_hoster_stop cbsd_statsd_hoster_start } run_rc_command "$1" diff --git a/sysutils/cbsd/files/cbsdd.in b/sysutils/cbsd/files/cbsdd.in index 7508dd6632bc..cbde5558a692 100644 --- a/sysutils/cbsd/files/cbsdd.in +++ b/sysutils/cbsd/files/cbsdd.in @@ -1,121 +1,126 @@ #!/bin/sh # # PROVIDE: cbsdd # REQUIRE: LOGIN FILESYSTEMS sshd # KEYWORD: shutdown # # cbsdd_enable="YES" # . /etc/rc.subr name=cbsdd rcvar=cbsdd_enable load_rc_config $name : ${cbsdd_enable="NO"} export workdir="${cbsd_workdir}" export NO_CBSD_HISTORY=yes +# disable interactive question +export NOINTER=1 +# always answer 'no' +export ALWAYS_NO=1 + globalconf=${cbsd_globalconf:-"%%PREFIX%%/cbsd/cbsd.conf"} if [ ! -f ${globalconf} ]; then echo "cbsd: no such ${globalconf}"; exit 1 fi if [ ! -f ${mdtools} ]; then echo "cbsd: no such ${mdtools}"; exit 1 fi if [ ! -f ${subr} ]; then echo "cbsd: no such ${subr}"; exit 1 fi if [ ! -f ${localcbsdconf} ]; then echo "cbsd: no such ${localcbsdconf}"; exit 1 fi . ${globalconf} . ${mdtools} -. ${subr} +. ${subrdir}/nc.subr . ${localcbsdconf} start_precmd=${name}_prestart stop_precmd=${name}_prestop stop_cmd=${name}_stop status_cmd="${name}_status" restart_cmd=${name}_restart extra_commands="restart" command="${toolsdir}/cbsdd" pidfile="${cbsd_workdir}/var/run/$name.pid" command_args="&" cbsdd_prestart() { %%PREFIX%%/bin/cbsd task mode=flushall > /dev/null 2>&1 . ${subrdir}/initenv.subr . ${inventory} %%PREFIX%%/bin/cbsd sysinv mode=update %%PREFIX%%/bin/cbsd netinv update_netinfo ${miscdir}/sqlcli ${dbdir}/local.sqlite "UPDATE jails SET status='0' WHERE status='3'" [ -n "${nat_enable}" ] && %%PREFIX%%/bin/cbsd naton /usr/sbin/daemon -f ${rcddir}/jails-astart start } cbsdd_prestop() { ${rcddir}/jails-astart stop [ -n "${nat_enable}" ] && %%PREFIX%%/bin/cbsd natoff } cbsdd_stop() { if [ -f "${pidfile}" ]; then pids=$( pgrep -F ${pidfile} 2>&1 ) _err=$? if [ ${_err} -eq 0 ]; then kill -9 ${pids} && /bin/rm -f ${pidfile} else echo "pgrep: ${pids}" return ${_err} fi fi } cbsdd_restart() { if [ -f "${pidfile}" ]; then - pkill -9 -f ${pidfile} > /dev/null 2>&1 + pkill -9 -F ${pidfile} > /dev/null 2>&1 /bin/rm -f ${pidfile} fi run_rc_command "start" exit 0 } cbsdd_status() { local _err if [ -f "${pidfile}" ]; then pids=$( pgrep -F ${pidfile} 2>&1 ) _err=$? if [ ${_err} -eq 0 ]; then echo "${name} is running as pid ${pids}." else echo "pgrep: ${pids}" return ${_err} fi else echo "${name} is not running." return 1 fi } run_rc_command "$1"