From 2e56cc4855bd374e39848abc629fd6a9604371a8 Mon Sep 17 00:00:00 2001 From: Gabriel Ebner Date: Wed, 4 Aug 2021 21:21:03 +0200 Subject: [PATCH] git subrepo clone --branch=master https://aur.archlinux.org/fcft.git subrepo: subdir: "fcft" merged: "f0dd481" upstream: origin: "https://aur.archlinux.org/fcft.git" branch: "master" commit: "f0dd481" git-subrepo: version: "0.4.3" origin: "???" commit: "???" --- fcft/.SRCINFO | 23 +++ fcft/.gitrepo | 12 ++ fcft/CHANGELOG.md | 355 ++++++++++++++++++++++++++++++++++++++++++++++ fcft/PKGBUILD | 33 +++++ 4 files changed, 423 insertions(+) create mode 100644 fcft/.SRCINFO create mode 100644 fcft/.gitrepo create mode 100644 fcft/CHANGELOG.md create mode 100644 fcft/PKGBUILD diff --git a/fcft/.SRCINFO b/fcft/.SRCINFO new file mode 100644 index 0000000..77844db --- /dev/null +++ b/fcft/.SRCINFO @@ -0,0 +1,23 @@ +pkgbase = fcft + pkgdesc = Simple library for font loading and glyph rasterization using FontConfig, FreeType and pixman. + pkgver = 2.4.4 + pkgrel = 1 + url = https://codeberg.org/dnkl/fcft + changelog = CHANGELOG.md + arch = x86_64 + arch = aarch64 + license = mit + checkdepends = check + checkdepends = ttf-dejavu + makedepends = meson + makedepends = ninja + makedepends = scdoc + makedepends = tllist + depends = freetype2 + depends = fontconfig + depends = pixman + depends = harfbuzz + source = fcft-2.4.4.tar.gz::https://codeberg.org/dnkl/fcft/archive/2.4.4.tar.gz + sha256sums = dabf5d83bf464c493fdd3a0baa69dc549ba08633299f0197d20707ae875a59ce + +pkgname = fcft diff --git a/fcft/.gitrepo b/fcft/.gitrepo new file mode 100644 index 0000000..4c62559 --- /dev/null +++ b/fcft/.gitrepo @@ -0,0 +1,12 @@ +; DO NOT EDIT (unless you know what you are doing) +; +; This subdirectory is a git "subrepo", and this file is maintained by the +; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme +; +[subrepo] + remote = https://aur.archlinux.org/fcft.git + branch = master + commit = f0dd48183b33714ee06420f034bff38219928125 + parent = 356838b21944b2259ecc07b099109f69ce09c851 + method = merge + cmdver = 0.4.3 diff --git a/fcft/CHANGELOG.md b/fcft/CHANGELOG.md new file mode 100644 index 0000000..10b91c7 --- /dev/null +++ b/fcft/CHANGELOG.md @@ -0,0 +1,355 @@ +# Changelog + +* [2.4.4](#2-4-4) +* [2.4.3](#2-4-3) +* [2.4.2](#2-4-2) +* [2.4.1](#2-4-1) +* [2.4.0](#2-4-0) +* [2.3.3](#2-3-3) +* [2.3.2](#2-3-2) +* [2.3.1](#2-3-1) +* [2.3.0](#2-3-0) +* [2.2.7](#2-2-7) +* [2.2.6](#2-2-6) +* [2.2.5](#2-2-5) +* [2.2.4](#2-2-4) +* [2.2.3](#2-2-3) +* [2.2.2](#2-2-2) +* [2.2.1](#2-2-1) +* [2.2.0](#2-2-0) +* [2.1.3](#2-1-3) +* [2.1.2](#2-1-2) +* [2.1.1](#2-1-1) +* [2.1.0](#2-1-0) +* [2.0.0](#2-0-0) +* [1.1.7](#1-1-7) + + +## 2.4.4 + +### Fixed + +* Rendering of bitmap fonts with Freetype >= 2.11 + (https://codeberg.org/dnkl/fcft/issues/29). + + +## 2.4.3 + +### Fixed + +* Bitmap/aliased font glyphs being mirrored on big-endian + architectures. +* Color font glyphs having wrong colors on big-endian architectures. +* Crash when destroying a font that failed to load (typically happens + when there are no fonts available at all). + + +## 2.4.2 + +### Fixed + +* Rare crash when one thread was doing a glyph cache lookup, while + another was resizing the cache. + + +## 2.4.1 + +### Changed + +* Log messages are now printed to stderr instead of stdout. +* `fcft_grapheme_rasterize()` now sets a minimum grapheme column count + of 2 when the cluster ends with an Emoji variant selector (codepoint + 0xFE0F). + + +### Fixed + +* Compilation error when fallback definition for `FCFT_EXPORT` was used + in `meson.build`. + + +### Contributors + +* [emersion](https://codeberg.org/emersion) +* [craigbarnes](https://codeberg.org/craigbarnes) + + +## 2.4.0 + +### Added + +* Example program. Very simple bare bones Wayland program that renders + a user provided string with user configurable fonts and colors. No + proper error checking etc. To build, configure meson with + `-Dexamples=true`. +* `fcft_log_init()`. This function enables, and configures logging in fcft. +* `fcft_text_run_rasterize()`: new API that uses HarfBuzz to shape a + text run (i.e. a whole string). Note that HarfBuzz is (still) an + **optional** dependency, see + [README](README.md#user-content-building). +* `fcft_text_run_destroy()`: new API that frees a rasterized text-run. +* `FCFT_CAPABILITY_TEXT_RUN_SHAPING` added to `fcft_capabilities()`. +* `antialias` and `subpixel` members to `struct fcft_font`. + + +### Changed + +* fcft logging must now be enabled explicitly (see `fcft_log_init()`). +* Internal logging functions are no longer exported by the shared library. +* The pixel size passed from FontConfig to FreeType is now rounded + instead of truncated (https://codeberg.org/dnkl/foot/issues/456). + + +### Fixed + +* Internal logging functions have been renamed, from generic `log_*` + names to fcft specific `fcft_log_` names. +* Apply pixel-size fixup to glyphs’ advance width/height, but **only** + if we estimated the fixup ourselves (otherwise the advance + width/height is already scaled). + + +## 2.3.3 + +### Fixed + +* Cloned fonts not being properly freed in library destructor. + + +## 2.3.2 + +### Added + +* Limited support for _"fontfeatures_" . fcft is still not a layout + engine, but with this we can support e.g. _stylistic sets_ + (HarfBuzz-enabled builds only). + + +### Deprecated + +* `tags` argument in `fcft_grapheme_rasterize()`. It is now being + ignored, and will be removed in a future release. + + +### Fixed + +* Hang in library destructor when system has no fonts installed + (https://codeberg.org/dnkl/foot/issues/174). + + +### Contributors + +* [birger](https://codeberg.org/birger) + + +## 2.3.1 + +### Fixed + +* `fcft_grapheme_rasterize()` now makes use of the optional + `tags`. These were previously ignored. +* Compilation error when text shaping was disabled. + + +## 2.3.0 + +### Added + +* `fcft_set_scaling_filter()`: new API that lets the calling + application configure the filter to use when downscaling bitmap + fonts (https://codeberg.org/dnkl/fcft/issues/9). +* `fcft_grapheme_rasterize()`: new API that uses HarfBuzz to shape a + grapheme cluster. Note that HarfBuzz is an **optional** dependency, + see [README](README.md#user-content-building). + + +### Changed + +* Increased timeout in tests, from 4s (the default), to 60s + (https://codeberg.org/dnkl/foot/issues/120). + + +## 2.2.7 + +### Changed + +* Use lanczos3 filtering when downscaling bitmap fonts. This improves + the quality of e.g. color emoji fonts. + + +### Fixed + +* Compilation with `-pedantic` + + +## 2.2.6 + +### Fixed + +* Set LCD filter. This fixes **severe** color fringes when FreeType + has been built with `FT_CONFIG_OPTION_SUBPIXEL_RENDERING` (i.e. the + old ClearType-style subpixel rendering, instead of the newer Harmony + LCD rendering). + + +## 2.2.5 + +### Changed + +* `fcft_glyph_rasterize()`: improved performance in threaded + applications by guarding the glyph cache with an _rwlock_ instead of + a _mutex_. + + +### Fixed + +* fcft now checks for memory allocation failures. +* Compilation errors in 32-bit builds. + + +## 2.2.4 + +### Added + +* Unicode license file, for `UnicodeData.txt` + + +## 2.2.3 +### Added + +* Missing [LICENSE](LICENSE) file +* [LICENSE](LICENSE), [README.md](README.md) and + [CHANGELOG.md](CHANGELOG.md) are now installed to + `${datadir}/doc/fcft`. + + +### Fixed + +* Assertion in debug builds when resizing the glyph cache + + +## 2.2.2 + +### Fixed + +* `fcft_kerning()` was not threadsafe +* Rare crash in `fcft_glyph_rasterize()` caused by a race between a + successful glyph cache lookup and a glyph cache resize. + + +## 2.2.1 + +### Changed + +* Color bitmap glyphs with a pixel-size fixup factor other than 1.0 + are now pre-scaled. Previously, fcft would only set a pixman scale + transform on the glyph, causing actual scaling to occur **every** + time the glyph was blended. This improves the performance when + rendering color emojis. + + +## 2.2.0 + +### Changed + +* Internal representation of the primary and fallback fonts. +* Do not load a fallback font if it does not contain the requested glyph. + + +### Deprecated + +* `fcft_size_adjust()` + + +## 2.1.3 + +### Fixed + +* Advance width and height of scaled bitmap fonts. + + +## 2.1.2 + +### Changed + +* Glyph cache now resizes dynamically. This fixes a performance + problem when loading **a lot** of glyphs, as we ended up scanning + very long lists when looking up a glyph in the cache. + + +## 2.1.1 + +### Changed + +* Prefer user-provided `charset`. This can be used to e.g. limit a + fallback font's usage to a custom Unicode point range. + + +### Fixed + +* LCD RGB/BGR modes were reversed. + + +## 2.1.0 + +### Added + +* When looking for a glyph in the fallback fonts, don't discard + (destroy/unload) the fonts that did not contain the glyph. This + improves performance massively when loading lots of glyphs that does + not exist in the primary font, or in the first fallback font(s). +* Synthetic bold and italics (FontConfig's _embolden_ and _matrix_ + properties). +* `fcft_precompose()` - combines a base- and a combining wide + character into a single pre-composed character. + + +### Changed + +* `fcft_from_name()` and `fcft_size_adjust()` no longer calls + `setlocale()` to set a suitable locale for `FcParseName()`, as this + was not thread safe. The caller is responsible for ensuring + `LC_NUMERICAL` is set to a locale that correctly recognizes _x.y_ + decimal values. + + +### Fixed + +* `fcft_from_name()` was not thread safe +* `fcft_clone()` was not thread safe +* `fcft_size_adjust()` was not thread safe +* `fcft_destroy` was not thread safe + + +## 2.0.0 + +### Changed + +* API: `font_` prefix changed to `fcft_`. +* API: renamed `struct font` to `struct fcft_font`. +* API: renamed `struct glyph` to `struct fcft_glyph`. +* API: internal members of `struct fcft_glyph` removed. +* API: renamed `enum subpixel_order` to `enum fcft_subpixel`, and + `ORDER` was removed from the enum values. +* API: renamed `fcft_glyph.x_advance` to `fcft_glyph.advance.x`, and + added `fcft_glyph.advance.y` +* API: renamed `fcft_font.max_x_advance` to `fcft_font.max_advance.x` + and added `fcft_font.max_advance.y`. +* API: renamed `fcft_font.space_x_advance` to + `fcft_font.space_advance.x` and added `fcft_font.space_advance.y`. +* API: renamed `fcft_glyph_for_wc()` to `fcft_glyph_rasterize()`. +* Require meson >= 0.54. +* Use `meson.override_dependency()`. + + +### Fixed + +* `fcft_kerning()` did not scale the returned kerning distances with + the font's pixel size fixup multiplier. + + +## 1.1.7 + +### Fixed + +* LCD RGB/BGR modes were reversed diff --git a/fcft/PKGBUILD b/fcft/PKGBUILD new file mode 100644 index 0000000..3a8d554 --- /dev/null +++ b/fcft/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Daniel Eklöf +pkgname=fcft +pkgver=2.4.4 # Don’t forget to update CHANGELOG.md +pkgrel=1 +pkgdesc="Simple library for font loading and glyph rasterization using FontConfig, FreeType and pixman." +arch=('x86_64' 'aarch64') +url=https://codeberg.org/dnkl/${pkgname} +license=(mit) +depends=('freetype2' 'fontconfig' 'pixman' 'harfbuzz') +makedepends=('meson' 'ninja' 'scdoc' 'tllist') +checkdepends=('check' 'ttf-dejavu') +changelog=CHANGELOG.md +source=(${pkgname}-${pkgver}.tar.gz::${url}/archive/${pkgver}.tar.gz) +sha256sums=('dabf5d83bf464c493fdd3a0baa69dc549ba08633299f0197d20707ae875a59ce') + +build() { + cd ${pkgname} + + meson --prefix=/usr --buildtype=release -Dtext-shaping=enabled . build + ninja -C build +} + +check() { + cd ${pkgname} + ninja -C build test +} + +package() { + cd ${pkgname} + DESTDIR="${pkgdir}/" ninja -C build install + install -Dm 644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" + install -Dm 644 unicode/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.unicode" +}