public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Thomas Moschny <thm@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/python3-lxc] rawhide: Add upstream patch to fix "random" personality corruption.
Date: Sun, 27 Sep 2026 15:04:43 GMT	[thread overview]
Message-ID: <179052148355.1.9154324248719779860.rpms-python3-lxc-0b9d3ebd28e5@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/python3-lxc
Branch : rawhide
Commit : 0b9d3ebd28e5256271a1ffe3fdefb1e9bf721134
Author : Thomas Moschny <thm@fedoraproject.org>
Date   : 2026-09-27T17:03:42+02:00
Stats  : +72/-2 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/python3-lxc/c/0b9d3ebd28e5256271a1ffe3fdefb1e9bf721134?branch=rawhide

Log:
Add upstream patch to fix "random" personality corruption.

---
diff --git a/lxc-5.0.0_fix_personality_corruption.patch b/lxc-5.0.0_fix_personality_corruption.patch
new file mode 100644
index 0000000..74644e2
--- /dev/null
+++ b/lxc-5.0.0_fix_personality_corruption.patch
@@ -0,0 +1,65 @@
+From f8d5ddc6892db7c1c7007c09c67b2230887163f4 Mon Sep 17 00:00:00 2001
+From: Thomas Jarosch <thomas.jarosch@intra2net.com>
+Date: Mon, 16 Jun 2025 20:22:47 +0200
+Subject: [PATCH] Fix random "personality" corruption when linking against lxc
+ 6
+
+When using python3-lxc with liblxc from lxc 6.0.x, we could observe
+random systemd startup failures on containers.
+
+systemd will report this on startup when the corruption hit:
+"Warning! Reported kernel version 2.6.74-300.fc42.x86_64 is older than systemd's required baseline kernel version 4.15. Your mileage may vary."
+
+Some systemd services fail to start properly, including systemd-journald.
+
+The root problem is that other lxc library code unexpectedly calls into
+lxc_config_parse_arch() from python3-lxc instead of the function from liblxc.
+
+The function signature of lxc_config_parse_arch() changed throughout the years
+and the second "persona" pointer argument was added. The older python3-lxc copy
+of the function would not initialize the provided memory location of "persona".
+It will therefore contain a random value.
+
+Additionally the symbol visibility of liblxc's lxc_config_parse_arch()
+changed with this commit in lxc 6.0:
+
+******************************************
+commit 42eeffcb05c468fd7b3a90eeda4a3abe9f26844b
+AuthorDate: Sun Feb 18 15:43:20 2024 +0100
+
+    confile: unhide lxc_config_parse_arch() helper
+
+    Looks safe enough to be available for liblxc users.
+******************************************
+
+This results in two symbols with the same name and
+the python3-lxc symbol takes precedence.
+
+Fix the issue by making the function static in python3-lxc,
+so python3-lxc stays compatible with lxc 5.x and 6.x.
+
+A future python3-lxc version might remove the local function
+and use lxc_config_parse_arch() from liblxc 6.0 and later.
+
+Side quest: Even though lxc 5.0 already has the "persona" function argument in
+lxc_config_parse_arch() since 7c43fa56e70c65607f63dec8ff5a9682a3091ab2 (from 2021),
+it is not affected since the symbol visibility is still hidden.
+
+Signed-off-by: Thomas Jarosch <thomas.jarosch@intra2net.com>
+---
+ lxc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lxc.c b/lxc.c
+index 3039cfc..bc31eb1 100644
+--- a/lxc.c
++++ b/lxc.c
+@@ -81,7 +81,7 @@ static int lxc_wait_for_pid_status(pid_t pid)
+ }
+ 
+ /* Copied from lxc/confile.c, with HAVE_SYS_PERSONALITY_H check removed */
+-signed long lxc_config_parse_arch(const char *arch)
++static signed long lxc_config_parse_arch(const char *arch)
+ {
+     struct per_name {
+         char *name;

diff --git a/python3-lxc.spec b/python3-lxc.spec
index b942da0..5b13012 100644
--- a/python3-lxc.spec
+++ b/python3-lxc.spec
@@ -1,13 +1,15 @@
 Name:           python3-lxc
 Version:        5.0.0
-Release:        19%{?dist}
+Release:        20%{?dist}
 Summary:        Python binding for LXC
 # Automatically converted from old format: LGPLv2+ - review is highly recommended.
 License:        LicenseRef-Callaway-LGPLv2+
 URL:            https://linuxcontainers.org/lxc
 Source0:        https://linuxcontainers.org/downloads/lxc/%{name}-%{version}.tar.gz
 # see https://github.com/lxc/python3-lxc/issues/35
-Patch0:         lxc-5.0.0_py3.13.patch
+Patch:          lxc-5.0.0_py3.13.patch
+# see https://github.com/lxc/python3-lxc/pull/38
+Patch:          lxc-5.0.0_fix_personality_corruption.patch
 BuildRequires:  python%{python3_pkgversion}-devel
 BuildRequires:  lxc-devel >= 3.0.0
 BuildRequires:  pkgconfig
@@ -67,6 +69,9 @@ sed -i -e '1 s@^#!.*@#!%{__python3}@' examples/*.py
 
 
 %changelog
+* Sun Sep 27 2026 Thomas Moschny <thomas.moschny@gmx.de> - 5.0.0-20
+- Add upstream patch to fix "random" personality corruption.
+
 * Wed Jul 22 2026 Python Maint <python-maint@redhat.com> - 5.0.0-19
 - Rebuilt for Python 3.15.0b4 ABI change
 

                 reply	other threads:[~2026-09-27 15:04 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=179052148355.1.9154324248719779860.rpms-python3-lxc-0b9d3ebd28e5@fedoraproject.org \
    --to=thm@fedoraproject.org \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox