From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michael Tremer <michael.tremer@ipfire.org> To: development@lists.ipfire.org Subject: Re: [PATCH] addon chrony Date: Wed, 22 Mar 2023 10:03:15 +0000 Message-ID: <54D1D26E-1BFA-45E0-A8E3-CFEDAE756319@ipfire.org> In-Reply-To: <20230320201837.1887027-1-gerd@hoerst.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8107860077274542337==" List-Id: <development.lists.ipfire.org> --===============8107860077274542337== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hello Gerd, Once again, what is the benefit of having a second time sync daemon as an add= on? The one that we use works and it will set the time correctly. So this won=E2= =80=99t have any benefit at all. Especially as there is no way to disable the= existing ntp-based scripts. -Michael > On 20 Mar 2023, at 20:18, Gerd Hoerst <gerd(a)hoerst.net> wrote: >=20 > Signed-off-by: Gerd Hoerst <gerd(a)hoerst.net> > --- > config/chrony/etc/chrony/chrony.conf | 32 +++++++++ > config/chrony/etc/chrony/chrony.keys | 10 +++ > config/chrony/etc/rc.d/init.d/chrony | 56 +++++++++++++++ > config/rootfiles/packages/chrony | 12 ++++ > lfs/chrony | 102 +++++++++++++++++++++++++++ > make.sh | 1 + > src/paks/chrony/install.sh | 33 +++++++++ > src/paks/chrony/uninstall.sh | 31 ++++++++ > src/paks/chrony/update.sh | 26 +++++++ > 9 files changed, 303 insertions(+) > create mode 100644 config/chrony/etc/chrony/chrony.conf > create mode 100644 config/chrony/etc/chrony/chrony.keys > create mode 100755 config/chrony/etc/rc.d/init.d/chrony > create mode 100644 config/rootfiles/packages/chrony > create mode 100644 lfs/chrony > create mode 100644 src/paks/chrony/install.sh > create mode 100644 src/paks/chrony/uninstall.sh > create mode 100644 src/paks/chrony/update.sh >=20 > diff --git a/config/chrony/etc/chrony/chrony.conf b/config/chrony/etc/chron= y/chrony.conf > new file mode 100644 > index 000000000..6c65f5c22 > --- /dev/null > +++ b/config/chrony/etc/chrony/chrony.conf > @@ -0,0 +1,32 @@ > +# Welcome to the chrony configuration file. See chrony.conf(5) for more > +# information about usuable directives. > + > +pool 0.ipfire.pool.ntp.org > + > +# refclock SOCK /var/run/chrony.ttyAMA0.sock delay 0.0 refid SOCK > +# refclock PPS /dev/pps0 refid PPS > + > +# This directive specify the location of the file containing ID/key pairs = for > +# NTP authentication. > +keyfile /etc/chrony/chrony.keys > + > +# This directive specify the file into which chronyd will store the rate > +# information. > +driftfile /var/lib/chrony/chrony.drift > + > +# Uncomment the following line to turn logging on. > +#log tracking measurements statistics > + > +# Log files location. > +logdir /var/log/chrony > + > +# Stop bad estimates upsetting machine clock. > +maxupdateskew 100.0 > + > +# This directive enables kernel synchronisation (every 11 minutes) of the > +# real-time clock. Note that it can=E2=80=99t be used along with the 'rtcf= ile' directive. > +rtcsync > + > +# Step the system clock instead of slewing it if the adjustment is larger = than > +# one second, but only in the first three clock updates. > +makestep 1 3 > diff --git a/config/chrony/etc/chrony/chrony.keys b/config/chrony/etc/chron= y/chrony.keys > new file mode 100644 > index 000000000..cee70b392 > --- /dev/null > +++ b/config/chrony/etc/chrony/chrony.keys > @@ -0,0 +1,10 @@ > +# This file is solely used for NTP authentication with symmetric keys > +# as defined by RFC 1305 and RFC 5905. > +# > +# It can contain ID/key pairs which can be generated using the =E2=80=9Cke= ygen=E2=80=9D option > +# from =E2=80=9Cchronyc=E2=80=9D; for example: > +# chronyc keygen 1 SHA256 256 >> /etc/chrony/chrony.keys > +# would generate a 256-bit SHA-256 key using ID 1. > +# > +# A list of supported hash functions and output encoding can be found in > +# the "keyfile" section from the "/usr/share/doc/chrony/chrony.txt.gz" fil= e. > diff --git a/config/chrony/etc/rc.d/init.d/chrony b/config/chrony/etc/rc.d/= init.d/chrony > new file mode 100755 > index 000000000..0a2a0ee8e > --- /dev/null > +++ b/config/chrony/etc/rc.d/init.d/chrony > @@ -0,0 +1,56 @@ > +#!/bin/sh > +######################################################################## > +# Begin $rc_base/init.d/ > +# > +# Description : chrony initscript 4 ipfire 2.1x > +# > +# Authors : goerdi > +# > +# Version : 01.00 > +# > +# Notes : GPLv3 > +# > +######################################################################## > + > +. /etc/sysconfig/rc > +. $rc_functions > + > +SERVER=3D"Chrony Time Server" > +BINARY=3Dchronyd > +DAEMON=3D/usr/sbin/$BINARY > +CONFIG=3D/etc/chrony/chrony.conf > +PIDFILE=3D/run/chronyd.pid > +START=3D"$DAEMON -f $CONFIG" > + > +#test -f $DAEMON || exit 0 > +[ -x $DAEMON ] || exit 0 > +[ -f $CONFIG ] || exit 0 > + > + > + > + > +case "$1" in > + start) > + boot_mesg "Starting $SERVER" > + loadproc $START > + ;; > + stop) > + boot_mesg "Stopping $SERVER" > + killproc -p $PIDFILE $DAEMON > + ;; > + restart) > + boot_mesg "Restarting $CAMSERVER"=20 > + killproc -p $PIDFILE $DAEMON > + sleep 3 > + loadproc $START > + ;; > + status) > + statusproc $DAEMON > + ;; > + *) > + echo "Usage: /etc/init.d/chrony {start|stop|restart|status}" > + exit 1 > + ;; > +esac > + > +exit 0 > diff --git a/config/rootfiles/packages/chrony b/config/rootfiles/packages/c= hrony > new file mode 100644 > index 000000000..8386502d4 > --- /dev/null > +++ b/config/rootfiles/packages/chrony > @@ -0,0 +1,12 @@ > +#etc/chrony > +etc/chrony/chrony.keys > +etc/chrony/chrony.conf > +etc/rc.d/init.d/chrony > +usr/bin/chronyc > +#usr/lib/chrony > +usr/lib/chrony/chrony-helper > +usr/sbin/chronyd > +#usr/share/man/man1/chronyc.1 > +#usr/share/man/man5/chrony.conf.5 > +#usr/share/man/man8/chronyd.8 > +#var/lib/chrony > diff --git a/lfs/chrony b/lfs/chrony > new file mode 100644 > index 000000000..8e471ef77 > --- /dev/null > +++ b/lfs/chrony > @@ -0,0 +1,102 @@ > +##########################################################################= ##### > +# = # > +# IPFire.org - A linux based firewall = # > +# Copyright (C) 2007-2020 IPFire Team <info(a)ipfire.org> = # > +# = # > +# This program is free software: you can redistribute it and/or modify = # > +# it under the terms of the GNU General Public License as published by = # > +# the Free Software Foundation, either version 3 of the License, or = # > +# (at your option) any later version. = # > +# = # > +# This program is distributed in the hope that it will be useful, = # > +# but WITHOUT ANY WARRANTY; without even the implied warranty of = # > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the = # > +# GNU General Public License for more details. = # > +# = # > +# You should have received a copy of the GNU General Public License = # > +# along with this program. If not, see <http://www.gnu.org/licenses/>. = # > +# = # > +##########################################################################= ##### > + > +##########################################################################= ##### > +# Definitions > +##########################################################################= ##### > + > +include Config > + > +VER =3D 4.3 > + > +THISAPP =3D chrony-$(VER) > +DL_FILE =3D $(THISAPP).tar.gz > +DL_FROM =3D https://download.tuxfamily.org/chrony > +DIR_APP =3D $(DIR_SRC)/$(THISAPP) > +TARGET =3D $(DIR_INFO)/$(THISAPP) > +PROG =3D chrony > +PAK_VER =3D 1 > +DEPS =3D "" > +##########################################################################= ##### > +# Top-level Rules > +##########################################################################= ##### > + > +objects =3D $(DL_FILE) > + > +$(DL_FILE) =3D $(DL_FROM)/$(DL_FILE) > + > +$(DL_FILE)_BLAKE2 =3D 51ba6d19312fd52cd6d6d8ab9437c886a3779877170674db6dc3= 7d657e849101e2669fd6c8723d24e43c895cd1924c3d8d2ff442baeef9abe8a6c313929edf5f > + > + > +install : $(TARGET) > + > +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) > + > +download :$(patsubst %,$(DIR_DL)/%,$(objects)) > +b2 : $(subst %,%_BLAKE2,$(objects)) > + > +dist:=20 > + @$(PAK) > +##########################################################################= ##### > +# Downloading, checking, md5sum > +##########################################################################= ##### > + > +$(patsubst %,$(DIR_CHK)/%,$(objects)) : > + @$(CHECK) > + > +$(patsubst %,$(DIR_DL)/%,$(objects)) : > + @$(LOAD) > + > +$(subst %,%_MD5,$(objects)) : > + @$(MD5) > + > +##########################################################################= ##### > +# Installation Details > +##########################################################################= ##### > + > +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) > + @$(PREBUILD) > + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) > + cd $(DIR_APP) && \ > + ./configure \ > + --prefix=3D/usr \ > + --mandir=3D/usr/share/man \ > + --sysconfdir=3D/etc/chrony \ > + --without-readline \ > + --enable-scfilter \ > + --chronyrundir=3D/run/chrony \ > + --with-ntp-era=3D$(shell date -d '1970-01-01 00:00:00+00:00' +'%s') \ > + --enable-ntp-signd \ > + --with-hwclockfile=3D/etc/adjtime \ > + --with-pidfile=3D/run/chronyd.pid \ > + --host-system=3DLinux > + > + > + cd $(DIR_APP) && make $(MAKETUNING) > + cd $(DIR_APP) && make install > + > + mkdir -p /etc/chrony > + cp -avf $(DIR_CONF)/chrony/etc/chrony/* /etc/chrony > + cp -vrf $(DIR_CONF)/chrony/etc/rc.d/init.d/chrony /etc/rc.d/init.d > + mkdir -p /usr/lib/chrony > + cp -avf $(DIR_CONF)/chrony/usr/lib/chrony/* /usr/lib/chrony > + > + @rm -rf $(DIR_APP) > + @$(POSTBUILD) > diff --git a/make.sh b/make.sh > index 3b7f9850c..ab995c20e 100755 > --- a/make.sh > +++ b/make.sh > @@ -1397,6 +1397,7 @@ buildipfire() { > lfsmake2 python3-docutils > lfsmake2 python3-daemon > lfsmake2 ntp > + lfsmake2 chrony > lfsmake2 openssh > lfsmake2 fontconfig > lfsmake2 dejavu-fonts-ttf > diff --git a/src/paks/chrony/install.sh b/src/paks/chrony/install.sh > new file mode 100644 > index 000000000..b0b053bd6 > --- /dev/null > +++ b/src/paks/chrony/install.sh > @@ -0,0 +1,33 @@ > +#!/bin/bash > +##########################################################################= ## > +# = # > +# This file is part of the IPFire Firewall. = # > +# = # > +# IPFire is free software; you can redistribute it and/or modify = # > +# it under the terms of the GNU General Public License as published by = # > +# the Free Software Foundation; either version 2 of the License, or = # > +# (at your option) any later version. = # > +# = # > +# IPFire is distributed in the hope that it will be useful, = # > +# but WITHOUT ANY WARRANTY; without even the implied warranty of = # > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the = # > +# GNU General Public License for more details. = # > +# = # > +# You should have received a copy of the GNU General Public License = # > +# along with IPFire; if not, write to the Free Software = # > +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA= # > +# = # > +# Copyright (C) 2007 IPFire-Team <info(a)ipfire.org>. = # > +# = # > +##########################################################################= ## > +# > +. /opt/pakfire/lib/functions.sh=20 > + > +extract_files=20 > +restore_backup ${NAME} > +chmod ugo+x /etc/rc.d/init.d/chrony > +ln -svf ../init.d/chrony /etc/rc.d/rc0.d/K46chrony > +ln -svf ../init.d/chrony /etc/rc.d/rc3.d/S26chrony > +ln -svf ../init.d/chrony /etc/rc.d/rc6.d/K46chrony > + > +start_service --background ${NAME} > diff --git a/src/paks/chrony/uninstall.sh b/src/paks/chrony/uninstall.sh > new file mode 100644 > index 000000000..9472553d3 > --- /dev/null > +++ b/src/paks/chrony/uninstall.sh > @@ -0,0 +1,31 @@ > +#!/bin/bash > +##########################################################################= ## > +# = # > +# This file is part of the IPFire Firewall. = # > +# = # > +# IPFire is free software; you can redistribute it and/or modify = # > +# it under the terms of the GNU General Public License as published by = # > +# the Free Software Foundation; either version 2 of the License, or = # > +# (at your option) any later version. = # > +# = # > +# IPFire is distributed in the hope that it will be useful, = # > +# but WITHOUT ANY WARRANTY; without even the implied warranty of = # > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the = # > +# GNU General Public License for more details. = # > +# = # > +# You should have received a copy of the GNU General Public License = # > +# along with IPFire; if not, write to the Free Software = # > +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA= # > +# = # > +# Copyright (C) 2007 IPFire-Team <info(a)ipfire.org>. = # > +# = # > +##########################################################################= ## > +# > +. /opt/pakfire/lib/functions.sh > +stop_service ${NAME} > +# wait2 terminate > +sleep 3 > +make_backup ${NAME} > +remove_files > +rm -rf /etc/rc.d/rc*.d/*chrony > +rm /etc/rc.d/rc3.d/off/*chrony > diff --git a/src/paks/chrony/update.sh b/src/paks/chrony/update.sh > new file mode 100644 > index 000000000..89c40d0d7 > --- /dev/null > +++ b/src/paks/chrony/update.sh > @@ -0,0 +1,26 @@ > +#!/bin/bash > +##########################################################################= ## > +# = # > +# This file is part of the IPFire Firewall. = # > +# = # > +# IPFire is free software; you can redistribute it and/or modify = # > +# it under the terms of the GNU General Public License as published by = # > +# the Free Software Foundation; either version 2 of the License, or = # > +# (at your option) any later version. = # > +# = # > +# IPFire is distributed in the hope that it will be useful, = # > +# but WITHOUT ANY WARRANTY; without even the implied warranty of = # > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the = # > +# GNU General Public License for more details. = # > +# = # > +# You should have received a copy of the GNU General Public License = # > +# along with IPFire; if not, write to the Free Software = # > +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA= # > +# = # > +# Copyright (C) 2007 IPFire-Team <info(a)ipfire.org>. = # > +# = # > +##########################################################################= ## > +# > +. /opt/pakfire/lib/functions.sh > +./uninstall.sh > +./install.sh > --=20 > 2.25.1 >=20 --===============8107860077274542337==--