Commit graph

11935 commits

Author SHA1 Message Date
Emmanuele Bassi
bd13841257 Drop the conditional inclusion of config.h
We *always* generate this file, and we depend on its existence.

The idea behind HAVE_CONFIG_H was being able to include random files
from different projects, back in a time where "libraries" were literally
just random files instead of actual shared objects.

Since we're not in the '80s any more, and our build system(s) define
HAVE_CONFIG_H *and* generate the config.h header file, we don't need a
conditional guard around its inclusion.
2021-05-01 17:05:29 +01:00
Emmanuele Bassi
bfd1602db9 Remove stray _GNU_SOURCE definitions
We define _GNU_SOURCE globally in both the Autotools build, through the
use of the AC_USE_SYSTEM_EXTENSIONS macro; and in the Meson build, with
add_project_arguments().
2021-05-01 16:58:15 +01:00
Emmanuele Bassi
8336309794 meson: Define HAVE_CONFIG_H as a project flag
Precisely what Autotools does, instead of adding it as per-target C
argument.

Once we remove HAVE_CONFIG_H checks in every source file, we'll be able
to drop it.
2021-05-01 16:55:38 +01:00
Uli Schlachter
8f6cfe4177 Merge branch 'ci-test-x11' into 'master'
CI: Check test results for cairo-xcb and cairo-x11

See merge request cairo/cairo!165
2021-04-30 12:12:22 +00:00
Emmanuele Bassi
4c4e6127f4 Merge branch 'jfkthame-master-patch-60864' into 'master'
Don't leave the shm field uninitialized when building without shm support.

See merge request cairo/cairo!170
2021-04-29 09:18:07 +00:00
Jonathan Kew
cb86c13b62 Don't leave the shm field uninitialized when building without shm support.
This can result in reading an uninitialized value in draw_image_boxes() in cairo-xlib-render-compositor.c.
2021-04-29 08:52:31 +00:00
Uli Schlachter
64e1fd70ec Merge branch 'ebassi/warnings-fixes' into 'master'
Avoid a bunch of compiler warnings

See merge request cairo/cairo!166
2021-04-27 16:30:44 +00:00
Uli Schlachter
47770fc2b7 Merge branch 'ebassi/deprecations' into 'master'
Use g_memdup2() with newer versions of GLib

See merge request cairo/cairo!167
2021-04-27 16:24:29 +00:00
Emmanuele Bassi
efab74f5a1 Drop volatile from the GType registration
The `volatile` is unnecessary, and newer versions of GLib and GCC will
complain if you use it.
2021-04-27 16:59:35 +01:00
Emmanuele Bassi
0f39b79575 Define _GNU_SOURCE in order to use memmem
The memmem() function is a GNU extension, which means we need to define
_GNU_SOURCE in order to avoid a compiler warning about a missing
declaration.
2021-04-27 16:59:35 +01:00
Emmanuele Bassi
0bbb9de806 Disable deprecation warnings from librsvg
This is a test utility, we don't really care about deprecations.
2021-04-27 16:54:22 +01:00
Emmanuele Bassi
b7d38e048f Use g_memdup2() with newer versions of GLib
The g_memdup() function has been deprecated, as it takes the size of the
memory area as an unsigned integer. The g_memdup2() replacement uses the
more appropriate size_t type, instead.
2021-04-27 16:54:22 +01:00
Emmanuele Bassi
966b4a4e5f Handle new Cairo formats in test-trace
We are missing RGB96F and RGBA128F.
2021-04-27 16:50:56 +01:00
Emmanuele Bassi
7027360c82 Handle new Cairo formats in the XML surface
We are missing RGB96F and RGBA128F.
2021-04-27 16:50:38 +01:00
Uli Schlachter
14385eeff3 Merge branch 'mac-tests' into 'master'
Run the test suite on MacOS

See merge request cairo/cairo!160
2021-04-26 16:06:23 +00:00
Uli Schlachter
816e7ac06f Merge branch 'fix-cairo-gstate-copy-transformed-pattern-comment' into 'master'
Replace an outdated (after f0e2cd44) comment with clarification in _cairo_gstate_copy_transformed_pattern

