Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uwsgi: recreate uwsgi-python3-plugin after upgrading python #14060

Closed
wants to merge 1 commit into from

Conversation

peter-stadler
Copy link
Contributor

Maintainer: @Ansuel
Compile tested: x86_64, x86_64 qemu, master
Run tested: x86_64, x86_64 qemu, master, run etesync-server

Description: Create new version of uwsgi-python3-plugin that is linked to libpython3.9 instead of 3.8.

@Ansuel
Copy link
Member

Ansuel commented Nov 29, 2020

Any idea how to prevent this in the future? Wonder if the python module suffer of the same problem.

@peter-stadler
Copy link
Contributor Author

Hmm, not really; the only solution I have in mind, is to version it (uwsgi-python38-plugin and uwsgi-python39-plugin), but I am not sure if this is a good thing. I will look if I find another solution ...

@Ansuel
Copy link
Member

Ansuel commented Nov 29, 2020

A hint should be how the python module handle the version.

@neheb
Copy link
Contributor

neheb commented Nov 29, 2020

Interesting buildbot failure...

I don't experience it locally but @pprindeville does.

ping @jefferyto

@neheb
Copy link
Contributor

neheb commented Nov 30, 2020

Please rebase to remove those red checkmarks.

Else it would link to libpython3.8.so.1.0

Signed-off-by: Peter Stadler <peter.stadler@student.uibk.ac.at>
@peter-stadler
Copy link
Contributor Author

Rebased, thank you for the fix :-)

I am not sure if we need this change: in the package system uwsgi is already rebuild using python3.9. It was just not updated on my system because it had the same version number, but I successfully reinstalled the other python3-packages (maybe their version numbers were increased unrelated to the direct upgrade of python3) ...

@jefferyto
Copy link
Member

I think this issue still exists for most/all Python packages, although it would only affect master and not release branches, since release branches will stay on the same 3.x version of Python.

Python-dependent packages may be rebuilt by buildbots, but opkg on users' systems will not know to reinstall them after a Python upgrade like 3.8 to 3.9. In this case it is a change from libpython3.8 to libpython3.9, but even for "plain" Python packages, their install path changes from /usr/lib/python3.8/site-packages to /usr/lib/python3.9/site-packages.

I think this may be a good case for adding ABI_VERSION to the python3 package (not sure how to have other "plain" Python packages hook into this value though). @commodo any thoughts?

@commodo
Copy link
Contributor

commodo commented Dec 1, 2020

ABI_VERSION in Python3 sounds like a good idea
it can be parametrized from PYTHON3_VERSION_MAJOR & PYTHON3_VERSION_MINOR

@neheb
Copy link
Contributor

neheb commented Dec 14, 2020

Sounds like this can be closed?

@commodo
Copy link
Contributor

commodo commented Dec 15, 2020

if ABI_VERSION will fix this, then sure;
let me open a PR on that; i forgot about this

commodo added a commit to commodo/packages that referenced this pull request Dec 15, 2020
Related to discussion:
  openwrt#14060

Every once in a while a version bump will occur that requires an ABI
change. Example: Python 3.8 to 3.9. When this happens some Python packages
would need to be rebuilt especially if they are linking against the shared
binary libraries.

To do this, we add an ABI_VERSION option in Python3's Makefile.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
@commodo
Copy link
Contributor

commodo commented Dec 15, 2020

created PR;
no idea how to proceed from here;
merge the other PR and check back here?

i can see that i would forget about this PR [again] :p

[edit] referencing other PR: #14237

@pprindeville
Copy link
Member

pprindeville commented Dec 18, 2020

I don't experience it locally but @pprindeville does.

@neheb I do? What's the context?

@neheb
Copy link
Contributor

neheb commented Dec 18, 2020

AFAIK it was some issue that is now fixed. I don't remember the details.

@peter-stadler
Copy link
Contributor Author

I am closing this PR as the other one will solve it in the right and broader way (it is not merged, so technically the problem is still open, but I think it is enough to have one PR for it) ...

commodo added a commit to commodo/packages that referenced this pull request Feb 24, 2021
Related to discussion:
  openwrt#14060

Every once in a while a version bump will occur that requires an ABI
change. Example: Python 3.8 to 3.9. When this happens some Python packages
would need to be rebuilt. In setups where everything gets rebuilt, this
isn't a problem.

It's usually a bigger problem when needing to upgrade something via
opkg.
To accommodate for this, we add a libpython with it's own ABI_VERSION
flag. If this ABI_VERSION changes, then this should propagate forward.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
commodo added a commit to commodo/packages that referenced this pull request Mar 29, 2021
Related to discussion:
  openwrt#14060

Every once in a while a version bump will occur that requires an ABI
change. Example: Python 3.8 to 3.9. When this happens some Python packages
would need to be rebuilt. In setups where everything gets rebuilt, this
isn't a problem.

It's usually a bigger problem when needing to upgrade something via
opkg.
To accommodate for this, we add a libpython with it's own ABI_VERSION
flag. If this ABI_VERSION changes, then this should propagate forward.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
commodo added a commit to commodo/packages that referenced this pull request Apr 28, 2021
Related to discussion:
  openwrt#14060

Every once in a while a version bump will occur that requires an ABI
change. Example: Python 3.8 to 3.9. When this happens some Python packages
would need to be rebuilt. In setups where everything gets rebuilt, this
isn't a problem.

It's usually a bigger problem when needing to upgrade something via
opkg.
To accommodate for this, we add a libpython with it's own ABI_VERSION
flag. If this ABI_VERSION changes, then this should propagate forward.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
1715173329 pushed a commit to immortalwrt/packages that referenced this pull request May 3, 2021
Related to discussion:
  openwrt/packages#14060

Every once in a while a version bump will occur that requires an ABI
change. Example: Python 3.8 to 3.9. When this happens some Python packages
would need to be rebuilt. In setups where everything gets rebuilt, this
isn't a problem.

It's usually a bigger problem when needing to upgrade something via
opkg.
To accommodate for this, we add a libpython with it's own ABI_VERSION
flag. If this ABI_VERSION changes, then this should propagate forward.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
BKPepe pushed a commit that referenced this pull request May 17, 2021
Related to discussion:
  #14060

Every once in a while a version bump will occur that requires an ABI
change. Example: Python 3.8 to 3.9. When this happens some Python packages
would need to be rebuilt. In setups where everything gets rebuilt, this
isn't a problem.

It's usually a bigger problem when needing to upgrade something via
opkg.
To accommodate for this, we add a libpython with it's own ABI_VERSION
flag. If this ABI_VERSION changes, then this should propagate forward.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
(cherry picked from commit 27aee1f)
@jefferyto
Copy link
Member

Now that #14237 is merged, perhaps it would help to have uwsgi-python3-plugin depend on libpython3?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants