diff options
Diffstat (limited to 'projects/dejavu-fonts')
7 files changed, 125 insertions, 35 deletions
diff --git a/projects/dejavu-fonts/configs/unicode/ucd-files b/projects/dejavu-fonts/configs/unicode/ucd-files new file mode 100644 index 00000000..9b46bb9a --- /dev/null +++ b/projects/dejavu-fonts/configs/unicode/ucd-files @@ -0,0 +1,2 @@ +Blocks.txt +UnicodeData.txt diff --git a/projects/dejavu-fonts/configs/unicode/ucd-version b/projects/dejavu-fonts/configs/unicode/ucd-version new file mode 100644 index 00000000..275283a1 --- /dev/null +++ b/projects/dejavu-fonts/configs/unicode/ucd-version @@ -0,0 +1 @@ +11.0.0 diff --git a/projects/dejavu-fonts/dejavu-fonts b/projects/dejavu-fonts/dejavu-fonts index 037aa3d9..d380235f 100755 --- a/projects/dejavu-fonts/dejavu-fonts +++ b/projects/dejavu-fonts/dejavu-fonts @@ -26,17 +26,24 @@ usage() { download() { local repository="$project" + local sources_path="$(project_sources_path "$project" "$repository" "$@")" + local ucd_version="$(dejavu_fonts_ucd_version "$UNICODE" "$@")" + local ucd_files_path="$(dejavu_fonts_ucd_files_path "$UNICODE" "$@")" - project_download_git "$project" \ - "$repository" \ - 'https://github.com/dejavu-fonts/dejavu-fonts.git' \ - "$@" + local -a download_list + local -a ucd_files - local sources_path="$(project_sources_path "$project" "$repository" "$@")" + mapfile -t ucd_files < "$ucd_files_path" + + for file in "${ucd_files[@]}"; do + download_list+=("https://www.unicode.org/Public/$ucd_version/ucd/$file") + done - download_wrapper "$sources_path/resources" \ - 'https://www.unicode.org/Public/UNIDATA/UnicodeData.txt' \ - 'https://www.unicode.org/Public/UNIDATA/Blocks.txt' + project_download_git "$project" "$repository" https://github.com/dejavu-fonts/dejavu-fonts.git "$@" + download_wrapper "$sources_path/resources" "${download_list[@]}" + + # Create a symlink to fontconfig's orthography files + ln -fs ../../fontconfig/fc-lang "$sources_path/resources/fc-lang" } download_check() { @@ -83,9 +90,6 @@ build() { mkdir -p "$build_path" - # Create a symlink to the orthography files provided by fontconfig - ln -s "$root/$SOURCES/fontconfig/fc-lang" "$sources_path/resources/fc-lang" - make -C "$sources_path" -j"$TASKS" cp "$sources_path/build"/[!.]*.ttf "$build_path" make -C "$sources_path" clean diff --git a/projects/dejavu-fonts/dejavu-fonts-helper b/projects/dejavu-fonts/dejavu-fonts-helper new file mode 100644 index 00000000..ff750588 --- /dev/null +++ b/projects/dejavu-fonts/dejavu-fonts-helper @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# Copyright (C) 2018 Andrew Robbins <contact@andrewrobbins.info> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +UCD_FILES='ucd-files' +UCD_VERSION='ucd-version' +UNICODE='unicode' + +dejavu_fonts_ucd_version() { + project_file_contents "$project" "$CONFIGS" "$UCD_VERSION" "$@" +} + +dejavu_fonts_ucd_files_path() { + project_file_path "$project" "$CONFIGS" "$UCD_FILES" "$@" +} diff --git a/projects/dejavu-fonts/patches/0001-Ignore-fc-lang-UnicodeData.txt-and-Blocks.txt.patch b/projects/dejavu-fonts/patches/0001-Ignore-fc-lang-UnicodeData.txt-and-Blocks.txt.patch new file mode 100644 index 00000000..df92cfc0 --- /dev/null +++ b/projects/dejavu-fonts/patches/0001-Ignore-fc-lang-UnicodeData.txt-and-Blocks.txt.patch @@ -0,0 +1,28 @@ +From b5ece2b11361fdce57cab3e0504babc0b616c396 Mon Sep 17 00:00:00 2001 +From: Andrew Robbins <contact@andrewrobbins.info> +Date: Mon, 10 Dec 2018 23:18:26 -0500 +Subject: [PATCH] Ignore fc-lang, UnicodeData.txt, and Blocks.txt + +UnicodeData.txt and Blocks.txt should be preserved after a +`git clean -df` to avoid needless refetching of these resources. + +Additionally, the fc-lang symlink is kept in order to avoid +recreating it before each build. +--- + .gitignore | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/.gitignore b/.gitignore +index dedd2b5..74203a0 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -2,3 +2,6 @@ build/ + dist/ + tmp/ + /src/*.sfd~ ++resources/Blocks.txt ++resources/UnicodeData.txt ++resources/fc-lang +-- +2.7.4 + diff --git a/projects/dejavu-fonts/patches/0001-Preserve-unicode-source-files-thru-git-clean-df.patch b/projects/dejavu-fonts/patches/0001-Preserve-unicode-source-files-thru-git-clean-df.patch deleted file mode 100644 index 52798b1e..00000000 --- a/projects/dejavu-fonts/patches/0001-Preserve-unicode-source-files-thru-git-clean-df.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9ac03500773a1cc69b198ce1c43770a7fc66da98 Mon Sep 17 00:00:00 2001 -From: Andrew Robbins <contact@andrewrobbins.info> -Date: Tue, 5 Sep 2017 23:57:34 -0400 -Subject: [PATCH] Preserve unicode source files thru `git clean -df` - -UnicodeData.txt and Blocks.txt should be preserved after a -`git clean -df` to avoid needless refetching of these resources. ---- - .gitignore | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/.gitignore b/.gitignore -index dedd2b5..841e748 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -2,3 +2,5 @@ build/ - dist/ - tmp/ - /src/*.sfd~ -+resources/Blocks.txt -+resources/UnicodeData.txt --- -1.9.1 - diff --git a/projects/dejavu-fonts/patches/0002-Require-a-recent-fontforge-for-reproducibility.patch b/projects/dejavu-fonts/patches/0002-Require-a-recent-fontforge-for-reproducibility.patch new file mode 100644 index 00000000..c9449e0c --- /dev/null +++ b/projects/dejavu-fonts/patches/0002-Require-a-recent-fontforge-for-reproducibility.patch @@ -0,0 +1,51 @@ +From 7098e955d8d0a061132aaec1429fc032e3d2edab Mon Sep 17 00:00:00 2001 +From: Andrew Robbins <contact@andrewrobbins.info> +Date: Mon, 10 Dec 2018 20:31:42 -0500 +Subject: [PATCH] Require a recent fontforge for reproducibility + +The required version is set to 20171220 which is the earliest +date from which fontforge built from source was able to produce +fonts deterministically. "20171220" refers to upstream revision +69e561773b91e37096a855f0353b1d6781a61250 + +Note there was not an actual dejavu-fonts release made on 2017-12-20; +the date is intended to be both a reference point, as previously +described, and a mechanism to prevent non-deterministic fonts being +produced by Libreboot's build system due to an unsupported version +of fontforge being used. +--- + scripts/generate.pe | 4 ++-- + scripts/generate.py | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/scripts/generate.pe b/scripts/generate.pe +index 5d9d03d..144e8b1 100755 +--- a/scripts/generate.pe ++++ b/scripts/generate.pe +@@ -16,8 +16,8 @@ + def_gen_flags = 0x20 + 0x40 + 0x800 + exp_gen_flags = def_gen_flags + 8 + +-if ($version < "20080330") +- Error("Your version of FontForge is too old - 20080330 or newer is required"); ++if ($version < "20171220") ++ Error("Your version of FontForge is too old - 20171220 or newer is required"); + endif + # FoundryName is not used in TTF generation + SetPref("FoundryName", "DejaVu") +diff --git a/scripts/generate.py b/scripts/generate.py +index 467d52b..168a2be 100755 +--- a/scripts/generate.py ++++ b/scripts/generate.py +@@ -7,7 +7,7 @@ + # chmod +x generate.pe + # ./generate.pe *.sfd + import fontforge, sys; +-required_version = "20080330" ++required_version = "20171220" + + # font generation flags: + # omit-instructions => do not include TT instructions (for experimental typefaces) +-- +2.7.4 + |