aboutsummaryrefslogtreecommitdiff
path: root/x11-fonts
diff options
context:
space:
mode:
authorSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2020-01-05 04:05:28 +0000
committerSunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>2020-01-05 04:05:28 +0000
commit0d4e1292da1949000debc398f21c70c0cbea8d5e (patch)
tree89cdad7ce941cf989f920dfc5b3ab9a05789b329 /x11-fonts
parentbe02e096b01e39426295963fc8a8af1282c57282 (diff)
downloadports-0d4e1292da1949000debc398f21c70c0cbea8d5e.tar.gz
ports-0d4e1292da1949000debc398f21c70c0cbea8d5e.zip
Add ots 8.0.0
The OpenType Sanitizer (OTS) parses and serializes OpenType files (OTF, TTF) and WOFF and WOFF2 font files, validating them and sanitizing them as it goes. The C library is integrated into Chromium and Firefox, and also simple command line tools to check files offline in a Terminal. The CSS font-face property is great for web typography. Having to use images in order to get the correct typeface is a great sadness; one should be able to use vectors. WWW: https://github.com/khaledhosny/ots
Notes
Notes: svn path=/head/; revision=522082
Diffstat (limited to 'x11-fonts')
-rw-r--r--x11-fonts/Makefile1
-rw-r--r--x11-fonts/ots/Makefile40
-rw-r--r--x11-fonts/ots/distinfo3
-rw-r--r--x11-fonts/ots/files/patch-meson.build183
-rw-r--r--x11-fonts/ots/pkg-descr11
-rw-r--r--x11-fonts/ots/pkg-plist10
6 files changed, 248 insertions, 0 deletions
diff --git a/x11-fonts/Makefile b/x11-fonts/Makefile
index af86b86cab1f..440b1a8f39ad 100644
--- a/x11-fonts/Makefile
+++ b/x11-fonts/Makefile
@@ -172,6 +172,7 @@
SUBDIR += oldschool-pc-fonts
SUBDIR += open-sans
SUBDIR += orbitron
+ SUBDIR += ots
SUBDIR += oxygen-fonts
SUBDIR += p5-Font-AFM
SUBDIR += p5-Font-TTF
diff --git a/x11-fonts/ots/Makefile b/x11-fonts/ots/Makefile
new file mode 100644
index 000000000000..028fddfc47ec
--- /dev/null
+++ b/x11-fonts/ots/Makefile
@@ -0,0 +1,40 @@
+# Created by: Po-Chuan Hsieh <sunpoet@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= ots
+PORTVERSION= 8.0.0
+DISTVERSIONPREFIX= v
+CATEGORIES= x11-fonts
+
+MAINTAINER= sunpoet@FreeBSD.org
+COMMENT= OpenType Sanitizer
+
+LICENSE= BSD3CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
+ libfreetype.so:print/freetype2 \
+ libgtest.so:devel/googletest \
+ liblz4.so:archivers/liblz4 \
+ libwoff2dec.so:devel/woff2
+
+USES= compiler:c++11-lang meson pkgconfig shebangfix
+
+MESON_FALSE= debug
+MESON_TRUE= graphite
+
+GH_ACCOUNT= khaledhosny
+USE_GITHUB= yes
+
+SHEBANG_FILES= tests/*.sh
+bash_CMD= ${SH}
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/meson.build
+
+do-test:
+ ${SETENV} top_builddir=${BUILD_WRKSRC} top_srcdir=${WRKSRC} ${SH} ${WRKSRC}/tests/test_bad_fonts.sh
+ ${SETENV} top_builddir=${BUILD_WRKSRC} top_srcdir=${WRKSRC} ${SH} ${WRKSRC}/tests/test_fuzzed_fonts.sh
+ ${SETENV} top_builddir=${BUILD_WRKSRC} top_srcdir=${WRKSRC} ${SH} ${WRKSRC}/tests/test_good_fonts.sh
+
+.include <bsd.port.mk>
diff --git a/x11-fonts/ots/distinfo b/x11-fonts/ots/distinfo
new file mode 100644
index 000000000000..de3cc7a7191b
--- /dev/null
+++ b/x11-fonts/ots/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1578125669
+SHA256 (khaledhosny-ots-v8.0.0_GH0.tar.gz) = ced587c1df08fe72d7d5080e3c43f07f80eabca7bde9b31d74a6158ee8be2690
+SIZE (khaledhosny-ots-v8.0.0_GH0.tar.gz) = 28644271
diff --git a/x11-fonts/ots/files/patch-meson.build b/x11-fonts/ots/files/patch-meson.build
new file mode 100644
index 000000000000..9f5193683c84
--- /dev/null
+++ b/x11-fonts/ots/files/patch-meson.build
@@ -0,0 +1,183 @@
+--- meson.build.orig 2019-08-30 08:38:31 UTC
++++ meson.build
+@@ -1,6 +1,6 @@
+ project('ots', 'c', 'cpp',
+ version: '8.0.0',
+- default_options : ['cpp_std=c++11', 'default_library=static'],
++ default_options : ['cpp_std=c++11', 'default_library=both'],
+ )
+
+ cxx = meson.get_compiler('cpp')
+@@ -38,52 +38,52 @@ configure_file(output: 'config.h',
+ configuration: conf)
+
+
+-brotli_includes = ['third_party/brotli/c/include']
+-libbrotli = library('brotli',
+- 'third_party/brotli/c/common/constants.h',
+- 'third_party/brotli/c/common/dictionary.c',
+- 'third_party/brotli/c/common/dictionary.h',
+- 'third_party/brotli/c/common/transform.c',
+- 'third_party/brotli/c/common/transform.h',
+- 'third_party/brotli/c/common/version.h',
+- 'third_party/brotli/c/dec/bit_reader.c',
+- 'third_party/brotli/c/dec/bit_reader.h',
+- 'third_party/brotli/c/dec/decode.c',
+- 'third_party/brotli/c/dec/huffman.c',
+- 'third_party/brotli/c/dec/huffman.h',
+- 'third_party/brotli/c/dec/prefix.h',
+- 'third_party/brotli/c/dec/state.c',
+- 'third_party/brotli/c/dec/state.h',
+- 'third_party/brotli/c/include/brotli/decode.h',
+- 'third_party/brotli/c/include/brotli/port.h',
+- 'third_party/brotli/c/include/brotli/types.h',
+- include_directories: include_directories(brotli_includes),
+-)
++#brotli_includes = ['third_party/brotli/c/include']
++#libbrotli = library('brotli',
++# 'third_party/brotli/c/common/constants.h',
++# 'third_party/brotli/c/common/dictionary.c',
++# 'third_party/brotli/c/common/dictionary.h',
++# 'third_party/brotli/c/common/transform.c',
++# 'third_party/brotli/c/common/transform.h',
++# 'third_party/brotli/c/common/version.h',
++# 'third_party/brotli/c/dec/bit_reader.c',
++# 'third_party/brotli/c/dec/bit_reader.h',
++# 'third_party/brotli/c/dec/decode.c',
++# 'third_party/brotli/c/dec/huffman.c',
++# 'third_party/brotli/c/dec/huffman.h',
++# 'third_party/brotli/c/dec/prefix.h',
++# 'third_party/brotli/c/dec/state.c',
++# 'third_party/brotli/c/dec/state.h',
++# 'third_party/brotli/c/include/brotli/decode.h',
++# 'third_party/brotli/c/include/brotli/port.h',
++# 'third_party/brotli/c/include/brotli/types.h',
++# include_directories: include_directories(brotli_includes),
++#)
+
+
+-woff2_includes = ['third_party/brotli/c/include', 'third_party/woff2/include']
+-libwoff2 = library('woff2',
+- 'third_party/woff2/include/woff2/decode.h',
+- 'third_party/woff2/include/woff2/output.h',
+- 'third_party/woff2/src/buffer.h',
+- 'third_party/woff2/src/port.h',
+- 'third_party/woff2/src/round.h',
+- 'third_party/woff2/src/store_bytes.h',
+- 'third_party/woff2/src/table_tags.cc',
+- 'third_party/woff2/src/table_tags.h',
+- 'third_party/woff2/src/variable_length.cc',
+- 'third_party/woff2/src/variable_length.h',
+- 'third_party/woff2/src/woff2_common.cc',
+- 'third_party/woff2/src/woff2_common.h',
+- 'third_party/woff2/src/woff2_dec.cc',
+- 'third_party/woff2/src/woff2_out.cc',
+- include_directories: include_directories(woff2_includes),
+-)
++#woff2_includes = ['third_party/brotli/c/include', 'third_party/woff2/include']
++#libwoff2 = library('woff2',
++# 'third_party/woff2/include/woff2/decode.h',
++# 'third_party/woff2/include/woff2/output.h',
++# 'third_party/woff2/src/buffer.h',
++# 'third_party/woff2/src/port.h',
++# 'third_party/woff2/src/round.h',
++# 'third_party/woff2/src/store_bytes.h',
++# 'third_party/woff2/src/table_tags.cc',
++# 'third_party/woff2/src/table_tags.h',
++# 'third_party/woff2/src/variable_length.cc',
++# 'third_party/woff2/src/variable_length.h',
++# 'third_party/woff2/src/woff2_common.cc',
++# 'third_party/woff2/src/woff2_common.h',
++# 'third_party/woff2/src/woff2_dec.cc',
++# 'third_party/woff2/src/woff2_out.cc',
++# include_directories: include_directories(woff2_includes),
++#)
+
+
+ ots_includes = [
+ 'include',
+- 'third_party/woff2/include',
++ '%%LOCALBASE%%/include/woff2',
+ ]
+
+ ots_sources = [
+@@ -167,10 +167,10 @@ ots_sources = [
+ 'src/vvar.h',
+ ]
+
+-ots_libs = [libbrotli, libwoff2]
++#ots_libs = [libbrotli, libwoff2]
+
+ if get_option('graphite')
+- ots_includes += ['third_party/lz4/lib']
++ ots_includes += ['%%LOCALBASE%%/include']
+ ots_sources += [
+ 'src/feat.cc',
+ 'src/feat.h',
+@@ -186,21 +186,27 @@ if get_option('graphite')
+ 'src/sill.h',
+ 'src/sill.cc',
+ ]
+- liblz4 = library('lz4',
+- 'third_party/lz4/lib/lz4.c',
+- 'third_party/lz4/lib/lz4.h',
+- )
+- ots_libs += [liblz4]
++# liblz4 = library('lz4',
++# 'third_party/lz4/lib/lz4.c',
++# 'third_party/lz4/lib/lz4.h',
++# )
++# ots_libs += [liblz4]
+ endif
+
++libbrotlicommon = dependency('libbrotlicommon')
++libbrotlidec = dependency('libbrotlidec')
++libwoff2common = dependency('libwoff2common')
++libwoff2dec = dependency('libwoff2dec')
++liblz4 = dependency('liblz4')
+ zlib = dependency('zlib', fallback : ['zlib', 'zlib_dep'])
+
+ libots = library('ots',
+ ots_sources,
+ include_directories: include_directories(ots_includes),
+- link_with: ots_libs,
+ cpp_args : '-DHAVE_CONFIG_H',
+- dependencies: zlib,
++ dependencies: [libbrotlicommon, libbrotlidec, libwoff2common, libwoff2dec, liblz4, zlib],
++ version : meson.project_version(),
++ install: true,
+ )
+
+
+@@ -226,6 +232,7 @@ executable('ots-fuzzer',
+ cpp_args: fuzzer_defines,
+ link_with: libots,
+ link_args: fuzzer_ldflags,
++ install: true,
+ )
+
+
+@@ -291,12 +298,13 @@ endif
+
+
+ gtest = dependency('gtest', fallback: ['gtest', 'gtest_main_dep'])
++gtest_main = dependency('gtest_main')
+
+ cff_charstring = executable('cff_charstring',
+ 'tests/cff_charstring_test.cc',
+ include_directories: include_directories(['include', 'src']),
+ link_with: libots,
+- dependencies: gtest,
++ dependencies: [gtest, gtest_main],
+ )
+
+ test('cff_charstring', cff_charstring)
+@@ -306,7 +314,7 @@ layout_common_table = executable('layout_common_table'
+ 'tests/layout_common_table_test.cc',
+ include_directories: include_directories(['include', 'src']),
+ link_with: libots,
+- dependencies: gtest,
++ dependencies: [gtest, gtest_main],
+ )
+
+ test('layout_common_table', layout_common_table)
diff --git a/x11-fonts/ots/pkg-descr b/x11-fonts/ots/pkg-descr
new file mode 100644
index 000000000000..ceeabb9402b1
--- /dev/null
+++ b/x11-fonts/ots/pkg-descr
@@ -0,0 +1,11 @@
+The OpenType Sanitizer (OTS) parses and serializes OpenType files (OTF, TTF) and
+WOFF and WOFF2 font files, validating them and sanitizing them as it goes.
+
+The C library is integrated into Chromium and Firefox, and also simple command
+line tools to check files offline in a Terminal.
+
+The CSS font-face property is great for web typography. Having to use images in
+order to get the correct typeface is a great sadness; one should be able to use
+vectors.
+
+WWW: https://github.com/khaledhosny/ots
diff --git a/x11-fonts/ots/pkg-plist b/x11-fonts/ots/pkg-plist
new file mode 100644
index 000000000000..2e12f7e26301
--- /dev/null
+++ b/x11-fonts/ots/pkg-plist
@@ -0,0 +1,10 @@
+bin/ots-fuzzer
+bin/ots-idempotent
+bin/ots-perf
+bin/ots-sanitize
+bin/ots-side-by-side
+bin/ots-validator-checker
+lib/libots.a
+lib/libots.so
+lib/libots.so.8
+lib/libots.so.8.0.0