conda-forge / matplotlib-feedstock

A conda-smithy repository for matplotlib.
BSD 3-Clause "New" or "Revised" License
22 stars 57 forks source link

Rebuild for python310 #309

Closed regro-cf-autotick-bot closed 2 years ago

regro-cf-autotick-bot commented 2 years ago

This PR has been triggered in an effort to update python310.

Notes and instructions for merging this PR:

  1. Please merge the PR only after the tests have passed.
  2. Feel free to push to the bot's branch to update this PR if needed.

Please note that if you close this PR we presume that the feedstock has been rebuilt, so if you are going to perform the rebuild yourself don't close this PR until the your rebuild has been merged.

This package has the following downstream children:

And potentially more.

If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. If you would like a local version of this bot, you might consider using rever. Rever is a tool for automating software releases and forms the backbone of the bot's conda-forge PRing capability. Rever is both conda (conda install -c conda-forge rever) and pip (pip install re-ver) installable. Finally, feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/1454885593, please use this URL for debugging

conda-forge-linter commented 2 years ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

tacaswell commented 2 years ago

aarch64 looks like it is failing during the configure step of building freetype:

    checking for x86_64-conda-linux-gnu-gcc... (cached) x86_64-conda-linux-gnu-gcc
    checking for suffix of native executables... /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759687189/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759687189/_build_env/aarch64-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: Relocations in generic ELF (EM: 183)
    /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759687189/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759687189/_build_env/aarch64-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: error adding symbols: file in wrong format
    collect2: error: ld returned 1 exit status
    configure: error: native C compiler is not working

Similar for ppcle

    checking for x86_64-conda-linux-gnu-gcc... (cached) x86_64-conda-linux-gnu-gcc
    checking for x86_64-conda-linux-gnu-gcc... (cached) x86_64-conda-linux-gnu-gcc
    checking for suffix of native executables... /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/powerpc64le-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: Relocations in generic ELF (EM: 21)
    /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/powerpc64le-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: Relocations in generic ELF (EM: 21)
    /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/powerpc64le-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: Relocations in generic ELF (EM: 21)
    /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759666986/_build_env/powerpc64le-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: error adding symbols: file in wrong format
    collect2: error: ld returned 1 exit status
    configure: error: native C compiler is not working
    make: *** [builds/unix/detect.mk:85: setup] Error 1
h-vetinari commented 2 years ago

Not sure what the testing branch is doing, but the PR for master (#308) just ran into some missing yum_requirements that are being made apparent by running in emulation (the exact mechanism of why that is is not something I claim to understand, but it was the same in https://github.com/conda-forge/pyqt-feedstock/pull/104).

I opened #310 to iterate on this idea (might be other libs missing).

dopplershift commented 2 years ago

This branch builds matplotlib using its internal fixed copy of freetype 2.6.1, which is handy for image-based testing.

My guess is how matplotlib is building freetype doesn't quite like the cross-compiling we're using now for aarch64...though I thought we were still using native for ppc64le? The last build on this branch worked fine on these platforms.

dopplershift commented 2 years ago

So the error is:

2021-11-12T23:32:58.7769664Z   checking if /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-cc supports -fno-rtti -fno-exceptions... no
2021-11-12T23:32:58.7771736Z   checking for /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-cc option to produce PIC... -fPIC -DPIC
2021-11-12T23:32:58.7988175Z   checking if /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-cc PIC flag -fPIC -DPIC works... yes
2021-11-12T23:32:58.9143032Z   checking if /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-cc static flag -static works... yes
2021-11-12T23:32:58.9454233Z   checking if /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-cc supports -c -o file.o... yes
2021-11-12T23:32:58.9456250Z   checking if /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-cc supports -c -o file.o... (cached) yes
2021-11-12T23:32:58.9570877Z   checking whether the /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-cc linker (/home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/aarch64-conda-linux-gnu-ld) supports shared libraries... yes
2021-11-12T23:32:59.0506331Z   checking dynamic linker characteristics... GNU/Linux ld.so
2021-11-12T23:32:59.0507331Z   checking how to hardcode library paths into programs... immediate
2021-11-12T23:32:59.0540922Z   checking whether stripping libraries is possible... yes
2021-11-12T23:32:59.0544288Z   checking if libtool supports shared libraries... yes
2021-11-12T23:32:59.0548320Z   checking whether to build shared libraries... no
2021-11-12T23:32:59.0552099Z   checking whether to build static libraries... yes
2021-11-12T23:32:59.0576457Z   checking for x86_64-conda-linux-gnu-gcc... x86_64-conda-linux-gnu-gcc
2021-11-12T23:32:59.0578586Z   checking for x86_64-conda-linux-gnu-gcc... (cached) x86_64-conda-linux-gnu-gcc
2021-11-12T23:32:59.0582563Z   checking for x86_64-conda-linux-gnu-gcc... (cached) x86_64-conda-linux-gnu-gcc
2021-11-12T23:32:59.0817215Z   checking for suffix of native executables... /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/aarch64-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: Relocations in generic ELF (EM: 183)
2021-11-12T23:32:59.0820461Z   /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/bin/../lib/gcc/x86_64-conda-linux-gnu/9.4.0/../../../../x86_64-conda-linux-gnu/bin/ld: /home/conda/feedstock_root/build_artifacts/matplotlib-suite_1636759682744/_build_env/aarch64-conda-linux-gnu/sysroot/usr/libexec/../lib/Scrt1.o: error adding symbols: file in wrong format
2021-11-12T23:32:59.0826119Z   collect2: error: ld returned 1 exit status
2021-11-12T23:32:59.0833621Z   configure: error: native C compiler is not working

So it looks like the native compiler is picking up the aarch64 c runtime? @isuruf (or anyone else) seen that before? Any pointers?

h-vetinari commented 2 years ago

I'd say restarting the CI after 5 days (with some intervening changes in the cross-compilation infra) might help (note also that #311 is passing fully for the master branch)

dopplershift commented 2 years ago

@h-vetinari It's worth a shot. I'll note that #311 is probably not relevant, since the code failing the build here isn't compiled on the master branch.

h-vetinari commented 2 years ago

Well, I don't know the branch strategy here, but from your statement:

This branch builds matplotlib using its internal fixed copy of freetype 2.6.1, which is handy for image-based testing.

I thought it's just the addition of freetype relative to master, i.e. not a lot of changes.

dopplershift commented 2 years ago

@h-vetinari That's exactly correct. And the build here is failing while attempting to cross-compile freetype 2.6.1.

dopplershift commented 2 years ago

Ok, since I'm the driver of these "testing" builds, and the only users of these that I'm aware of are MetPy and Cartopy, which don't test using those platforms, I'm making the executive decision to drop the ppc64le and aarch64 builds for the testing branch. Someone else can always re-add if they need those platforms (though that will mean debugging cross-compile issues for a 6-year old version of freetype). I don't have the time or motivation to do the debugging.