Fix Raqm licensing issue by building against SheenBiDi and simplify the build - #9926
Fix Raqm licensing issue by building against SheenBiDi and simplify the build#9926khaledhosny wants to merge 8 commits into
Conversation
|
Ah, I was actually just looking at doing this too! This may have some implications for downstream packagers like Debian though. |
|
This affects only binary wheels, distros can continue using FriBiDi. |
6c6a904 to
788e87b
Compare
788e87b to
b4792d7
Compare
|
I think the windows failures are a corrupt file in the ci cache and don't seem to have a way to invalidate that cache, so a maintainer has to drop the bad cache entey. |
|
I don’t know what to do the remaining failures, maybe flacky ci jobs? |
|
Yes, it's a problem with the |
|
It happens on both on CPython and PyPy. |
|
|
||
| replacement = deprecated_features[feature] | ||
| deprecate( | ||
| f'features.check("{feature}")', |
There was a problem hiding this comment.
Could also be from check_feature, but maybe that's a nit...
Raqm was built in a special way because FriBiDi (a Raqm dependency) LGPL license. Raqm has since gained support for using Apache-2.0-licensed SheenBidi. Raqm is configured with -Dsheenbidi=true. A winbuild/raqm.cmake is added for Windows builds (Raqm upstream has no CMake support). The extension still compiles the bundled Raqm copy, so nothing links these libraries at the moment.
Use the dependency builds introduced in the previous commit. The whole FriBiDi shim setup is not longer needed since Rqam is built against SheenBidi. This simplifies the setup greatly and drops the need for bundling Raqm at all. Raqm availability is now decided at compile time. The "fribidi" feature is meaningless now, but instead of introducing a "sheenbidi" feature (which we can not reliably detect when dynamic linking Raqm), it is now deprecated and made an alias of "raqm" feature. The same goes for "harfbuzz" feature.
Nothing links FriBiDi any more.
There are no licensing issues now with FriBiDi being replaced with SheenBidi which is statically built as well.
The Linux runner now builds Raqm against SheenBidi like wheel sdo. Raqm with FriBiDi path is still covered by Homebrew’s libraqm on macOS and the MSYS2 one on Windows.
The shipped copy carried a 2016 copyright line and an old address. Take the text from the Raqm 0.11.0 release.
a891167 to
3d80092
Compare
|
I rebased on main and fixed the merge conflicts. |
Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
Raqm was built in a special way because FriBiDi (a Raqm dependency) LGPL license. Raqm has since gained support for using Apache-2.0-licensed SheenBidi.
The build is now simplified to no longer require fribidi-shim and consequently vendored raqm. This also enabled raqm on iOS. See individual commits for more details.