[reportlab-users] Symbol not found in flat namespace when running on macOS 12.0.1

Markus Gerards mail at markus-gerards.de
Mon Nov 15 15:47:09 EST 2021


Hi Robin,

thanks for your response! I’m not blaming you for anything. The 
fruit-company is doing there stuff and breaking things while moving 
seems to be in their DNA so….

In the meantime I digged around Stackoverflow and I think I found a 
solution though I’m still no expert and have no in-depth-knowledge of 
pip, but I managed to build a fresh instance of reportlab with this 
command:

pip install reportlab --force-reinstall --no-cache-dir 
--global-option=build_ext

I think this forces pip to run setup.py of reportlab for a fresh build. 
Am I right? After running this command, everything works as intended… 
as far as I tested this for now.

Markus

On 15 Nov 2021, at 21:21, Robin Becker wrote:

> Hi Markus,
>
> I don't have a proper mac and have been building out these darwin 
> dylibs using a github action. I suspect you are right and that this is 
> a version compatibility issue. However, I have no real idea, what 
> version of OS/xcode is the issue here.
>
> I looked at the 3.9 log here and at least for some architectures the 
> tests seem to have run without this error see eg
>
>
> https://github.com/MrBitBucket/reportlab-ci/runs/3923521082?check_suite_focus=true
>
> however I think we are running system pythons and I see the following
>
>
> CIBW_TEST_SKIP: "*-manylinux_{aarch64,ppc64le,s390x} *-macosx_arm64 
> *-macosx_universal2:arm64"
>
> So perhaps the arm64 build has this problem. I believe I added the 
> test skips because of problems with the imaging library, but it could 
> also be a problem with the freetype lib. However, looking at the build 
> logs I see this
>
> ########## SUMMARY INFO #########
>       ##### setup-python-3.9.7-macosx-11.0-arm64: 
> ================================================
>       ##### setup-python-3.9.7-macosx-11.0-arm64: Attempting build of 
> _rl_accel
>       ##### setup-python-3.9.7-macosx-11.0-arm64: extensions from 
> 'src/rl_addons/rl_accel'
>       ##### setup-python-3.9.7-macosx-11.0-arm64: 
> ================================================
>       ##### setup-python-3.9.7-macosx-11.0-arm64: 
> ===================================================
>       ##### setup-python-3.9.7-macosx-11.0-arm64: Attempting build of 
> _renderPM
>       ##### setup-python-3.9.7-macosx-11.0-arm64: extensions from 
> 'src/rl_addons/renderPM'
>       ##### setup-python-3.9.7-macosx-11.0-arm64: 
> ===================================================
>       ##### setup-python-3.9.7-macosx-11.0-arm64: will use package 
> libart 2.3.21
>       ##### setup-python-3.9.7-macosx-11.0-arm64: # installing with 
> freetype version 21
>       ##### setup-python-3.9.7-macosx-11.0-arm64: 
> ################################################
>       ##### setup-python-3.9.7-macosx-11.0-arm64: Downloading standard 
> T1 font curves
>       ##### setup-python-3.9.7-macosx-11.0-arm64: Finished download of 
> standard T1 font curves
>       ##### setup-python-3.9.7-macosx-11.0-arm64: Finished creation of 
> _glyphlist.py
>
> so at least for that build it claims to have built with freetype 
> version 21 and the compile command was
>
>>  gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common 
>> -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -g -arch arm64 -DRENDERPM_FT 
>> -DLIBART_COMPILATION -DLIBART_VERSION=2.3.21 -Isrc/rl_addons/renderPM 
>> -Isrc/rl_addons/renderPM/libart_lgpl -Isrc/rl_addons/renderPM/gt1 
>> -I/usr/local/include/freetype2 
>> -I/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 
>> -c src/rl_addons/renderPM/_renderPM.c -o 
>> build/temp.macosx-11.0-arm64-3.9/src/rl_addons/renderPM/_renderPM.o
>
> the load command contains this
>
>> -L/usr/local/lib -L/usr/lib 
>> -L/Library/Frameworks/Python.framework/Versions/3.9/lib -lfreetype -o 
>> build/lib.macosx-11.0-arm64-3.9/reportlab/graphics/_renderPM.cpython-39-darwin.so
>
> so theoretically that dylib ought to contain the right stuff. However, 
> it's for 11.0 not the 12.0 you have.
>
> As you are using homebrew what happens when you just do brew reportlab 
> or do they punt to downloading from pypi?
>
> You can well blame us for lack of support, but I suspect this is just 
> a problem with Apple constantly degrading old support to drag people 
> into upgrading. I need to build a new version and will check if 
> cibuildwheel now supports a more modern set of macosx builds.
> --
> Robin Becker
>
> On 15/11/2021 13:12, Markus Gerards wrote:
>> Hello everybody,
>>
>> I have issues running my Django application that has reportlab as an 
>> indirect dependency from easy_thumbnails.
>> The error is:
>>
>> Invalid template library specified. ImportError raised when trying to 
>> load 'backend.templatetags.get_thumbnail': 
>> dlopen(/Users/markusgerards/.pyenv/versions/myapp/lib/python3.9/site-packages/reportlab/graphics/_renderPM.cpython-39-darwin.so, 
>> 0x0002): symbol not found in flat namespace '_FT_Done_Face'
>>
>> My environment is:
>>
>> macOS 12.0.1 with XCode 13.1 installed
>> Python 3.9.7 within a virtual env (via Homebrew)
>> Reportlab 3.6.2 (as a dependency from easy_thumbnails 2.8)
>> Freetype 2.11.0 (via Homebrew)
>>
>> I took a look into the problematic .so-file. Here is what otool says:
>>
>> ```
>> /Users/markusgerards/.pyenv/versions/myapp/lib/python3.9/site-packages/reportlab/graphics/_renderPM.cpython-39-darwin.so:
>>      /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, 
>> current version 1292.60.1)
>> ```
>>
>> I suspect freetype should be listed there as a load command, am I 
>> right? Is it possible, that this fails due to some stricter checks 
>> for symbols in recent XCode versions? When searching through the 
>> interwebs I stumbled upon this issue: 
>> https://github.com/openzfsonosx/openzfs/pull/75
>>
>> Could it be, that reportlab has the same problem?
>>
>> As I am no lib-genius I suspect that this has to be fixed by 
>> reportlab, right?
>>
>> Thanks!
>> Markus
>>
>> _______________________________________________
>> reportlab-users mailing list
>> reportlab-users at lists2.reportlab.com
>> https://pairlist2.pair.net/mailman/listinfo/reportlab-users
>>
>
>
> -- 
> Robin Becker
> _______________________________________________
> reportlab-users mailing list
> reportlab-users at lists2.reportlab.com
> https://pairlist2.pair.net/mailman/listinfo/reportlab-users


More information about the reportlab-users mailing list