niess / python-appimage

AppImage distributions of Python
https://python-appimage.readthedocs.io/en/latest/
GNU General Public License v3.0
170 stars 24 forks source link

Could you add libpython.a files to the AppImages? #69

Open mattaw opened 11 months ago

mattaw commented 11 months ago

I was just attempting to build an older uwsgi against a manylinux python 3.10 on RHEL7 (I am not allowed to upgrade it, sadly).

One of the issues I ran into was a missing libpython.a library. This was encountered in the original manylinux docker images, and to address it the manylinux image now includes them in compressed form: https://github.com/pypa/manylinux/pull/1250 as it was less than 1% image increase I believe.

Could you consider including the appropriate compressed libpython.a in the image? If so I would be happy to create the PR to add it to the build and documentation to tell people where it is and how to get at it. Considering AppImages are by their nature compressed it may be possible to simply include the libpython.a file uncompressed in the right place anyway.

If you could point me to the file that bundles the files into squashfs I could simply include a decompression of the existing libpython.a files and copy the right one to the right place to automatically include it.

Thank you for all your hard work getting python going on ancient systems!

niess commented 11 months ago

Hello @mattaw ,

thank you for pointing this out. I was not aware of this issue. This looks reasonable to me if indeed the AppImage size does not significantly increase. But, this might not be true in the case of AppImages. I mean 1% of a Docker image (GBs?) is likely much more than 1% of a Python AppImage (~20 MB).

In any case, if you like to experiment with this, you could comment this line, which actually removes the static library from the AppImage.

My fear is that the AppImage size might double doing so :(

mattaw commented 11 months ago

Thanks for identifying that line, I tried to find it but for some reason could not get the right search terms! Do you think it worth choosing a suitable manylinux-appimage, setup a vanilla packaging run of it using the instructions here, reproduce one of your releases (mostly) using these instructions:

https://python-appimage.readthedocs.io/en/latest/apps/#manylinux-python-appimages

and then edit that line to leave libpython.a in place and report back the size differences?