summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorcrimist2024-01-16 20:02:58 -0800
committercrimist2024-01-16 20:02:58 -0800
commitf541de021a6ab9da96a51d6c5e8a2270d0441cac (patch)
tree9d53e877db1446b7b239a635027a3ef291933ae1
downloadaur-f541de021a6ab9da96a51d6c5e8a2270d0441cac.tar.gz
create package
-rw-r--r--.SRCINFO33
-rw-r--r--.gitignore8
-rw-r--r--0001-Enable-table-validation-modules.patch42
-rw-r--r--0003-Enable-long-PCF-family-names.patch22
-rw-r--r--0004-QD-OLED-subpixel.patch22
-rw-r--r--PKGBUILD82
-rw-r--r--freetype2.install16
-rw-r--r--freetype2.sh11
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"