[notify] cairo: update to 1.17.4
Note: ----- build system switched from autotools to meson, therefore all libtool files (*.la) are gone. Every port that lists the old libcairo.la file in its own libtool file has to be rebuild if other ports depends at build time on it. To find the broken files the following script can be usesd: for f in $(grep -lrs libcairo.la /usr/lib/); do \ pkginfo -o $f | awk '!/^Package/ {print $1}'; \ done | sort -u
This commit is contained in:
parent
88244f2ab2
commit
70cdf5f84a
@ -18,33 +18,22 @@ drwxr-xr-x root/root usr/include/cairo/
|
||||
-rw-r--r-- root/root usr/include/cairo/cairo-xcb.h
|
||||
-rw-r--r-- root/root usr/include/cairo/cairo-xlib-xrender.h
|
||||
-rw-r--r-- root/root usr/include/cairo/cairo-xlib.h
|
||||
-rw-r--r-- root/root usr/include/cairo/cairo-xml.h
|
||||
-rw-r--r-- root/root usr/include/cairo/cairo.h
|
||||
drwxr-xr-x root/root usr/lib/
|
||||
drwxr-xr-x root/root usr/lib/cairo/
|
||||
-rw-r--r-- root/root usr/lib/cairo/cairo-fdr.a
|
||||
-rwxr-xr-x root/root usr/lib/cairo/cairo-fdr.la
|
||||
-rwxr-xr-x root/root usr/lib/cairo/cairo-fdr.so
|
||||
-rw-r--r-- root/root usr/lib/cairo/cairo-sphinx.a
|
||||
-rwxr-xr-x root/root usr/lib/cairo/cairo-sphinx.la
|
||||
-rwxr-xr-x root/root usr/lib/cairo/cairo-sphinx.so
|
||||
-rw-r--r-- root/root usr/lib/cairo/libcairo-trace.a
|
||||
-rwxr-xr-x root/root usr/lib/cairo/libcairo-trace.la
|
||||
-rwxr-xr-x root/root usr/lib/cairo/libcairo-fdr.so
|
||||
-rwxr-xr-x root/root usr/lib/cairo/libcairo-sphinx.so
|
||||
-rwxr-xr-x root/root usr/lib/cairo/libcairo-trace.so
|
||||
-rw-r--r-- root/root usr/lib/libcairo-gobject.a
|
||||
-rwxr-xr-x root/root usr/lib/libcairo-gobject.la
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so -> libcairo-gobject.so.2.11600.0
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11600.0
|
||||
-rwxr-xr-x root/root usr/lib/libcairo-gobject.so.2.11600.0
|
||||
-rw-r--r-- root/root usr/lib/libcairo-script-interpreter.a
|
||||
-rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.la
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so -> libcairo-script-interpreter.so.2.11600.0
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11600.0
|
||||
-rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.so.2.11600.0
|
||||
-rw-r--r-- root/root usr/lib/libcairo.a
|
||||
-rwxr-xr-x root/root usr/lib/libcairo.la
|
||||
lrwxrwxrwx root/root usr/lib/libcairo.so -> libcairo.so.2.11600.0
|
||||
lrwxrwxrwx root/root usr/lib/libcairo.so.2 -> libcairo.so.2.11600.0
|
||||
-rwxr-xr-x root/root usr/lib/libcairo.so.2.11600.0
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so -> libcairo-gobject.so.2
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-gobject.so.2 -> libcairo-gobject.so.2.11704.0
|
||||
-rwxr-xr-x root/root usr/lib/libcairo-gobject.so.2.11704.0
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so -> libcairo-script-interpreter.so.2
|
||||
lrwxrwxrwx root/root usr/lib/libcairo-script-interpreter.so.2 -> libcairo-script-interpreter.so.2.11704.0
|
||||
-rwxr-xr-x root/root usr/lib/libcairo-script-interpreter.so.2.11704.0
|
||||
lrwxrwxrwx root/root usr/lib/libcairo.so -> libcairo.so.2
|
||||
lrwxrwxrwx root/root usr/lib/libcairo.so.2 -> libcairo.so.2.11704.0
|
||||
-rwxr-xr-x root/root usr/lib/libcairo.so.2.11704.0
|
||||
drwxr-xr-x root/root usr/lib/pkgconfig/
|
||||
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-fc.pc
|
||||
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-ft.pc
|
||||
@ -59,4 +48,5 @@ drwxr-xr-x root/root usr/lib/pkgconfig/
|
||||
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-xcb.pc
|
||||
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-xlib-xrender.pc
|
||||
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-xlib.pc
|
||||
-rw-r--r-- root/root usr/lib/pkgconfig/cairo-xml.pc
|
||||
-rw-r--r-- root/root usr/lib/pkgconfig/cairo.pc
|
||||
|
@ -1,8 +1,7 @@
|
||||
untrusted comment: verify with /etc/ports/opt.pub
|
||||
RWSE3ohX2g5d/QNUPvchHfTb74n9Ht2Z5QIqgGDoNqsahsWLvK9lCunNxS0y/FOKR2b5PZhrKLehPzxDDoR/F4VDLKmyjxw4vg0=
|
||||
SHA256 (Pkgfile) = 3c777fd8c9c6048f1ee5d83a36edb7d9f80b4a9e032bee1cbecb78ed9c25c136
|
||||
SHA256 (.footprint) = 742a6524df8abaf10bc5b1bc5ffc934be8e2302c233bf44112a26e466fb0eb86
|
||||
SHA256 (cairo-1.16.0.tar.xz) = 5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331
|
||||
SHA256 (cairo-xlib-endianness.patch) = 58d39311edee6d8ddf76deac1d2e3526b4c02d4aa1f35a6ca16ff50c8e65429f
|
||||
SHA256 (cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff) = 4c8b8095a41f244ddfbc9b24e2f73a6fd8d697f43903617e0519b95b27b30726
|
||||
SHA256 (CVE-2018-19876.patch) = 78923093cd9b80a4d604e4141ae553f1aa4521d59a9aed8735d1e1be9cca3d99
|
||||
RWSE3ohX2g5d/QkehMFqMWovc3NST3g0Zbs+fz3eKyJCDVeErRvWrtWXZu13aBGGqaYnmjYQ277uIJrPbAQFiYoFLSHR5HZn7A4=
|
||||
SHA256 (Pkgfile) = 52863419cb709a04a90e7064ba668bc9071bb20980dd474a29cc0bc78075cecf
|
||||
SHA256 (.footprint) = b945d5a708013c2c3b534d0349b096b861f32a3ae97d16a38e2c64b0dabadee0
|
||||
SHA256 (cairo-1.17.4.tar.xz) = 74b24c1ed436bbe87499179a3b27c43f4143b8676d8ad237a6fa787401959705
|
||||
SHA256 (xlib-xcb.diff) = 70cd3783381bf73ea7fccd5c2db43956b10865a9c54d5edd251dbcdb9b595a43
|
||||
SHA256 (fix-library-versioning.diff) = ba678534bbfb2ae8d2397b015f77d30719efee7bb7992dbd2c8e5f2fa5fd8efc
|
||||
|
@ -1,30 +0,0 @@
|
||||
From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garcia Campos <cgarcia@igalia.com>
|
||||
Date: Mon, 19 Nov 2018 12:33:07 +0100
|
||||
Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in
|
||||
cairo_ft_apply_variations
|
||||
|
||||
Fixes a crash when using freetype >= 2.9
|
||||
---
|
||||
src/cairo-ft-font.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
|
||||
index 325dd61b4..981973f78 100644
|
||||
--- a/src/cairo-ft-font.c
|
||||
+++ b/src/cairo-ft-font.c
|
||||
@@ -2393,7 +2393,11 @@ skip:
|
||||
done:
|
||||
free (coords);
|
||||
free (current_coords);
|
||||
+#if HAVE_FT_DONE_MM_VAR
|
||||
+ FT_Done_MM_Var (face->glyph->library, ft_mm_var);
|
||||
+#else
|
||||
free (ft_mm_var);
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.18.1
|
||||
|
@ -1,29 +1,26 @@
|
||||
# Description: A 2D graphics library with support for multiple output devices
|
||||
# URL: https://www.cairographics.org/
|
||||
# Maintainer: Fredrik Rinnestam, fredrik at crux dot nu
|
||||
# Maintainer: CRUX System Team, core-ports at crux dot nu
|
||||
# Depends on: fontconfig, xorg-libxext, xorg-libxrender, xorg-libpixman, xorg-xcb-util, glib
|
||||
|
||||
name=cairo
|
||||
version=1.16.0
|
||||
release=2
|
||||
source=(https://cairographics.org/releases/cairo-$version.tar.xz
|
||||
cairo-xlib-endianness.patch
|
||||
cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
|
||||
CVE-2018-19876.patch)
|
||||
version=1.17.4
|
||||
release=1
|
||||
source=(https://cairographics.org/snapshots/$name-$version.tar.xz
|
||||
xlib-xcb.diff fix-library-versioning.diff)
|
||||
|
||||
build() {
|
||||
cd $name-$version
|
||||
patch -p1 -i $SRC/cairo-xlib-endianness.patch
|
||||
patch -p1 -i $SRC/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
|
||||
patch -p1 -i $SRC/CVE-2018-19876.patch
|
||||
patch -p1 -d $name-$version -i $SRC/fix-library-versioning.diff
|
||||
patch -p1 -d $name-$version -i $SRC/xlib-xcb.diff
|
||||
|
||||
./configure --prefix=/usr \
|
||||
--enable-xcb=yes \
|
||||
--enable-ps \
|
||||
--enable-pdf \
|
||||
--disable-gtk-doc \
|
||||
--enable-tee=yes
|
||||
make
|
||||
make DESTDIR=$PKG install
|
||||
rm -rf $PKG/usr/share
|
||||
meson setup build $name-$version \
|
||||
--prefix=/usr \
|
||||
--buildtype=plain \
|
||||
-D spectre=disabled \
|
||||
-D tee=enabled \
|
||||
-D tests=disabled
|
||||
meson compile -C build
|
||||
DESTDIR=$PKG meson install -C build
|
||||
|
||||
chmod +x $PKG/usr/bin/cairo-trace
|
||||
}
|
||||
|
@ -1,13 +0,0 @@
|
||||
Index: cairo-1.15.4/src/cairo-ft-font.c
|
||||
===================================================================
|
||||
--- cairo-1.15.4.orig/src/cairo-ft-font.c
|
||||
+++ cairo-1.15.4/src/cairo-ft-font.c
|
||||
@@ -1149,7 +1149,7 @@ _get_bitmap_surface (FT_Bitmap *bi
|
||||
width = bitmap->width;
|
||||
height = bitmap->rows;
|
||||
|
||||
- if (width == 0 || height == 0) {
|
||||
+ if (width == 0 || height == 0 || bitmap->buffer == NULL) {
|
||||
*surface = (cairo_image_surface_t *)
|
||||
cairo_image_surface_create_for_data (NULL, format, 0, 0, 0);
|
||||
return (*surface)->base.status;
|
@ -1,15 +0,0 @@
|
||||
--- cairo/src/cairo-xlib-render-compositor.c 2013-04-12 11:22:48.010384018 +0200
|
||||
+++ cairo/src/cairo-xlib-render-compositor.c.new 2013-04-12 11:23:54.362925287 +0200
|
||||
@@ -1318,10 +1318,10 @@
|
||||
}
|
||||
n = new;
|
||||
d = (uint32_t *) data;
|
||||
- do {
|
||||
+ while (c--) {
|
||||
*n++ = bswap_32 (*d);
|
||||
d++;
|
||||
- } while (--c);
|
||||
+ }
|
||||
data = (uint8_t *) new;
|
||||
}
|
||||
break;
|
94
cairo/fix-library-versioning.diff
Normal file
94
cairo/fix-library-versioning.diff
Normal file
@ -0,0 +1,94 @@
|
||||
commit e9ccb1d8d095482e4139da658e679d5aad56b184
|
||||
Author: Tim-Philipp Müller <tim@centricular.com>
|
||||
Date: Tue Dec 15 00:12:55 2020 +0000
|
||||
|
||||
meson: fix library versioning
|
||||
|
||||
Fixes #442
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index b159b4071..53a9af343 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -3,8 +3,6 @@ project('cairo', 'c', 'cpp',
|
||||
version: run_command(find_program('version.py'), check: true).stdout().strip(),
|
||||
)
|
||||
|
||||
-cc = meson.get_compiler('c')
|
||||
-
|
||||
# Keep in sync with configure.ac!
|
||||
freetype_required_version = '>= 9.7.3'
|
||||
fontconfig_required_version = '>= 2.2.95'
|
||||
@@ -16,6 +14,27 @@ libudev_required_version = '>= 136'
|
||||
libdrm_required_version = '>= 2.4'
|
||||
glib_required_version = '>= 2.14'
|
||||
|
||||
+# library versioning
|
||||
+version_arr = meson.project_version().split('.')
|
||||
+cairo_version_major = version_arr[0].to_int()
|
||||
+cairo_version_minor = version_arr[1].to_int()
|
||||
+cairo_version_micro = version_arr[2].to_int()
|
||||
+
|
||||
+# The libtool shared library version stuff.
|
||||
+# Try and maintain compatibility with the previous library versioning.
|
||||
+cairo_version_sonum = cairo_version_major + 1
|
||||
+cairo_version = cairo_version_major * 10000 + cairo_version_minor * 100 + cairo_version_micro
|
||||
+
|
||||
+if cairo_version_minor % 2 == 1
|
||||
+ # unstable release
|
||||
+ cairo_libversion = '@0@.@1@.0'.format(cairo_version_sonum, cairo_version)
|
||||
+else
|
||||
+ # stable release
|
||||
+ cairo_libversion = '@0@.@1@.@2@'.format(cairo_version_sonum, cairo_version, cairo_version_micro)
|
||||
+endif
|
||||
+
|
||||
+cc = meson.get_compiler('c')
|
||||
+
|
||||
if cc.get_id() == 'msvc'
|
||||
# Basic usage in the cairo type system that causes spammy and useless warnings
|
||||
add_project_arguments('/wd4244', '/wd4146',
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index 5bd1a57ee..f5d741eae 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -299,8 +299,8 @@ libcairo = library('cairo', cairo_sources,
|
||||
c_args: cairo_no_warn_c_args + pthread_c_args + ['-DHAVE_CONFIG_H'],
|
||||
cpp_args: cairo_no_warn_c_args + pthread_c_args + ['-DHAVE_CONFIG_H'],
|
||||
link_args: extra_link_args,
|
||||
- soversion: '2',
|
||||
- version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
|
||||
+ soversion: cairo_version_sonum,
|
||||
+ version: cairo_libversion,
|
||||
install: true,
|
||||
include_directories: incbase,
|
||||
)
|
||||
diff --git a/util/cairo-gobject/meson.build b/util/cairo-gobject/meson.build
|
||||
index 200fd8705..bf24242a0 100644
|
||||
--- a/util/cairo-gobject/meson.build
|
||||
+++ b/util/cairo-gobject/meson.build
|
||||
@@ -12,8 +12,8 @@ libcairogobject = library('cairo-gobject', cairo_gobject_sources,
|
||||
include_directories: [incbase, incsrc],
|
||||
dependencies: [glib_dep, gobject_dep],
|
||||
link_with: [libcairo],
|
||||
- soversion: '2',
|
||||
- version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
|
||||
+ soversion: cairo_version_sonum,
|
||||
+ version: cairo_libversion,
|
||||
install: true,
|
||||
)
|
||||
|
||||
diff --git a/util/cairo-script/meson.build b/util/cairo-script/meson.build
|
||||
index a782ec63f..8cedc6834 100644
|
||||
--- a/util/cairo-script/meson.build
|
||||
+++ b/util/cairo-script/meson.build
|
||||
@@ -30,8 +30,8 @@ libcairoscript = library('cairo-script-interpreter',
|
||||
include_directories: [incbase, incsrc],
|
||||
dependencies: deps,
|
||||
link_with: [libcairo],
|
||||
- soversion: '2',
|
||||
- version: '2.' + ''.join(meson.project_version().split('.')) + '.0',
|
||||
+ soversion: cairo_version_sonum,
|
||||
+ version: cairo_libversion,
|
||||
install: true,
|
||||
)
|
||||
|
25
cairo/xlib-xcb.diff
Normal file
25
cairo/xlib-xcb.diff
Normal file
@ -0,0 +1,25 @@
|
||||
diff --git i/meson.build w/meson.build
|
||||
index b159b4071..2a1c68891 100644
|
||||
--- i/meson.build
|
||||
+++ w/meson.build
|
||||
@@ -313,7 +313,7 @@ endif
|
||||
|
||||
if feature_conf.get('CAIRO_HAS_XCB_SURFACE', 0) == 1 and feature_conf.get('CAIRO_HAS_XLIB_SURFACE', 0) == 1
|
||||
# FIXME: automagic
|
||||
- x11xcb_dep = dependency('x11-xcb', required: false)
|
||||
+ x11xcb_dep = dependency('x11-xcb', required: get_option('xlib-xcb'))
|
||||
if x11xcb_dep.found()
|
||||
deps += [x11xcb_dep]
|
||||
feature_conf.set('CAIRO_HAS_XLIB_XCB_FUNCTIONS', 1)
|
||||
diff --git i/meson_options.txt w/meson_options.txt
|
||||
index ff11fe7ed..d1ae959e1 100644
|
||||
--- i/meson_options.txt
|
||||
+++ w/meson_options.txt
|
||||
@@ -17,6 +17,7 @@ option('qt', type : 'feature', value : 'disabled')
|
||||
option('tee', type : 'feature', value : 'disabled')
|
||||
option('xcb', type : 'feature', value : 'auto')
|
||||
option('xlib', type : 'feature', value : 'auto')
|
||||
+option('xlib-xcb', type : 'feature', value : 'disabled')
|
||||
#option('xml', type : 'feature', value : 'disabled')
|
||||
option('zlib', type : 'feature', value : 'auto') # script, ps, pdf, xml surfaces
|
||||
|
Loading…
Reference in New Issue
Block a user