[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1030155: adding webfonts (woff/woff2)



tag 1030155 + patch
thanks

patch attached.

Regards,
Daniel
From ed2b2936192c897c592930ebb36d1ae3b7bee731 Mon Sep 17 00:00:00 2001
From: Daniel Baumann <daniel.baumann@progress-linux.org>
Date: Mon, 30 Jan 2023 21:33:25 +0100
Subject: [PATCH 1/2] Adding fonts-dejavu-web package (Closes: #1030155).

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
---
 debian/control                        |  23 +++-
 debian/fonts-dejavu-web.README.Debian |  25 ++++
 debian/fonts-dejavu-web.install       |   1 +
 debian/fonts-dejavu-web.links         |   3 +
 debian/javascript/bootstrap.css       |  16 +++
 debian/javascript/fonts-dejavu.css    | 179 ++++++++++++++++++++++++++
 debian/rules                          |   3 +
 debian/scripts/generate-web.sh        |  19 +++
 8 files changed, 268 insertions(+), 1 deletion(-)
 create mode 100644 debian/fonts-dejavu-web.README.Debian
 create mode 100644 debian/fonts-dejavu-web.install
 create mode 100644 debian/fonts-dejavu-web.links
 create mode 100644 debian/javascript/bootstrap.css
 create mode 100644 debian/javascript/fonts-dejavu.css
 create mode 100644 debian/scripts/generate-web.sh

diff --git a/debian/control b/debian/control
index 8c06df6..8db5f7f 100644
--- a/debian/control
+++ b/debian/control
@@ -6,7 +6,9 @@ Build-Depends:
 Build-Depends-Indep:
  fontforge-nox | fontforge,
  libfont-ttf-perl (>= 0.35),
- perl
+ perl,
+ woff-tools,
+ woff2
 Standards-Version: 4.5.0
 Maintainer: Progress Linux Maintainers <maintainers@lists.progress-linux.org>
 XSBC-Uploaders: Daniel Baumann <daniel.baumann@progress-linux.org>
@@ -108,3 +110,22 @@ Description: Monospace Vera font family derivate with additional characters
  .
  DejaVu fonts are intended for use on low-resolution devices (mainly
  computer screens) but can be used in printing as well.
+
+Package: fonts-dejavu-web
+Architecture: all
+Multi-Arch: foreign
+Depends:
+ fonts-dejavu,
+ ${misc:Depends}
+Pre-Depends:
+ ${misc:Pre-Depends}
+Recommends:
+ javascript-common,
+Description: Vera font family derivate with additional characters (woff/woff2)
+ DejaVu provides an expanded version of the Vera font family aiming for
+ quality and broader Unicode coverage while retaining the original Vera
+ style. DejaVu currently works towards conformance with the Multilingual
+ European Standards (MES-1 and MES-2) for Unicode coverage. The DejaVu
+ fonts provide serif, sans and monospaced variants.
+ .
+ This package the woff/woff2 formats to be used as webfonts on a webserver.
diff --git a/debian/fonts-dejavu-web.README.Debian b/debian/fonts-dejavu-web.README.Debian
new file mode 100644
index 0000000..630a6b6
--- /dev/null
+++ b/debian/fonts-dejavu-web.README.Debian
@@ -0,0 +1,25 @@
+Howto use fonts-dejavu-web
+==========================
+
+1. Install javascript-common:
+
+   $ sudo apt install javascript-common
+
+2. Enable javascript-common (apache):
+
+   $ sudo a2enconf javascript-common
+   $ sudo apache2 restart
+
+3. Use the following HTML code in your websites to enable use of dejavu fonts:
+
+   <link href="/javascript/fonts-dejavu/fonts-dejavu.css" rel="stylesheet" />
+
+   Browsers will automatically select woff2 if supported or fallback to woff or
+   truetype.
+
+4. Additionally use the following CSS stylesheet if you're using bootstrap to
+   set the default font to DejaVu:
+
+   <link href="/javascript/fonts-dejavu/bootstrap.css" rel="stylesheet" />
+
+ -- Daniel Baumann <daniel.baumann@progress-linux.org>  Tue, 31 Jan 2023 17:58:18 +0100
diff --git a/debian/fonts-dejavu-web.install b/debian/fonts-dejavu-web.install
new file mode 100644
index 0000000..94aef7d
--- /dev/null
+++ b/debian/fonts-dejavu-web.install
@@ -0,0 +1 @@
+debian/javascript/* usr/share/javascript/fonts-dejavu
diff --git a/debian/fonts-dejavu-web.links b/debian/fonts-dejavu-web.links
new file mode 100644
index 0000000..130f68e
--- /dev/null
+++ b/debian/fonts-dejavu-web.links
@@ -0,0 +1,3 @@
+/usr/share/fonts/truetype/dejavu /usr/share/javascript/fonts-dejavu/ttf
+/usr/share/fonts/woff/dejavu /usr/share/javascript/fonts-dejavu/woff
+/usr/share/fonts/woff2/dejavu /usr/share/javascript/fonts-dejavu/woff2
diff --git a/debian/javascript/bootstrap.css b/debian/javascript/bootstrap.css
new file mode 100644
index 0000000..6e713e7
--- /dev/null
+++ b/debian/javascript/bootstrap.css
@@ -0,0 +1,16 @@
+// bootstrap.css
+
+html,
+body,
+.tooltip,
+.popover {
+  font-family: 'DejaVuSans';
+}
+
+pre,
+code,
+kbd,
+samp,
+.text-monospace {
+  font-family: 'DejaVuSansMono';
+}
diff --git a/debian/javascript/fonts-dejavu.css b/debian/javascript/fonts-dejavu.css
new file mode 100644
index 0000000..ac8bfa0
--- /dev/null
+++ b/debian/javascript/fonts-dejavu.css
@@ -0,0 +1,179 @@
+// fonts-dejavu.css
+
+// DejaVu Sans
+@font-face {
+  font-family: 'DejaVuSans';
+  src: url('woff2/DejaVuSans-BoldOblique.woff2') format('woff2'),
+       url('woff/DejaVuSans-BoldOblique.woff') format('woff'),
+       url('ttf/DejaVuSans-BoldOblique.ttf') format('truetype');
+  font-weight: bold;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSans';
+  src: url('woff2/DejaVuSans-Oblique.woff2') format('woff2'),
+       url('woff/DejaVuSans-Oblique.woff') format('woff'),
+       url('ttf/DejaVuSans-Oblique.ttf') format('truetype');
+  font-weight: normal;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSans';
+  src: url('woff2/DejaVuSans-Bold.woff2') format('woff2'),
+       url('woff/DejaVuSans-Bold.woff') format('woff'),
+       url('ttf/DejaVuSans-Bold.ttf') format('truetype');
+  font-weight: bold;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'DejaVuSans';
+  src: url('woff2/DejaVuSans-ExtraLight.woff2') format('woff2'),
+       url('woff/DejaVuSans-ExtraLight.woff') format('woff'),
+       url('ttf/DejaVuSans-ExtraLight.ttf') format('truetype');
+  font-weight: lighter;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'DejaVuSans';
+  src: url('woff2/DejaVuSans.woff2') format('woff2'),
+       url('woff/DejaVuSans.woff') format('woff'),
+       url('ttf/DejaVuSans.ttf') format('truetype');
+  font-weight: normal;
+  font-style: normal;
+}
+
+// DejaVu Sans Condensed
+@font-face {
+  font-family: 'DejaVuSansCondensed';
+  src: url('woff2/DejaVuSansCondensed-BoldOblique.woff2') format('woff2'),
+       url('woff/DejaVuSansCondensed-BoldOblique.woff') format('woff'),
+       url('ttf/DejaVuSansCondensed-BoldOblique.ttf') format('truetype');
+  font-weight: bold;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSansCondensed';
+  src: url('woff2/DejaVuSansCondensed-Oblique.woff2') format('woff2'),
+       url('woff/DejaVuSansCondensed-Oblique.woff') format('woff'),
+       url('ttf/DejaVuSansCondensed-Oblique.ttf') format('truetype');
+  font-weight: normal;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSansCondensed';
+  src: url('woff2/DejaVuSansCondensed-Bold.woff2') format('woff2'),
+       url('woff/DejaVuSansCondensed-Bold.woff') format('woff'),
+       url('ttf/DejaVuSansCondensed-Bold.ttf') format('truetype');
+  font-weight: bold;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'DejaVuSansCondensed';
+  src: url('woff2/DejaVuSansCondensed.woff2') format('woff2'),
+       url('woff/DejaVuSansCondensed.woff') format('woff'),
+       url('ttf/DejaVuSansCondensed.ttf') format('truetype');
+  font-weight: normal;
+  font-style: normal;
+}
+
+// DejaVu Sans Mono
+@font-face {
+  font-family: 'DejaVuSansMono';
+  src: url('woff2/DejaVuSansMono-BoldOblique.woff2') format('woff2'),
+       url('woff/DejaVuSansMono-BoldOblique.woff') format('woff'),
+       url('ttf/DejaVuSansMono-BoldOblique.ttf') format('truetype');
+  font-weight: bold;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSansMono';
+  src: url('woff2/DejaVuSansMono-Oblique.woff2') format('woff2'),
+       url('woff/DejaVuSansMono-Oblique.woff') format('woff'),
+       url('ttf/DejaVuSansMono-Oblique.ttf') format('truetype');
+  font-weight: normal;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSansMono';
+  src: url('woff2/DejaVuSansMono-Bold.woff2') format('woff2'),
+       url('woff/DejaVuSansMono-Bold.woff') format('woff'),
+       url('ttf/DejaVuSansMono-Bold.ttf') format('truetype');
+  font-weight: bold;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'DejaVuSansMono';
+  src: url('woff2/DejaVuSansMono.woff2') format('woff2'),
+       url('woff/DejaVuSansMono.woff') format('woff'),
+       url('ttf/DejaVuSansMono.ttf') format('truetype');
+  font-weight: normal;
+  font-style: normal;
+}
+
+// DejaVu Serif
+@font-face {
+  font-family: 'DejaVuSerif';
+  src: url('woff2/DejaVuSerif-BoldItalic.woff2') format('woff2'),
+       url('woff/DejaVuSerif-BoldItalic.woff') format('woff'),
+       url('ttf/DejaVuSerif-BoldItalic.ttf') format('truetype');
+  font-weight: bold;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSerif';
+  src: url('woff2/DejaVuSerif-Italic.woff2') format('woff2'),
+       url('woff/DejaVuSerif-Italic.woff') format('woff'),
+       url('ttf/DejaVuSerif-Italic.ttf') format('truetype');
+  font-weight: normal;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSerif';
+  src: url('woff2/DejaVuSerif-Bold.woff2') format('woff2'),
+       url('woff/DejaVuSerif-Bold.woff') format('woff'),
+       url('ttf/DejaVuSerif-Bold.ttf') format('truetype');
+  font-weight: bold;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'DejaVuSerif';
+  src: url('woff2/DejaVuSerif.woff2') format('woff2'),
+       url('woff/DejaVuSerif.woff') format('woff'),
+       url('ttf/DejaVuSerif.ttf') format('truetype');
+  font-weight: normal;
+  font-style: normal;
+}
+
+// DejaVu Serif Condensed
+@font-face {
+  font-family: 'DejaVuSerifCondensed';
+  src: url('woff2/DejaVuSerifCondensed-BoldItalic.woff2') format('woff2'),
+       url('woff/DejaVuSerifCondensed-BoldItalic.woff') format('woff'),
+       url('ttf/DejaVuSerifCondensed-BoldItalic.ttf') format('truetype');
+  font-weight: bold;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSerifCondensed';
+  src: url('woff2/DejaVuSerifCondensed-Italic.woff2') format('woff2'),
+       url('woff/DejaVuSerifCondensed-Italic.woff') format('woff'),
+       url('ttf/DejaVuSerifCondensed-Italic.ttf') format('truetype');
+  font-weight: normal;
+  font-style: italic, oblique;
+}
+@font-face {
+  font-family: 'DejaVuSerifCondensed';
+  src: url('woff2/DejaVuSerifCondensed-Bold.woff2') format('woff2'),
+       url('woff/DejaVuSerifCondensed-Bold.woff') format('woff'),
+       url('ttf/DejaVuSerifCondensed-Bold.ttf') format('truetype');
+  font-weight: bold;
+  font-style: normal;
+}
+@font-face {
+  font-family: 'DejaVuSerifCondensed';
+  src: url('woff2/DejaVuSerifCondensed.woff2') format('woff2'),
+       url('woff/DejaVuSerifCondensed.woff') format('woff'),
+       url('ttf/DejaVuSerifCondensed.ttf') format('truetype');
+  font-weight: normal;
+  font-style: normal;
+}
diff --git a/debian/rules b/debian/rules
index 58e2acd..51fc30e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -12,5 +12,8 @@ override_dh_auto_clean:
 	$(RM) -f debian/stamp-common-build
 	dh_auto_clean
 
+execute_after_dh_install:
+	sh debian/scripts/generate-web.sh
+
 override_dh_installchangelogs:
 	dh_installchangelogs NEWS
diff --git a/debian/scripts/generate-web.sh b/debian/scripts/generate-web.sh
new file mode 100644
index 0000000..f0c5621
--- /dev/null
+++ b/debian/scripts/generate-web.sh
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+FONTS="$(ls debian/fonts-dejavu-core/usr/share/fonts/truetype/dejavu/*.ttf debian/fonts-dejavu-extra/usr/share/fonts/truetype/dejavu/*.ttf | grep -v DejaVuMathTeXGyre)"
+TARGET="debian/fonts-dejavu-web/usr/share/fonts"
+
+for f in ${FONTS}; do
+  sfnt2woff "$f"
+  woff2_compress "$f"
+done
+
+# woff
+mkdir -p "${TARGET}"/woff/dejavu
+mv debian/*/usr/share/fonts/truetype/dejavu/*.woff "${TARGET}"/woff/dejavu
+
+# woff2
+mkdir -p "${TARGET}"/woff2/dejavu
+mv debian/*/usr/share/fonts/truetype/dejavu/*.woff2 "${TARGET}"/woff2/dejavu
+
+# vim:set tw=0 nowrap ts=8 sw=2 sts=2:
-- 
2.39.0


Reply to: