upgrade native libraries

Update the build scripts, patches, and notes.
This commit is contained in:
Matthew Flatt 2018-03-29 05:22:08 -06:00
parent e0668d895b
commit 5bb2c1f16e
22 changed files with 415 additions and 412 deletions

View File

@ -3,12 +3,12 @@
(define collection 'multi)
(define deps
'(("racket-win32-i386-2" #:platform "win32\\i386")
("racket-win32-x86_64-2" #:platform "win32\\x86_64")
("racket-x86_64-linux-natipkg-2" #:platform "x86_64-linux-natipkg")
("racket-x86_64-macosx-2" #:platform "x86_64-macosx")
("racket-i386-macosx-2" #:platform "i386-macosx")
("racket-ppc-macosx-2" #:platform "ppc-macosx")
'(("racket-win32-i386-3" #:platform "win32\\i386")
("racket-win32-x86_64-3" #:platform "win32\\x86_64")
("racket-x86_64-linux-natipkg-3" #:platform "x86_64-linux-natipkg")
("racket-x86_64-macosx-3" #:platform "x86_64-macosx")
("racket-i386-macosx-3" #:platform "i386-macosx")
("racket-ppc-macosx-3" #:platform "ppc-macosx")
("db-ppc-macosx" #:platform "ppc-macosx")
("db-win32-i386" #:platform "win32\\i386")
("db-win32-x86_64" #:platform "win32\\x86_64")

View File

@ -57,8 +57,8 @@
(case (if runtime? (system-type) (cross-system-type))
[(windows) '(so "libeay32")]
[(macosx)
;; Version "1.0.0" is bundled with Racket
'(so "libcrypto" ("1.0.0" #f))]
;; Version "1.1" is bundled with Racket
'(so "libcrypto" ("1.1" #f))]
[else '(so "libcrypto")]))
(define libcrypto

View File

@ -18,8 +18,8 @@
(case (if runtime? (system-type) (cross-system-type))
[(windows) '(so "ssleay32")]
[(macosx)
;; Version "1.0.0" is bundled with Racket
'(so "libssl" ("1.0.0" #f))]
;; Version "1.1" is bundled with Racket
'(so "libssl" ("1.1" #f))]
[else '(so "libssl")]))
(define libssl

View File

@ -1,4 +1,4 @@
The core `racket' executable has minimal library dependencies. In
The core `racket` executable has minimal library dependencies. In
contrast, libraries implemented in various packages, such as the
"draw" or "math" packages, rely on additional C-implemented libraries,
such as Cairo, GMP, etc., all of which are loaded dynamically. On Unix
@ -16,26 +16,27 @@ script and patches are fragile, so we upgrade libraries infrequently.
Currently, we use the following external packages and versions:
pkg-config-0.28
sed-4.2 (Windows only, to avoid non-GNU `sed')
sqlite[-autoconf]-3210000 (Windows and Linux only)
openssl-1.0.2k (current PPC binaries are 1.0.1g)
libiconv-1.14 (Windows only)
zlib-1.2.8 (Windows and Linux only)
libffi-3.0.13
expat-2.1.0
gettext-0.18.3.2
glib-2.39.92
libpng-1.6.10
pixman-0.32.4
cairo-1.12.16
jpegsrc.v9a
harfbuzz-0.9.27
fontconfig-2.11.1
freetype-2.5.3
pango-1.36.6 (current PPC binaries are 1.36.3)
sed-4.2 (Windows only, to avoid non-GNU `sed`)
sqlite[-autoconf]-3220000 (Windows and Linux only)
openssl-1.1.0h (current PPC binaries are 1.0.1g)
libiconv-1.15 (Windows only)
zlib-1.2.11 (Windows and Linux only)
libffi-3.2.1
expat-2.2.5
gettext-0.19.8
glib-2.56.0
libpng-1.6.34
pixman-0.34.0
cairo-1.14.12
jpegsrc.v9c
harfbuzz-1.7.6
fribidi-1.0.2
fontconfig-2.13.0
freetype-2.9
pango-1.42.0 (current PPC binaries are 1.36.3)
poppler-0.24.5
mpfr-3.1.2
gmp-5.1.3
mpfr-3.1.6
gmp-6.1.2
(Linux only:)
xtrans-1.3.5
@ -110,8 +111,8 @@ Build Steps (assuming no version changes)
--archives <archive-dir>
where <here-dir> is the deirectory containing this file,
`--win' versus `--mac' selects a Windows versus Mac OS build,
and `--m32' versus `--m64' selects a 32-bit versus 64-bit build.
`--win` versus `--mac` selects a Windows versus Mac OS build,
and `--m32` versus `--m64` selects a 32-bit versus 64-bit build.
* Run
@ -136,14 +137,14 @@ The first build step is "pkg-config", which is built for the current
build platform, as opposed to the target platform. The resulting
`pkg-config` is installed into "<build-dir>/dest/bin", which is
included in the PATH environment variable when all other configuration
steps are run. If you used an installed `pkg-config', then you'd end
steps are run. If you used an installed `pkg-config`, then you'd end
up linking to installed packages on the build machine, which would be
confusing at best.
More details for Windows:
* GNU `sed' is built to run on the build platform, just in case the
build platform's `sed' is BSD-style (as on Mac OS).
* GNU `sed` is built to run on the build platform, just in case the
build platform's `sed` is BSD-style (as on Mac OS).
* The generated ".dll"s go to "dest/bin".
@ -151,7 +152,7 @@ More details for Windows:
symbols.
* Beware of dynamic linking to libgcc or libstdc++. The build script
uses `-static-libgcc' and `-static-libstdc++' to statically link
uses `-static-libgcc` and `-static-libstdc++` to statically link
those libraries. Use "depends.exe" to check DLL dependencies.
More details for Mac OS:
@ -167,7 +168,7 @@ More details for Mac OS:
During the build, ".dylib"s in "<build-dir>/dest/lib" will contain
full paths when they depend on other ".dylibs" in the same
directory. The "install.rkt" script uses `install_name_tool' to
directory. The "install.rkt" script uses `install_name_tool` to
rewrite those paths to relative form using "@loader_path".
You can use
@ -179,7 +180,7 @@ More details for Mac OS:
out for "/usr/opt/local" paths, which means that you have
accidentally links to MacPorts libraries.
* All ".dylib"s should use two-level namespaces. Use `otool -vh' and
* All ".dylib"s should use two-level namespaces. Use `otool -vh` and
look for "TWOLEVEL" in the output to double check that a library
build uses two-level namespaces.
@ -203,7 +204,7 @@ several places:
* Update the library version in "install.rkt".
* Update the `ffi-lib' reference in the corresponding Racket wrapper
* Update the `ffi-lib` reference in the corresponding Racket wrapper
libraries.
* Update the "info.rkt" dependencies in the Racket packages that
@ -233,7 +234,8 @@ so delete that file to make "build-all.rkt" try again for
If You Have to Start Over Completely
------------------------------------
See
The "build.rkt" script automates most everything we learned, but
for old build notes, see also
* "racket/src/mac/README.txt" in a Racket v5.x source distirbution
@ -243,6 +245,3 @@ See
* Pre-built packages from www.gtk.org, specifically the "dev"
archives.
for old build notes. The "build.rkt" script automates most everything
we learned.

View File

@ -41,6 +41,9 @@
"libXrender"
"freefont")]
[else null])
(cond
[win? null]
[else '("libuuid")])
'("libffi"
"glib"
"libpng"
@ -49,6 +52,7 @@
"pixman"
"cairo"
"harfbuzz"
"fribidi"
"pango"
"gmp"
"mpfr"

View File

@ -113,12 +113,6 @@
;; Fix a problem with glyph extents and clipped rendering:
(define-runtime-path cairo-coretext-patch "patches/cairo-coretext.patch")
;; Avoid CGFontGetGlyphPath:
(define-runtime-path cairo-cgfontgetglpyh-patch "patches/cgfontgetglyph.patch")
;; Patch to avoid writing to a global constant:
(define-runtime-path cairo-allclipmodifybug-patch "patches/allclipmodifybug.patch")
;; Hack to workaround broken Courier New in Mac OS 10.{7.8}:
(define-runtime-path courier-new-patch "patches/courier-new.patch")
@ -131,20 +125,27 @@
;; Avoid crash when CTFontCollectionCreateMatchingFontDescriptors fails:
(define-runtime-path coretext-nullarray "patches/coretext-nullarray.patch")
;; Define some functions that aren't in Mac OS 10.5 (for the 32-bit build)
(define-runtime-path pango-surrogate-patch "patches/pango-surrogate.patch")
;; Enable "symbol" fonts, and fix off-by-one:
(define-runtime-path win32text-patch "patches/win32text.patch")
;; Fix a problem with a surface connected to a clipped drawing context
(define-runtime-path win32cairofallback-patch "patches/win32cairofallback.patch")
;; Disable emoji-specific font, which intereferes with substitutions
;; (i.e., auto-find a suitable font) as implemented by `racket/draw`
(define-runtime-path pango-emoji-patch "patches/pango-emoji.patch")
;; Needed when building with old GCC, such as 4.0:
(define-runtime-path gmp-weak-patch "patches/gmp-weak.patch")
;; XP doesn't have rand_s() as used by glib:
(define-runtime-path rand-patch "patches/rand.patch")
;; Upstream patch to fix Win32 build:
(define-runtime-path glib-win32-weekday-patch "patches/glib-win32-weekday.patch")
;; HarfBuzz makefile seems broken for MinGW as of 0.9.27:
(define-runtime-path fixdef-patch "patches/fixdef.patch")
;; strerror_s is not available in XP
(define-runtime-path glib-strerror-patch "patches/glib-strerror.patch")
;; For now, disable glib functionality that depends on Mac OS 10.8:
(define-runtime-path gcocoanotify-patch "patches/gcocoanotify.patch")
;; Remove "-fno-check-new", which Clang does not recognize:
(define-runtime-path nonochecknew-patch "patches/nonochecknew.patch")
@ -318,7 +319,7 @@
(if linux?
(~a "make SHARED_LDFLAGS=" "-Wl,-rpath," dest "/lib")
"make"))
(config #:configure-exe (find-executable-path "sh")
(config #:configure-exe (find-executable-path "perl")
#:configure (cond
[win?
(list "./Configure"
@ -340,7 +341,11 @@
"shared"
"linux-x86_64")])
#:make make
#:make-install (~a make " install_sw"))]
#:make-install (~a make " install_sw")
#:fixup (and win?
(~a "cd " (build-path dest "bin")
" && mv libssl-1_1" (if m32? "" "-x64") ".dll ssleay32.dll"
" && mv libcrypto-1_1" (if m32? "" "-x64") ".dll libeay32.dll")))]
[("expat") (config)]
[("gettext") (config #:depends (if win? '("libiconv") '())
#:configure '("--enable-languages=c")
@ -405,59 +410,86 @@
(~a "cp zlib1.dll " dest "/bin && cp libz.dll.a " dest "/lib")))]
[("glib") (config #:depends (append '("libffi" "gettext")
(if win? '("libiconv") '()))
#:configure (append '("--with-pcre=internal")
(if linux? '("--enable-libmount=no") '()))
#:env (append path-flags
;; Disable Valgrind support, which particularly
;; goes wrong for 64-bit Windows builds.
(list (list "CPPFLAGS" "-DNVALGRIND=1")))
#:patches (if (and win? m32?)
(list rand-patch)
null))]
#:patches (cond
[win? (list glib-win32-weekday-patch
glib-strerror-patch)]
[mac? (list gcocoanotify-patch)]
[else null]))]
[("libpng") (config #:depends (if (or win? linux?) '("zlib") '())
#:env (if (or linux? win?)
(append
path-flags
(if linux?
(list (list "LDFLAGS" (~a "-Wl,-rpath," dest "/lib")))
null))
null))]
(append
path-flags
(if linux?
(list (list "LDFLAGS" (~a "-Wl,-rpath," dest "/lib")))
null))
null))]
[("libuuid") (config)]
[("freetype") (config #:depends '("libpng"))]
[("fontconfig") (config #:depends '("expat" "freetype")
#:configure '("--disable-docs")
[("fontconfig") (config #:depends (append '("expat" "freetype")
(if win? '() '("libuuid")))
#:configure (append '("--disable-docs")
(if win?
`("--without-libiconv-prefix"
"--without-libintl-prefix")
'()))
#:patches (list fcdirs-patch))]
[("pixman") (config #:patches (if (and win? (not m32?))
(list noforceinline-patch)
null))]
[("cairo") (config #:depends (append '("pixman" "fontconfig" "freetype" "libpng")
(if linux?
'("libX11" "libXrender")
null))
#:env path-flags
#:configure (if (not linux?)
'("--enable-xlib=no")
null)
#:patches (list cairo-coretext-patch
cairo-cgfontgetglpyh-patch
cairo-allclipmodifybug-patch
courier-new-patch
win32cairofallback-patch))]
[("cairo")
(when mac?
(define zlib.pc (build-path dest "lib" "pkgconfig" "zlib.pc"))
(unless (file-exists? zlib.pc)
(call-with-output-file*
zlib.pc
(lambda (o) (write-string "Name: zlib\nDescription: zlib\nVersion: 1.0\nLibs: -lz\nLibs.private:\nCflags:\n" o)))))
(config #:depends (append '("pixman" "fontconfig" "freetype" "libpng")
(if linux?
'("libX11" "libXrender")
null))
#:env path-flags
#:configure (append
(if (not linux?)
'("--enable-xlib=no")
null)
'("png_REQUIRES=libpng16")
(if mac?
'("CFLAGS=-include Kernel/uuid/uuid.h")
'()))
#:patches (list cairo-coretext-patch
courier-new-patch))]
[("harfbuzz") (config #:depends '("fontconfig" "freetype" "cairo")
#:configure '("--without-icu")
#:patches (if win?
(list fixdef-patch)
null)
#:env cxx-env)]
[("pango") (config #:depends '("cairo" "harfbuzz")
[("fribidi") (config #:configure '("--disable-docs"))]
[("pango") (config #:depends '("cairo" "harfbuzz" "fribidi")
#:env (if win? path-flags null)
#:configure (append
(if (not linux?)
'("--without-x")
null)
'("--with-included-modules=yes"
"--with-dynamic-modules=no"))
#:patches (list coretext-patch
coretext-fontreg-patch
coretext-nullarray
win32text-patch))]
"--with-dynamic-modules=no")
(if mac?
'("CFLAGS=-include Kernel/uuid/uuid.h")
'()))
#:patches (append
(list coretext-patch
coretext-fontreg-patch
coretext-nullarray
win32text-patch)
(if (and mac? m32?)
(list pango-surrogate-patch)
null)
(if (or mac? win?)
(list pango-emoji-patch)
null)))]
[("gmp") (config #:patches (if gcc-4.0? (list gmp-weak-patch) null)
#:configure (append
'("--enable-shared" "--disable-static")

View File

@ -13,8 +13,9 @@
"libgthread-2.0.0"
"libglib-2.0.0"
"libgobject-2.0.0"
"libintl.8"
"libintl.9"
"libharfbuzz.0"
"libfribidi.0"
"libpango-1.0.0"
"libpangocairo-1.0.0"
"libpangoft2-1.0.0"
@ -40,8 +41,9 @@
"libpangowin32-1.0.0"))
(define nonwin-libs
'("libcrypto.1.0.0"
"libssl.1.0.0"))
'("libcrypto.1.1"
"libssl.1.1"
"libuuid.1"))
(define linux-libs
(append
@ -60,11 +62,11 @@
"libatk-1.0.0"
"libgdk_pixbuf-2.0.0")))
(define linux-remove-libs
'("libintl.8"))
'("libintl.9"))
(define package-mapping
`(["draw" ; pkg name
"-2" ; pkg suffix (increment after "-" when library versions change)
"-3" ; pkg suffix (increment after "-" when library versions change)
"racket/draw" ; subdir
"" ; extra for "LICENSE.txt"
#t ; dynamic libraries (as opposed to shared files)
@ -77,11 +79,13 @@
"libgthread"
["libintl" "libintl is released under the GNU Library General Public License (GNU LGPL)."]
["libharfbuzz" "HarfBuzz is relased under a MIT license."]
["libfribidi" "FriBidi is released under the GNU Library General Public License (GNU LGPL)."]
["libpango" "Pango is released under the GNU Library General Public License (GNU LGPL)."]
"libpangocairo"
"libpangoft2"
"libpangowin32"
"libexpat"
["libuuid" "libuuid is relased under a Modified BSD license."]
["libfontconfig" ,(~a "FontConfig:\n"
" Copyright © 2000,2001,2002,2003,2004,2006,2007 Keith Packard\n"
" Copyright © 2005 Patrick Lam\n"
@ -97,7 +101,7 @@
["zlib1" "zlib is by Jean-loup Gailly and Mark Adler."]
["libz" "zlib is by Jean-loup Gailly and Mark Adler."])]
["racket"
"-2"
"-3"
"racket"
""
#t
@ -293,7 +297,8 @@
(~a pkg "-" platform suffix)
subdir))
(define dest (build-path dir p))
(make-directory* dir)
(let-values ([(base name dir?) (split-path dest)])
(make-directory* base))
(cond
[(file-exists? dest) (delete-file dest)]
[(directory-exists? dest) (delete-directory/files dest)])
@ -356,8 +361,8 @@
(environment-variables-copy
(current-environment-variables))])
(putenv "PATH" (~a (if m32?
"/usr/mw32/bin:"
"/usr/mw64/bin:")
"/usr/local/mw32/bin:/usr/mw32/bin:"
"/usr/local/mw64/bin:/usr/mw64/bin:")
(getenv "PATH")))
(install (~a "win32-" (if m32? "i386" "x86_64"))

View File

@ -1,17 +0,0 @@
diff -u -r old/cairo-1.12.16/src/cairo-clip-boxes.c new/cairo-1.12.16/src/cairo-clip-boxes.c
--- old/cairo-1.12.16/src/cairo-clip-boxes.c 2015-11-06 15:46:30.000000000 -0700
+++ new/cairo-1.12.16/src/cairo-clip-boxes.c 2015-11-06 15:47:36.000000000 -0700
@@ -172,8 +172,11 @@
if (clip->path == NULL) {
clip->extents = *r;
} else {
- if (! _cairo_rectangle_intersect (&clip->extents, r))
+ if (! _cairo_rectangle_intersect (&clip->extents, r)) {
clip = _cairo_clip_set_all_clipped (clip);
+ /* return so that there's no attempt to modify `clip`: */
+ return clip;
+ }
}
if (clip->path == NULL)
clip->is_region = _cairo_box_is_pixel_aligned (box);
Only in new/cairo-1.12.16/src: cairo-clip-boxes.c~

View File

@ -1,76 +0,0 @@
diff -r -u old/cairo-1.12.16/src/cairo-quartz-font.c new/cairo-1.12.16/src/cairo-quartz-font.c
--- old/cairo-1.12.16/src/cairo-quartz-font.c 2015-11-04 15:21:19.000000000 -0700
+++ new/cairo-1.12.16/src/cairo-quartz-font.c 2015-11-04 15:21:37.000000000 -0700
@@ -81,9 +81,6 @@
static void (*CGContextSetAllowsFontSmoothingPtr) (CGContextRef, bool) = NULL;
static bool (*CGContextGetAllowsFontSmoothingPtr) (CGContextRef) = NULL;
-/* Not public in the least bit */
-static CGPathRef (*CGFontGetGlyphPathPtr) (CGFontRef fontRef, CGAffineTransform *textTransform, int unknown, CGGlyph glyph) = NULL;
-
/* CGFontGetHMetrics isn't public, but the other functions are public/present in 10.5 */
typedef struct {
int ascent;
@@ -131,7 +128,6 @@
/* These have the same name in 10.4 and 10.5 */
CGFontGetUnitsPerEmPtr = dlsym(RTLD_DEFAULT, "CGFontGetUnitsPerEm");
CGFontGetGlyphAdvancesPtr = dlsym(RTLD_DEFAULT, "CGFontGetGlyphAdvances");
- CGFontGetGlyphPathPtr = dlsym(RTLD_DEFAULT, "CGFontGetGlyphPath");
CGFontGetHMetricsPtr = dlsym(RTLD_DEFAULT, "CGFontGetHMetrics");
CGFontGetAscentPtr = dlsym(RTLD_DEFAULT, "CGFontGetAscent");
@@ -148,7 +144,6 @@
CGFontGetGlyphsForUnicharsPtr &&
CGFontGetUnitsPerEmPtr &&
CGFontGetGlyphAdvancesPtr &&
- CGFontGetGlyphPathPtr &&
(CGFontGetHMetricsPtr || (CGFontGetAscentPtr && CGFontGetDescentPtr && CGFontGetLeadingPtr)))
_cairo_quartz_font_symbols_present = TRUE;
@@ -592,6 +587,8 @@
CGGlyph glyph = _cairo_quartz_scaled_glyph_index (scaled_glyph);
CGAffineTransform textMatrix;
CGPathRef glyphPath;
+ CTFontRef ctFont;
+ int empty_path;
cairo_path_fixed_t *path;
if (glyph == INVALID_GLYPH) {
@@ -606,19 +603,32 @@
-font->base.scale.yy,
0, 0);
- glyphPath = CGFontGetGlyphPathPtr (font_face->cgFont, &textMatrix, 0, glyph);
- if (!glyphPath)
+ ctFont = CTFontCreateWithGraphicsFont (font_face->cgFont, 1.0, NULL, NULL);
+ glyphPath = CTFontCreatePathForGlyph (ctFont, glyph, &textMatrix);
+ empty_path = 0;
+ if (!glyphPath) {
+ /* an empty glyph path may just reflect whitespace; check bounding rects */
+ CGRect r;
+ r = CTFontGetBoundingRectsForGlyphs(ctFont, kCTFontHorizontalOrientation, &glyph, NULL, 1);
+ if (memcmp(&CGRectNull, &r, sizeof(CGRect)))
+ empty_path = 1;
+ }
+ CFRelease (ctFont);
+ if (!glyphPath && !empty_path)
return CAIRO_INT_STATUS_UNSUPPORTED;
path = _cairo_path_fixed_create ();
if (!path) {
- CGPathRelease (glyphPath);
+ if (glyphPath)
+ CGPathRelease (glyphPath);
return _cairo_error(CAIRO_STATUS_NO_MEMORY);
}
- CGPathApply (glyphPath, path, _cairo_quartz_path_apply_func);
+ if (glyphPath)
+ CGPathApply (glyphPath, path, _cairo_quartz_path_apply_func);
- CGPathRelease (glyphPath);
+ if (glyphPath)
+ CGPathRelease (glyphPath);
_cairo_scaled_glyph_set_path (scaled_glyph, &font->base, path);

View File

@ -1,7 +1,23 @@
diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modules/basic/basic-coretext.c
--- old/pango-1.36.6/modules/basic/basic-coretext.c 2014-08-16 07:15:21.000000000 -0600
+++ new/pango-1.36.6/modules/basic/basic-coretext.c 2014-08-27 18:47:22.000000000 -0600
@@ -56,7 +56,8 @@
diff -u -r orig/pango-1.42.0/pango/pangocairo-coretextfont.c next/pango-1.42.0/pango/pangocairo-coretextfont.c
--- orig/pango-1.42.0/pango/pangocairo-coretextfont.c 2017-08-15 15:53:10.000000000 -0600
+++ next/pango-1.42.0/pango/pangocairo-coretextfont.c 2018-03-28 21:15:02.000000000 -0600
@@ -145,6 +145,12 @@
metrics->strikethrough_position = metrics->ascent / 3;
metrics->strikethrough_thickness = CTFontGetUnderlineThickness (ctfont) * PANGO_SCALE;
+ metrics->underline_position = -metrics->underline_position;
+ pango_quantize_line_geometry (&metrics->underline_thickness,
+ &metrics->underline_position);
+ metrics->underline_position = -(metrics->underline_position
+ + metrics->underline_thickness);
+
layout = pango_layout_new (context);
font_desc = pango_font_describe_with_absolute_size ((PangoFont *) font);
pango_layout_set_font_description (layout, font_desc);
diff -u -r orig/pango-1.42.0/pango/pangocoretext-shape.c next/pango-1.42.0/pango/pangocoretext-shape.c
--- orig/pango-1.42.0/pango/pangocoretext-shape.c 2016-10-21 23:00:41.000000000 -0600
+++ next/pango-1.42.0/pango/pangocoretext-shape.c 2018-03-28 21:22:58.000000000 -0600
@@ -34,7 +34,8 @@
PangoGlyphString *glyphs,
int i,
int offset,
@ -11,7 +27,7 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
{
PangoRectangle logical_rect;
@@ -66,8 +67,13 @@
@@ -44,8 +45,13 @@
glyphs->glyphs[i].geometry.y_offset = 0;
glyphs->log_clusters[i] = offset;
@ -27,7 +43,7 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
}
@@ -94,6 +100,8 @@
@@ -74,6 +80,8 @@
CFIndex *current_indices;
const CGGlyph *current_cgglyphs;
CGGlyph *current_cgglyphs_buffer;
@ -36,7 +52,7 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
CTRunStatus current_run_status;
};
@@ -106,6 +114,9 @@
@@ -86,6 +94,9 @@
if (iter->current_cgglyphs_buffer)
free (iter->current_cgglyphs_buffer);
iter->current_cgglyphs_buffer = NULL;
@ -46,7 +62,7 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
if (iter->current_indices)
free (iter->current_indices);
iter->current_indices = NULL;
@@ -133,6 +144,15 @@
@@ -113,6 +124,15 @@
iter->current_cgglyphs = iter->current_cgglyphs_buffer;
}
@ -62,26 +78,7 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
iter->current_indices = malloc (sizeof (CFIndex) * ct_glyph_count);
CTRunGetStringIndices (iter->current_run, CFRangeMake (0, ct_glyph_count),
iter->current_indices);
@@ -179,7 +199,17 @@
static gunichar
run_iterator_get_character (struct RunIterator *iter)
{
- return CFStringGetCharacterAtIndex (iter->cstr, iter->current_indices[iter->ct_i]);
+ gunichar c;
+
+ c = CFStringGetCharacterAtIndex (iter->cstr, iter->current_indices[iter->ct_i]);
+ if ((c >= 0xD800) && (c <= 0xDFFF)) {
+ /* surrogate pair */
+ gunichar c2;
+ c2 = CFStringGetCharacterAtIndex (iter->cstr, iter->current_indices[iter->ct_i]+1);
+ c = 0x10000 + (((c & 0x3FF) << 10) | (c2 & 0x3FF));
+ }
+
+ return c;
}
static CGGlyph
@@ -188,6 +218,12 @@
@@ -208,6 +228,12 @@
return iter->current_cgglyphs[iter->ct_i];
}
@ -94,15 +91,15 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
static CFIndex
run_iterator_get_index (struct RunIterator *iter)
{
@@ -218,6 +254,7 @@
iter->current_indices = NULL;
@@ -239,6 +265,7 @@
iter->chr_idx_lut = NULL;
iter->current_cgglyphs = NULL;
iter->current_cgglyphs_buffer = NULL;
+ iter->current_cgadvs_buffer = NULL;
/* Create CTLine */
attributes = CFDictionaryCreate (kCFAllocatorDefault,
@@ -311,6 +348,7 @@
@@ -336,6 +363,7 @@
{
CFIndex index;
CGGlyph cgglyph;
@ -110,7 +107,7 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
gunichar wc;
};
@@ -352,6 +390,7 @@
@@ -377,6 +405,7 @@
gi = g_slice_new (struct GlyphInfo);
gi->index = run_iterator_get_index (&riter);
gi->cgglyph = run_iterator_get_cgglyph (&riter);
@ -118,16 +115,16 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
gi->wc = run_iterator_get_character (&riter);
glyph_list = g_slist_prepend (glyph_list, gi);
@@ -440,7 +479,7 @@
if (gi == NULL || gi->index > gs_i)
{
/* gs_i is behind, insert empty glyph */
@@ -466,7 +495,7 @@
* up with the CoreText glyph list. This occurs for instance when
* CoreText inserts a ligature that covers two characters.
*/
- set_glyph (font, glyphs, gs_i, p - text, PANGO_GLYPH_EMPTY);
+ set_glyph (font, glyphs, gs_i, p - text, PANGO_GLYPH_EMPTY, NULL);
continue;
}
else if (gi->index < gs_i)
@@ -471,7 +510,7 @@
@@ -502,7 +531,7 @@
if (result != PANGO_COVERAGE_NONE)
{
@ -136,7 +133,7 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
if (g_unichar_type (gi->wc) == G_UNICODE_NON_SPACING_MARK)
{
@@ -494,7 +533,7 @@
@@ -525,7 +554,7 @@
}
}
else
@ -145,64 +142,3 @@ diff -r -u old/pango-1.36.6/modules/basic/basic-coretext.c new/pango-1.36.6/modu
glyph_iter = g_slist_next (glyph_iter);
}
diff -r -u old/pango-1.36.6/pango/pangocairo-coretextfont.c new/pango-1.36.6/pango/pangocairo-coretextfont.c
--- old/pango-1.36.6/pango/pangocairo-coretextfont.c 2014-03-05 21:33:55.000000000 -0700
+++ new/pango-1.36.6/pango/pangocairo-coretextfont.c 2014-08-27 18:13:16.000000000 -0600
@@ -147,6 +147,12 @@
metrics->strikethrough_position = metrics->ascent / 3;
metrics->strikethrough_thickness = CTFontGetUnderlineThickness (ctfont) * PANGO_SCALE;
+ metrics->underline_position = -metrics->underline_position;
+ pango_quantize_line_geometry (&metrics->underline_thickness,
+ &metrics->underline_position);
+ metrics->underline_position = -(metrics->underline_position
+ + metrics->underline_thickness);
+
layout = pango_layout_new (context);
font_desc = pango_font_describe_with_absolute_size ((PangoFont *) font);
pango_layout_set_font_description (layout, font_desc);
diff -r -u old/pango-1.36.6/pango/pangocairo-coretextfontmap.c new/pango-1.36.6/pango/pangocairo-coretextfontmap.c
--- old/pango-1.36.6/pango/pangocairo-coretextfontmap.c 2014-03-05 21:33:55.000000000 -0700
+++ new/pango-1.36.6/pango/pangocairo-coretextfontmap.c 2014-08-27 18:13:16.000000000 -0600
@@ -186,5 +186,5 @@
pango_cairo_core_text_font_map_init (PangoCairoCoreTextFontMap *cafontmap)
{
cafontmap->serial = 1;
- cafontmap->dpi = 96.;
+ cafontmap->dpi = 72.;
}
diff -r -u old/pango-1.36.6/pango/pangocoretext-fontmap.c new/pango-1.36.6/pango/pangocoretext-fontmap.c
--- old/pango-1.36.6/pango/pangocoretext-fontmap.c 2014-08-01 00:49:36.000000000 -0600
+++ new/pango-1.36.6/pango/pangocoretext-fontmap.c 2014-08-27 18:13:16.000000000 -0600
@@ -298,7 +298,8 @@
cf_number = (CFNumberRef)CFDictionaryGetValue (dict,
kCTFontWeightTrait);
- if (CFNumberGetValue (cf_number, kCFNumberCGFloatType, &value))
+ weight = PANGO_WEIGHT_NORMAL;
+ if (cf_number && CFNumberGetValue (cf_number, kCFNumberCGFloatType, &value))
{
if (value < ct_weight_min || value > ct_weight_max)
{
@@ -317,8 +318,6 @@
}
}
}
- else
- weight = PANGO_WEIGHT_NORMAL;
CFRelease (dict);
diff -r -u old/pango-1.36.6/pango/pangocoretext.c new/pango-1.36.6/pango/pangocoretext.c
--- old/pango-1.36.6/pango/pangocoretext.c 2014-03-05 21:33:55.000000000 -0700
+++ new/pango-1.36.6/pango/pangocoretext.c 2014-08-27 18:13:16.000000000 -0600
@@ -97,8 +97,7 @@
bitmap = CFCharacterSetCreateBitmapRepresentation (kCFAllocatorDefault,
charset);
- /* We only handle the BMP plane */
- length = MIN (CFDataGetLength (bitmap), 8192);
+ length = CFDataGetLength (bitmap);
ptr = CFDataGetBytePtr (bitmap);
/* FIXME: can and should this be done more efficiently? */

View File

@ -1,8 +1,8 @@
diff -u -r old/fontconfig-2.11.1/fontconfig/fontconfig.h new/fontconfig-2.11.1/fontconfig/fontconfig.h
--- old/fontconfig-2.11.1/fontconfig/fontconfig.h 2014-10-07 06:54:53.000000000 -0600
+++ new/fontconfig-2.11.1/fontconfig/fontconfig.h 2014-10-07 17:44:20.000000000 -0600
@@ -342,6 +342,9 @@
FcCacheCreateTagFile (const FcConfig *config);
diff -u -r orig/fontconfig-2.13.0/fontconfig/fontconfig.h next/fontconfig-2.13.0/fontconfig/fontconfig.h
--- orig/fontconfig-2.13.0/fontconfig/fontconfig.h 2018-03-05 20:31:12.000000000 -0700
+++ next/fontconfig-2.13.0/fontconfig/fontconfig.h 2018-03-28 20:11:52.000000000 -0600
@@ -377,6 +377,9 @@
FcConfig *config);
/* fccfg.c */
+FcPublic void
@ -11,7 +11,7 @@ diff -u -r old/fontconfig-2.11.1/fontconfig/fontconfig.h new/fontconfig-2.11.1/f
FcPublic FcChar8 *
FcConfigHome (void);
@@ -582,6 +585,9 @@
@@ -635,6 +638,9 @@
FcPublic void
FcFini (void);
@ -21,11 +21,11 @@ diff -u -r old/fontconfig-2.11.1/fontconfig/fontconfig.h new/fontconfig-2.11.1/f
FcPublic int
FcGetVersion (void);
Only in new/fontconfig-2.11.1/fontconfig: fontconfig.h~
diff -u -r old/fontconfig-2.11.1/src/fccfg.c new/fontconfig-2.11.1/src/fccfg.c
--- old/fontconfig-2.11.1/src/fccfg.c 2014-10-07 06:54:53.000000000 -0600
+++ new/fontconfig-2.11.1/src/fccfg.c 2014-10-07 17:44:11.000000000 -0600
@@ -1834,6 +1834,22 @@
Only in next/fontconfig-2.13.0/fontconfig: fontconfig.h.orig
diff -u -r orig/fontconfig-2.13.0/src/fccfg.c next/fontconfig-2.13.0/src/fccfg.c
--- orig/fontconfig-2.13.0/src/fccfg.c 2018-02-04 04:01:46.000000000 -0700
+++ next/fontconfig-2.13.0/src/fccfg.c 2018-03-28 20:11:52.000000000 -0600
@@ -1914,6 +1914,22 @@
#define FONTCONFIG_FILE "fonts.conf"
#endif
@ -48,7 +48,7 @@ diff -u -r old/fontconfig-2.11.1/src/fccfg.c new/fontconfig-2.11.1/src/fccfg.c
static FcChar8 *
FcConfigFileExists (const FcChar8 *dir, const FcChar8 *file)
{
@@ -1935,7 +1951,7 @@
@@ -2015,7 +2031,7 @@
strcat ((char *) fontconfig_path, "\\fonts");
}
#endif
@ -57,11 +57,11 @@ diff -u -r old/fontconfig-2.11.1/src/fccfg.c new/fontconfig-2.11.1/src/fccfg.c
path[i] = malloc (strlen ((char *) dir) + 1);
if (!path[i])
goto bail1;
Only in new/fontconfig-2.11.1/src: fccfg.c~
diff -u -r old/fontconfig-2.11.1/src/fcinit.c new/fontconfig-2.11.1/src/fcinit.c
--- old/fontconfig-2.11.1/src/fcinit.c 2014-10-07 06:54:53.000000000 -0600
+++ new/fontconfig-2.11.1/src/fcinit.c 2014-10-07 17:43:44.000000000 -0600
@@ -35,6 +35,26 @@
Only in next/fontconfig-2.13.0/src: fccfg.c.orig
diff -u -r orig/fontconfig-2.13.0/src/fcinit.c next/fontconfig-2.13.0/src/fcinit.c
--- orig/fontconfig-2.13.0/src/fcinit.c 2018-02-04 21:28:01.000000000 -0700
+++ next/fontconfig-2.13.0/src/fcinit.c 2018-03-28 20:15:42.000000000 -0600
@@ -35,25 +35,52 @@
#pragma message("To suppress these warnings, define FC_NO_MT.")
#endif
@ -86,29 +86,43 @@ diff -u -r old/fontconfig-2.11.1/src/fcinit.c new/fontconfig-2.11.1/src/fcinit.c
+}
+
static FcConfig *
FcInitFallbackConfig (void)
FcInitFallbackConfig (const FcChar8 *sysroot)
{
@@ -43,9 +63,13 @@
FcConfig *config;
const FcChar8 *fallback = (const FcChar8 *) "" \
"<fontconfig>" \
- " <dir>" FC_DEFAULT_FONTS "</dir>" \
+ " <dir>" "%s" "</dir>" \
" <dir prefix=\"xdg\">fonts</dir>" \
- " <cachedir>" FC_CACHEDIR "</cachedir>" \
+ " <cachedir>" "%s" "</cachedir>" \
" <cachedir prefix=\"xdg\">fontconfig</cachedir>" \
" <include ignore_missing=\"yes\" prefix=\"xdg\">fontconfig/conf.d</include>" \
" <include ignore_missing=\"yes\" prefix=\"xdg\">fontconfig/fonts.conf</include>" \
"</fontconfig>";
+ const char *default_fonts, *cache_dir, *fallback_s;
+
+ default_fonts = (fc_default_fonts ? fc_default_fonts : (const FcChar8 *)FC_DEFAULT_FONTS);
+ cache_dir = (fc_cachedir ? fc_cachedir : (const FcChar8 *)FC_CACHEDIR);
+
+ fallback_s = malloc(strlen(fallback) + strlen(default_fonts) + strlen(cache_dir) + 1);
+ sprintf(fallback_s, fallback, default_fonts, cache_dir);
config = FcConfigCreate ();
if (!config)
goto bail0;
- if (!FcConfigAddDir (config, (FcChar8 *) FC_DEFAULT_FONTS))
+ if (!FcConfigAddDir (config, (fc_default_fonts
+ ? fc_default_fonts
+ : (const FcChar8 *)FC_DEFAULT_FONTS)))
FcConfigSetSysRoot (config, sysroot);
- if (!FcConfigParseAndLoadFromMemory (config, fallback, FcFalse))
+ if (!FcConfigParseAndLoadFromMemory (config, fallback_s, FcFalse))
goto bail1;
- if (!FcConfigAddCacheDir (config, (FcChar8 *) FC_CACHEDIR))
+ if (!FcConfigAddCacheDir (config, (fc_cachedir
+ ? fc_cachedir
+ : (const FcChar8 *)FC_CACHEDIR)))
goto bail1;
return config;
Only in new/fontconfig-2.11.1/src: fcinit.c~
diff -u -r old/fontconfig-2.11.1/src/fcint.h new/fontconfig-2.11.1/src/fcint.h
--- old/fontconfig-2.11.1/src/fcint.h 2014-10-07 06:54:53.000000000 -0600
+++ new/fontconfig-2.11.1/src/fcint.h 2014-10-07 09:42:02.000000000 -0600
@@ -605,6 +605,9 @@
return config;
Only in next/fontconfig-2.13.0/src: fcinit.c.orig
Only in next/fontconfig-2.13.0/src: fcinit.c.rej
diff -u -r orig/fontconfig-2.13.0/src/fcint.h next/fontconfig-2.13.0/src/fcint.h
--- orig/fontconfig-2.13.0/src/fcint.h 2018-02-04 03:20:56.000000000 -0700
+++ next/fontconfig-2.13.0/src/fcint.h 2018-03-28 20:11:52.000000000 -0600
@@ -647,6 +647,9 @@
FcPrivate FcChar8 *
FcConfigXdgDataHome (void);
@ -118,7 +132,7 @@ diff -u -r old/fontconfig-2.11.1/src/fcint.h new/fontconfig-2.11.1/src/fcint.h
FcPrivate FcExpr *
FcConfigAllocExpr (FcConfig *config);
@@ -806,6 +809,9 @@
@@ -878,6 +881,9 @@
FcPrivate void
FcDefaultFini (void);
@ -128,19 +142,24 @@ diff -u -r old/fontconfig-2.11.1/src/fcint.h new/fontconfig-2.11.1/src/fcint.h
/* fcdir.c */
FcPrivate FcBool
Only in new/fontconfig-2.11.1/src: fcint.h~
diff -u -r old/fontconfig-2.11.1/src/fcxml.c new/fontconfig-2.11.1/src/fcxml.c
--- old/fontconfig-2.11.1/src/fcxml.c 2014-10-07 06:54:53.000000000 -0600
+++ new/fontconfig-2.11.1/src/fcxml.c 2014-10-07 09:42:42.000000000 -0600
@@ -1997,6 +1997,10 @@
attr = FcConfigGetAttribute (parse, "prefix");
if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0)
prefix = FcConfigXdgDataHome ();
+ if (attr && FcStrCmp (attr, (const FcChar8 *)"cfg") == 0)
+ prefix = FcConfigDir ();
+ if (attr && FcStrCmp (attr, (const FcChar8 *)"cache") == 0)
+ prefix = FcFallbackCacheDir ();
Only in next/fontconfig-2.13.0/src: fcint.h.orig
diff -u -r orig/fontconfig-2.13.0/src/fcxml.c next/fontconfig-2.13.0/src/fcxml.c
--- orig/fontconfig-2.13.0/src/fcxml.c 2018-02-04 04:01:55.000000000 -0700
+++ next/fontconfig-2.13.0/src/fcxml.c 2018-03-28 20:16:52.000000000 -0600
@@ -2080,6 +2080,14 @@
if (!prefix)
goto bail;
}
+ if (attr && FcStrCmp (attr, (const FcChar8 *)"cfg") == 0) {
+ prefix = FcConfigDir ();
+ if (!prefix) goto bail;
+ }
+ if (attr && FcStrCmp (attr, (const FcChar8 *)"cache") == 0) {
+ prefix = FcFallbackCacheDir ();
+ if (!prefix) goto bail;
+ }
data = FcStrBufDoneStatic (&parse->pstack->str);
if (!data)
{
Only in new/fontconfig-2.11.1/src: fcxml.c~
Only in next/fontconfig-2.13.0/src: fcxml.c.orig
Only in next/fontconfig-2.13.0/src: fcxml.c.rej

View File

@ -1,12 +0,0 @@
diff -r -u old/harfbuzz-0.9.27/src/Makefile.in new/harfbuzz-0.9.27/src/Makefile.in
--- old/harfbuzz-0.9.27/src/Makefile.in 2014-03-31 09:23:00.000000000 -0600
+++ new/harfbuzz-0.9.27/src/Makefile.in 2014-03-31 09:23:27.000000000 -0600
@@ -2234,7 +2234,7 @@
"$<" \
> "$@.tmp" && mv "$@.tmp" "$@" || ( $(RM) "$@.tmp"; false )
harfbuzz.def: $(HBHEADERS) $(HBNODISTHEADERS)
- $(AM_V_GEN) (echo EXPORTS; \
+ $(AM_V_GEN) ( \
(cat $^ || echo 'hb_ERROR ()' ) | \
$(EGREP) '^hb_.* \(' | \
sed -e 's/ (.*//' | \

View File

@ -0,0 +1,65 @@
diff -u -r old/glib-2.56.0/gio/gcocoanotificationbackend.c new/glib-2.56.0/gio/gcocoanotificationbackend.c
--- old/glib-2.56.0/gio/gcocoanotificationbackend.c 2017-07-13 17:03:38.000000000 -0600
+++ new/glib-2.56.0/gio/gcocoanotificationbackend.c 2018-03-28 18:57:37.000000000 -0600
@@ -104,6 +104,7 @@
}
}
+#if 0
@interface GNotificationCenterDelegate : NSObject<NSUserNotificationCenterDelegate> @end
@implementation GNotificationCenterDelegate
@@ -130,6 +131,7 @@
@end
static GNotificationCenterDelegate *cocoa_notification_delegate;
+#endif
static gboolean
g_cocoa_notification_backend_is_supported (void)
@@ -143,6 +145,7 @@
return TRUE;
}
+#if 0
static void
add_actions_to_notification (NSUserNotification *userNotification,
GNotification *notification)
@@ -196,12 +199,14 @@
userNotification.userInfo = user_info;
[user_info release];
}
+#endif
static void
g_cocoa_notification_backend_send_notification (GNotificationBackend *backend,
const gchar *cstr_id,
GNotification *notification)
{
+#if 0
NSString *str_title = nil, *str_text = nil, *str_id = nil;
NSImage *content = nil;
const char *cstr;
@@ -239,12 +244,14 @@
[str_id release];
[content release];
[userNotification release];
+#endif
}
static void
g_cocoa_notification_backend_withdraw_notification (GNotificationBackend *backend,
const gchar *cstr_id)
{
+#if 0
NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter];
NSArray *notifications = [center deliveredNotifications];
NSString *str_id = nsstring_from_cstr (cstr_id);
@@ -260,6 +267,7 @@
[notifications release];
[str_id release];
+#endif
}
static void

View File

@ -0,0 +1,50 @@
diff -r -u orig/glib-2.56.0/glib/gstrfuncs.c next/glib-2.56.0/glib/gstrfuncs.c
--- orig/glib-2.56.0/glib/gstrfuncs.c 2018-01-08 13:34:19.000000000 -0800
+++ next/glib-2.56.0/glib/gstrfuncs.c 2018-03-31 08:48:02.000000000 -0700
@@ -1233,6 +1233,13 @@
#endif
}
+#if defined(G_OS_WIN32)
+# ifdef _WIN64
+# define RKT_G_OS_WIN32
+errno_t strerror_s(char *buffer, size_t numberOfElements, int errnum);
+# endif
+#endif
+
/**
* g_strerror:
* @errnum: the system error number. See the standard C %errno
@@ -1282,7 +1289,7 @@
gchar buf[1024];
GError *error = NULL;
-#if defined(G_OS_WIN32)
+#if defined(RKT_G_OS_WIN32)
strerror_s (buf, sizeof (buf), errnum);
msg = buf;
#elif defined(HAVE_STRERROR_R)
diff -r -u orig/glib-2.56.0/gmodule/gmodule-win32.c next/glib-2.56.0/gmodule/gmodule-win32.c
--- orig/glib-2.56.0/gmodule/gmodule-win32.c 2018-01-08 13:34:19.000000000 -0800
+++ next/glib-2.56.0/gmodule/gmodule-win32.c 2018-03-31 08:57:49.000000000 -0700
@@ -62,6 +62,20 @@
g_free (error);
}
+#ifdef _WIN64
+BOOL SetThreadErrorMode(DWORD dwNewMode, LPDWORD lpOldMode);
+#else
+/* SetThreadErrorMode is not in XP */
+# define SetThreadErrorMode rktSetThreadErrorMode
+static BOOL rktSetThreadErrorMode(DWORD dwNewMode, LPDWORD lpOldMode)
+{
+ if (lpOldMode)
+ *lpOldMode = GetErrorMode();
+ return SetErrorMode(dwNewMode);
+}
+#endif
+
+
/* --- functions --- */
static gpointer
_g_module_open (const gchar *file_name,

View File

@ -0,0 +1,12 @@
diff --git x/a/glib/gdatetime.c y/b/glib/gdatetime.c
index 2eda466..ba85038 100644
--- x/a/glib/gdatetime.c
+++ y/b/glib/gdatetime.c
@@ -224,6 +224,7 @@ static const gint month_item[2][12] =
#define WEEKDAY_ABBR(d) (get_weekday_name_abbr (g_date_time_get_day_of_week (d)))
#define WEEKDAY_ABBR_IS_LOCALE FALSE
#define WEEKDAY_FULL(d) (get_weekday_name (g_date_time_get_day_of_week (d)))
+#define WEEKDAY_FULL_IS_LOCALE FALSE
/* We don't yet know if nl_langinfo (MON_n) returns standalone or complete-date
* format forms but if nl_langinfo (ALTMON_n) is not supported then we will
* have to use MONTH_FULL as standalone. The same if nl_langinfo () does not

View File

@ -22,8 +22,8 @@ diff -r -u old/poppler-0.24.5/libtool new/poppler-0.24.5/libtool
# Dependencies to place before and after the objects being linked to
# create a shared library.
-predep_objects="/usr/mw32/bin/../lib/gcc/i686-w64-mingw32/4.9.0/../../../../i686-w64-mingw32/lib/../lib/dllcrt2.o /usr/mw32/bin/../lib/gcc/i686-w64-mingw32/4.9.0/crtbegin.o"
-postdep_objects="/usr/mw32/bin/../lib/gcc/i686-w64-mingw32/4.9.0/crtend.o"
-predep_objects="/usr/local/mw32/bin/../lib/gcc/i686-w64-mingw32/4.9.0/../../../../i686-w64-mingw32/lib/../lib/dllcrt2.o /usr/local/mw32/bin/../lib/gcc/i686-w64-mingw32/4.9.0/crtbegin.o"
-postdep_objects="/usr/local/mw32/bin/../lib/gcc/i686-w64-mingw32/4.9.0/crtend.o"
+predep_objects=""
+postdep_objects=""
predeps=""

View File

@ -1,6 +1,6 @@
diff -r -u old/poppler-0.24.5/libtool new/poppler-0.24.5/libtool
--- old/poppler-0.24.5/libtool 2014-04-04 16:45:38.000000000 -0600
+++ new/poppler-0.24.5/libtool 2014-04-04 16:46:07.000000000 -0600
diff -r -u orig/poppler-0.24.5/libtool next/poppler-0.24.5/libtool
--- orig/poppler-0.24.5/libtool 2018-04-04 09:51:15.000000000 -0600
+++ next/poppler-0.24.5/libtool 2018-04-04 09:53:17.000000000 -0600
@@ -10167,14 +10167,14 @@
old_archive_from_expsyms_cmds=""
@ -22,8 +22,8 @@ diff -r -u old/poppler-0.24.5/libtool new/poppler-0.24.5/libtool
# Dependencies to place before and after the objects being linked to
# create a shared library.
-predep_objects="/usr/mw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.0/../../../../x86_64-w64-mingw32/lib/../lib/dllcrt2.o /usr/mw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.0/../../../../x86_64-w64-mingw32/lib/../lib/crtbegin.o"
-postdep_objects="/usr/mw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.0/../../../../x86_64-w64-mingw32/lib/../lib/crtend.o"
-predep_objects="/usr/local/mw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.0/../../../../x86_64-w64-mingw32/lib/../lib/dllcrt2.o /usr/local/mw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.0/../../../../x86_64-w64-mingw32/lib/../lib/crtbegin.o"
-postdep_objects="/usr/local/mw64/bin/../lib/gcc/x86_64-w64-mingw32/4.9.0/../../../../x86_64-w64-mingw32/lib/../lib/crtend.o"
+predep_objects=""
+postdep_objects=""
predeps=""

View File

@ -0,0 +1,12 @@
diff -u -r orig/pango-1.42.0/pango/pango-context.c next/pango-1.42.0/pango/pango-context.c
--- orig/pango-1.42.0/pango/pango-context.c 2017-08-12 17:40:19.000000000 -0500
+++ next/pango-1.42.0/pango/pango-context.c 2018-04-04 19:24:05.000000000 -0500
@@ -1388,7 +1388,7 @@
if (!state->current_fonts)
{
- gboolean is_emoji = state->emoji_iter.is_emoji;
+ gboolean is_emoji = 0; // state->emoji_iter.is_emoji;
if (is_emoji && !state->emoji_font_desc)
{
state->emoji_font_desc = pango_font_description_copy_static (state->font_desc);

View File

@ -0,0 +1,25 @@
diff -r -u orig/pango-1.42.0/pango/pangocoretext-shape.c next/pango-1.42.0/pango/pangocoretext-shape.c
--- orig/pango-1.42.0/pango/pangocoretext-shape.c 2016-10-22 00:00:41.000000000 -0500
+++ next/pango-1.42.0/pango/pangocoretext-shape.c 2018-04-04 20:07:01.000000000 -0500
@@ -132,6 +132,21 @@
return accumulator;
}
+static gunichar CFStringGetLongCharacterForSurrogatePair(UniChar c, UniChar c2)
+{
+ return 0x10000 + (((c & 0x3FF) << 10) | (c2 & 0x3FF));
+}
+
+static int CFStringIsSurrogateHighCharacter(UniChar c)
+{
+ return ((c >= 0xD800) && (c <= 0xDBFF));
+}
+
+static int CFStringIsSurrogateLowCharacter(UniChar c)
+{
+ return ((c >= 0xDC00) && (c <= 0xDFFF));
+}
+
/* This function generates a lookup table to match string indices of glyphs to
* actual unicode character indices. This also takes unicode characters into
* account that are encoded using 2 UTF16 code points in CFStrings. We use the

View File

@ -1,13 +0,0 @@
diff -u -r old/glib-2.39.92/glib/grand.c new/glib-2.39.92/glib/grand.c
--- old/glib-2.39.92/glib/grand.c 2014-03-31 08:42:11.000000000 -0600
+++ new/glib-2.39.92/glib/grand.c 2014-03-31 08:42:56.000000000 -0600
@@ -264,7 +264,7 @@
gint i;
for (i = 0; i < G_N_ELEMENTS (seed); i++)
- rand_s (&seed[i]);
+ seed[i] = rand();
#endif
return g_rand_new_with_seed_array (seed, 4);

View File

@ -1,38 +0,0 @@
From 844455c14f8e9e4767fd661e475a9c6fdea9d22e Mon Sep 17 00:00:00 2001
From: Massimo Valentini <mvalentini@src.gnome.org>
Date: Wed, 11 Sep 2013 18:10:38 +0200
Subject: [PATCH] Bug 53121 - My program runs successfully with...
Cairo-1.10.2, but getting SIGSEGV with 1.12.2.
---
src/win32/cairo-win32-display-surface.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c
index 5ecdbee..965f2c4 100644
--- a/cairo/src/win32/cairo-win32-display-surface.c
+++ b/cairo/src/win32/cairo-win32-display-surface.c
@@ -455,17 +455,17 @@ _cairo_win32_display_surface_map_to_image (void *abstract_sur
surface->fallback =
_cairo_win32_display_surface_create_for_dc (surface->win32.dc,
surface->win32.format,
- surface->win32.extents.width,
- surface->win32.extents.height);
+ surface->win32.extents.x + surface->win32.extents.width,
+ surface->win32.extents.y + surface->win32.extents.height);
if (unlikely (status = surface->fallback->status))
goto err;
if (!BitBlt (to_win32_surface(surface->fallback)->dc,
- 0, 0,
+ surface->win32.extents.x, surface->win32.extents.y,
surface->win32.extents.width,
surface->win32.extents.height,
surface->win32.dc,
- 0, 0,
+ surface->win32.extents.x, surface->win32.extents.y,
SRCCOPY)) {
status = _cairo_error (CAIRO_STATUS_DEVICE_ERROR);
goto err;
--
1.7.6.5

View File

@ -1,6 +1,6 @@
diff -r -u old/pango-1.36.3/modules/basic/basic-win32.c new/pango-1.36.3/modules/basic/basic-win32.c
--- old/pango-1.36.3/modules/basic/basic-win32.c 2014-04-01 09:45:50.000000000 -0600
+++ new/pango-1.36.3/modules/basic/basic-win32.c 2014-04-01 09:49:32.000000000 -0600
diff -r -u old/pango-1.36.3/pango/pangowin32-shape.c new/pango-1.36.3/pango/pangowin32-shape.c
--- old/pango-1.36.3/pango/pangowin32-shape.c 2014-04-01 09:45:50.000000000 -0600
+++ new/pango-1.36.3/pango/pangowin32-shape.c 2014-04-01 09:49:32.000000000 -0600
@@ -468,7 +468,7 @@
g_print (G_STRLOC ": ScriptItemize: uDefaultLanguage:%04x uBidiLevel:%d\n",
control.uDefaultLanguage, state.uBidiLevel);