diff options
author | Juergen Daubert <jue@jue.li> | 2021-01-03 13:04:53 +0100 |
---|---|---|
committer | Juergen Daubert <jue@jue.li> | 2021-01-03 13:04:53 +0100 |
commit | 70cdf5f84a9e353b30da331436b2e5cc0d8fb967 (patch) | |
tree | 6db14b2f929ac4248ead2f10dd456e4c2802dba6 /cairo | |
parent | 88244f2ab23f12a74b6a3c61f8d9b4b89529a251 (diff) | |
download | opt-70cdf5f84a9e353b30da331436b2e5cc0d8fb967.tar.gz opt-70cdf5f84a9e353b30da331436b2e5cc0d8fb967.tar.xz |
[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
Diffstat (limited to 'cairo')
-rw-r--r-- | cairo/.footprint | 36 | ||||
-rw-r--r-- | cairo/.signature | 13 | ||||
-rw-r--r-- | cairo/CVE-2018-19876.patch | 30 | ||||
-rw-r--r-- | cairo/Pkgfile | 41 | ||||
-rw-r--r-- | cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff | 13 | ||||
-rw-r--r-- | cairo/cairo-xlib-endianness.patch | 15 | ||||
-rw-r--r-- | cairo/fix-library-versioning.diff | 94 | ||||
-rw-r--r-- | cairo/xlib-xcb.diff | 25 |
8 files changed, 157 insertions, 110 deletions
diff --git a/cairo/.footprint b/cairo/.footprint index ebef2c3ec..152572c43 100644 --- a/cairo/.footprint +++ b/cairo/.footprint @@ -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 diff --git a/cairo/.signature b/cairo/.signature index 50a2815e4..2a83c8b63 100644 --- a/cairo/.signature +++ b/cairo/.signature @@ -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 diff --git a/cairo/CVE-2018-19876.patch b/cairo/CVE-2018-19876.patch deleted file mode 100644 index c9cd71f4a..000000000 --- a/cairo/CVE-2018-19876.patch +++ /dev/null @@ -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 - diff --git a/cairo/Pkgfile b/cairo/Pkgfile index d1c50f47a..79f538957 100644 --- a/cairo/Pkgfile +++ b/cairo/Pkgfile @@ -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 -# Depends on: fontconfig, xorg-libxext, xorg-libxrender, xorg-libpixman, xorg-xcb-util, glib +# URL: https://www.cairographics.org/ +# 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 } diff --git a/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff b/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff deleted file mode 100644 index 29e2b5ee4..000000000 --- a/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff +++ /dev/null @@ -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; diff --git a/cairo/cairo-xlib-endianness.patch b/cairo/cairo-xlib-endianness.patch deleted file mode 100644 index 68086d1ff..000000000 --- a/cairo/cairo-xlib-endianness.patch +++ /dev/null @@ -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; diff --git a/cairo/fix-library-versioning.diff b/cairo/fix-library-versioning.diff new file mode 100644 index 000000000..c006f69a4 --- /dev/null +++ b/cairo/fix-library-versioning.diff @@ -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, + ) + diff --git a/cairo/xlib-xcb.diff b/cairo/xlib-xcb.diff new file mode 100644 index 000000000..bfc1816a2 --- /dev/null +++ b/cairo/xlib-xcb.diff @@ -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 + |