Hello community, here is the log from the commit of package drbd for openSUSE:Factory checked in at 2020-12-10 15:58:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/drbd (Old) and /work/SRC/openSUSE:Factory/.drbd.new.2328 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "drbd" Thu Dec 10 15:58:47 2020 rev:90 rq:854413 version:9.0.26~0+git.9114a038 Changes: -------- --- /work/SRC/openSUSE:Factory/drbd/drbd.changes 2020-11-04 18:32:23.000148900 +0100 +++ /work/SRC/openSUSE:Factory/.drbd.new.2328/drbd.changes 2020-12-10 15:58:48.042891904 +0100 @@ -1,0 +2,53 @@ +Wed Dec 9 06:40:33 UTC 2020 - nick wang <nw...@suse.com> + +- bsc#1179708, compat to kernel v5.10 +- Add patch compat_get_fs.patch + Add patch remove_bdi_cap_stable_writes.patch + +------------------------------------------------------------------- +Tue Dec 8 09:23:06 UTC 2020 - nick wang <nw...@suse.com> + +- Update to 9.0.26 + * fix a case of a disk unexpectedly becoming Outdated by moving the + exchange of the initial packets into the body of the two-phase-commit + that happens at a connect + * fix adding of new volumes to resources with a primary node + * reliably detect split brain situation on both nodes + * fix an unexpected occurrence of NetworkFailure state in a tight + drbdsetup disconnect; drbdsetup connect sequence + * fix online verify to return to Established from VerifyS if the VerifyT node + was temporarily Inconsistent during the run + * fix a corner case where a node ends up Outdated after the crash and rejoin + of a primary node + * implement 'blockdev --setro' in DRBD + * following upstream changes to DRBD up to Linux 5.9 and ensure + compatibility with Linux 5.8 and 5.9 + * fix a crash if during resync a discard operation fails on the + resync-target node + * fix online verify to not clamp disk states to UpToDate + * fix promoting resync-target nodes; the problem was that it could modify + the bitmap of an ongoing resync; which leads to alarming log messages + * pause a resync if the sync-source node becomes inconsistent; an example + is a cascading resync where the upstream resync aborts and leaves the + sync-source node for the downstream resync with an inconsistent disk; + note, the node at the end of the chain could still have an outdated disk + (better than inconsistent) + * allow force primary on a sync-target node by breaking the resync + * minor fixes to the compat tests + * fix for writes not getting mirrored over a connection while the primary + transitions through the WFBitMapS state + * completed missing logic of the new two-phase-commit based connect process; + avoid connecting partitions with a primary in each; ensure consistent + decisions if the connect attempt will be retried +- Add patch compat-test-header.patch + Add patch submit-bio-private-date.patch +- Remove patch rely-on-sb-handlers.patch (187bddac0) + Remove patch fix-err-of-wrong-return-type.patch (969310232) + Remove patch compat_remove_pgprot_88dca4c.patch (ee025dc84) + Remove patch compat_generic_make_request.patch (8615d6837) + Remove patch blk_alloc_queue_make_request.patch (edaa9b0f/fb59b40e) + Remove patch remove_congested_fn_congested_data.patch (34484003/9b80d46b) +- Modify patch compat_remove_kernel_setsockopt.patch (518846b54) + Modify patch compat_blk_queue_stack_limits.patch (edaa9b0f2) + +------------------------------------------------------------------- Old: ---- blk_alloc_queue_make_request.patch compat_generic_make_request.patch compat_remove_pgprot_88dca4c.patch drbd-9.0.25~0+git.bd41626d.tar.bz2 fix-err-of-wrong-return-type.patch rely-on-sb-handlers.patch remove_congested_fn_congested_data.patch New: ---- compat-test-header.patch compat_get_fs.patch drbd-9.0.26~0+git.9114a038.tar.bz2 remove_bdi_cap_stable_writes.patch submit-bio-private-date.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ drbd.spec ++++++ --- /var/tmp/diff_new_pack.6rH0wL/_old 2020-12-10 15:58:48.886892698 +0100 +++ /var/tmp/diff_new_pack.6rH0wL/_new 2020-12-10 15:58:48.890892702 +0100 @@ -24,7 +24,7 @@ %endif %endif Name: drbd -Version: 9.0.25~0+git.bd41626d +Version: 9.0.26~0+git.9114a038 Release: 0 Summary: Linux driver for the "Distributed Replicated Block Device" License: GPL-2.0-or-later @@ -35,17 +35,17 @@ Source2: Module.supported Source3: drbd_git_revision Patch1: fix-resync-finished-with-syncs-have-bits-set.patch -Patch2: rely-on-sb-handlers.patch -Patch3: drbd-fix-zero-metadata-limit-by-page-size-misaligned.patch -Patch4: compat_remove_pgprot_88dca4c.patch -Patch5: compat_remove_include_vermagic.patch +Patch2: drbd-fix-zero-metadata-limit-by-page-size-misaligned.patch +#opensuse specific patch +Patch3: compat_remove_include_vermagic.patch +#compat to v5.9 +Patch4: compat-test-header.patch +Patch5: submit-bio-private-date.patch Patch6: compat_remove_kernel_setsockopt.patch -# Compat to kernel v5.9 -Patch7: compat_generic_make_request.patch -Patch8: blk_alloc_queue_make_request.patch -Patch9: remove_congested_fn_congested_data.patch -Patch10: compat_blk_queue_stack_limits.patch -Patch11: fix-err-of-wrong-return-type.patch +Patch7: compat_blk_queue_stack_limits.patch +#compat to v5.10 +Patch8: remove_bdi_cap_stable_writes.patch +Patch9: compat_get_fs.patch Patch99: suse-coccinelle.patch #https://github.com/openSUSE/rpmlint-checks/blob/master/KMPPolicyCheck.py BuildRequires: coccinelle >= 1.0.8 @@ -88,8 +88,6 @@ %patch7 -p1 %patch8 -p1 %patch9 -p1 -%patch10 -p1 -%patch11 -p1 %patch99 -p1 mkdir source ++++++ _service ++++++ --- /var/tmp/diff_new_pack.6rH0wL/_old 2020-12-10 15:58:48.950892758 +0100 +++ /var/tmp/diff_new_pack.6rH0wL/_new 2020-12-10 15:58:48.950892758 +0100 @@ -9,9 +9,9 @@ This will download branch first instead of tag. <param name="revision">drbd-9.0</param> - <param name="version">9.0.25~0</param> + <param name="version">9.0.26~0</param> --> - <param name="versionformat">9.0.25~0+git.%h</param> + <param name="versionformat">9.0.26~0+git.%h</param> <param name="revision">drbd-9.0</param> </service> ++++++ compat-test-header.patch ++++++ diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c 2020-12-08 22:03:48.629954854 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c 2020-12-09 09:40:51.499642818 +0800 @@ -1,4 +1,5 @@ #include <linux/fs.h> +#include <linux/blkdev.h> /* * In kernel version 2.6.38-rc1, open_bdev_exclusive() was replaced by diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_submit_bio.c drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_submit_bio.c --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_submit_bio.c 2020-12-08 22:03:48.629954854 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_submit_bio.c 2020-12-08 22:04:10.174672508 +0800 @@ -1,6 +1,7 @@ /* { "version": "v5.8", "commit": "c62b37d96b6eb3ec5ae4cbe00db107bf15aebc93", "comment": "Since 5.8 make_request_fn has been replaced by a block_device_operations method called submit_bio", "author": "Christoph Hellwig <h...@lst.de>", "date": "Wed Jul 1 10:59:43 2020 +0200" } */ #include <linux/blk_types.h> +#include <linux/blkdev.h> void foo(struct block_device_operations *ops) { ++++++ compat_blk_queue_stack_limits.patch ++++++ --- /var/tmp/diff_new_pack.6rH0wL/_old 2020-12-10 15:58:48.966892773 +0100 +++ /var/tmp/diff_new_pack.6rH0wL/_new 2020-12-10 15:58:48.966892773 +0100 @@ -1,35 +1,5 @@ -1. b9b1a5d7 blk_queue_stack_limits is removed -2. 63a0895d and 3f649ab72 uninitialized_var() macro removed -3. c9ec0524 convert sched_setscheduler to sched_set_fifo* +1. c9ec0524 convert sched_setscheduler to sched_set_fifo* -diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/drbd_wrappers.h drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/drbd_wrappers.h ---- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-10-20 10:48:14.274795598 +0800 -+++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-10-20 10:48:02.074702666 +0800 -@@ -523,4 +523,13 @@ - #define __vmalloc(SIZE, GFP, PRGROT) __vmalloc(SIZE, GFP) - #endif - -+#ifndef COMPAT_HAVE_BLK_QUEUE_STACK_LIMITS -+#define blk_queue_stack_limits(TOP, BOTTOM) \ -+ blk_stack_limits(&((TOP)->limits), &((BOTTOM)->limits), 0 ) -+#endif -+ -+#ifndef COMPAT_HAVE_UNINITIALIZED_VAR -+#define uninitialized_var(X) (X) -+#endif -+ - #endif -diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c ---- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c 1970-01-01 08:00:00.000000000 +0800 -+++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c 2020-10-20 10:48:02.070702635 +0800 -@@ -0,0 +1,7 @@ -+#include <linux/blkdev.h> -+ -+/* b9b1a5d7 blk_queue_stack_limits is removed */ -+void dummy(struct request_queue *a, struct request_queue *b) -+{ -+ blk_queue_stack_limits(a, b); -+} diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c 1970-01-01 08:00:00.000000000 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c 2020-10-20 10:48:02.070702635 +0800 @@ -41,20 +11,6 @@ +{ + sched_set_fifo_low(p); +} -diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c ---- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c 1970-01-01 08:00:00.000000000 +0800 -+++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c 2020-10-20 10:48:02.070702635 +0800 -@@ -0,0 +1,10 @@ -+/* 63a0895d9 uninitialized_var is removed -+ * 3f649ab72 uninitialized_var removed in all .c -+*/ -+#include <linux/compiler-gcc.h> -+ -+void test() -+{ -+ unsigned int uninitialized_var(a); -+ a = 1; -+} diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_receiver.c drbd-9.0.25~0+git.bd41626d/drbd/drbd_receiver.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_receiver.c 2020-10-20 10:48:14.058793953 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_receiver.c 2020-10-20 11:11:32.948922212 +0800 ++++++ compat_get_fs.patch ++++++ 3d13f313c, Add force_uaccess_{begin,end} helpers for get_fs/set_fs diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c 1970-01-01 08:00:00.000000000 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/tests/have_force_uaccess_begin.c 2020-12-09 19:36:17.554021899 +0800 @@ -0,0 +1,7 @@ +/* 3d13f313c Add force_uaccess_{begin,end} helpers for get_fs/set_fs */ +#include <linux/uaccess.h> + +void dummy(void) +{ + force_uaccess_begin(); +} diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_transport_tcp.c drbd-9.0.26~0+git.9114a038/drbd/drbd_transport_tcp.c --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_transport_tcp.c 2020-12-09 19:35:57.493892623 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd_transport_tcp.c 2020-12-09 19:40:44.863689731 +0800 @@ -1145,7 +1145,12 @@ struct drbd_tcp_transport *tcp_transport = container_of(transport, struct drbd_tcp_transport, transport); struct socket *socket = tcp_transport->stream[stream]; +#ifdef COMPAT_HAVE_FORCE_UACCESS_BEGIN + mm_segment_t oldfs = force_uaccess_begin(); +#else mm_segment_t oldfs = get_fs(); + set_fs(KERNEL_DS); +#endif int len = size; int err = -EIO; @@ -1154,7 +1159,6 @@ msg_flags |= MSG_NOSIGNAL; dtt_update_congested(tcp_transport); - set_fs(KERNEL_DS); do { int sent; @@ -1180,7 +1184,11 @@ * and add that to the while() condition below. */ } while (len > 0 /* THINK && peer_device->repl_state[NOW] >= L_ESTABLISHED */); +#ifdef COMPAT_HAVE_FORCE_UACCESS_BEGIN + force_uaccess_end(oldfs); +#else set_fs(oldfs); +#endif clear_bit(NET_CONGESTED, &tcp_transport->transport.flags); if (len == 0) ++++++ compat_remove_kernel_setsockopt.patch ++++++ --- /var/tmp/diff_new_pack.6rH0wL/_old 2020-12-10 15:58:48.986892792 +0100 +++ /var/tmp/diff_new_pack.6rH0wL/_new 2020-12-10 15:58:48.986892792 +0100 @@ -7,40 +7,12 @@ [ 13s] | ^~~~~~~~~~~~~~~~~ [ 13s] | kernel_getsockname [ 14s] cc1: some warnings being treated as errors -diff -Naur drbd-9.0.24~1+git.17730ea3.orig/drbd/drbd-kernel-compat/have_kernel_setsockopt.c drbd-9.0.24~1+git.17730ea3/drbd/drbd-kernel-compat/have_kernel_setsockopt.c ---- drbd-9.0.24~1+git.17730ea3.orig/drbd/drbd-kernel-compat/have_kernel_setsockopt.c 1970-01-01 08:00:00.000000000 +0800 -+++ drbd-9.0.24~1+git.17730ea3/drbd/drbd-kernel-compat/have_kernel_setsockopt.c 2020-08-14 10:18:35.107901337 +0800 -@@ -0,0 +1,13 @@ -+#include <linux/socket.h> -+ -+/* -+ * kernel_setsockopt removed in cb8e59cc -+*/ -+ -+void test(void) -+{ -+ struct socket *sock; -+ int val = 1; -+ -+ (void) kernel_setsockopt(sock, 0, 0, (char *)&val, sizeof(val)); -+} -diff -Naur drbd-9.0.24~1+git.17730ea3.orig/drbd/drbd_transport_tcp.c drbd-9.0.24~1+git.17730ea3/drbd/drbd_transport_tcp.c ---- drbd-9.0.24~1+git.17730ea3.orig/drbd/drbd_transport_tcp.c 2020-08-14 10:15:16.122125660 +0800 -+++ drbd-9.0.24~1+git.17730ea3/drbd/drbd_transport_tcp.c 2020-08-14 10:31:16.930382120 +0800 -@@ -154,8 +154,12 @@ - - static void dtt_nodelay(struct socket *socket) - { -+#ifdef COMPAT_HAVE_KERNEL_SETSOCKOPT - int val = 1; - (void) kernel_setsockopt(socket, SOL_TCP, TCP_NODELAY, (char *)&val, sizeof(val)); -+#else -+ tcp_sock_set_nodelay(socket->sk); -+#endif - } - - static int dtt_init(struct drbd_transport *transport) -@@ -889,7 +893,6 @@ +In 518846b54, some kernel_setsockopt() are removed, but not all... + +diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_transport_tcp.c drbd-9.0.26~0+git.9114a038/drbd/drbd_transport_tcp.c +--- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_transport_tcp.c 2020-12-09 14:06:22.117468473 +0800 ++++ drbd-9.0.26~0+git.9114a038/drbd/drbd_transport_tcp.c 2020-12-09 14:06:54.989546999 +0800 +@@ -883,7 +883,6 @@ struct socket *dsocket, *csocket; struct net_conf *nc; int timeout, err; @@ -48,11 +20,11 @@ bool ok; dsocket = NULL; -@@ -1071,9 +1074,14 @@ +@@ -1065,9 +1064,14 @@ dsocket->sk->sk_sndtimeo = timeout; csocket->sk->sk_sndtimeo = timeout; -+#ifdef COMPAT_HAVE_KERNEL_SETSOCKOPT ++#ifndef COMPAT_HAVE_TCP_SOCK_SET_CORK + int one = 1; err = kernel_setsockopt(dsocket, SOL_SOCKET, SO_KEEPALIVE, (char *)&one, sizeof(one)); if (err) @@ -63,36 +35,3 @@ return 0; -@@ -1213,20 +1221,32 @@ - - static void dtt_cork(struct socket *socket) - { -+#ifdef COMPAT_HAVE_KERNEL_SETSOCKOPT - int val = 1; - (void) kernel_setsockopt(socket, SOL_TCP, TCP_CORK, (char *)&val, sizeof(val)); -+#else -+ tcp_sock_set_cork(socket->sk, true); -+#endif - } - - static void dtt_uncork(struct socket *socket) - { -+#ifdef COMPAT_HAVE_KERNEL_SETSOCKOPT - int val = 0; - (void) kernel_setsockopt(socket, SOL_TCP, TCP_CORK, (char *)&val, sizeof(val)); -+#else -+ tcp_sock_set_cork(socket->sk, false); -+#endif - } - - static void dtt_quickack(struct socket *socket) - { -+#ifdef COMPAT_HAVE_KERNEL_SETSOCKOPT - int val = 2; - (void) kernel_setsockopt(socket, SOL_TCP, TCP_QUICKACK, (char *)&val, sizeof(val)); -+#else -+ tcp_sock_set_quickack(socket->sk, 2); -+#endif - } - - static bool dtt_hint(struct drbd_transport *transport, enum drbd_stream stream, ++++++ drbd-9.0.25~0+git.bd41626d.tar.bz2 -> drbd-9.0.26~0+git.9114a038.tar.bz2 ++++++ ++++ 4437 lines of diff (skipped) ++++++ drbd_git_revision ++++++ --- /var/tmp/diff_new_pack.6rH0wL/_old 2020-12-10 15:58:49.430893209 +0100 +++ /var/tmp/diff_new_pack.6rH0wL/_new 2020-12-10 15:58:49.430893209 +0100 @@ -1 +1 @@ -GIT-hash: bd41626d3fdc7b6f575532020ff9ce1c9c4bf29b +GIT-hash: 9114a0383f72b87610cd9ee282676cf94213da5b ++++++ remove_bdi_cap_stable_writes.patch ++++++ IssueA: 1cb039f3dc1619eb795c54aad0a98fdb379b4237 BDI_CAP_STABLE_WRITES is removed. QUEUE_FLAG_STABLE_WRITES is added diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/drbd_wrappers.h drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/drbd_wrappers.h --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-12-09 14:50:32.973058449 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-12-09 14:55:00.662701648 +0800 @@ -129,10 +129,14 @@ #ifdef BDI_CAP_STABLE_WRITES /* >= v3.9 */ #define set_bdi_cap_stable_writes(cap) do { (cap) |= BDI_CAP_STABLE_WRITES; } while (0) +#else +#ifdef QUEUE_FLAG_STABLE_WRITES /* >= v5.10 do nothing */ +#define set_bdi_cap_stable_writes(cap) do { } while (0) #else /* < v3.9 */ #warning "BDI_CAP_STABLE_WRITES not available" #define set_bdi_cap_stable_writes(cap) do { } while (0) #endif +#endif #ifdef COMPAT_HAVE_POINTER_BACKING_DEV_INFO /* >= v4.11 */ #define bdi_from_device(device) (device->ldev->backing_bdev->bd_disk->queue->backing_dev_info) ++++++ submit-bio-private-date.patch ++++++ missing change of bio->bi_disk->private_data; opensuse don't have blk_queue_update_readahead upstream commit c2e4cd57cfa1f opensuse don't have revalidate_disk_size upstream commit 659e56ba864d3 diff -Naur drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_req.c drbd-9.0.26~0+git.9114a038/drbd/drbd_req.c --- drbd-9.0.26~0+git.9114a038.orig/drbd/drbd_req.c 2020-12-08 22:03:48.629954854 +0800 +++ drbd-9.0.26~0+git.9114a038/drbd/drbd_req.c 2020-12-09 10:45:04.390742754 +0800 @@ -2196,7 +2196,12 @@ blk_qc_t drbd_submit_bio(struct bio *bio) { +#ifdef COMPAT_HAVE_SUBMIT_BIO + struct drbd_device *device = bio->bi_disk->private_data; +#else struct drbd_device *device = (struct drbd_device *) q->queuedata; +#endif + #ifdef CONFIG_DRBD_TIMING_STATS ktime_t start_kt; #endif _______________________________________________ openSUSE Commits mailing list -- commit@lists.opensuse.org To unsubscribe, email commit-le...@lists.opensuse.org List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette List Archives: https://lists.opensuse.org/archives/list/commit@lists.opensuse.org