summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorEric Bavier <bavier@member.fsf.org>2016-04-02 01:50:14 -0500
committerEric Bavier <bavier@member.fsf.org>2016-04-15 00:23:29 -0500
commit579760d06e11d24ef280e5af16a2e02a98c1d77d (patch)
tree137d23aa13e9ff370114119c2bbeb1c5eb5aed38 /gnu
parent69d9792a94c443069e1580497dd10d4a8213eee2 (diff)
gnu: Add woff2.
* gnu/packages/fontutils.scm (woff2): New variable. * gnu/packages/patches/woff2-libbrotli.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/fontutils.scm41
-rw-r--r--gnu/packages/patches/woff2-libbrotli.patch84
2 files changed, 125 insertions, 0 deletions
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index dc18daaeb6..a16e9dddcf 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -39,6 +39,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix svn-download)
+ #:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu))
@@ -181,6 +182,46 @@ TTF (TrueType/OpenType Font) files.")
(license license:bsd-2)
(home-page "https://code.google.com/archive/p/ttf2eot/")))
+(define-public woff2
+ (let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
+ (revision "1"))
+ (package
+ (name "woff2")
+ (version (string-append "20160306-" revision "."
+ (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/woff2.git")
+ (commit commit)))
+ (file-name (string-append name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0wka0yhf0cjmd4rv2jckxpyv6lb5ckj4nj0k1ajq5hrjy7f30lcp"))
+ (patches (list (search-patch "woff2-libbrotli.patch")))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("brotli" ,brotli)))
+ (arguments
+ `(#:tests? #f ;no tests
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "woff2_compress" bin)
+ (install-file "woff2_decompress" bin)
+ #t))))))
+ (synopsis "Compress TrueType fonts to WOFF2")
+ (description
+ "This package provides utilities for compressing/decompressing TrueType
+fonts to/from the WOFF2 format.")
+ (license license:asl2.0)
+ (home-page "https://github.com/google/woff2"))))
+
(define-public fontconfig
(package
(name "fontconfig")
diff --git a/gnu/packages/patches/woff2-libbrotli.patch b/gnu/packages/patches/woff2-libbrotli.patch
new file mode 100644
index 0000000000..47539c8070
--- /dev/null
+++ b/gnu/packages/patches/woff2-libbrotli.patch
@@ -0,0 +1,84 @@
+From: Eric Bavier <bavier@member.fsf.org>
+Date: Sat, 2 Apr 2016 01:31:03 -0500
+Subject: [PATCH] Build against external libbrotli.
+
+---
+ Makefile | 20 ++++----------------
+ src/woff2_dec.cc | 2 +-
+ src/woff2_enc.cc | 2 +-
+ 3 files changed, 6 insertions(+), 18 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 92b8d54..618a751 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,6 +1,6 @@
+ OS := $(shell uname)
+
+-CPPFLAGS = -I./brotli/dec/ -I./brotli/enc/ -I./src
++CPPFLAGS := -I./src $(shell pkg-config --cflags libbrotlienc libbrotlidec)
+
+ CC ?= gcc
+ CXX ?= g++
+@@ -22,29 +22,17 @@ OUROBJ = font.o glyph.o normalize.o table_tags.o transform.o \
+ woff2_dec.o woff2_enc.o woff2_common.o woff2_out.o \
+ variable_length.o
+
+-BROTLI = brotli
+-ENCOBJ = $(BROTLI)/enc/*.o
+-DECOBJ = $(BROTLI)/dec/*.o
++BROTLI_LIBS := $(shell pkg-config --libs libbrotlienc libbrotlidec)
+
+ OBJS = $(patsubst %, $(SRCDIR)/%, $(OUROBJ))
+ EXECUTABLES=woff2_compress woff2_decompress
+
+ EXE_OBJS=$(patsubst %, $(SRCDIR)/%.o, $(EXECUTABLES))
+
+-ifeq (,$(wildcard $(BROTLI)/*))
+- $(error Brotli dependency not found : you must initialize the Git submodule)
+-endif
+-
+ all : $(OBJS) $(EXECUTABLES)
+
+-$(EXECUTABLES) : $(EXE_OBJS) deps
+- $(CXX) $(LFLAGS) $(OBJS) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o -o $@
+-
+-deps :
+- $(MAKE) -C $(BROTLI)/dec
+- $(MAKE) -C $(BROTLI)/enc
++$(EXECUTABLES) : $(EXE_OBJS)
++ $(CXX) $(LDFLAGS) $(OBJS) $(SRCDIR)/$@.o -o $@ $(BROTLI_LIBS) $(LIBS)
+
+ clean :
+ rm -f $(OBJS) $(EXE_OBJS) $(EXECUTABLES)
+- $(MAKE) -C $(BROTLI)/dec clean
+- $(MAKE) -C $(BROTLI)/enc clean
+diff --git a/src/woff2_dec.cc b/src/woff2_dec.cc
+index 837eede..98c01ce 100644
+--- a/src/woff2_dec.cc
++++ b/src/woff2_dec.cc
+@@ -27,7 +27,7 @@
+ #include <memory>
+ #include <utility>
+
+-#include "./decode.h"
++#include "brotli/dec/decode.h"
+ #include "./buffer.h"
+ #include "./port.h"
+ #include "./round.h"
+diff --git a/src/woff2_enc.cc b/src/woff2_enc.cc
+index 920c614..00d74da 100644
+--- a/src/woff2_enc.cc
++++ b/src/woff2_enc.cc
+@@ -23,7 +23,7 @@
+ #include <string>
+ #include <vector>
+
+-#include "./encode.h"
++#include "brotli/enc/encode.h"
+ #include "./buffer.h"
+ #include "./font.h"
+ #include "./normalize.h"
+--
+2.7.3
+