[Buildroot] [PATCH 1/3] fake-hwclock: new package

Christopher McCrory chrismcc at gmail.com
Fri Aug 10 14:46:34 UTC 2018


Save/restore system clock on machines without working RTC hardware

Signed-off-by: Christopher McCrory <chrismcc at gmail.com>
---
 DEVELOPERS                             |  3 +++
 package/Config.in                      |  1 +
 package/fake-hwclock/Config.in         | 12 ++++++++++
 package/fake-hwclock/fake-hwclock.hash |  2 ++
 package/fake-hwclock/fake-hwclock.mk   | 40 ++++++++++++++++++++++++++++++++++
 5 files changed, 58 insertions(+)
 create mode 100644 package/fake-hwclock/Config.in
 create mode 100644 package/fake-hwclock/fake-hwclock.hash
 create mode 100644 package/fake-hwclock/fake-hwclock.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 215506c71c..9ea934fa57 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -479,6 +479,9 @@ F:	package/python-rtslib-fb/
 F:	package/python-urwid/
 F:	package/targetcli-fb/
 
+N:	Christopher McCrory <chrismcc at gmail.com>
+F:	package/fake-hwclock/
+
 N:	Clayton Shotwell <clayton.shotwell at rockwellcollins.com>
 F:	package/audit/
 F:	package/checkpolicy/
diff --git a/package/Config.in b/package/Config.in
index f5a17492c7..42c61c242e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1982,6 +1982,7 @@ comment "Utilities"
 	source "package/dialog/Config.in"
 	source "package/dtach/Config.in"
 	source "package/easy-rsa/Config.in"
+	source "package/fake-hwclock/Config.in"
 	source "package/file/Config.in"
 	source "package/gnupg/Config.in"
 	source "package/gnupg2/Config.in"
diff --git a/package/fake-hwclock/Config.in b/package/fake-hwclock/Config.in
new file mode 100644
index 0000000000..f7e01dfb46
--- /dev/null
+++ b/package/fake-hwclock/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_FAKE_HWCLOCK
+	bool "fake-hwclock"
+	help
+	 Save/restore system clock on machines without working RTC hardware
+
+if BR2_PACKAGE_FAKE_HWCLOCK
+config BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB
+        bool "install fake-hwclock cronjob"
+        help
+          Hourly cronjob to save current timestamp
+
+endif
diff --git a/package/fake-hwclock/fake-hwclock.hash b/package/fake-hwclock/fake-hwclock.hash
new file mode 100644
index 0000000000..7bf147d7a6
--- /dev/null
+++ b/package/fake-hwclock/fake-hwclock.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 b658d6d130f66eeaa79bae6943ebae45a85bc6a932260befff75c630a8cfe428 fake-hwclock-v0.11.tar.gz
diff --git a/package/fake-hwclock/fake-hwclock.mk b/package/fake-hwclock/fake-hwclock.mk
new file mode 100644
index 0000000000..caae8605b9
--- /dev/null
+++ b/package/fake-hwclock/fake-hwclock.mk
@@ -0,0 +1,40 @@
+################################################################################
+#
+# fake-hwclock
+#
+################################################################################
+
+FAKE_HWCLOCK_VERSION = v0.11
+FAKE_HWCLOCK_SITE = https://git.einval.com/git/fake-hwclock.git
+FAKE_HWCLOCK_SITE_METHOD = git
+FAKE_HWCLOCK_LICENSE_FILES = COPYING
+FAKE_LICENSE = GPL-2.0
+
+define FAKE_HWCLOCK_NO_LSB
+	$(SED) 's at . /lib/lsb/init-functions@#. /lib/lsb/init-functions@' \
+		$(@D)/debian/fake-hwclock.init
+endef
+
+FAKE_HWCLOCK_POST_PATCH_HOOKS += FAKE_HWCLOCK_NO_LSB
+
+ifeq ($(BR2_PACKAGE_FAKE_HWCLOCK_CRONJOB),y)
+define FAKE_HWCLOCK_INSTALL_CRONJOB
+	$(INSTALL) -D -m 755 $(@D)/debian/fake-hwclock.cron.hourly $(TARGET_DIR)/etc/cron.hourly/fake-hwclock
+endef
+endif
+
+define FAKE_HWCLOCK_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 755 $(@D)/fake-hwclock $(TARGET_DIR)/sbin/fake-hwclock
+	# Use buildroot buildtime as a seed.
+	# Not ideal, but better than 1970-01-01 UTC
+	date -u '+%Y-%m-%d %H:%M:%S' > $(TARGET_DIR)/etc/fake-hwclock.data
+	$(FAKE_HWCLOCK_INSTALL_CRONJOB)
+endef
+
+# This should run before everything else, so use S00
+define FAKE_HWCLOCK_INSTALL_INIT_SYSV
+	$(INSTALL) -D -m 755 $(@D)/debian/fake-hwclock.init $(TARGET_DIR)/etc/init.d/S00fake-hwclock
+	$(INSTALL) -D -m 755 $(@D)/etc/default/fake-hwclock $(TARGET_DIR)/etc/default/fake-hwclock
+endef
+
+$(eval $(generic-package))
-- 
2.14.4



More information about the buildroot mailing list