View Issue Details

IDProjectCategoryView StatusLast Update
0010185ardourdocumentationpublic2026-02-14 13:49
Reporteru1f992 Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
PlatformUbuntuOSLinuxOS Version(any)
Product Version9.0 
Summary0010185: Cairo patch not linked from documentation
DescriptionCurrent Build-time Ardour Dependencies (https://ardour.org/current_dependencies.html) lists cairo under "Libraries Requiring Modified Versions", but I could not find the actual patch. The nightly build dependencies page (https://nightly.ardour.org/list.php#build_deps) links to the unmodified upstream cairo (`http://cairographics.org/releases/cairo-1.16.0.tar.xz`), and neither page links to a patch or patched tarball for cairo.

The freetype section of `current_dependencies.html` links directly to its patch at `https://raw.github.com/Ardour/ardour/2.0-ongoing/tools/misc-patches/freetype-bytecode.patch`. I found a file `tools/misc-patches/cairo-gradients.patch` on the same branch (commit `990fd441d9`) and it seems to produce a matching `libcairo.so.2`, but since it is not referenced from any documentation I am not sure this is the right one.

Could a link to the cairo patch be added to `current_dependencies.html` (similar to the freetype patch), or could a patched tarball be hosted on the nightly page?
Steps To Reproduce1. Visit https://ardour.org/current_dependencies.html. Cairo is listed under "Libraries Requiring Modified Versions" but has no link to a patch (compare with the Freetype section which links directly to its patch).
2. Visit https://nightly.ardour.org/list.php#build_deps. The cairo entry links to unmodified upstream source.
3. Extract `libcairo.so.2` from the Ardour 9.0 Linux x86_64 installer and compare with one built from the upstream source. The installer version contains `FORCE_BUGGY_GRADIENTS` in `.rodata` and a `getenv("ARDOUR_FORCE_BUGGY_GRADIENTS")` call in `.text` that are absent from the upstream build.
Additional InformationThe patch appears to add a `FORCE_BUGGY_GRADIENTS` environment variable check to `src/cairo-xlib-display.c` and define `CAIRO_SUPPORTS_FORCE_BUGGY_GRADIENTS_ENVIRONMENT_VARIABLE` in `src/cairo.h`. These are referenced by Ardour's `gtk2_ardour/ui_config.cc` and `gtk2_ardour/rc_option_editor.cc` via `#ifdef` guards.

Cairo is licensed under LGPL 2.1.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-02-14 13:49 u1f992 New Issue