Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fcft for openSUSE:Factory checked in at 2021-12-09 19:45:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fcft (Old) and /work/SRC/openSUSE:Factory/.fcft.new.2520 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fcft" Thu Dec 9 19:45:41 2021 rev:9 rq:937363 version:2.5.1 Changes: -------- --- /work/SRC/openSUSE:Factory/fcft/fcft.changes 2021-11-13 22:49:12.089281050 +0100 +++ /work/SRC/openSUSE:Factory/.fcft.new.2520/fcft.changes 2021-12-09 19:46:19.189153778 +0100 @@ -1,0 +2,10 @@ +Wed Dec 8 19:43:55 UTC 2021 - Arnav Singh <opens...@arnavion.dev> + +- Update to 2.5.1: + * fcft_set_scaling_filter now applies to color bitmap fonts only, + ie emoji fonts. + * Fixed incorrect value of FCFT_SCALING_FILTER_CUBIC constant. + * Fixed pixman errors and program freezes when scaling bitmap fonts to + very small sizes. + +------------------------------------------------------------------- Old: ---- fcft-2.5.0.tar.gz New: ---- fcft-2.5.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fcft.spec ++++++ --- /var/tmp/diff_new_pack.9gVSE1/_old 2021-12-09 19:46:19.857154099 +0100 +++ /var/tmp/diff_new_pack.9gVSE1/_new 2021-12-09 19:46:19.857154099 +0100 @@ -18,7 +18,7 @@ %define libname libfcft3 Name: fcft -Version: 2.5.0 +Version: 2.5.1 Release: 0 Summary: A library for font loading and glyph rasterization using FreeType/pixman License: MIT ++++++ fcft-2.5.0.tar.gz -> fcft-2.5.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/CHANGELOG.md new/fcft/CHANGELOG.md --- old/fcft/CHANGELOG.md 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/CHANGELOG.md 2021-12-08 17:44:33.000000000 +0100 @@ -1,5 +1,6 @@ # Changelog +* [2.5.1](#2-5-1) * [2.5.0](#2-5-0) * [2.4.6](#2-4-6) * [2.4.5](#2-4-5) @@ -28,6 +29,34 @@ * [1.1.7](#1-1-7) +## 2.5.1 + +### Added + +* Meson command line option `-Ddocs` to force disable or enable + building manual pages and installing changelog and readme files + + +### Changed + +* `scdoc` is optional and detected automatically +* `fcft_set_scaling_filter()` now applies to color bitmap fonts only + (i.e. emoji fonts). Applying e.g. cubic or lanczos3 on regular text + glyphs simply does not look good. + + +### Fixed + +* `FCFT_SCALING_FILTER_CUBIC` incorrectly being mapped to ???lanczos3???. +* Pixman errors and program freezes when scaling bitmap fonts to very + small sizes (https://codeberg.org/dnkl/foot/issues/830). + + +### Contributors + +* Alibek Omarov + + ## 2.5.0 ### Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/PKGBUILD new/fcft/PKGBUILD --- old/fcft/PKGBUILD 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/PKGBUILD 2021-12-08 17:44:33.000000000 +0100 @@ -1,5 +1,5 @@ pkgname=fcft -pkgver=2.5.0 +pkgver=2.5.1 pkgrel=1 pkgdesc="Simple font loading and glyph rasterization library" changelog=CHANGELOG.md diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/README.md new/fcft/README.md --- old/fcft/README.md 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/README.md 2021-12-08 17:44:33.000000000 +0100 @@ -129,7 +129,7 @@ * Development packages of the run-time dependencies * meson * ninja -* scdoc +* scdoc (_optional_, enabled automatically or disabled with `-Ddocs=disabled`) * [tllist](https://codeberg.org/dnkl/tllist) * [check](https://libcheck.github.io/check/) (_optional_, for unit tests) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_capabilities.3.scd new/fcft/doc/fcft_capabilities.3.scd --- old/fcft/doc/fcft_capabilities.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_capabilities.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_capabilities(3) "2.5.0" "fcft" +fcft_capabilities(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_clone.3.scd new/fcft/doc/fcft_clone.3.scd --- old/fcft/doc/fcft_clone.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_clone.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_clone(3) "2.5.0" "fcft" +fcft_clone(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_destroy.3.scd new/fcft/doc/fcft_destroy.3.scd --- old/fcft/doc/fcft_destroy.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_destroy.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_destroy(3) "2.5.0" "fcft" +fcft_destroy(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_from_name.3.scd new/fcft/doc/fcft_from_name.3.scd --- old/fcft/doc/fcft_from_name.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_from_name.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_from_name(3) "2.5.0" "fcft" +fcft_from_name(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_glyph_rasterize.3.scd new/fcft/doc/fcft_glyph_rasterize.3.scd --- old/fcft/doc/fcft_glyph_rasterize.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_glyph_rasterize.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_glyph_rasterize(3) "2.5.0" "fcft" +fcft_glyph_rasterize(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_grapheme_rasterize.3.scd new/fcft/doc/fcft_grapheme_rasterize.3.scd --- old/fcft/doc/fcft_grapheme_rasterize.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_grapheme_rasterize.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_grapheme_rasterize(3) "2.5.0" "fcft" +fcft_grapheme_rasterize(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_kerning.3.scd new/fcft/doc/fcft_kerning.3.scd --- old/fcft/doc/fcft_kerning.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_kerning.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_kerning(3) "2.5.0" "fcft" +fcft_kerning(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_log_init.3.scd new/fcft/doc/fcft_log_init.3.scd --- old/fcft/doc/fcft_log_init.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_log_init.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_log_init(3) "2.5.0" "fcft" +fcft_log_init(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_precompose.3.scd new/fcft/doc/fcft_precompose.3.scd --- old/fcft/doc/fcft_precompose.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_precompose.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_precompose(3) "2.5.0" "fcft" +fcft_precompose(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_set_emoji_presentation.3.scd new/fcft/doc/fcft_set_emoji_presentation.3.scd --- old/fcft/doc/fcft_set_emoji_presentation.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_set_emoji_presentation.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_set_emoji_presentation(3) "2.5.0" "fcft" +fcft_set_emoji_presentation(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_set_scaling_filter.3.scd new/fcft/doc/fcft_set_scaling_filter.3.scd --- old/fcft/doc/fcft_set_scaling_filter.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_set_scaling_filter.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_set_scaling_filter(3) "2.5.0" "fcft" +fcft_set_scaling_filter(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_size_adjust.3.scd new/fcft/doc/fcft_size_adjust.3.scd --- old/fcft/doc/fcft_size_adjust.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_size_adjust.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_size_adjust(3) "2.5.0" "fcft" +fcft_size_adjust(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_text_run_destroy.3.scd new/fcft/doc/fcft_text_run_destroy.3.scd --- old/fcft/doc/fcft_text_run_destroy.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_text_run_destroy.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_text_run_destroy(3) "2.5.0" "fcft" +fcft_text_run_destroy(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/fcft_text_run_rasterize.3.scd new/fcft/doc/fcft_text_run_rasterize.3.scd --- old/fcft/doc/fcft_text_run_rasterize.3.scd 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/fcft_text_run_rasterize.3.scd 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,4 @@ -fcft_text_run_rasterize(3) "2.5.0" "fcft" +fcft_text_run_rasterize(3) "2.5.1" "fcft" # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/doc/meson.build new/fcft/doc/meson.build --- old/fcft/doc/meson.build 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/doc/meson.build 2021-12-08 17:44:33.000000000 +0100 @@ -1,6 +1,5 @@ sh = find_program('sh', native: true) -scdoc = dependency('scdoc', native: true) scdoc_prog = find_program(scdoc.get_pkgconfig_variable('scdoc'), native: true) foreach man_src : ['fcft_capabilities.3.scd', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/fcft.c new/fcft/fcft.c --- old/fcft/fcft.c 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/fcft.c 2021-12-08 17:44:33.000000000 +0100 @@ -95,6 +95,7 @@ bool antialias; bool embolden; + bool is_color; int render_flags_normal; int render_flags_subpixel; @@ -111,7 +112,6 @@ FcPattern *pattern; FcCharSet *charset; FcLangSet *langset; - bool is_color; struct instance *font; /* User-requested size(s) - i.e. sizes from *base* pattern */ @@ -546,6 +546,10 @@ if (FcPatternGetBool(pattern, FC_OUTLINE, 0, &outline) != FcResultMatch) outline = FcTrue; + FcBool is_color; + if (FcPatternGetBool(pattern, FC_COLOR, 0, &is_color) != FcResultMatch) + is_color = FcFalse; + double pixel_fixup = 1.; bool fixup_estimated = false; if (FcPatternGetDouble(pattern, "pixelsizefixupfactor", 0, &pixel_fixup) != FcResultMatch) { @@ -684,6 +688,7 @@ font->load_flags = load_target | load_flags | FT_LOAD_COLOR; font->antialias = fc_antialias; font->embolden = fc_embolden; + font->is_color = is_color; font->render_flags_normal = render_flags_normal; font->render_flags_subpixel = render_flags_subpixel; font->pixel_size_fixup = pixel_fixup; @@ -946,10 +951,6 @@ if (FcPatternGetLangSet(pattern, FC_LANG, 0, &langset) != FcResultMatch) langset = NULL; - FcBool is_color; - if (FcPatternGetBool(pattern, FC_COLOR, 0, &is_color) != FcResultMatch) - is_color = FcFalse; - double req_px_size = -1., req_pt_size = -1.; FcPatternGetDouble(base_pattern, FC_PIXEL_SIZE, 0, &req_px_size); FcPatternGetDouble(base_pattern, FC_SIZE, 0, &req_pt_size); @@ -1051,7 +1052,6 @@ .pattern = pattern, .charset = FcCharSetCopy(charset), .langset = langset != NULL ? FcLangSetCopy(langset) : NULL, - .is_color = is_color == FcTrue, .font = primary, .req_px_size = req_px_size, .req_pt_size = req_pt_size})); @@ -1074,10 +1074,6 @@ if (FcPatternGetLangSet(fallback_pattern, FC_LANG, 0, &fallback_langset) != FcResultMatch) fallback_langset = NULL; - FcBool fallback_is_color; - if (FcPatternGetBool(fallback_pattern, FC_COLOR, 0, &fallback_is_color) != FcResultMatch) - fallback_is_color = FcFalse; - FcPatternGetDouble(base_pattern, FC_PIXEL_SIZE, 0, &req_px_size); FcPatternGetDouble(base_pattern, FC_SIZE, 0, &req_pt_size); @@ -1085,7 +1081,6 @@ .pattern = fallback_pattern, .charset = FcCharSetCopy(fallback_charset), .langset = fallback_langset != NULL ? FcLangSetCopy(fallback_langset) : NULL, - .is_color = fallback_is_color == FcTrue, .req_px_size = req_px_size, .req_pt_size = req_pt_size})); } @@ -1096,7 +1091,6 @@ .pattern = pattern, .charset = FcCharSetCopy(charset), .langset = langset != NULL ? FcLangSetCopy(langset) : NULL, - .is_color = is_color == FcTrue, .req_px_size = req_px_size, .req_pt_size = req_pt_size})); } @@ -1496,7 +1490,10 @@ int x = inst->face->glyph->bitmap_left; int y = inst->face->glyph->bitmap_top; - if (inst->pixel_size_fixup != 1.) { + if (inst->pixel_size_fixup == 0.) + x = y = width = rows = 0; + + else if (inst->pixel_size_fixup != 1.) { struct pixman_f_transform scale; pixman_f_transform_init_scale( &scale, @@ -1507,7 +1504,11 @@ pixman_transform_from_pixman_f_transform(&_scale, &scale); pixman_image_set_transform(pix, &_scale); - switch (scaling_filter) { + const enum fcft_scaling_filter filter_to_use = inst->is_color + ? scaling_filter + : FCFT_SCALING_FILTER_BILINEAR; + + switch (filter_to_use) { case FCFT_SCALING_FILTER_NONE: break; @@ -1526,7 +1527,10 @@ * - find out how the subsample_bit_{x,y} parameters should be set */ int param_count = 0; - pixman_kernel_t kernel = PIXMAN_KERNEL_LANCZOS3; + pixman_kernel_t kernel = filter_to_use == FCFT_SCALING_FILTER_CUBIC + ? PIXMAN_KERNEL_CUBIC + : PIXMAN_KERNEL_LANCZOS3; + pixman_fixed_t *params = pixman_filter_create_separable_convolution( ¶m_count, pixman_double_to_fixed(1. / inst->pixel_size_fixup), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/meson.build new/fcft/meson.build --- old/fcft/meson.build 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/meson.build 2021-12-08 17:44:33.000000000 +0100 @@ -1,5 +1,5 @@ project('fcft', 'c', - version: '2.5.0', # Don't forget to update version in man pages + version: '2.5.1', # Don't forget to update version in man pages license: 'MIT', meson_version: '>=0.54.0', default_options: [ @@ -20,7 +20,7 @@ so_version = [ '3', # MAJOR: increment on non-backward compatible ABI changes '5', # MINOR: increment with backward compatible ABI changes - '0', # PATCH: increment with non-ABI affecting changes + '1', # PATCH: increment with non-ABI affecting changes ] is_debug_build = get_option('buildtype').startswith('debug') @@ -135,15 +135,19 @@ fcft_lib, description : 'Simple font loading and glyph rasterization library') - install_data( - 'LICENSE', 'README.md', 'CHANGELOG.md', - install_dir: join_paths(get_option('datadir'), 'doc', 'fcft')) + scdoc = dependency('scdoc', native: true, required: get_option('docs')) + if scdoc.found() + install_data( + 'LICENSE', 'README.md', 'CHANGELOG.md', + install_dir: join_paths(get_option('datadir'), 'doc', 'fcft')) - subdir('doc') + subdir('doc') + endif endif summary( { + 'Documentation': not meson.is_subproject() and scdoc.found(), 'Grapheme shaping': harfbuzz1.found() or harfbuzz2.found(), 'Run shaping': harfbuzz2.found() and utf8proc.found(), 'Test text shaping': get_option('test-text-shaping'), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fcft/meson_options.txt new/fcft/meson_options.txt --- old/fcft/meson_options.txt 2021-11-13 12:49:41.000000000 +0100 +++ new/fcft/meson_options.txt 2021-12-08 17:44:33.000000000 +0100 @@ -1,4 +1,7 @@ option( + 'docs', type: 'feature', + description: 'Build and install documentation (man pages, readme, changelog, license etc).') +option( 'grapheme-shaping', type: 'feature', description: 'enables shaping of individual grapheme clusters') option(