See merge request cairo/cairo!162
2021-04-26 16:04:23 +00:00
Anton Danilkin
8d02744136 Replace an outdated (after f0e2cd44) comment with clarification in _cairo_gstate_copy_transformed_pattern 2021-04-25 13:35:41 +02:00
Uli Schlachter
58b1929173 script: Also ignore {xcb,xlib}-surface-source
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-25 12:32:56 +02:00
Uli Schlachter
4d3dfb7bcb .gitlab-ci.yml: Ignore current X11 test failures
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-25 11:05:59 +02:00
Uli Schlachter
845c1f2a9a CI: Run tests with an X11 server
Running the test suite with an X11 server allows testing cairo-x11 and
cairo-xcb.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-25 10:07:54 +02:00
Uli Schlachter
f125a457ea Merge branch 'fix-cairo-operator-bounded' into 'master'
Make the _cairo_operator_bounded family of functions consistent

See merge request cairo/cairo!163
2021-04-25 07:26:19 +00:00
Uli Schlachter
3c00a849f6 Merge branch 'fix-cairo-status-is-error' into 'master'
Add missing parentheses to _cairo_status_is_error and _cairo_int_status_is_error

See merge request cairo/cairo!161
2021-04-25 07:20:26 +00:00
Anton Danilkin
d03b6c90a7 Make the _cairo_operator_bounded family of functions consistent 2021-04-24 14:57:47 +02:00
Anton Danilkin
f4a3236d14 Add missing parentheses to _cairo_status_is_error and _cairo_int_status_is_error 2021-04-24 14:50:30 +02:00
Uli Schlachter
de2a71b230 Merge branch 'svg-ci' into 'master'
Enable SVG in CI

See merge request cairo/cairo!156
2021-04-23 19:40:46 +00:00
Uli Schlachter
2d2f73bc3c Run the test suite on MacOS
This adds the necessary commands to run the test suite on MacOS in CI
and to also ignore the current failures.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-22 16:14:37 +02:00
Heiko Lewin
ec2933b06e Merge branch 'wip/Jehan/subpixel-antialiasing' into 'master'
src: do not override explicitly requested grayscale antialiasing.

See merge request cairo/cairo!114
2021-04-20 12:35:17 +00:00
Tim-Philipp Müller
d4617e31be Merge branch 'no-fontconfig-on-windows' into 'master'
Don't build fontconfig on Windows

See merge request cairo/cairo!159
2021-04-20 10:33:20 +00:00
Matthias Clasen
f6a3f6d8ad Don't build fontconfig on Windows
mesons 'auto' is too eager to build things. Building
fontconfig as a subproject on Windows is not the right
thing, unless it was explictly requested.
2021-04-19 11:49:31 -04:00
Uli Schlachter
0392dd783c Ignore create-for-stream failure with svg
The create-for-stream test verifies that writing something to a file and
writing it to an in-memory surface produces the same output. The test
currently fails when the svg backend is tested with:

TEST: create_for_stream TARGET: pdf RESULT: PASS
svg: Stream based output differ from file output for output/create-for-stream.out.svg.
TEST: create_for_stream TARGET: svg RESULT: FAIL

I guess this is because svg uses unique IDs for surfaces, meaning that
drawing two times the same thing in the same process can produce
different outputs. However, this is just a guess and I didn't
investigate further.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-18 13:00:07 +02:00
Uli Schlachter
2f8b5bc7b2 Add hack to ignore a svg test crashes
This adds a special hack to the test suite to ignore the crashes for
self-copy and self-copy-overlap for the svg backend in CI.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-18 12:25:13 +02:00
Uli Schlachter
0c9dacbc43 svg: Reject raster sources
This hopefully fixes the raster-source test case crashing:

