From a412425bca4bb90a7c1b35acac6b185158f3cd4f Mon Sep 17 00:00:00 2001
From: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Date: Tue, 5 Jul 2022 15:41:41 +0200
Subject: Cleanup: move source date epoch code back to libutil

Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
 lib/fstree/Makemodule.am       |  1 -
 lib/fstree/fstree.c            |  1 +
 lib/fstree/internal.h          |  7 -------
 lib/fstree/source_date_epoch.c | 44 ------------------------------------------
 lib/util/Makemodule.am         |  1 +
 lib/util/source_date_epoch.c   | 44 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 46 insertions(+), 52 deletions(-)
 delete mode 100644 lib/fstree/source_date_epoch.c
 create mode 100644 lib/util/source_date_epoch.c

(limited to 'lib')

diff --git a/lib/fstree/Makemodule.am b/lib/fstree/Makemodule.am
index fec63b4..a72b820 100644
--- a/lib/fstree/Makemodule.am
+++ b/lib/fstree/Makemodule.am
@@ -4,7 +4,6 @@ libfstree_a_SOURCES += lib/fstree/post_process.c lib/fstree/get_path.c
 libfstree_a_SOURCES += lib/fstree/mknode.c lib/fstree/fstree_from_dir.c
 libfstree_a_SOURCES += lib/fstree/add_by_path.c lib/fstree/get_by_path.c
 libfstree_a_SOURCES += include/fstree.h lib/fstree/internal.h
-libfstree_a_SOURCES += lib/fstree/source_date_epoch.c
 libfstree_a_SOURCES += lib/fstree/sort_by_file.c
 libfstree_a_CFLAGS = $(AM_CFLAGS)
 libfstree_a_CPPFLAGS = $(AM_CPPFLAGS)
diff --git a/lib/fstree/fstree.c b/lib/fstree/fstree.c
index 7c00755..2ea5fa2 100644
--- a/lib/fstree/fstree.c
+++ b/lib/fstree/fstree.c
@@ -5,6 +5,7 @@
  * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
  */
 #include "internal.h"
+#include "util/util.h"
 
 #include <string.h>
 #include <stdlib.h>
diff --git a/lib/fstree/internal.h b/lib/fstree/internal.h
index d14fb4f..b876e45 100644
--- a/lib/fstree/internal.h
+++ b/lib/fstree/internal.h
@@ -10,13 +10,6 @@
 #include "config.h"
 #include "fstree.h"
 
-/*
-  If the environment variable SOURCE_DATE_EPOCH is set to a parsable number
-  that fits into an unsigned 32 bit value, return its value. Otherwise,
-  default to 0.
- */
-sqfs_u32 get_source_date_epoch(void);
-
 void fstree_insert_sorted(tree_node_t *root, tree_node_t *n);
 
 #endif /* FSTREE_INTERNAL_H */
diff --git a/lib/fstree/source_date_epoch.c b/lib/fstree/source_date_epoch.c
deleted file mode 100644
index 1efa688..0000000
--- a/lib/fstree/source_date_epoch.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* SPDX-License-Identifier: GPL-3.0-or-later */
-/*
- * source_date_epoch.c
- *
- * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
- */
-#include "internal.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <ctype.h>
-
-sqfs_u32 get_source_date_epoch(void)
-{
-	const char *str, *ptr;
-	sqfs_u32 x, tval = 0;
-
-	str = getenv("SOURCE_DATE_EPOCH");
-
-	if (str == NULL || *str == '\0')
-		return 0;
-
-	for (ptr = str; *ptr != '\0'; ++ptr) {
-		if (!isdigit(*ptr))
-			goto fail_nan;
-
-		x = (*ptr) - '0';
-
-		if (tval > (UINT32_MAX - x) / 10)
-			goto fail_ov;
-
-		tval = tval * 10 + x;
-	}
-
-	return tval;
-fail_ov:
-	fprintf(stderr, "WARNING: SOURCE_DATE_EPOCH=%s does not fit into "
-		"32 bit integer\n", str);
-	return 0;
-fail_nan:
-	fprintf(stderr, "WARNING: SOURCE_DATE_EPOCH=%s is not a positive "
-		"number\n", str);
-	return 0;
-}
diff --git a/lib/util/Makemodule.am b/lib/util/Makemodule.am
index d37f2b1..b65ebda 100644
--- a/lib/util/Makemodule.am
+++ b/lib/util/Makemodule.am
@@ -12,6 +12,7 @@ libutil_a_SOURCES += lib/util/is_memory_zero.c
 libutil_a_SOURCES += lib/util/mkdir_p.c
 libutil_a_SOURCES += lib/util/canonicalize_name.c
 libutil_a_SOURCES += lib/util/filename_sane.c
+libutil_a_SOURCES += lib/util/source_date_epoch.c
 libutil_a_CFLAGS = $(AM_CFLAGS)
 libutil_a_CPPFLAGS = $(AM_CPPFLAGS)
 
diff --git a/lib/util/source_date_epoch.c b/lib/util/source_date_epoch.c
new file mode 100644
index 0000000..26e5530
--- /dev/null
+++ b/lib/util/source_date_epoch.c
@@ -0,0 +1,44 @@
+/* SPDX-License-Identifier: LGPL-3.0-or-later */
+/*
+ * source_date_epoch.c
+ *
+ * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at>
+ */
+#include "util/util.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <ctype.h>
+
+sqfs_u32 get_source_date_epoch(void)
+{
+	const char *str, *ptr;
+	sqfs_u32 x, tval = 0;
+
+	str = getenv("SOURCE_DATE_EPOCH");
+
+	if (str == NULL || *str == '\0')
+		return 0;
+
+	for (ptr = str; *ptr != '\0'; ++ptr) {
+		if (!isdigit(*ptr))
+			goto fail_nan;
+
+		x = (*ptr) - '0';
+
+		if (tval > (UINT32_MAX - x) / 10)
+			goto fail_ov;
+
+		tval = tval * 10 + x;
+	}
+
+	return tval;
+fail_ov:
+	fprintf(stderr, "WARNING: SOURCE_DATE_EPOCH=%s does not fit into "
+		"32 bit integer\n", str);
+	return 0;
+fail_nan:
+	fprintf(stderr, "WARNING: SOURCE_DATE_EPOCH=%s is not a positive "
+		"number\n", str);
+	return 0;
+}
-- 
cgit v1.2.3