View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010185 | ardour | documentation | public | 2026-02-14 13:49 | 2026-02-14 13:49 |
| Reporter | u1f992 | Assigned To | |||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | new | Resolution | open | ||
| Platform | Ubuntu | OS | Linux | OS Version | (any) |
| Product Version | 9.0 | ||||
| Summary | 0010185: Cairo patch not linked from documentation | ||||
| Description | Current 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 Reproduce | 1. 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 Information | The 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. | ||||
| Tags | No tags attached. | ||||
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2026-02-14 13:49 | u1f992 | New Issue |