package/ledmon: bump to version 1.0.0
- Add host-autoconf-archive mandatory dependency - Drop patches (already in version) https://github.com/intel/ledmon/releases/tag/v1.0.0 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
parent
6534c7fb98
commit
b3819b761f
@ -1,223 +0,0 @@
|
||||
From e57ad4c71cce734de7f8aa75e84fce97bc148c2b Mon Sep 17 00:00:00 2001
|
||||
From: Maksim Kiselev <bigunclemax@gmail.com>
|
||||
Date: Mon, 15 May 2023 14:46:56 +0300
|
||||
Subject: [PATCH] Replace nonstandard on_exit() function by atexit()
|
||||
|
||||
on_exit() is not portable and not available on the C libraries musl
|
||||
and uClibc.
|
||||
|
||||
So let's replace it with standard atexit() function.
|
||||
|
||||
Upstream: https://github.com/intel/ledmon/pull/139
|
||||
|
||||
Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
|
||||
---
|
||||
src/ledctl.c | 12 ++++-------
|
||||
src/ledmon.c | 59 +++++++++++++++++++++++++++-------------------------
|
||||
2 files changed, 35 insertions(+), 36 deletions(-)
|
||||
|
||||
diff --git a/src/ledctl.c b/src/ledctl.c
|
||||
index 7a89a24..10fd57a 100644
|
||||
--- a/src/ledctl.c
|
||||
+++ b/src/ledctl.c
|
||||
@@ -214,15 +214,11 @@ static void ibpi_state_fini(struct ibpi_state *p)
|
||||
*
|
||||
* This is internal function of ledctl utility. The function cleans up a memory
|
||||
* allocated for the application and closes all opened handles. This function is
|
||||
- * design to be registered as on_exit() handler function.
|
||||
- *
|
||||
- * @param[in] status exit status of the ledctl application.
|
||||
- * @param[in] ignored function ignores this argument.
|
||||
+ * design to be registered as atexit() handler function.
|
||||
*
|
||||
* @return The function does not return a value.
|
||||
*/
|
||||
-static void _ledctl_fini(int status __attribute__ ((unused)),
|
||||
- void *ignore __attribute__ ((unused)))
|
||||
+static void _ledctl_fini(void)
|
||||
{
|
||||
sysfs_reset();
|
||||
list_erase(&ibpi_list);
|
||||
@@ -948,7 +944,7 @@ static char *ledctl_strstatus(ledctl_status_code_t s)
|
||||
* @brief Application's entry point.
|
||||
*
|
||||
* This is the entry point of ledctl utility. This function does all the work.
|
||||
- * It allocates and initializes all used structures. Registers on_exit()
|
||||
+ * It allocates and initializes all used structures. Registers atexit()
|
||||
* handlers.
|
||||
* Then the function parses command line options and commands given and scans
|
||||
* sysfs tree for controllers, block devices and RAID devices. If no error is
|
||||
@@ -983,7 +979,7 @@ int main(int argc, char *argv[])
|
||||
status = _init_ledctl_conf();
|
||||
if (status != LEDCTL_STATUS_SUCCESS)
|
||||
return status;
|
||||
- if (on_exit(_ledctl_fini, progname))
|
||||
+ if (atexit(_ledctl_fini))
|
||||
exit(LEDCTL_STATUS_ONEXIT_ERROR);
|
||||
slot_request_init(&slot_req);
|
||||
status = _cmdline_parse(argc, argv, &slot_req);
|
||||
diff --git a/src/ledmon.c b/src/ledmon.c
|
||||
index 6f52fd6..1329295 100644
|
||||
--- a/src/ledmon.c
|
||||
+++ b/src/ledmon.c
|
||||
@@ -57,6 +57,19 @@
|
||||
#include "utils.h"
|
||||
#include "vmdssd.h"
|
||||
|
||||
+/**
|
||||
+ * This macro is the alternative way to get exit status
|
||||
+ * in atexit() callback function
|
||||
+ */
|
||||
+#define EXIT(x) ((exit)(exit_status = (x)))
|
||||
+
|
||||
+static int exit_status;
|
||||
+
|
||||
+/**
|
||||
+ * Flag to print exit status
|
||||
+ */
|
||||
+static int ignore;
|
||||
+
|
||||
/**
|
||||
* @brief List of active block devices.
|
||||
*
|
||||
@@ -151,20 +164,16 @@ static int possible_params_size = ARRAY_SIZE(possible_params);
|
||||
*
|
||||
* This is internal function of monitor service. It is used to finalize daemon
|
||||
* process i.e. free allocated memory, unlock and remove pidfile and close log
|
||||
- * file and syslog. The function is registered as on_exit() handler.
|
||||
- *
|
||||
- * @param[in] status The function ignores this parameter.
|
||||
- * @param[in] program_name The name of the binary file. This argument
|
||||
- * is passed via on_exit() function.
|
||||
+ * file and syslog. The function is registered as atexit() handler.
|
||||
*
|
||||
* @return The function does not return a value.
|
||||
*/
|
||||
-static void _ledmon_fini(int __attribute__ ((unused)) status, void *program_name)
|
||||
+static void _ledmon_fini(void)
|
||||
{
|
||||
sysfs_reset();
|
||||
list_erase(&ledmon_block_list);
|
||||
log_close();
|
||||
- pidfile_remove(program_name);
|
||||
+ pidfile_remove(progname);
|
||||
}
|
||||
|
||||
typedef enum {
|
||||
@@ -207,30 +216,25 @@ static char *ledmon_strstatus(ledmon_status_code_t s)
|
||||
*
|
||||
* This is internal function of monitor service. It is used to report an exit
|
||||
* status of the monitor service. The message is logged in to syslog and to log
|
||||
- * file. The function is registered as on_exit() hander.
|
||||
- *
|
||||
- * @param[in] status Status given in the last call to exit()
|
||||
- * function.
|
||||
- * @param[in] arg Argument passed to on_exit().
|
||||
+ * file. The function is registered as atexit() handler.
|
||||
*
|
||||
* @return The function does not return a value.
|
||||
*/
|
||||
-static void _ledmon_status(int status, void *arg)
|
||||
+static void _ledmon_status(void)
|
||||
{
|
||||
int log_level;
|
||||
char message[4096];
|
||||
- int ignore = *((int *)arg);
|
||||
|
||||
if (ignore)
|
||||
return;
|
||||
|
||||
- if (status == LEDMON_STATUS_SUCCESS)
|
||||
+ if (exit_status == LEDMON_STATUS_SUCCESS)
|
||||
log_level = LOG_LEVEL_INFO;
|
||||
else
|
||||
log_level = LOG_LEVEL_ERROR;
|
||||
|
||||
snprintf(message, sizeof(message), "exit status is %s.",
|
||||
- ledmon_strstatus(status));
|
||||
+ ledmon_strstatus(exit_status));
|
||||
|
||||
if (get_log_fd() >= 0)
|
||||
_log(log_level, message);
|
||||
@@ -364,10 +368,10 @@ static ledmon_status_code_t _cmdline_parse_non_daemonise(int argc, char *argv[])
|
||||
break;
|
||||
case 'h':
|
||||
_ledmon_help();
|
||||
- exit(EXIT_SUCCESS);
|
||||
+ EXIT(EXIT_SUCCESS);
|
||||
case 'v':
|
||||
_ledmon_version();
|
||||
- exit(EXIT_SUCCESS);
|
||||
+ EXIT(EXIT_SUCCESS);
|
||||
case ':':
|
||||
case '?':
|
||||
return LEDMON_STATUS_CMDLINE_ERROR;
|
||||
@@ -890,14 +894,13 @@ static void _close_parent_fds(void)
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
ledmon_status_code_t status = LEDMON_STATUS_SUCCESS;
|
||||
- static int ignore;
|
||||
|
||||
setup_options(&longopt, &shortopt, possible_params,
|
||||
possible_params_size);
|
||||
set_invocation_name(argv[0]);
|
||||
openlog(progname, LOG_PID | LOG_PERROR, LOG_DAEMON);
|
||||
|
||||
- if (on_exit(_ledmon_status, &ignore))
|
||||
+ if (atexit(_ledmon_status))
|
||||
return LEDMON_STATUS_ONEXIT_ERROR;
|
||||
|
||||
if (_cmdline_parse_non_daemonise(argc, argv) != LEDMON_STATUS_SUCCESS)
|
||||
@@ -935,18 +938,18 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (pid < 0) {
|
||||
log_debug("main(): fork() failed (errno=%d).", errno);
|
||||
- exit(EXIT_FAILURE);
|
||||
+ EXIT(EXIT_FAILURE);
|
||||
}
|
||||
if (pid > 0) {
|
||||
ignore = 1; /* parent: don't print exit status */
|
||||
- exit(EXIT_SUCCESS);
|
||||
+ EXIT(EXIT_SUCCESS);
|
||||
}
|
||||
|
||||
pid_t sid = setsid();
|
||||
|
||||
if (sid < 0) {
|
||||
log_debug("main(): setsid() failed (errno=%d).", errno);
|
||||
- exit(EXIT_FAILURE);
|
||||
+ EXIT(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
_close_parent_fds();
|
||||
@@ -960,16 +963,16 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (chdir("/") < 0) {
|
||||
log_debug("main(): chdir() failed (errno=%d).", errno);
|
||||
- exit(EXIT_FAILURE);
|
||||
+ EXIT(EXIT_FAILURE);
|
||||
}
|
||||
if (pidfile_create(progname)) {
|
||||
log_debug("main(): pidfile_creat() failed.");
|
||||
- exit(EXIT_FAILURE);
|
||||
+ EXIT(EXIT_FAILURE);
|
||||
}
|
||||
_ledmon_setup_signals();
|
||||
|
||||
- if (on_exit(_ledmon_fini, progname))
|
||||
- exit(LEDMON_STATUS_ONEXIT_ERROR);
|
||||
+ if (atexit(_ledmon_fini))
|
||||
+ EXIT(LEDMON_STATUS_ONEXIT_ERROR);
|
||||
list_init(&ledmon_block_list, (item_free_t)block_device_fini);
|
||||
sysfs_init();
|
||||
log_info("monitor service has been started...");
|
||||
@@ -987,5 +990,5 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
ledmon_remove_shared_conf();
|
||||
stop_udev_monitor();
|
||||
- exit(EXIT_SUCCESS);
|
||||
+ EXIT(EXIT_SUCCESS);
|
||||
}
|
||||
--
|
||||
2.39.2
|
||||
|
@ -1,44 +0,0 @@
|
||||
From b9f454cd29b6b5a0927b3c1e98807d54ffacd73e Mon Sep 17 00:00:00 2001
|
||||
From: Maksim Kiselev <bigunclemax@gmail.com>
|
||||
Date: Mon, 15 May 2023 19:29:45 +0300
|
||||
Subject: [PATCH] Fix unknown type name ‘ssize_t’ error
|
||||
|
||||
This error occurs for builds with musl libc.
|
||||
Move include <sys/types.h> to utils header to
|
||||
resolve this issue.
|
||||
|
||||
Upstream: https://github.com/intel/ledmon/pull/139
|
||||
|
||||
Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
|
||||
---
|
||||
src/utils.c | 1 -
|
||||
src/utils.h | 1 +
|
||||
2 files changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/utils.c b/src/utils.c
|
||||
index 86b9593..0b83d5a 100644
|
||||
--- a/src/utils.c
|
||||
+++ b/src/utils.c
|
||||
@@ -33,7 +33,6 @@
|
||||
#include <string.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/time.h>
|
||||
-#include <sys/types.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
#include <assert.h>
|
||||
diff --git a/src/utils.h b/src/utils.h
|
||||
index 5d590b9..d02da8f 100644
|
||||
--- a/src/utils.h
|
||||
+++ b/src/utils.h
|
||||
@@ -22,6 +22,7 @@
|
||||
#define _UTILS_H_INCLUDED_
|
||||
|
||||
#include <getopt.h>
|
||||
+#include <sys/types.h>
|
||||
#include "config_file.h"
|
||||
#include "stdlib.h"
|
||||
#include "stdint.h"
|
||||
--
|
||||
2.39.2
|
||||
|
@ -1,63 +0,0 @@
|
||||
From 141628519d227b59be3977b16ebaab0feb22b295 Mon Sep 17 00:00:00 2001
|
||||
From: Maksim Kiselev <bigunclemax@gmail.com>
|
||||
Date: Sun, 20 Aug 2023 11:35:57 +0300
|
||||
Subject: [PATCH] Add '--disable-doc' option
|
||||
|
||||
Introduce a configure option to disable documentation installation
|
||||
in case if it is not required.
|
||||
|
||||
Upstream: https://github.com/intel/ledmon/pull/154
|
||||
|
||||
Signed-off-by: Maksim Kiselev <bigunclemax@gmail.com>
|
||||
---
|
||||
Makefile.am | 8 ++++++--
|
||||
configure.ac | 11 ++++++++++-
|
||||
2 files changed, 16 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index ddcd200..644a8d2 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -20,6 +20,10 @@ if SYSTEMD_CONDITION
|
||||
OPTIONAL_SUBDIR = systemd
|
||||
endif
|
||||
|
||||
-SUBDIRS = doc src $(OPTIONAL_SUBDIR)
|
||||
+if WITH_DOC
|
||||
+ DOC_SUBDIR = doc
|
||||
+ dist_doc_DATA = README.md
|
||||
+endif
|
||||
+
|
||||
+SUBDIRS = src $(DOC_SUBDIR) $(OPTIONAL_SUBDIR)
|
||||
EXTRA_DIST = config/config.h systemd/ledmon.service.in
|
||||
-dist_doc_DATA = README.md
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 05baa62..114957f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -74,6 +74,15 @@ AM_CONDITIONAL([SYSTEMD_CONDITION], [test "$SYSTEMD_STR" = yes])
|
||||
# target directory for ledmon service file
|
||||
AC_SUBST([SYSTEMD_PATH], "$(pkg-config systemd --variable=systemdsystemunitdir)")
|
||||
|
||||
+# Add configure option to disable documentation building
|
||||
+AC_ARG_ENABLE([doc],
|
||||
+ [AS_HELP_STRING([--disable-doc],
|
||||
+ [do not install ledmon documentaion])],
|
||||
+ [with_doc=${enableval}],
|
||||
+ [with_doc=yes])
|
||||
+
|
||||
+AM_CONDITIONAL([WITH_DOC], [test "x$with_doc" = "xyes"])
|
||||
+
|
||||
AC_CONFIG_FILES([Makefile
|
||||
doc/Makefile
|
||||
src/Makefile
|
||||
@@ -86,5 +95,5 @@ $PACKAGE_NAME $VERSION configuration:
|
||||
Preprocessor flags: ${AM_CPPFLAGS} ${CPPFLAGS}
|
||||
C compiler flags: ${AM_CFLAGS} ${CFLAGS}
|
||||
Common install location: ${prefix}
|
||||
- configure parameters: --enable-systemd=${SYSTEMD_STR}
|
||||
+ configure parameters: --enable-systemd=${SYSTEMD_STR} --enable-doc=${with_doc}
|
||||
])
|
||||
--
|
||||
2.39.2
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Locally calculated
|
||||
sha256 40ee7e462b78c77468cc2ef356a06c5b6db44747d596dc11532f7b6f378d2d4b ledmon-0.97.tar.gz
|
||||
sha256 2826786cd5e7fe7d32d22e9d209b23124801fec9c3220dcd7fb45706f3818dc5 ledmon-1.0.0.tar.gz
|
||||
sha256 dcc100d4161cc0b7177545ab6e47216f84857cda3843847c792a25289852dcaa COPYING
|
||||
|
@ -4,16 +4,17 @@
|
||||
#
|
||||
################################################################################
|
||||
|
||||
LEDMON_VERSION = 0.97
|
||||
LEDMON_VERSION = 1.0.0
|
||||
LEDMON_SITE = $(call github,intel,ledmon,v$(LEDMON_VERSION))
|
||||
LEDMON_DEPENDENCIES = host-pkgconf pciutils sg3_utils udev
|
||||
LEDMON_DEPENDENCIES = host-autoconf-archive host-pkgconf pciutils sg3_utils udev
|
||||
# The code base also include a COPYING.LIB file with the LGPL-2.1 text,
|
||||
# and some source files are published under LGPL-2.1, but all of them are
|
||||
# at some point linked with GPL-2.0 code, making the resulting binaries
|
||||
# GPL-2.0 licensed
|
||||
LEDMON_LICENSE = GPL-2.0
|
||||
LEDMON_LICENSE_FILES = COPYING
|
||||
# 0002-Fix-unknown-type-name-ssize_t-error.patch
|
||||
# From git
|
||||
LEDMON_AUTORECONF = YES
|
||||
LEDMON_AUTORECONF_OPTS = --include=$(HOST_DIR)/share/autoconf-archive
|
||||
|
||||
$(eval $(autotools-package))
|
||||
|
Loading…
Reference in New Issue
Block a user