Dropping 32-bit ARM Support #3940
Replies: 6 comments 2 replies
-
I think that's fine, besides the Pi 0 I don't know any 32-bit arm devices anyways, at least none that someone would want to use for something like Paperless. |
Beta Was this translation helpful? Give feedback.
-
I've been tyring to replicate my Paperless-NGX install on a spare RasPi as part of documenting how I built the one I actually use off and on for months, with no end of trouble. This explains all the weird problems I've been running into. |
Beta Was this translation helpful? Give feedback.
-
I run paperless-ngx on x86 so this does not impact me. Do you have any metrics or pingbacks or statistics to figure how what percentage of the userbase is on arm-32-bit? They might not all keep an eye on github release-notes |
Beta Was this translation helpful? Give feedback.
-
I'm using a Banana Pi M1 with latest Armbian. Am I affected? |
Beta Was this translation helpful? Give feedback.
-
Hi, if you run Paperless on a synology NAS-System, you can check the processor-type on the website: https://www.synology-wiki.de. |
Beta Was this translation helpful? Give feedback.
-
This discussion has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion for related concerns. |
Beta Was this translation helpful? Give feedback.
-
What
The next release of paperless will be dropping 32-bit ARM support (also known as arm(hf) or ARMv7). Other open source maintainers like LinuxServer.io are also stopping support for this architecture.
Why
Python has not supported ARMv7 targets very well in its ecosystem, and the burden of maintaining our dependencies (including a whole build system) is becoming quite large. Alternative build sources like PiWheels could help, but is increasingly running into issues of its own, with many newer versions of libraries no longer building correctly there. Additionally, PiWheels only provides builds against Python 3.9, which has prevented us from updating to a newer Python version (such as 3.11) in the Docker image.
Raspberry Pi OS, one of the larger sources of 32-bit ARM, is 64-bit capable now for its recent devices, and Aarch64 is well supported by the Python packaging ecosystem, with many of the libraries we utilize releasing pre-built versions for this architecture.
In general, this change will allow us to update multiple dependencies to their most recent versions for new features, bug fixes and security fixes (
cryptography
for example), while reducing the amount of work the maintainers must manage for each update.Actions To Take
First, check if you device is running 32 bit or now. Then check if your device supports 64 bit.
If your device is capable of running a 64 bit kernel, such as Raspberry Pi OS, you should look into updating to it. As far as I know, there is no direct upgrade path, so this does require a new installation.
If you want to continue using newer releases on 32 bit ARM, you will need to build them yourself. This may require modifications
to the
Dockerfile
or installing additional build tools to build the new libraries for a bare metal install.Beta Was this translation helpful? Give feedback.
All reactions