Issue with Intel macOS

The problem

After updating PDFStitcher to handle large canvas files, I went through my usual process of bundling the Python code for various operating systems using PyInstaller on GitHub action runners. This time, I started getting reports from users with the following message:

Runtime error: unable to load OpenSSL legacy provider

After some investigation, I believe that this is only a problem under the following conditions:

  • macOS 13 (Ventura)
  • Intel processor (not Apple Silicon)
  • Encrypted PDF (I’m not sure if the exact encryption method matters)

The workaround

For now, there are a couple of potential band-aid solutions. The easiest is to remove the PDF encryption through a PDF “unlock” tool, at which point PDFStitcher will behave normally (I don’t like to encourage such things, but I also know that sewists are by and large a respectful bunch and just trying to adapt patterns for their personal use).

Another workaround is to install Python and then install PDFStitcher through pip via the command:

pip3 install pdfstitcher

but you lose the fancy .app packaging and need to run it from the command line by typing pdfstitcher.

The long term solution

Unfortunately, I do not have an Intel mac, which makes finding the root cause of the problem rather tricky. GitHub does have a macOS 13 action runner, and I was able to create a minimal example and replicate the problem here, but a subsequent run of the same workflow did not repeat it. My guess is that not all runners are identical, and something about how QPDF (the PDF library that I use through the Python wrapper Pikepdf) is built on macOS-11 is not compatible with the OpenSSL library on macOS-13. Or maybe there’s a problem with how I’m using PyInstaller, or something else entirely - unfortunately without a consistent way to replicate the problem, I’m just guessing.

My request for help!

If you have encountered this problem, have a bit of programming experience, and are willing to help me figure out what’s going on, please comment on this issue or send me an email.

Updated:

Leave a comment