Hello community, here is the log from the commit of package ledmon for openSUSE:Factory checked in at 2020-01-02 14:42:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ledmon (Old) and /work/SRC/openSUSE:Factory/.ledmon.new.6675 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ledmon" Thu Jan 2 14:42:11 2020 rev:19 rq:760357 version:0.93 Changes: -------- --- /work/SRC/openSUSE:Factory/ledmon/ledmon.changes 2019-12-21 12:31:51.983377075 +0100 +++ /work/SRC/openSUSE:Factory/.ledmon.new.6675/ledmon.changes 2020-01-02 14:42:23.732936789 +0100 @@ -1,0 +2,11 @@ +Fri Dec 27 02:09:00 UTC 2019 - [email protected] + +- backport upstream patches to v0.93 + + Don-t-build-with-Werror.patch + + ledmon-paths-in-systemd-service-file-are-generated.patch + + smp-fix-the-activity-indicator-states.patch +- rename patch file + - ledmon-amd_sgpio.patch + + amd_sgpio-Correct-use-of-packed-structs.patch + +------------------------------------------------------------------- Old: ---- ledmon-amd_sgpio.patch New: ---- Don-t-build-with-Werror.patch amd_sgpio-Correct-use-of-packed-structs.patch ledmon-paths-in-systemd-service-file-are-generated.patch smp-fix-the-activity-indicator-states.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ledmon.spec ++++++ --- /var/tmp/diff_new_pack.6Tfo3r/_old 2020-01-02 14:42:25.720937575 +0100 +++ /var/tmp/diff_new_pack.6Tfo3r/_new 2020-01-02 14:42:25.724937577 +0100 @@ -1,7 +1,7 @@ # # spec file for package ledmon # -# Copyright (c) 2019 SUSE LLC +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -25,7 +25,10 @@ URL: https://github.com/intel/ledmon/ Source0: https://github.com/intel/ledmon/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz # PATCH-FEATURE-UPSTREAM ledmon-amd_sgpio.patch -Patch0: ledmon-amd_sgpio.patch +Patch0: Don-t-build-with-Werror.patch +Patch1: ledmon-paths-in-systemd-service-file-are-generated.patch +Patch2: smp-fix-the-activity-indicator-states.patch +Patch3: amd_sgpio-Correct-use-of-packed-structs.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: libsgutils-devel ++++++ Don-t-build-with-Werror.patch ++++++ >From e4ee8feed7a2b460bbb202704072c1927015265f Mon Sep 17 00:00:00 2001 From: Adrian Bunk <[email protected]> Date: Thu, 31 Oct 2019 12:28:48 +0200 Subject: [PATCH] Don't build with -Werror New compiler versions might output new warnings by default (see #47 for an example), which makes -Werror problematic for distributions. The more specific -Werror= settings are usually not a problem. The warnings are still shown, but they will no longer break the build. Signed-off-by: Adrian Bunk <[email protected]> --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7bc20f8..7e01bd5 100644 --- a/configure.ac +++ b/configure.ac @@ -22,7 +22,6 @@ AX_AM_CFLAGS_ADD([-Werror=format-truncation=1]) AX_AM_CFLAGS_ADD([-Werror=shift-negative-value]) AX_AM_CFLAGS_ADD([-Werror=alloca]) AX_AM_CFLAGS_ADD([-Werror=missing-field-initializers]) -AX_AM_CFLAGS_ADD([-Werror]) AX_AM_CFLAGS_ADD([-Werror=format-signedness]) AC_SUBST([AM_CFLAGS]) -- 2.24.0 ++++++ amd_sgpio-Correct-use-of-packed-structs.patch ++++++ >From d4687596f64190afd772bfd5404e56b411424eab Mon Sep 17 00:00:00 2001 From: Nathan Fontenot <[email protected]> Date: Mon, 2 Dec 2019 10:59:04 -0600 Subject: [PATCH] amd_sgpio: Correct use of packed structs With gcc-9 the -Waddress-of-packed-member flag is enabled by default to prevent access to unaligned members of a struct on systems that do not support unaligned accesses. To correct this the amd_sgpio code is updated to no longer use pointers to packed structures. Signed-off-by: Nathan Fontenot <[email protected]> --- src/amd_sgpio.c | 220 +++++++++++++++++++++++------------------------- 1 file changed, 105 insertions(+), 115 deletions(-) diff --git a/src/amd_sgpio.c b/src/amd_sgpio.c index 8150e4c..efe1c26 100644 --- a/src/amd_sgpio.c +++ b/src/amd_sgpio.c @@ -330,112 +330,114 @@ static int _send_sgpio_register(const char *em_buffer_path, void *reg, return 0; } -static void _init_sgpio_hdr(sgpio_hdr_t *hdr, int data_size, int msg_size) +static sgpio_hdr_t _init_sgpio_hdr(int data_size, int msg_size) { - memset(hdr, 0, sizeof(*hdr)); + sgpio_hdr_t hdr = 0; - set_sgpio_hdr_msg_type(hdr, SGPIO_HDR_MSG_TYPE_SGPIO); - set_sgpio_hdr_data_size(hdr, data_size); - set_sgpio_hdr_msg_size(hdr, msg_size); + set_sgpio_hdr_msg_type(&hdr, SGPIO_HDR_MSG_TYPE_SGPIO); + set_sgpio_hdr_data_size(&hdr, data_size); + set_sgpio_hdr_msg_size(&hdr, msg_size); + + return hdr; } -static void _dump_sgpio_hdr(sgpio_hdr_t *hdr) +static void _dump_sgpio_hdr(const char *type, sgpio_hdr_t hdr) { - log_debug("SGPIO Header\n"); - log_debug(REG_FMT_2, "message type", get_sgpio_hdr_msg_type(hdr), - "data size", get_sgpio_hdr_data_size(hdr)); - log_debug(REG_FMT_1, "message size", get_sgpio_hdr_msg_size(hdr)); + log_debug("%s SGPIO Header: %08x\n", type, hdr); + log_debug(REG_FMT_2, "message type", get_sgpio_hdr_msg_type(&hdr), + "data size", get_sgpio_hdr_data_size(&hdr)); + log_debug(REG_FMT_1, "message size", get_sgpio_hdr_msg_size(&hdr)); } -static void _init_sgpio_req(sgpio_req_t *req, int frame_type, int function, - int reg_type, int reg_index, int reg_count) +static sgpio_req_t _init_sgpio_req(int frame_type, int function, + int reg_type, int reg_index, + int reg_count) { - memset(req, 0, sizeof(*req)); + sgpio_req_t req = 0; + + set_sgpio_req_frame_type(&req, frame_type); + set_sgpio_req_function(&req, function); + set_sgpio_req_reg_type(&req, reg_type); + set_sgpio_req_reg_index(&req, reg_index); + set_sgpio_req_reg_count(&req, reg_count); - set_sgpio_req_frame_type(req, frame_type); - set_sgpio_req_function(req, function); - set_sgpio_req_reg_type(req, reg_type); - set_sgpio_req_reg_index(req, reg_index); - set_sgpio_req_reg_count(req, reg_count); + return req; } -static void _dump_sgpio_req(sgpio_req_t *req) +static void _dump_sgpio_req(const char *type, sgpio_req_t req) { - log_debug("SGPIO Request Register:\n"); - log_debug(REG_FMT_2, "frame type", get_sgpio_req_frame_type(req), - "function", get_sgpio_req_function(req)); - log_debug(REG_FMT_2, "register type", get_sgpio_req_reg_type(req), - "register index", get_sgpio_req_reg_index(req)); - log_debug(REG_FMT_1, "register count", get_sgpio_req_reg_count(req)); + uint32_t *r = (uint32_t *)&req; + + log_debug("%s SGPIO Request Register: %08x %08x\n", type, r[0], r[1]); + log_debug(REG_FMT_2, "frame type", get_sgpio_req_frame_type(&req), + "function", get_sgpio_req_function(&req)); + log_debug(REG_FMT_2, "register type", get_sgpio_req_reg_type(&req), + "register index", get_sgpio_req_reg_index(&req)); + log_debug(REG_FMT_1, "register count", get_sgpio_req_reg_count(&req)); } -static void _init_sgpio_cfg(sgpio_cfg_t *cfg, int gpio_enable, int blink_a, - int blink_b, int force_off, int max_on, - int stretch_off, int stretch_on) +static sgpio_cfg_t _init_sgpio_cfg(int gpio_enable, int blink_a, + int blink_b, int force_off, int max_on, + int stretch_off, int stretch_on) { - memset(cfg, 0, sizeof(*cfg)); + sgpio_cfg_t cfg = 0; if (gpio_enable) - set_sgpio_cfg_gpio_enable(cfg, 1); - - set_sgpio_cfg_blink_gen_a(cfg, blink_a); - set_sgpio_cfg_blink_gen_b(cfg, blink_b); - set_sgpio_cfg_max_on(cfg, max_on); - set_sgpio_cfg_force_off(cfg, force_off); - set_sgpio_cfg_stretch_on(cfg, stretch_on); - set_sgpio_cfg_stretch_off(cfg, stretch_off); + set_sgpio_cfg_gpio_enable(&cfg, 1); + + set_sgpio_cfg_blink_gen_a(&cfg, blink_a); + set_sgpio_cfg_blink_gen_b(&cfg, blink_b); + set_sgpio_cfg_max_on(&cfg, max_on); + set_sgpio_cfg_force_off(&cfg, force_off); + set_sgpio_cfg_stretch_on(&cfg, stretch_on); + set_sgpio_cfg_stretch_off(&cfg, stretch_off); + + return cfg; } -static void _dump_sgpio_cfg(sgpio_cfg_t *cfg) +static void _dump_sgpio_cfg(const char *type, sgpio_cfg_t cfg) { - log_debug("SGPIO Configuration Register:\n"); - log_debug(REG_FMT_2, "version", get_sgpio_cfg_version(cfg), - "gp register count", get_sgpio_cfg_gp_reg_count(cfg)); + uint32_t *r = (uint32_t *)&cfg; + + log_debug("%s SGPIO Configuration Register: %08x %08x\n", type, + r[0], r[1]); + log_debug(REG_FMT_2, "version", get_sgpio_cfg_version(&cfg), + "gp register count", get_sgpio_cfg_gp_reg_count(&cfg)); log_debug(REG_FMT_2, "cfg register count", - get_sgpio_cfg_cfg_reg_count(cfg), "gpio enabled", - get_sgpio_cfg_gpio_enable(cfg)); - log_debug(REG_FMT_2, "drive count", get_sgpio_cfg_drive_count(cfg), - "blink gen rate A", get_sgpio_cfg_blink_gen_a(cfg)); + get_sgpio_cfg_cfg_reg_count(&cfg), "gpio enabled", + get_sgpio_cfg_gpio_enable(&cfg)); + log_debug(REG_FMT_2, "drive count", get_sgpio_cfg_drive_count(&cfg), + "blink gen rate A", get_sgpio_cfg_blink_gen_a(&cfg)); log_debug(REG_FMT_2, "blink gen rate B", - get_sgpio_cfg_blink_gen_b(cfg), "force activity off", - get_sgpio_cfg_force_off(cfg)); - log_debug(REG_FMT_2, "max activity on", get_sgpio_cfg_max_on(cfg), - "stretch activity off", get_sgpio_cfg_stretch_off(cfg)); + get_sgpio_cfg_blink_gen_b(&cfg), "force activity off", + get_sgpio_cfg_force_off(&cfg)); + log_debug(REG_FMT_2, "max activity on", get_sgpio_cfg_max_on(&cfg), + "stretch activity off", get_sgpio_cfg_stretch_off(&cfg)); log_debug(REG_FMT_1, "stretch activity on", - get_sgpio_cfg_stretch_on(cfg)); + get_sgpio_cfg_stretch_on(&cfg)); } -static void _init_sgpio_amd(sgpio_amd_t *amd, int initiator, int polarity, - int bypass, int normal) +static sgpio_amd_t _init_sgpio_amd(int initiator, int polarity, + int bypass, int normal) { - memset(amd, 0, sizeof(*amd)); + sgpio_amd_t amd = 0; - set_sgpio_amd_initiator(amd, initiator); - set_sgpio_amd_polarity_flip(amd, polarity); - set_sgpio_amd_bypass_enable(amd, bypass); - set_sgpio_amd_return_to_normal(amd, normal); -} + set_sgpio_amd_initiator(&amd, initiator); + set_sgpio_amd_polarity_flip(&amd, polarity); + set_sgpio_amd_bypass_enable(&amd, bypass); + set_sgpio_amd_return_to_normal(&amd, normal); -static void _dump_sgpio_amd(sgpio_amd_t *amd) -{ - log_debug("SGPIO AMD Register\n"); - log_debug(REG_FMT_2, "initiator", get_sgpio_amd_initiator(amd), - "polarity", get_sgpio_amd_polarity_flip(amd)); - log_debug(REG_FMT_2, "bypass enable", get_sgpio_amd_bypass_enable(amd), - "return to normal", get_sgpio_amd_return_to_normal(amd)); + return amd; } -static void _dump_cfg_register(struct config_register *cfg_reg) +static void _dump_sgpio_amd(const char *type, sgpio_amd_t amd) { - uint32_t *reg = (uint32_t *)cfg_reg; - - log_info("CFG Register: %08x %08x %08x %08x %08x", - reg[0], reg[1], reg[2], reg[3], reg[4]); - - _dump_sgpio_hdr(&cfg_reg->hdr); - _dump_sgpio_req(&cfg_reg->req); - _dump_sgpio_cfg(&cfg_reg->cfg); + log_debug("%s SGPIO AMD Register: %08x\n", type, amd); + log_debug(REG_FMT_2, "initiator", get_sgpio_amd_initiator(&amd), + "polarity", get_sgpio_amd_polarity_flip(&amd)); + log_debug(REG_FMT_2, "bypass enable", get_sgpio_amd_bypass_enable(&amd), + "return to normal", get_sgpio_amd_return_to_normal(&amd)); } static int _write_cfg_register(const char *em_buffer_path, @@ -443,53 +445,49 @@ static int _write_cfg_register(const char *em_buffer_path, { struct config_register cfg_reg; - _init_sgpio_hdr(&cfg_reg.hdr, 0, sizeof(cfg_reg)); - _init_sgpio_req(&cfg_reg.req, 0x40, 0x82, SGPIO_REQ_REG_TYPE_CFG, 0, 2); + cfg_reg.hdr = _init_sgpio_hdr(0, sizeof(cfg_reg)); + cfg_reg.req = _init_sgpio_req(0x40, 0x82, SGPIO_REQ_REG_TYPE_CFG, + 0, 2); if (cache->blink_gen_a) cache->blink_gen_b = ibpi_pattern[ibpi]; else cache->blink_gen_a = ibpi_pattern[ibpi]; - _init_sgpio_cfg(&cfg_reg.cfg, 1, cache->blink_gen_a, cache->blink_gen_b, - 2, 1, 0, 0); + cfg_reg.cfg = _init_sgpio_cfg(1, cache->blink_gen_a, + cache->blink_gen_b, 2, 1, 0, 0); + + _dump_sgpio_hdr("CFG", cfg_reg.hdr); + _dump_sgpio_req("CFG", cfg_reg.req); + _dump_sgpio_cfg("CFG", cfg_reg.cfg); - _dump_cfg_register(&cfg_reg); return _send_sgpio_register(em_buffer_path, &cfg_reg, sizeof(cfg_reg)); } -static void _dump_sgpio_tx(sgpio_tx_t *tx) +static void _dump_sgpio_tx(const char *type, sgpio_tx_t tx) { int i; - log_debug("SGPIO TX Register:\n"); + log_debug("%s SGPIO TX Register: %08x\n", type, tx); for (i = 0; i < 4; i++) { log_debug("\tdrive %d: error %x, locate %x, activity %x\n", i, - get_error_led(&tx->drive[i]), - get_locate_led(&tx->drive[i]), - get_activity_led(&tx->drive[i])); + get_error_led(&tx.drive[i]), + get_locate_led(&tx.drive[i]), + get_activity_led(&tx.drive[i])); } } -static void _dump_tx_register(struct transmit_register *tx_reg) -{ - uint32_t *reg = (uint32_t *)tx_reg; - - log_info("TX Register: %08x %08x %08x %08x", reg[0], reg[1], - reg[2], reg[3]); - - _dump_sgpio_hdr(&tx_reg->hdr); - _dump_sgpio_req(&tx_reg->req); - _dump_sgpio_tx(&tx_reg->tx); -} - static int _write_tx_register(const char *em_buffer_path, struct transmit_register *tx_reg) { - _init_sgpio_hdr(&tx_reg->hdr, 0, sizeof(*tx_reg)); - _init_sgpio_req(&tx_reg->req, 0x40, 0x82, SGPIO_REQ_REG_TYPE_TX, 0, 1); + tx_reg->hdr = _init_sgpio_hdr(0, sizeof(*tx_reg)); + tx_reg->req = _init_sgpio_req(0x40, 0x82, SGPIO_REQ_REG_TYPE_TX, + 0, 1); + + _dump_sgpio_hdr("TX", tx_reg->hdr); + _dump_sgpio_req("TX", tx_reg->req); + _dump_sgpio_tx("TX", tx_reg->tx); - _dump_tx_register(tx_reg); return _send_sgpio_register(em_buffer_path, tx_reg, sizeof(*tx_reg)); } @@ -538,28 +536,20 @@ static int _init_tx_drive_leds(struct transmit_register *tx_reg, return init_done; } -static void _dump_amd_register(struct amd_register *amd_reg) -{ - uint32_t *reg = (uint32_t *)amd_reg; - - log_info("AMD Register: %08x %08x %08x %08x", reg[0], reg[1], - reg[2], reg[3]); - - _dump_sgpio_hdr(&amd_reg->hdr); - _dump_sgpio_req(&amd_reg->req); - _dump_sgpio_amd(&amd_reg->amd); -} - static int _write_amd_register(const char *em_buffer_path, struct amd_drive *drive) { struct amd_register amd_reg; - _init_sgpio_hdr(&amd_reg.hdr, 0, sizeof(amd_reg)); - _init_sgpio_req(&amd_reg.req, 0x40, 0x82, SGPIO_REQ_REG_TYPE_AMD, 0, 1); - _init_sgpio_amd(&amd_reg.amd, drive->initiator, 0, 1, 1); + amd_reg.hdr = _init_sgpio_hdr(0, sizeof(amd_reg)); + amd_reg.req = _init_sgpio_req(0x40, 0x82, SGPIO_REQ_REG_TYPE_AMD, + 0, 1); + amd_reg.amd = _init_sgpio_amd(drive->initiator, 0, 1, 1); + + _dump_sgpio_hdr("AMD", amd_reg.hdr); + _dump_sgpio_req("AMD", amd_reg.req); + _dump_sgpio_amd("AMD", amd_reg.amd); - _dump_amd_register(&amd_reg); return _send_sgpio_register(em_buffer_path, &amd_reg, sizeof(amd_reg)); } ++++++ ledmon-paths-in-systemd-service-file-are-generated.patch ++++++ >From 13040e80dec77d7c9e9e3636f2068fce9e056dc2 Mon Sep 17 00:00:00 2001 From: Krzysztof Smolinski <[email protected]> Date: Sun, 10 Nov 2019 18:58:01 +0100 Subject: [PATCH] ledmon: paths in systemd service file are generated Ledmon service file contained hardcoded path to ledmon executable. This patch places correct installation path of ledmon in systemd service file. Signed-off-by: Krzysztof Smolinski <[email protected]> --- Makefile.am | 2 +- systemd/Makefile.am | 6 ++++++ systemd/{ledmon.service => ledmon.service.in} | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) rename systemd/{ledmon.service => ledmon.service.in} (76%) diff --git a/Makefile.am b/Makefile.am index 0bfc188..63bf8a3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,5 +21,5 @@ if SYSTEMD_CONDITION endif SUBDIRS = doc src $(OPTIONAL_SUBDIR) -EXTRA_DIST = config/config.h systemd/ledmon.service +EXTRA_DIST = config/config.h systemd/ledmon.service.in dist_doc_DATA = README diff --git a/systemd/Makefile.am b/systemd/Makefile.am index 4303628..962b122 100644 --- a/systemd/Makefile.am +++ b/systemd/Makefile.am @@ -18,6 +18,12 @@ # Installation directory of ledmon systemd service unit. systemddir = @SYSTEMD_PATH@ +SED = sed + +CLEANFILES = ledmon.service ledmon.service.tmp systemd_DATA = ledmon.service +ledmon.service : ledmon.service.in + $(SED) -e 's|@sbindir[@]|$(sbindir)|g' < $< > [email protected] + mv [email protected] $@ diff --git a/systemd/ledmon.service b/systemd/ledmon.service.in similarity index 76% rename from systemd/ledmon.service rename to systemd/ledmon.service.in index d2fa08c..059fd95 100644 --- a/systemd/ledmon.service +++ b/systemd/ledmon.service.in @@ -7,5 +7,5 @@ WantedBy=multi-user.target [Service] Type=simple User=root -ExecStart=/usr/sbin/ledmon --foreground +ExecStart=@sbindir@/ledmon --foreground Restart=on-failure -- 2.24.0 ++++++ smp-fix-the-activity-indicator-states.patch ++++++ >From dc6d2c546b938b106f4f8ba708989193d9a6c90d Mon Sep 17 00:00:00 2001 From: Artur Paszkiewicz <[email protected]> Date: Fri, 29 Nov 2019 11:56:41 +0100 Subject: [PATCH] smp: fix the activity indicator states The values for SOF and EOF were interchanged, which caused an incorrect default value to be used (100b instead of 101b). Signed-off-by: Artur Paszkiewicz <[email protected]> --- src/smp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/smp.c b/src/smp.c index b893d76..2c089f8 100644 --- a/src/smp.c +++ b/src/smp.c @@ -61,8 +61,8 @@ #define LED_ON 1 #define LED_4HZ 2 #define LED_I4HZ 3 -#define LED_SOF 4 -#define LED_EOF 5 +#define LED_EOF 4 +#define LED_SOF 5 #define LED_2HZ 6 #define LED_I2HZ 7 -- 2.24.0
