diff options
author | crimist | 2024-01-16 20:02:58 -0800 |
---|---|---|
committer | crimist | 2024-01-16 20:02:58 -0800 |
commit | f541de021a6ab9da96a51d6c5e8a2270d0441cac (patch) | |
tree | 9d53e877db1446b7b239a635027a3ef291933ae1 | |
download | aur-f541de021a6ab9da96a51d6c5e8a2270d0441cac.tar.gz |
create package
-rw-r--r-- | .SRCINFO | 33 | ||||
-rw-r--r-- | .gitignore | 8 | ||||
-rw-r--r-- | 0001-Enable-table-validation-modules.patch | 42 | ||||
-rw-r--r-- | 0003-Enable-long-PCF-family-names.patch | 22 | ||||
-rw-r--r-- | 0004-QD-OLED-subpixel.patch | 22 | ||||
-rw-r--r-- | PKGBUILD | 82 | ||||
-rw-r--r-- | freetype2.install | 16 | ||||
-rw-r--r-- | freetype2.sh | 11 |
8 files changed, 236 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..ebe1fc8d0e31 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,33 @@ +pkgbase = freetype2-qdoled + pkgdesc = freetype optimized for QD-OLED subpixel layout + pkgver = 2.13.2 + pkgrel = 1 + url = https://www.freetype.org/ + install = freetype2.install + arch = x86_64 + license = GPL + makedepends = librsvg + makedepends = libx11 + makedepends = meson + makedepends = qt5-base + depends = brotli + depends = bzip2 + depends = libpng + depends = sh + depends = zlib + depends = harfbuzz + provides = libfreetype.so + provides = freetype2=2.13.2 + backup = etc/profile.d/freetype2.sh + source = https://download-mirror.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.xz + source = 0001-Enable-table-validation-modules.patch + source = 0003-Enable-long-PCF-family-names.patch + source = 0004-QD-OLED-subpixel.patch + source = freetype2.sh + b2sums = SKIP + b2sums = 2c148694e150b3faae9dc46ead824ae6d94cfe34f2918bc9066f45bab7e6b6f77b4d4b2fee00c3d466d866e1985132cea4a774dcf1bab95409b7cf55efff01e1 + b2sums = 66deb179d1f1f4e2e35f6d50acfbacce80595d5128f5fed8c1871838c210dbf1a7173a87dd937d64997844c8f478c8f81120f71e33b9d59d980e179d103ff31c + b2sums = 3589553233a16079fb0a7fd68765b8a78e14b25eb83ac1866ce451be3adf06a01fea5d704a01e610261edb351041323dd7441f2af31104d44f70cc12436a9cc7 + b2sums = a964f46886b5017a5c180f29408f72ae8aba29f37404c48b4681ff12ca0a2cfa2a8e219480e98d63d45fb5c266a6e5826df170c9a0d701cd866e395c5ac6e87d + +pkgname = freetype2-qdoled diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..368873822434 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +* + +!.gitignore +!*.patch +!freetype2.install +!freetype2.sh +!PKGBUILD +!.SRCINFO diff --git a/0001-Enable-table-validation-modules.patch b/0001-Enable-table-validation-modules.patch new file mode 100644 index 000000000000..f360a143132c --- /dev/null +++ b/0001-Enable-table-validation-modules.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Tue, 23 Jun 2015 08:40:29 +0200 +Subject: [PATCH] Enable table validation modules + +--- + modules.cfg | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/modules.cfg b/modules.cfg +index 5b6c9b5a5c1d..b4933bea7654 100644 +--- a/modules.cfg ++++ b/modules.cfg +@@ -117,26 +117,26 @@ AUX_MODULES += cache + + # TrueType GX/AAT table validation. Needs `ftgxval.c' below. + # +-# AUX_MODULES += gxvalid ++AUX_MODULES += gxvalid + + # Support for streams compressed with gzip (files with suffix .gz). + # + # See include/freetype/ftgzip.h for the API. + AUX_MODULES += gzip + + # Support for streams compressed with LZW (files with suffix .Z). + # + # See include/freetype/ftlzw.h for the API. + AUX_MODULES += lzw + + # Support for streams compressed with bzip2 (files with suffix .bz2). + # + # See include/freetype/ftbzip2.h for the API. + AUX_MODULES += bzip2 + + # OpenType table validation. Needs `ftotval.c' below. + # +-# AUX_MODULES += otvalid ++AUX_MODULES += otvalid + + # Auxiliary PostScript driver component to share common code. + # diff --git a/0003-Enable-long-PCF-family-names.patch b/0003-Enable-long-PCF-family-names.patch new file mode 100644 index 000000000000..e38679e4184d --- /dev/null +++ b/0003-Enable-long-PCF-family-names.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Sun, 14 May 2017 18:09:31 +0200 +Subject: [PATCH] Enable long PCF family names + +--- + include/freetype/config/ftoption.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h +index b3425e55feec..ecff3ccd12d6 100644 +--- a/include/freetype/config/ftoption.h ++++ b/include/freetype/config/ftoption.h +@@ -887,7 +887,7 @@ FT_BEGIN_HEADER + * If this option is activated, it can be controlled with the + * `no-long-family-names` property of the 'pcf' driver module. + */ +-/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */ ++#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES + + + /*************************************************************************/ diff --git a/0004-QD-OLED-subpixel.patch b/0004-QD-OLED-subpixel.patch new file mode 100644 index 000000000000..1077c0661d4f --- /dev/null +++ b/0004-QD-OLED-subpixel.patch @@ -0,0 +1,22 @@ +diff --git a/src/smooth/ftsmooth.c b/src/smooth/ftsmooth.c +index 9b0e8886c..e21c85739 100644 +--- a/src/smooth/ftsmooth.c ++++ b/src/smooth/ftsmooth.c +@@ -95,12 +95,12 @@ + + + /* set up default subpixel geometry for striped RGB panels. */ +- sub[0].x = -21; +- sub[0].y = 0; ++ sub[0].x = -16; ++ sub[0].y = -11; + sub[1].x = 0; +- sub[1].y = 0; +- sub[2].x = 21; +- sub[2].y = 0; ++ sub[1].y = 22; ++ sub[2].x = 16; ++ sub[2].y = -11; + + render->clazz->raster_class->raster_reset( render->raster, NULL, 0 ); + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..3fb9e5d20791 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,82 @@ +# Maintainer: crimist <aur at crim dot ist> + +pkgname=freetype2-qdoled +pkgver=2.13.2 +pkgrel=1 +pkgdesc="freetype optimized for QD-OLED subpixel layout" +url="https://www.freetype.org/" +arch=( + x86_64 +) +license=(GPL) +depends=( + brotli + bzip2 + libpng + sh + zlib + + # adding harfbuzz for improved OpenType features auto-hinting + # introduces a cycle dep to harfbuzz depending on freetype wanted by upstream + harfbuzz +) +makedepends=( + librsvg + libx11 + meson + qt5-base +) +source=( + https://download-mirror.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz + 0001-Enable-table-validation-modules.patch + 0003-Enable-long-PCF-family-names.patch + 0004-QD-OLED-subpixel.patch + freetype2.sh +) +b2sums=('cebc82180d9afaeb112a65ba78903d7bf7a9295a803166a033585ad2325add6023f05066852240c4665e56285345ba503b01ecd461d48f0478a8f3f56136988e' + '2c148694e150b3faae9dc46ead824ae6d94cfe34f2918bc9066f45bab7e6b6f77b4d4b2fee00c3d466d866e1985132cea4a774dcf1bab95409b7cf55efff01e1' + '66deb179d1f1f4e2e35f6d50acfbacce80595d5128f5fed8c1871838c210dbf1a7173a87dd937d64997844c8f478c8f81120f71e33b9d59d980e179d103ff31c' + '3589553233a16079fb0a7fd68765b8a78e14b25eb83ac1866ce451be3adf06a01fea5d704a01e610261edb351041323dd7441f2af31104d44f70cc12436a9cc7' + 'a964f46886b5017a5c180f29408f72ae8aba29f37404c48b4681ff12ca0a2cfa2a8e219480e98d63d45fb5c266a6e5826df170c9a0d701cd866e395c5ac6e87d') + +prepare() { + cd freetype-$pkgver + patch -Np1 -i ../0001-Enable-table-validation-modules.patch + patch -Np1 -i ../0003-Enable-long-PCF-family-names.patch + patch -Np1 -i ../0004-QD-OLED-subpixel.patch +} + +build() { + local meson_options=( + -D freetype2:default_library=shared + ) + + arch-meson freetype-$pkgver build "${meson_options[@]}" + meson compile -C build +} + +check() { + meson test -C build --print-errorlogs +} + +_pick() { + local p="$1" f d; shift + for f; do + d="$srcdir/$p/${f#$pkgdir/}" + mkdir -p "$(dirname "$d")" + mv "$f" "$d" + rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")" + done +} + +package() { + provides=(freetype2 libfreetype.so) + conflicts=(freetype2) + install=freetype2.install + backup=(etc/profile.d/freetype2.sh) + + meson install -C build --destdir="$pkgdir" + install -Dt "$pkgdir/etc/profile.d" -m644 freetype2.sh + install -Dt "$pkgdir/usr/share/aclocal" -m644 \ + freetype-$pkgver/builds/unix/freetype2.m4 +} diff --git a/freetype2.install b/freetype2.install new file mode 100644 index 000000000000..288560a9d949 --- /dev/null +++ b/freetype2.install @@ -0,0 +1,16 @@ +post_upgrade() { + if (( $(vercmp $2 2.7-1) < 0 )); then + cat <<MSG + The Arch-specific FT2_SUBPIXEL_HINTING has been removed. + Subpixel hinting is now configured in /etc/profile.d/freetype2.sh . +MSG + fi + + if (( $(vercmp $2 2.13.1-1) < 0 )); then + cat <<MSG + The "Infinality" TrueType interpreter version has been removed. + If you've previously configured "truetype:interpreter-version=38", + please update your choice in /etc/profile.d/freetype2.sh . +MSG + fi +} diff --git a/freetype2.sh b/freetype2.sh new file mode 100644 index 000000000000..febb62de8414 --- /dev/null +++ b/freetype2.sh @@ -0,0 +1,11 @@ +# Subpixel hinting mode can be chosen by setting the right TrueType interpreter +# version. The available settings are: +# +# truetype:interpreter-version=35 # Classic mode (default in 2.6) +# truetype:interpreter-version=40 # Minimal mode (default in 2.7) +# +# There are more properties that can be set, separated by whitespace. Please +# refer to the FreeType documentation for details. + +# Uncomment and configure below +#export FREETYPE_PROPERTIES="truetype:interpreter-version=40" |