commit:     6074cbd651da7f27fc6fbc20a66f651c2577857b
Author:     William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
AuthorDate: Wed Jul  6 15:40:31 2016 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Wed Jul  6 17:22:49 2016 +0000
URL:        https://gitweb.gentoo.org/proj/openrc.git/commit/?id=6074cbd6

hwclock: always use --noadjfile if available

When we use the --utc or --localtime switch, also use --noadjfile if it
is available. This means hwclock will not use a drift file.

X-Gentoo-Bug: 584722
X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=584722

 init.d/hwclock.in | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/init.d/hwclock.in b/init.d/hwclock.in
index d3e19f1..7fee7b7 100644
--- a/init.d/hwclock.in
+++ b/init.d/hwclock.in
@@ -69,6 +69,16 @@ _hwclock()
        return 1
 }
 
+get_noadjfile()
+{
+       if ! yesno $clock_adjfile; then
+               # Some implementations don't handle adjustments
+               if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
+                       echo --noadjfile
+               fi
+       fi
+}
+
 start()
 {
        local retval=0 errstr=""
@@ -91,16 +101,16 @@ start()
        fi
 
        # Always set the kernel's time zone.
-       _hwclock --systz $utc_cmd $clock_args
+       _hwclock --systz $utc_cmd $(get_noadjfile) $clock_args
        : $(( retval += $? ))
 
        if [ -e /etc/adjtime ] && yesno $clock_adjfile; then
-               _hwclock --adjust $utc_cmd
+               _hwclock --adjust $utc_cmd $(get_noadjfile)
                : $(( retval += $? ))
        fi
 
        if yesno ${clock_hctosys:-YES}; then
-               _hwclock --hctosys $utc_cmd $clock_args
+               _hwclock --hctosys $utc_cmd $(get_noadjfile) $clock_args
                : $(( retval += $? ))
        fi
 
@@ -122,14 +132,7 @@ stop()
 
        ebegin "Setting hardware clock using the system clock" "[$utc]"
 
-       if ! yesno $clock_adjfile; then
-               # Some implementations don't handle adjustments
-               if LC_ALL=C hwclock --help 2>&1 | grep -q "\-\-noadjfile"; then
-                       utc_cmd="$utc_cmd --noadjfile"
-               fi
-       fi
-
-       _hwclock --systohc $utc_cmd $clock_args
+       _hwclock --systohc $utc_cmd $(get_noadjfile) $clock_args
        retval=$?
 
        eend $retval "Failed to sync clocks"
@@ -144,5 +147,5 @@ save()
 show()
 {
        setupopts
-       hwclock --show "$utc_cmd" $clock_args
+       hwclock --show "$utc_cmd" $(get_noadjfile) $clock_args
 }

Reply via email to