Revert "Revert "Merge branch 'gnome-updates'""
[jackhill/guix/guix.git] / gnu / packages / fontutils.scm
CommitLineData
b387a1c5 1;;; GNU Guix --- Functional package management for GNU
f1597358 2;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
1e69db8f 3;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
e86409c5 4;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
5c85c726 5;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
b387a1c5
AE
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
a86177d6 22(define-module (gnu packages fontutils)
b387a1c5 23 #:use-module (gnu packages)
e5c0701f 24 #:use-module (gnu packages compression)
b972db72 25 #:use-module (gnu packages ghostscript)
319e2d17 26 #:use-module (gnu packages perl)
6e4da6ea 27 #:use-module (gnu packages pkg-config)
f945bf06 28 #:use-module (gnu packages autotools)
0c115d8c 29 #:use-module (gnu packages gettext)
319e2d17 30 #:use-module (gnu packages python)
0c115d8c 31 #:use-module (gnu packages image)
1e69db8f
EB
32 #:use-module (gnu packages bison)
33 #:use-module (gnu packages flex)
0c115d8c
EB
34 #:use-module (gnu packages glib)
35 #:use-module (gnu packages xorg)
36 #:use-module (gnu packages gtk)
6e4da6ea 37 #:use-module (gnu packages xml)
b5b73a82 38 #:use-module ((guix licenses) #:prefix license:)
b387a1c5
AE
39 #:use-module (guix packages)
40 #:use-module (guix download)
1436c5c7 41 #:use-module (guix svn-download)
579760d0 42 #:use-module (guix git-download)
319e2d17 43 #:use-module (guix build-system cmake)
b387a1c5
AE
44 #:use-module (guix build-system gnu))
45
46(define-public freetype
47 (package
48 (name "freetype")
6983ba56 49 (version "2.6.3")
b387a1c5
AE
50 (source (origin
51 (method url-fetch)
36ee486f 52 (uri (string-append "mirror://savannah/freetype/freetype-"
9e91418b 53 version ".tar.bz2"))
b387a1c5 54 (sha256 (base32
6983ba56 55 "18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip"))))
b387a1c5 56 (build-system gnu-build-system)
6983ba56
SB
57 (native-inputs
58 `(("pkg-config" ,pkg-config)))
59 (propagated-inputs
60 ;; These are all in the Requires.private field of freetype2.pc.
61 ;; XXX: add harfbuzz.
62 `(("libpng" ,libpng)
63 ("zlib" ,zlib)))
35b9e423 64 (synopsis "Font rendering library")
b387a1c5
AE
65 (description
66 "Freetype is a library that can be used by applications to access the
35b9e423 67contents of font files. It provides a uniform interface to access font files.
b387a1c5 68It supports both bitmap and scalable formats, including TrueType, OpenType,
35b9e423 69Type1, CID, CFF, Windows FON/FNT, X11 PCF, and others. It supports high-speed
b387a1c5 70anti-aliased glyph bitmap generation with 256 gray levels.")
79c398a2 71 (license license:freetype) ; some files have other licenses
b387a1c5 72 (home-page "http://www.freetype.org/")))
6e4da6ea 73
1e69db8f
EB
74(define-public ttfautohint
75 (package
76 (name "ttfautohint")
77 (version "1.5")
78 (source
79 (origin
80 (method url-fetch)
81 (uri (string-append "mirror://savannah/freetype/ttfautohint-"
82 version ".tar.gz"))
83 (sha256
84 (base32
85 "1lgghck46p33z3hg8dnl76jryig4fh6d8rhzms837zp7x4hyfkv4"))
86 (patches (list (search-patch "ttfautohint-source-date-epoch.patch")))))
87 (build-system gnu-build-system)
88 (native-inputs
89 `(("flex" ,flex)
90 ("bison" ,bison)
91 ("pkg-config" ,pkg-config)))
92 (inputs
93 `(("freetype" ,freetype)
94 ("harfbuzz" ,harfbuzz)))
95 (arguments
96 `(#:configure-flags '("--with-qt=no"))) ;no gui
97 (synopsis "Automated font hinting")
98 (description
99 "ttfautohint provides a 99% automated hinting process and a platform for
100finely hand-hinting the last 1%. It is ideal for web fonts and supports many
101scripts.")
102 (license (list license:gpl2+ license:freetype)) ;choose one or the other
103 (home-page "http://www.freetype.org/ttfautohint/")))
104
508a85df
EB
105(define-public woff-tools
106 (package
107 (name "woff-tools")
108 (version "2009.10.04")
109 (source
110 (origin
111 (method url-fetch)
112 ;; Upstream source is unversioned, so use Debian's versioned tarball
113 (uri (string-append "mirror://debian/pool/main/w/woff-tools/"
114 "woff-tools_" version ".orig.tar.gz"))
115 (file-name (string-append name "-" version ".tar.gz"))
116 (sha256
117 (base32
118 "1i97gkqa6jfzlslsngqf556kx60knlgf7yc9pzsq2pizc6f0d4zl"))))
119 (build-system gnu-build-system)
120 (inputs
121 `(("zlib" ,zlib)))
122 (arguments
123 `(#:make-flags '("CC=gcc")
124 #:tests? #f ;no tests
125 #:phases
126 (modify-phases %standard-phases
127 (delete 'configure) ;no configuration
128 (replace 'install
129 (lambda* (#:key outputs #:allow-other-keys)
130 (let* ((out (assoc-ref outputs "out"))
131 (bin (string-append out "/bin")))
132 (install-file "sfnt2woff" bin)
133 (install-file "woff2sfnt" bin)))))))
134 (synopsis "Convert between OpenType and WOFF fonts")
135 (description
136 "This package provides two tools:
137@table @code
138@item sfnt2woff
139Converts OpenType fonts to WOFF fonts
140@item woff2sfnt
141Converts WOFF fonts to OpenType fonts
142@end table")
143 (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+))
144 (home-page "https://people.mozilla.com/~jkew/woff/")))
145
1555aee7
EB
146(define-public ttf2eot
147 (package
148 (name "ttf2eot")
149 (version "0.0.2-2")
150 (source
151 (origin
152 (method url-fetch)
153 (uri (string-append "https://storage.googleapis.com/"
154 "google-code-archive-downloads/v2/"
155 "code.google.com/ttf2eot/"
156 "ttf2eot-" version ".tar.gz"))
157 (sha256
158 (base32
159 "1f4dzzmhn0208dvbm3ia5ar6ls9apwc6ampy5blmfxkigi6z0g02"))
160 (patches (list (search-patch "ttf2eot-cstddef.patch")))))
161 (build-system gnu-build-system)
162 (arguments
163 `(#:tests? #f ;no tests
164 #:phases
165 (modify-phases %standard-phases
166 (delete 'configure) ;no configuration
167 (replace 'install
168 (lambda* (#:key outputs #:allow-other-keys)
169 (let* ((out (assoc-ref outputs "out"))
170 (bin (string-append out "/bin")))
171 (install-file "ttf2eot" bin)))))))
172 (synopsis "Convert from TrueType to Embeddable Open Type")
173 (description
174 "This package contains a commandline wrapper around OpenTypeUtilities.cpp
175from Chromium, used to make EOT (Embeddable Open Type) files from
176TTF (TrueType/OpenType Font) files.")
177 ;; While the README states "License: Derived from WebKit, so BSD/LGPL
178 ;; 2/LGPL 2.1", the single derived source file includes only BSD in its
179 ;; license header, and the wrapper source contains no license header.
180 (license license:bsd-2)
181 (home-page "https://code.google.com/archive/p/ttf2eot/")))
182
579760d0
EB
183(define-public woff2
184 (let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede")
185 (revision "1"))
186 (package
187 (name "woff2")
188 (version (string-append "20160306-" revision "."
189 (string-take commit 7)))
190 (source (origin
191 (method git-fetch)
192 (uri (git-reference
193 (url "https://github.com/google/woff2.git")
194 (commit commit)))
195 (file-name (string-append name "-" version ".tar.xz"))
196 (sha256
197 (base32
198 "0wka0yhf0cjmd4rv2jckxpyv6lb5ckj4nj0k1ajq5hrjy7f30lcp"))
199 (patches (list (search-patch "woff2-libbrotli.patch")))))
200 (build-system gnu-build-system)
201 (native-inputs
202 `(("pkg-config" ,pkg-config)))
203 (inputs
204 `(("brotli" ,brotli)))
205 (arguments
206 `(#:tests? #f ;no tests
207 #:phases (modify-phases %standard-phases
208 (delete 'configure)
209 (replace 'install
210 (lambda* (#:key outputs #:allow-other-keys)
211 (let* ((out (assoc-ref outputs "out"))
212 (bin (string-append out "/bin")))
213 (install-file "woff2_compress" bin)
214 (install-file "woff2_decompress" bin)
215 #t))))))
216 (synopsis "Compress TrueType fonts to WOFF2")
217 (description
218 "This package provides utilities for compressing/decompressing TrueType
219fonts to/from the WOFF2 format.")
220 (license license:asl2.0)
221 (home-page "https://github.com/google/woff2"))))
222
6e4da6ea
AE
223(define-public fontconfig
224 (package
225 (name "fontconfig")
030fa12e 226 (version "2.11.94")
6e4da6ea
AE
227 (source (origin
228 (method url-fetch)
229 (uri (string-append
5cc3096c 230 "https://www.freedesktop.org/software/fontconfig/release/fontconfig-"
6e4da6ea
AE
231 version ".tar.bz2"))
232 (sha256 (base32
030fa12e 233 "1psrl4b4gi4wmbvwwh43lk491wsl8lgvqj146prlcha3vwjc0qyp"))))
6e4da6ea 234 (build-system gnu-build-system)
80650d77
MW
235 (propagated-inputs `(("expat" ,expat)
236 ("freetype" ,freetype)))
237 (inputs `(("gs-fonts" ,gs-fonts)))
c4c4cc05
JD
238 (native-inputs
239 `(("pkg-config" ,pkg-config)))
0ceea4f3 240 (arguments
030fa12e
SB
241 `(#:configure-flags
242 (list "--with-cache-dir=/var/cache/fontconfig"
243 ;; register gs-fonts as default fonts
244 (string-append "--with-default-fonts="
245 (assoc-ref %build-inputs "gs-fonts")
246 "/share/fonts")
e71ef7ad 247
030fa12e 248 ;; register fonts from user profile
e71ef7ad
LC
249 ;; TODO: Add /run/current-system/profile/share/fonts and remove
250 ;; the skeleton that works around it from 'default-skeletons'.
030fa12e 251 "--with-add-fonts=~/.guix-profile/share/fonts"
e71ef7ad 252
030fa12e
SB
253 ;; python is not actually needed
254 "PYTHON=false")
255 #:phases
256 (modify-phases %standard-phases
257 (replace 'install
258 (lambda _
259 ;; Don't try to create /var/cache/fontconfig.
260 (zero? (system* "make" "install"
261 "fc_cachedir=$(TMPDIR)"
262 "RUN_FC_CACHE_TEST=false")))))))
9e771e3b 263 (synopsis "Library for configuring and customizing font access")
6e4da6ea
AE
264 (description
265 "Fontconfig can discover new fonts when installed automatically;
266perform font name substitution, so that appropriate alternative fonts can
267be selected if fonts are missing;
268identify the set of fonts required to completely cover a set of languages;
269have GUI configuration tools built as it uses an XML-based configuration file;
270efficiently and quickly find needed fonts among the set of installed fonts;
271be used in concert with the X Render Extension and FreeType to implement
272high quality, anti-aliased and subpixel rendered text on a display.")
273 ; The exact license is more X11-style than BSD-style.
166191b3 274 (license (license:non-copyleft "file://COPYING"
6e4da6ea
AE
275 "See COPYING in the distribution."))
276 (home-page "http://www.freedesktop.org/wiki/Software/fontconfig")))
313b9012
AE
277
278(define-public t1lib
279 (package
280 (name "t1lib")
281 (version "5.1.2")
282 (source (origin
283 (method url-fetch)
284 (uri "ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz")
285 (sha256 (base32
286 "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2"))))
287 (build-system gnu-build-system)
288 (arguments
289 ;; Making the documentation requires latex, but t1lib is also an input
290 ;; for building texlive.
291 `(#:tests? #f ; no test target
292 #:make-flags
293 '("without_doc")))
9e771e3b 294 (synopsis "Library for generating bitmaps from Type 1 fonts")
313b9012
AE
295 (description
296 "T1lib is a library for generating/rasterising bitmaps from Type 1 fonts.
297It is based on the code of the X11 rasteriser of the X11 project.
298
299The bitmaps created by t1lib are returned in a data structure with type
35b9e423
EB
300GLYPH. This special GLYPH-type is also used in the X11 window system to
301describe character bitmaps. It contains the bitmap data as well as some
302metric information. But t1lib is in itself entirely independent of the
303X11-system or any other graphical user interface.")
313b9012
AE
304 (license license:gpl2)
305 (home-page "http://www.t1lib.org/")))
e5c0701f
AE
306
307(define-public teckit
308 (package
309 (name "teckit")
1436c5c7 310 (version "2.5.4")
e5c0701f 311 (source (origin
1436c5c7
AE
312 ;; Downloaded tarballs vary with each download, so we use an
313 ;; svn snapshot. The 2.5.4 release seems to be made in r128,
314 ;; but r132 updates additional files to contain the correct
315 ;; version number (r129 to r131 do not concern TRUNK).
316 (method svn-fetch)
317 (uri (svn-reference
318 (url "https://scripts.sil.org/svn-public/teckit/TRUNK")
319 (revision 132)))
320 (file-name (string-append name "-" version))
321 (sha256
322 (base32
323 "1xqkqgw30pb24snh46srmjs2j4zhz2dfi5pf7znia0k34mrpwivz"))))
e5c0701f 324 (build-system gnu-build-system)
01eafd38 325 (inputs `(("zlib" ,zlib)))
1436c5c7
AE
326 (native-inputs
327 `(("autoconf" ,autoconf)
328 ("automake" ,automake)
329 ("libtool" ,libtool)
330 ("perl" ,perl))) ; for the tests
331 (arguments
332 `(#:phases
333 (modify-phases %standard-phases
334 (add-after 'unpack 'autogen
335 (lambda _
336 (zero? (system* "sh" "autogen.sh")))))))
35b9e423 337 (synopsis "Toolkit for encoding conversions")
e5c0701f
AE
338 (description
339 "TECkit is a low-level toolkit intended to be used by other applications
340that need to perform encoding conversions (e.g., when importing legacy data
35b9e423 341into a Unicode-based application). The primary component of the TECkit
e5c0701f 342package is therefore a library that performs conversions; this is the
35b9e423 343\"TECkit engine\". The engine relies on mapping tables in a specific binary
e5c0701f
AE
344format (for which documentation is available); there is a compiler that
345creates such tables from a human-readable mapping description (a simple
346text file).
347
348To facilitate the development and testing of mapping tables for TECkit,
349several applications are also included in the current package; these
350include simple tools for applying conversions to plain-text and Standard
351Format files, as well as both command-line and simple GUI versions of the
35b9e423 352TECkit compiler. However, it is not intended that these tools will be the
e5c0701f
AE
353primary means by which end users perform conversions, and they have not
354been designed, tested, and debugged to the extent that general-purpose
355applications should be.")
356 (license license:lgpl2.1+)
357 (home-page "http://scripts.sil.org/cms/scripts/page.php?cat_id=teckit")))
319e2d17
AE
358
359(define-public graphite2
360 (package
361 (name "graphite2")
6983ba56 362 (version "1.3.8")
319e2d17
AE
363 (source
364 (origin
365 (method url-fetch)
6983ba56
SB
366 (uri (string-append "https://github.com/silnrsi/graphite/releases/"
367 "download/" version "/" name "-" version ".tgz"))
319e2d17 368 (sha256
297a36ab 369 (base32
6983ba56 370 "1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz"))))
319e2d17 371 (build-system cmake-build-system)
e6f22a82
SB
372 (native-inputs
373 `(("python" ,python-2) ; because of "import imap" in tests
374 ("python-fonttools" ,python2-fonttools)))
319e2d17 375 (inputs
e6f22a82 376 `(("freetype" ,freetype)))
35b9e423 377 (synopsis "Reimplementation of the SIL Graphite text processing engine")
319e2d17
AE
378 (description
379 "Graphite2 is a reimplementation of the SIL Graphite text processing
380engine. Graphite is a smart font technology designed to facilitate the
381process known as shaping. This process takes an input Unicode text string
382and returns a sequence of positioned glyphids from the font.")
383 (license license:lgpl2.1+)
e86409c5 384 (home-page "https://github.com/silnrsi/graphite")))
ee69f85c
EB
385
386(define-public potrace
387 (package
388 (name "potrace")
389 (version "1.11")
390 (source
391 (origin
392 (method url-fetch)
393 (uri (string-append "mirror://sourceforge/potrace/potrace-"
394 version ".tar.gz"))
395 (sha256
396 (base32
397 "1bbyl7jgigawmwc8r14znv8lb6lrcxh8zpvynrl6s800dr4yp9as"))))
398 (build-system gnu-build-system)
399 (native-inputs `(("ghostscript" ,ghostscript))) ;for tests
400 (inputs `(("zlib" ,zlib)))
4797d84d
AE
401 (arguments
402 `(#:configure-flags
403 `("--with-libpotrace"))) ; install library and headers
ee69f85c
EB
404 (synopsis "Transform bitmaps into vector graphics")
405 (description
406 "Potrace is a tool for tracing a bitmap, which means, transforming a
407bitmap into a smooth, scalable image. The input is a bitmap (PBM, PGM, PPM,
408or BMP format), and the default output is an encapsulated PostScript
409file (EPS). A typical use is to create EPS files from scanned data, such as
410company or university logos, handwritten notes, etc. The resulting image is
411not \"jaggy\" like a bitmap, but smooth. It can then be rendered at any
412resolution.")
413 (license license:gpl2+)
414 (home-page "http://potrace.sourceforge.net/")))
5277dbb0 415
6ef0ec76
RJ
416(define-public libotf
417 (package
418 (name "libotf")
419 (version "0.9.13")
420 (source (origin
421 (method url-fetch)
422 (uri (string-append
8b15f42c 423 "mirror://savannah/releases/m17n/libotf-"
6ef0ec76
RJ
424 version ".tar.gz"))
425 (sha256
426 (base32 "0239zvfan56w7vrppriwy77fzb10ag9llaz15nsraps2a2x6di3v"))))
427 (build-system gnu-build-system)
428 (propagated-inputs
429 `(("freetype" ,freetype)))
430 (home-page "http://www.nongnu.org/m17n/")
431 (synopsis "Library for handling OpenType Font")
432 (description "This library can read Open Type Layout Tables from an OTF
433file. Currently these tables are supported; head, name, cmap, GDEF, GSUB, and
434GPOS. It can convert a Unicode character sequence to a glyph code sequence by
435using the above tables.")
436 (license license:lgpl2.0+)))
437
5277dbb0
EB
438(define-public libspiro
439 (package
440 (name "libspiro")
441 (version "20071029")
442 (source
443 (origin
444 (method url-fetch)
445 (uri (string-append "mirror://sourceforge/libspiro/libspiro/"
446 version "/libspiro_src-" version ".tar.bz2"))
447 (sha256
448 (base32
449 "1kylz8pvwnb85yya150r9i6mhbpzx38f32qy523qg3ylgd9b3zhy"))))
450 (build-system gnu-build-system)
451 (arguments `(#:tests? #f)) ;no tests
452 (synopsis "Clothoid to bezier conversion library")
453 (description
454 "Raph Levien's Spiro package as a library. A mechanism for drawing
455smooth contours with constant curvature at the spline joins.")
456 (license license:gpl2+)
457 (home-page "http://libspiro.sourceforge.net/")))
f945bf06
EB
458
459(define-public libuninameslist
460 (package
461 (name "libuninameslist")
5c85c726 462 (version "0.5.20150701")
f945bf06
EB
463 (source
464 (origin
465 (method url-fetch)
466 (uri (string-append "https://github.com/fontforge/libuninameslist/"
467 "archive/" version ".tar.gz"))
efe0be6d 468 (file-name (string-append name "-" version ".tar.gz"))
f945bf06
EB
469 (sha256
470 (base32
5c85c726 471 "1j6147l100rppw7axlrkdx0p35fax6bz2zh1xgpg7a3b4pmqaj3v"))))
f945bf06
EB
472 (build-system gnu-build-system)
473 (native-inputs `(("autoconf" ,autoconf)
474 ("automake" ,automake)
3246cc91 475 ("libtool" ,libtool)))
f945bf06 476 (arguments
722ec722
MW
477 `(#:phases (alist-cons-after
478 'unpack 'bootstrap
f945bf06
EB
479 (lambda _
480 (zero? (system* "autoreconf" "-vi")))
481 %standard-phases)))
482 (synopsis "Unicode names and annotation list")
483 (description
484 "LibUniNamesList holds www.unicode.org Nameslist.txt data which can be
485useful for programs that need Unicode \"Names\", \"Annotations\", and block
486definitions.")
487 (license license:gpl2)
488 (home-page "https://github.com/fontforge/libuninameslist")))
0c115d8c
EB
489
490(define-public fontforge
491 (package
492 (name "fontforge")
927e176d 493 (version "20160404")
0c115d8c
EB
494 (source (origin
495 (method url-fetch)
56586557
AE
496 (uri (string-append
497 "https://github.com/fontforge/fontforge/releases/download/"
927e176d 498 version "/fontforge-dist-" version ".tar.gz"))
0c115d8c 499 (sha256 (base32
927e176d 500 "1kavnhbkzc1hk6f39fynq9s0haama81ddrbld4b5x60d0dbaawvc"))
329a7026
LC
501 (modules '((guix build utils)))
502 (snippet
52af45ad
AE
503 '(begin
504 ;; Make builds bit-reproducible by using fixed date strings.
505 (substitute* "configure"
506 (("^FONTFORGE_MODTIME=.*$")
927e176d 507 "FONTFORGE_MODTIME=\"1459819518L\"\n")
52af45ad 508 (("^FONTFORGE_MODTIME_STR=.*$")
927e176d 509 "FONTFORGE_MODTIME_STR=\"20:25 CDT 4-Apr-2016\"\n")
52af45ad 510 (("^FONTFORGE_VERSIONDATE=.*$")
5391be11
EB
511 "FONTFORGE_VERSIONDATE=\"20160404\"\n"))))
512 (patches (list (search-patch "fontforge-svg-modtime.patch")))))
0c115d8c 513 (build-system gnu-build-system)
56586557
AE
514 (native-inputs
515 `(("pkg-config" ,pkg-config)))
516 (inputs `(("cairo" ,cairo)
517 ("fontconfig" ,fontconfig) ;dlopen'd
518 ("freetype" ,freetype)
519 ("gettext" ,gnu-gettext)
56586557 520 ("glib" ,glib) ;needed for pango detection
0c115d8c
EB
521 ("libICE" ,libice)
522 ("libSM" ,libsm)
56586557
AE
523 ("libX11" ,libx11)
524 ("libXi" ,libxi)
525 ("libjpeg" ,libjpeg)
526 ("libltdl" ,libltdl)
527 ("libpng" ,libpng)
0c115d8c 528 ("libspiro" ,libspiro)
56586557 529 ("libtiff" ,libtiff)
de946028 530 ("libungif" ,libungif)
0c115d8c 531 ("libuninameslist" ,libuninameslist)
56586557
AE
532 ("libxft" ,libxft)
533 ("libxml2" ,libxml2)
0c115d8c 534 ("pango" ,pango)
56586557
AE
535 ("potrace" ,potrace)
536 ("python" ,python)
537 ("zlib" ,zlib)))
0c115d8c 538 (arguments
56586557 539 '(#:tests? #f
0c115d8c 540 #:phases
5ab869f9 541 (modify-phases %standard-phases
5f031ed2
EB
542 (add-after 'build 'build-contrib
543 (lambda* (#:key outputs #:allow-other-keys)
544 (let* ((out (assoc-ref outputs "out"))
545 (bin (string-append out "/bin")))
546 (and (zero? (system* "make" "-Ccontrib/fonttools"
547 "CC=gcc" "showttf"))
548 (begin (install-file "contrib/fonttools/showttf" bin)
549 #t)))))
5ab869f9
EB
550 (add-after 'install 'set-library-path
551 (lambda* (#:key inputs outputs #:allow-other-keys)
552 (let ((out (assoc-ref outputs "out"))
553 (potrace (string-append (assoc-ref inputs "potrace") "/bin")))
554 (wrap-program (string-append out "/bin/fontforge")
555 ;; Fontforge dynamically opens libraries.
556 `("LD_LIBRARY_PATH" ":" prefix
557 ,(map (lambda (input)
558 (string-append (assoc-ref inputs input)
559 "/lib"))
de946028 560 '("libtiff" "libjpeg" "libpng" "libungif"
5ab869f9
EB
561 "libxml2" "zlib" "libspiro" "freetype"
562 "pango" "cairo" "fontconfig")))
563 ;; Checks for potrace program at runtime
564 `("PATH" ":" prefix (,potrace)))))))))
0c115d8c
EB
565 (synopsis "Outline font editor")
566 (description
567 "FontForge allows you to create and modify postscript, truetype and
568opentype fonts. You can save fonts in many different outline formats, and
569generate bitmaps.")
56586557 570 (license license:gpl3+)
0c115d8c 571 (home-page "http://fontforge.org/")))