Back in December, the spec file was "modernized": https://src.fedoraproject.org/rpms/fedora-messaging/c/8998b22ef8c5dfa987a33df04a8d84bb729e4e3e?branch=rawhide That commit is now on f39, f40 and rawhide branches. Builds with these changes produce a /usr/bin/fedora-messaging with this hashbang: #! /usr/bin/python3 -sP builds done before the modernization had this hashbang: #!/usr/bin/python3 This has a significant effect: $ python3 >>> import sys; print(sys.path) ['', '/usr/lib64/python312.zip', '/usr/lib64/python3.12', '/usr/lib64/python3.12/lib-dynload', '/usr/local/lib/python3.12/site-packages', '/usr/lib64/python3.12/site-packages', '/usr/lib/python3.12/site-packages'] but: $ python3 -sP >>> import sys; print(sys.path) ['/usr/lib64/python312.zip', '/usr/lib64/python3.12', '/usr/lib64/python3.12/lib-dynload', '/usr/lib64/python3.12/site-packages', '/usr/lib/python3.12/site-packages'] this means that, after update to a newer build of fedora-messaging, consumers suddenly cannot use libraries in /usr/local/lib(64) any more. It's the -s that changes this part, not the -P; it seems that -P drops the empty string from the start of the list, -s drops the /usr/local subdirectories. This broke a bunch of important production Fedora consumers that run on openqa01, because they use the 'fedora_openqa' library that I maintain, and because it often needs updating and sometimes I need to use a different branch for testing, I don't package it; I just install it from a source checkout with `python -m pip install .`, which puts it in /usr/local/lib. I guess we may think this is a desired change, but it was certainly unexpected for me in a stable update to Fedora 39, and it was not communicated in the package changelog or the update description. It's also not in line with how things conventionally work on Fedora; it has always been that case that libraries in /usr/local/lib *are* used by default.
I suppose this is an entirely unintended side effect of the spec file modernization. The `-s` flag has been a default for a long time. It's documented in the 201x-era Python packaging guidelines[1]. The `-P` flag was added in F37 according to the Python Safe Path change proposal[2]. This doesn't solve the issue at hand, but it gives some background to where this is coming from. I guess using a library from /usr/local/lib is hard to account for or know about when testing this change. For the majority of people the shebang change will go unnoticed. [1] https://docs.fedoraproject.org/en-US/packaging-guidelines/Python_201x/#_macros [2] https://fedoraproject.org/wiki/Changes/PythonSafePath
Ooh, yeah, I didn't realize that. So...well, I can see the point, of course. For things that are "part of the system" I can see the desirability of not pulling in "non-system" libraries. But it doesn't seem a good fit for something like fedora-messaging consumers, which are *intentionally* a pluggable/expandable mechanism.
Sorry about this mess, I've blindly applied the packaging guidelines and didn't think it would cause this. I'll remove the "-s" from the shebangs.
FEDORA-2024-a8e2a0fc1b (fedora-messaging-3.5.0-2.fc39) has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2024-a8e2a0fc1b
FEDORA-2024-f78a821bf2 (fedora-messaging-3.5.0-2.fc40) has been submitted as an update to Fedora 40. https://bodhi.fedoraproject.org/updates/FEDORA-2024-f78a821bf2
FEDORA-2024-f78a821bf2 has been pushed to the Fedora 40 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-f78a821bf2` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-f78a821bf2 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
I'm actually gonna suggest we give this a Final FE, just in case it bites anyone with a custom message consumer who decides to upgrade a bit early. Seems like the kinda thing that might cause needless stress.
FEDORA-2024-a8e2a0fc1b has been pushed to the Fedora 39 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2024-a8e2a0fc1b` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2024-a8e2a0fc1b See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
+3 in https://pagure.io/fedora-qa/blocker-review/issue/1562 , marking accepted.
FEDORA-2024-f78a821bf2 (fedora-messaging-3.5.0-2.fc40) has been pushed to the Fedora 40 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2024-a8e2a0fc1b (fedora-messaging-3.5.0-2.fc39) has been pushed to the Fedora 39 stable repository. If problem still persists, please make note of it in this bug report.