cairo-svg-surface.c:2269: _cairo_svg_surface_emit_pattern: Assertion `!"reached"' failed.

I cannot / did not test this change locally and rely on CI to tell me
whether this works.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-18 09:32:44 +02:00
Uli Schlachter
9ea171b132 Ignore current svg failures in CI
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-18 08:40:17 +02:00
Uli Schlachter
ca3423a701 Install gtk2-devel on CI
From config.log from CI:

configure:27855: $PKG_CONFIG --exists --print-errors "$librsvg_DEPENDENCY gdk-2.0"
Package gdk-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gdk-2.0.pc'
to the PKG_CONFIG_PATH environment variable
Package 'gdk-2.0', required by 'virtual:world', not found
configure:27858: $? = 1
Package 'gdk-2.0', required by 'virtual:world', not found
configure:27885: result: no
configure:27921: WARNING: SVG backend will not be tested since librsvg >= 2.35.0 is not available

According to Google, it seems like gtk2-devel is the right package to
get gdk-2.0.pc.

Thanks a lot to @tpm for explaining that I also have to change the TAG
variable.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-18 08:18:49 +02:00
Uli Schlachter
f8157ae751 Add config.log to build artefacts
This fail is not large, so doesn't "cost much", but it helps in figuring
out build problems in CI like "what exactly is missing for the SVG
backend?".

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-18 08:01:09 +02:00
Heiko Lewin
7de7d57592 Merge branch 'ci-make-test-succeeds' into 'master'
CI: Actually run cairo-test-suite

See merge request cairo/cairo!140
2021-04-17 10:01:17 +00:00
Uli Schlachter
a31c7395a1 test-suite: Add a new mechanism for XFAILs
This commit adds a new mechanism to mark tests as expected to fail via
an environment variable. For example, if you expect the tests "foo" and
"bar" to fail when run under image.argb32, you would set

   CAIRO_TEST_IGNORE_image_argb32=foo,bar

The test suite then expects these tests to fail and treats this as
xfail. If they do not fail, this is a failure on its own.

This new feature is explicitly not documented much, because it is only
used as a stopgap measure to make our CI more useful: Right now the test
suite runs on CI, but the result is ignored. This new feature allows to
mark the known failures as xfail without too much work. When the
situation changes, this will be noticed as a new test suite failure.
Thus, these environment variables to not run into the danger of still
containing tests that were already fixed.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-17 10:01:17 +00:00
Uli Schlachter
dfd543d013 Merge branch 'fix-cairo-malloc' into 'master'
Change int to size_t in the _cairo_malloc function family

See merge request cairo/cairo!153
2021-04-17 07:06:06 +00:00
Anton Danilkin
67099a091e Change int to size_t in the _cairo_malloc function family
This should allow to use them for allocating large amounts of memory.

Also use explicit checks for zeros to not make the compiler think that it is a boolean context.
2021-04-13 19:20:05 +02:00
Tim-Philipp Müller
c287fb3a1f Merge branch 'win32-atomic' into 'master'
atomic: Add support for WIN32 atomic operations

See merge request cairo/cairo!151
2021-04-12 08:30:57 +00:00
Heiko Lewin
277a1daec8 Merge branch 'type1_find_segments_bounds_check' into 'master'
Fix out of bounds access in cairo_type1_font_subset_find_segments

See merge request cairo/cairo!146
2021-04-11 16:35:03 +00:00
Uli Schlachter
1484cfa551 Fix out of bounds access in cairo_type1_font_subset_find_segments
This function parses some raw font data and it trusts the font to be
well-formed. This means that a font can just say "this segment is a
gigabyte large" and the code will happily jump ahead in memory. Bad
things then happen in practice.

Fix this by adding lots of bounds check.

Also, an existing bounds check makes sure we are still before the end of
the data, but then happily reads the next six bytes. Fix this by making
sure we actually have six bytes of data.

No regression test since the last few times I tried to do this for font
issues, I ended up with a large/huge blob of font data. Too large for
the test suite.

Fixes: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27969
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-04-11 16:35:02 +00:00
Uli Schlachter
26663cf3be Merge branch 'fix_obvious_ub' into 'master'
Fix undefined left-shifts

See merge request cairo/cairo!149
2021-04-11 05:37:49 +00:00
Heiko Lewin
3ca8a46caf Minor corrections 2021-04-11 02:07:10 +02:00
Seungha Yang
cd2b91c62e atomic: Add support for WIN32 atomic operations
Windows provides atomic operation APIs so use it
2021-04-09 01:26:20 +09:00
Uli Schlachter
1904d7bf35 Merge branch 'fix-467' into 'master'
Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax

Closes #467

See merge request cairo/cairo!150
2021-04-02 13:43:39 +00:00
Marc Jeanmougin
d2a37ba60e
Rename cairo_lines_compare_at_y into _cairo_lines_compare_at_y and fix syntax
Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/467
2021-04-02 14:35:46 +02:00
Heiko Lewin
518ba13779 Fix undefined left-shifts 2021-03-31 12:20:34 +02:00
Uli Schlachter
44f808fce9 Merge branch 'use-after-scope' into 'master'
Avoid a use-after-scope

Closes #453

See merge request cairo/cairo!143
2021-03-25 15:51:32 +00:00
Uli Schlachter
33cce5dc37 Merge branch 'pdf-mime-data' into 'master'
"Fix" the pdf-mime-data test

See merge request cairo/cairo!142
2021-03-25 15:51:13 +00:00