mono / libgdiplus

C-based implementation of the GDI+ API
http://www.mono-project.com/
MIT License
329 stars 171 forks source link

Next release with required pango dependency by default #688

Open am11 opened 3 years ago

am11 commented 3 years ago

Most libgdiplus packages are built without --with-pango and .NET users are forced to build the library from source to get the advanced typography features working. This need for building from source is not obvious to the end users (there are multiple issues in dotnet/runtime repo attesting to that) or the package maintainers.

Back in 2018, some package management systems were having pango < v1.38 and therefore marking the pango dependency mandatory for libgdiplus (which at the time worked with pango >= v1.38) was not feasible: https://github.com/mono/libgdiplus/pull/269#issuecomment-378706342.

However, now the situation (based on my research) is so; all relevant packaging systems with libgdiplus v6x also have pango > 1.40. Distros, such as Ubuntu 18.04, which have older pango are also not upgrading libgdiplus for some time (bionic is still having libgdiplus v4x). Later versions of Ubuntu have both pango 1.4x and libgdiplus v6x. Therefore marking pango as required dependency is safe.

Suggestion for next libgdiplus version:

am11 commented 3 years ago

Meanwhile, I have upgraded few libgdiplus packages with pango support:

we can remove the patch I used from master branch, once next release tag is available.

filipnavara commented 3 years ago

Building without --with-pango already uses Pango if the system ships recent enough version. I am fine with changing the warnings and/or errors but it's not really necessary.

The option was merely left there for backward compatibility.

am11 commented 3 years ago

Cool. Downstream packages still need to add pango in list of dependencies, as they are/were building with cairo. Error with opt-out arg would make the intent clear.

am11 commented 3 years ago

From homebrew CI logs, before the PR:

checking for pango >= 1.40.14 && pango <= 1.43... no

current master (after the PR which added depends_on: "pango" and included your patch from https://github.com/mono/libgdiplus/commit/39e85126dd01e4f0c4811619c4e63fca56746020 on 6.0.5)

checking for pango >= 1.40.14... yes