123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729 |
- ;;; GNU Guix --- Functional package management for GNU
- ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
- ;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
- ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
- ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
- ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
- ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
- ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
- ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
- ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
- ;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
- ;;;
- ;;; This file is part of GNU Guix.
- ;;;
- ;;; GNU Guix 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.
- ;;;
- ;;; GNU Guix 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 GNU Guix. If not, see <http://www.gnu.org/licenses/>.
- (define-module (gnu packages fontutils)
- #:use-module (gnu packages)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages check)
- #:use-module (gnu packages ghostscript)
- #:use-module (gnu packages linux)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages autotools)
- #:use-module (gnu packages gettext)
- #:use-module (gnu packages python)
- #:use-module (gnu packages python-xyz)
- #:use-module (gnu packages image)
- #:use-module (gnu packages bison)
- #:use-module (gnu packages flex)
- #:use-module (gnu packages glib)
- #:use-module (gnu packages gperf)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages gtk)
- #:use-module (gnu packages xml)
- #:use-module ((guix licenses) #:prefix license:)
- #: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)
- #:use-module (guix build-system python))
- (define-public freetype
- (package
- (name "freetype")
- (version "2.9.1")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/freetype/freetype-"
- version ".tar.bz2"))
- (sha256 (base32
- "0kg8w6qyiizlyzh4a8lpzslipcbv96hcg3rqqpnxba8ffbm8g3fv"))))
- (build-system gnu-build-system)
- (arguments
- ;; The use of "freetype-config" is deprecated, but other packages still
- ;; depend on it.
- `(#:configure-flags (list "--enable-freetype-config")))
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (propagated-inputs
- ;; These are all in the Requires.private field of freetype2.pc.
- ;; XXX: add harfbuzz.
- `(("libpng" ,libpng)
- ("zlib" ,zlib)))
- (synopsis "Font rendering library")
- (description
- "Freetype is a library that can be used by applications to access the
- contents of font files. It provides a uniform interface to access font files.
- It supports both bitmap and scalable formats, including TrueType, OpenType,
- Type1, CID, CFF, Windows FON/FNT, X11 PCF, and others. It supports high-speed
- anti-aliased glyph bitmap generation with 256 gray levels.")
- (license license:freetype) ; some files have other licenses
- (home-page "https://www.freetype.org/")))
- (define-public ttfautohint
- (package
- (name "ttfautohint")
- (version "1.5")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/freetype/ttfautohint-"
- version ".tar.gz"))
- (sha256
- (base32
- "1lgghck46p33z3hg8dnl76jryig4fh6d8rhzms837zp7x4hyfkv4"))
- (patches (list (search-patch "ttfautohint-source-date-epoch.patch")))))
- (build-system gnu-build-system)
- (native-inputs
- `(("flex" ,flex)
- ("bison" ,bison)
- ("pkg-config" ,pkg-config)))
- (inputs
- `(("freetype" ,freetype)
- ("harfbuzz" ,harfbuzz)))
- (arguments
- `(#:configure-flags '("--with-qt=no"))) ;no gui
- (synopsis "Automated font hinting")
- (description
- "ttfautohint provides a 99% automated hinting process and a platform for
- finely hand-hinting the last 1%. It is ideal for web fonts and supports many
- scripts.")
- (license (list license:gpl2+ license:freetype)) ;choose one or the other
- (home-page "http://www.freetype.org/ttfautohint/")))
- (define-public woff-tools
- (package
- (name "woff-tools")
- (version "2009.10.04")
- (source
- (origin
- (method url-fetch)
- ;; Upstream source is unversioned, so use Debian's versioned tarball
- (uri (string-append "mirror://debian/pool/main/w/woff-tools/"
- "woff-tools_" version ".orig.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1i97gkqa6jfzlslsngqf556kx60knlgf7yc9pzsq2pizc6f0d4zl"))))
- (build-system gnu-build-system)
- (inputs
- `(("zlib" ,zlib)))
- (arguments
- `(#:make-flags '("CC=gcc")
- #:tests? #f ;no tests
- #:phases
- (modify-phases %standard-phases
- (delete 'configure) ;no configuration
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "sfnt2woff" bin)
- (install-file "woff2sfnt" bin)))))))
- (synopsis "Convert between OpenType and WOFF fonts")
- (description
- "This package provides two tools:
- @table @code
- @item sfnt2woff
- Converts OpenType fonts to WOFF fonts
- @item woff2sfnt
- Converts WOFF fonts to OpenType fonts
- @end table")
- (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+))
- (home-page "https://people.mozilla.com/~jkew/woff/")))
- (define-public ttf2eot
- (package
- (name "ttf2eot")
- (version "0.0.3")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/wget/ttf2eot.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0l2yh2ialx7135pjzhjs204kk3br7zxjr09zwaia493by2adzigr"))
- (patches (list (search-patch "ttf2eot-cstddef.patch")))))
- (build-system gnu-build-system)
- (arguments
- `(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (delete 'configure) ; no configuration
- (replace 'install ; no install target
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (install-file "ttf2eot" bin)
- #t))))))
- (synopsis "Convert from TrueType to Embeddable Open Type")
- (description
- "This package contains a commandline wrapper around OpenTypeUtilities.cpp
- from Chromium, used to make EOT (Embeddable Open Type) files from
- TTF (TrueType/OpenType Font) files.")
- ;; While the README states "License: Derived from WebKit, so BSD/LGPL
- ;; 2/LGPL 2.1", the single derived source file includes only BSD in its
- ;; license header, and the wrapper source contains no license header.
- (license license:bsd-2)
- (home-page "https://github.com/wget/ttf2eot")))
- (define-public ttf2pt1
- (package
- (name "ttf2pt1")
- (version "3.4.4")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/ttf2pt1/ttf2pt1/"
- version "/ttf2pt1-" version ".tgz"))
- (sha256
- (base32
- "1l718n4k4widx49xz7qrj4mybzb8q67kp2jw7f47604ips4654mf"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; Remove trailing backslashes in the sed expression of the
- ;; 'install' rule since sed would otherwise fail.
- (substitute* "Makefile"
- (("\\|;\\\\[[:space:]]*$") "|; "))
- #t))))
- (build-system gnu-build-system)
- (arguments
- '(#:tests? #f ;no tests
- #:phases (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "Makefile"
- (("INSTDIR =.*")
- (string-append "INSTDIR = " out "\n"))
- (("OWNER = .*")
- "OWNER = `id -un`\n")
- (("GROUP = .*")
- "GROUP = `id -g`\n"))
- #t)))
- (replace 'build
- (lambda _
- (invoke "make" "-j"
- (number->string (parallel-job-count))
- "all" "CC=gcc"))))))
- (inputs `(("perl" ,perl)))
- (synopsis "Convert TrueType fonts to Postscript Type 1")
- (description
- "TTF2PT1 provides tools to convert most TrueType fonts (or other formats
- supported by the FreeType library) to an Adobe Type 1 @file{.pfa} or
- @file{.pfb} file. Another use is as a hinting engine: feed it an unhinted or
- poorly hinted Adobe Type 1 font through the FreeType library and get it back
- with freshly generated hints. The files produced by default are in
- human-readable form, which further needs to be encoded with t1utilities to
- work with most software requiring Type 1 fonts.")
- (home-page "http://ttf2pt1.sourceforge.net/")
- (license license:bsd-3)))
- (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")
- (version "2.13.1")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://www.freedesktop.org/software/fontconfig/release/fontconfig-"
- version ".tar.bz2"))
- (sha256 (base32
- "0hb700a68kk0ip51wdlnjjc682kvlrmb6q920mzajykdk0mdsmgn"))))
- (build-system gnu-build-system)
- ;; In Requires or Requires.private of fontconfig.pc.
- (propagated-inputs `(("expat" ,expat)
- ("freetype" ,freetype)
- ("libuuid" ,util-linux)))
- (inputs `(("gs-fonts" ,gs-fonts)))
- (native-inputs
- `(("gperf" ,gperf)
- ("pkg-config" ,pkg-config)))
- (arguments
- `(#:configure-flags
- (list "--with-cache-dir=/var/cache/fontconfig"
- ;; register gs-fonts as default fonts
- (string-append "--with-default-fonts="
- (assoc-ref %build-inputs "gs-fonts")
- "/share/fonts")
- ;; Register fonts from user and system profiles.
- (string-append "--with-add-fonts="
- "~/.guix-profile/share/fonts,"
- "/run/current-system/profile/share/fonts")
- ;; python is not actually needed
- "PYTHON=false")
- #:phases
- (modify-phases %standard-phases
- (replace 'install
- (lambda _
- ;; Don't try to create /var/cache/fontconfig.
- (invoke "make" "install"
- "fc_cachedir=$(TMPDIR)"
- "RUN_FC_CACHE_TEST=false"))))))
- (synopsis "Library for configuring and customizing font access")
- (description
- "Fontconfig can discover new fonts when installed automatically;
- perform font name substitution, so that appropriate alternative fonts can
- be selected if fonts are missing;
- identify the set of fonts required to completely cover a set of languages;
- have GUI configuration tools built as it uses an XML-based configuration file;
- efficiently and quickly find needed fonts among the set of installed fonts;
- be used in concert with the X Render Extension and FreeType to implement
- high quality, anti-aliased and subpixel rendered text on a display.")
- ; The exact license is more X11-style than BSD-style.
- (license (license:non-copyleft "file://COPYING"
- "See COPYING in the distribution."))
- (home-page "https://www.freedesktop.org/wiki/Software/fontconfig")))
- (define-public t1lib
- (package
- (name "t1lib")
- (version "5.1.2")
- (source (origin
- (method url-fetch)
- (uri (list (string-append "ftp://sunsite.unc.edu/pub/Linux/libs/"
- "graphics/" name "-" version ".tar.gz")
- (string-append "https://fossies.org/linux/misc/old/"
- name "-" version ".tar.gz")))
- (sha256 (base32
- "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2"))
- (patches (search-patches
- "t1lib-CVE-2010-2642.patch" ; 2011-0443, 2011-5244
- "t1lib-CVE-2011-0764.patch"
- "t1lib-CVE-2011-1552+.patch")))) ; 2011-1553, 2011-1554
- (properties `((lint-hidden-cve . ("CVE-2011-0433"
- "CVE-2011-1553"
- "CVE-2011-1554"
- "CVE-2011-5244"))))
- (build-system gnu-build-system)
- (arguments
- ;; Making the documentation requires latex, but t1lib is also an input
- ;; for building texlive.
- `(#:tests? #f ; no test target
- #:make-flags
- '("without_doc")))
- (synopsis "Library for generating bitmaps from Type 1 fonts")
- (description
- "T1lib is a library for generating/rasterising bitmaps from Type 1 fonts.
- It is based on the code of the X11 rasteriser of the X11 project.
- The bitmaps created by t1lib are returned in a data structure with type
- GLYPH. This special GLYPH-type is also used in the X11 window system to
- describe character bitmaps. It contains the bitmap data as well as some
- metric information. But t1lib is in itself entirely independent of the
- X11-system or any other graphical user interface.")
- (license license:gpl2)
- (home-page "http://www.t1lib.org/")))
- (define-public teckit
- (package
- (name "teckit")
- (version "2.5.8")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/silnrsi/teckit")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1jmsdmfz7bgq1n5qsqgpq1b1n77f1hll0czfw5wkxz4knzb14ndn"))))
- (build-system gnu-build-system)
- (inputs
- `(("zlib" ,zlib)
- ("expat" ,expat)))
- (native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("perl" ,perl))) ; for the tests
- (synopsis "Toolkit for encoding conversions")
- (description
- "TECkit is a low-level toolkit intended to be used by other applications
- that need to perform encoding conversions (e.g., when importing legacy data
- into a Unicode-based application). The primary component of the TECkit
- package is therefore a library that performs conversions; this is the
- \"TECkit engine\". The engine relies on mapping tables in a specific binary
- format (for which documentation is available); there is a compiler that
- creates such tables from a human-readable mapping description (a simple
- text file).
- To facilitate the development and testing of mapping tables for TECkit,
- several applications are also included in the current package; these
- include simple tools for applying conversions to plain-text and Standard
- Format files, as well as both command-line and simple GUI versions of the
- TECkit compiler. However, it is not intended that these tools will be the
- primary means by which end users perform conversions, and they have not
- been designed, tested, and debugged to the extent that general-purpose
- applications should be.")
- (license license:lgpl2.1+)
- (home-page "http://scripts.sil.org/cms/scripts/page.php?cat_id=teckit")))
- (define-public graphite2
- (package
- (name "graphite2")
- (version "1.3.12")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/silnrsi/graphite/releases/"
- "download/" version "/" name "-" version ".tgz"))
- (sha256
- (base32
- "1l1940d8fz67jm6a0x8cjb5p2dv48cvz3wcskwa83hamd70k15fd"))))
- (build-system cmake-build-system)
- (native-inputs
- `(("python" ,python-2) ; because of "import imap" in tests
- ("python-fonttools" ,python2-fonttools)))
- (inputs
- `(("freetype" ,freetype)))
- (synopsis "Reimplementation of the SIL Graphite text processing engine")
- (description
- "Graphite2 is a reimplementation of the SIL Graphite text processing
- engine. Graphite is a smart font technology designed to facilitate the
- process known as shaping. This process takes an input Unicode text string
- and returns a sequence of positioned glyphids from the font.")
- (license license:lgpl2.1+)
- (home-page "https://github.com/silnrsi/graphite")))
- (define-public potrace
- (package
- (name "potrace")
- (version "1.15")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://sourceforge/potrace/" version
- "/potrace-" version ".tar.gz"))
- (sha256
- (base32
- "17ajildjp14shsy339xarh1lw1p0k60la08ahl638a73mh23kcx9"))
- (patches (search-patches "potrace-tests.patch"))))
- (build-system gnu-build-system)
- (native-inputs `(("ghostscript" ,ghostscript))) ;for tests
- (inputs `(("zlib" ,zlib)))
- (arguments
- `(#:configure-flags
- `("--with-libpotrace"))) ; install library and headers
- (synopsis "Transform bitmaps into vector graphics")
- (description
- "Potrace is a tool for tracing a bitmap, which means, transforming a
- bitmap into a smooth, scalable image. The input is a bitmap (PBM, PGM, PPM,
- or BMP format), and the default output is an encapsulated PostScript
- file (EPS). A typical use is to create EPS files from scanned data, such as
- company or university logos, handwritten notes, etc. The resulting image is
- not \"jaggy\" like a bitmap, but smooth. It can then be rendered at any
- resolution.")
- (license license:gpl2+)
- (home-page "http://potrace.sourceforge.net/")))
- (define-public libotf
- (package
- (name "libotf")
- (version "0.9.16")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/m17n/libotf-"
- version ".tar.gz"))
- (sha256
- (base32 "0sq6g3xaxw388akws6qrllp3kp2sxgk2dv4j79k6mm52rnihrnv8"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (propagated-inputs
- `(("freetype" ,freetype)))
- (home-page "https://www.nongnu.org/m17n/")
- (synopsis "Library for handling OpenType Font")
- (description "This library can read Open Type Layout Tables from an OTF
- file. Currently these tables are supported; head, name, cmap, GDEF, GSUB, and
- GPOS. It can convert a Unicode character sequence to a glyph code sequence by
- using the above tables.")
- (license license:lgpl2.0+)))
- (define-public libspiro
- (package
- (name "libspiro")
- (version "0.5.20150702")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/fontforge/libspiro/releases"
- "/download/" version "/libspiro-dist-" version ".tar.gz"))
- (sha256
- (base32
- "153ckwj6h3wwlsgcppzqj8cymv1927hi8ar8fzpchq5q89cj2kai"))))
- (build-system gnu-build-system)
- (synopsis "Clothoid to bezier conversion library")
- (description
- "Raph Levien's Spiro package as a library. A mechanism for drawing
- smooth contours with constant curvature at the spline joins.")
- (license license:gpl2+)
- (home-page "http://libspiro.sourceforge.net/")))
- (define-public libuninameslist
- (package
- (name "libuninameslist")
- (version "20180701")
- (home-page "https://github.com/fontforge/libuninameslist")
- (source
- (origin
- (method url-fetch)
- (uri (string-append home-page "/releases/download/" version
- "/libuninameslist-dist-" version ".tar.gz"))
- (sha256
- (base32
- "141wh2f5jsaw84mgw6vf2c9hd2wm957a2hpnicyqjbc7pk89gvca"))))
- (build-system gnu-build-system)
- (synopsis "Unicode names and annotation list")
- (description
- "LibUniNamesList holds www.unicode.org Nameslist.txt data which can be
- useful for programs that need Unicode \"Names\", \"Annotations\", and block
- definitions.")
- ;; COPYING specifies GPL2, but according to LICENSE it only covers the
- ;; configure script. The actual code is BSD-3, and the Unicode data
- ;; is governed by an X11-style license only found on the web.
- (license (list license:bsd-3
- (license:x11-style
- "https://www.unicode.org/copyright.html#License")))))
- (define-public fontforge
- (package
- (name "fontforge")
- (version "20170731")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/fontforge/fontforge/releases/download/"
- version "/fontforge-dist-" version ".tar.xz"))
- (sha256 (base32
- "08l8h3yvk4v7652jvmd3ls7nf5miybkx2fmkf1mpwwfixpxxw2l4"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs `(("cairo" ,cairo)
- ("fontconfig" ,fontconfig) ;dlopen'd
- ("freetype" ,freetype)
- ("gettext" ,gettext-minimal)
- ("glib" ,glib) ;needed for pango detection
- ("libICE" ,libice)
- ("libSM" ,libsm)
- ("libX11" ,libx11)
- ("libXi" ,libxi)
- ("libjpeg" ,libjpeg)
- ("libltdl" ,libltdl)
- ("libpng" ,libpng)
- ("libspiro" ,libspiro)
- ("libtiff" ,libtiff)
- ("libungif" ,libungif)
- ("libuninameslist" ,libuninameslist)
- ("libxft" ,libxft)
- ("libxml2" ,libxml2)
- ("pango" ,pango)
- ("potrace" ,potrace)
- ;; FIXME: We use Python 2 here because there is a bug in Python
- ;; 3.7 that is triggered when Py_Main is called after Py_Init, as
- ;; is done by fontforge. This will be fixed in Python 3.7.1.
- ("python" ,python-2)
- ("zlib" ,zlib)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'install 'set-library-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (potrace (string-append (assoc-ref inputs "potrace") "/bin")))
- (wrap-program (string-append out "/bin/fontforge")
- ;; Fontforge dynamically opens libraries.
- `("LD_LIBRARY_PATH" ":" prefix
- ,(map (lambda (input)
- (string-append (assoc-ref inputs input)
- "/lib"))
- '("libtiff" "libjpeg" "libpng" "libungif"
- "libxml2" "zlib" "libspiro" "freetype"
- "pango" "cairo" "fontconfig")))
- ;; Checks for potrace program at runtime
- `("PATH" ":" prefix (,potrace)))
- #t))))
- ;; Skip test 40 "FontForge .sfd file open check" to work around
- ;; <https://github.com/fontforge/fontforge/issues/3246>.
- #:make-flags '("TESTSUITEFLAGS=-k '!\\.sfd'")))
- (synopsis "Outline font editor")
- (description
- "FontForge allows you to create and modify postscript, truetype and
- opentype fonts. You can save fonts in many different outline formats, and
- generate bitmaps.")
- (license license:gpl3+)
- (home-page "https://fontforge.github.io/en-US/")))
- (define-public python2-ufolib
- (package
- (name "python2-ufolib")
- (version "2.1.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "ufoLib" version ".zip"))
- (sha256
- (base32 "07qy6mx7z0wi9a30lc2hj5i9q1gnz1n8l40dmjz2c19mj9s6mz9l"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2))
- (propagated-inputs
- `(("python2-fonttools" ,python2-fonttools)))
- (native-inputs
- `(("unzip" ,unzip)
- ("python2-pytest" ,python2-pytest)
- ("python2-pytest-runner" ,python2-pytest-runner)))
- (home-page "https://github.com/unified-font-object/ufoLib")
- (synopsis "Low-level UFO reader and writer")
- (description
- "UfoLib reads and writes Unified Font Object (UFO)
- files. UFO is a file format that stores fonts source files.")
- (license license:bsd-3)))
- (define-public python2-defcon
- (package
- (name "python2-defcon")
- (version "0.3.5")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "defcon" version ".zip"))
- (sha256
- (base32
- "03jlm2gy9lvbwj68kfdm43yaddwd634jwkdg4wf0jxx2s8mwbg22"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2))
- (native-inputs
- `(("unzip" ,unzip)
- ("python2-pytest" ,python2-pytest)
- ("python2-pytest-runner" ,python2-pytest-runner)))
- (propagated-inputs
- `(("python2-fonttools" ,python2-fonttools)
- ("python2-ufolib" ,python2-ufolib)))
- (home-page "https://pypi.python.org/pypi/defcon")
- (synopsis "Flexible objects for representing @acronym{UFO, unified font object} data")
- (description
- "Defcon is a set of @acronym{UFO, unified font object} based objects
- optimized for use in font editing applications. The objects are built to
- be lightweight, fast and flexible. The objects are very bare-bones and
- they are not meant to be end-all, be-all objects. Rather, they are meant
- to provide base functionality so that you can focus on your application’s
- behavior, not object observing or maintaining cached data. Defcon
- implements UFO3 as described by the UFO font format.")
- (license license:expat)))
- (define-public nototools
- (package
- (name "nototools")
- (version "20170925")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/googlei18n/nototools/"
- "archive/v2017-09-25-tooling-for-phase3-"
- "update.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1pvacw18cm9l4sb66pqyjc7hc74xhhfxc7kd5ald8lixf4wzg0s8"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2))
- (propagated-inputs
- `(("python2-booleanoperations" ,python2-booleanoperations)
- ("python2-defcon" ,python2-defcon)
- ("python2-fonttools" ,python2-fonttools)
- ("python2-pillow" ,python2-pillow)
- ("python2-pyclipper" ,python2-pyclipper)
- ("python2-ufolib" ,python2-ufolib)))
- (home-page "https://github.com/googlei18n/nototools")
- (synopsis "Noto fonts support tools and scripts")
- (description
- "Nototools is a Python package containing Python scripts used to
- maintain the Noto Fonts project.")
- (license (list license:asl2.0
- ;; Sample texts are attributed to UN and OHCHR.
- ;; The permissions on the UDHR are pretty lax:
- ;; http://www.ohchr.org/EN/UDHR/Pages/Introduction.aspx
- ;; "If UDHR translations or materials are reproduced, users
- ;; should make reference to this website as a source by
- ;; providing a link."
- license:public-domain
- (license:non-copyleft
- "file://sample_texts/attributions.txt"
- "See sample_texts/attributions.txt in the distribution.")))))
|