gnu: potrace: Update to 1.13 [fixes CVE-2013-7437].
[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)
a60c705b
EF
284 (uri (list (string-append "ftp://sunsite.unc.edu/pub/Linux/libs/"
285 "graphics/" name "-" version ".tar.gz")
286 (string-append "https://fossies.org/linux/misc/old/"
287 name "-" version ".tar.gz")))
313b9012
AE
288 (sha256 (base32
289 "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2"))))
290 (build-system gnu-build-system)
291 (arguments
292 ;; Making the documentation requires latex, but t1lib is also an input
293 ;; for building texlive.
294 `(#:tests? #f ; no test target
295 #:make-flags
296 '("without_doc")))
9e771e3b 297 (synopsis "Library for generating bitmaps from Type 1 fonts")
313b9012
AE
298 (description
299 "T1lib is a library for generating/rasterising bitmaps from Type 1 fonts.
300It is based on the code of the X11 rasteriser of the X11 project.
301
302The bitmaps created by t1lib are returned in a data structure with type
35b9e423
EB
303GLYPH. This special GLYPH-type is also used in the X11 window system to
304describe character bitmaps. It contains the bitmap data as well as some
305metric information. But t1lib is in itself entirely independent of the
306X11-system or any other graphical user interface.")
313b9012
AE
307 (license license:gpl2)
308 (home-page "http://www.t1lib.org/")))
e5c0701f
AE
309
310(define-public teckit
311 (package
312 (name "teckit")
1436c5c7 313 (version "2.5.4")
e5c0701f 314 (source (origin
1436c5c7
AE
315 ;; Downloaded tarballs vary with each download, so we use an
316 ;; svn snapshot. The 2.5.4 release seems to be made in r128,
317 ;; but r132 updates additional files to contain the correct
318 ;; version number (r129 to r131 do not concern TRUNK).
319 (method svn-fetch)
320 (uri (svn-reference
321 (url "https://scripts.sil.org/svn-public/teckit/TRUNK")
322 (revision 132)))
323 (file-name (string-append name "-" version))
324 (sha256
325 (base32
326 "1xqkqgw30pb24snh46srmjs2j4zhz2dfi5pf7znia0k34mrpwivz"))))
e5c0701f 327 (build-system gnu-build-system)
01eafd38 328 (inputs `(("zlib" ,zlib)))
1436c5c7
AE
329 (native-inputs
330 `(("autoconf" ,autoconf)
331 ("automake" ,automake)
332 ("libtool" ,libtool)
333 ("perl" ,perl))) ; for the tests
334 (arguments
335 `(#:phases
336 (modify-phases %standard-phases
337 (add-after 'unpack 'autogen
338 (lambda _
339 (zero? (system* "sh" "autogen.sh")))))))
35b9e423 340 (synopsis "Toolkit for encoding conversions")
e5c0701f
AE
341 (description
342 "TECkit is a low-level toolkit intended to be used by other applications
343that need to perform encoding conversions (e.g., when importing legacy data
35b9e423 344into a Unicode-based application). The primary component of the TECkit
e5c0701f 345package is therefore a library that performs conversions; this is the
35b9e423 346\"TECkit engine\". The engine relies on mapping tables in a specific binary
e5c0701f
AE
347format (for which documentation is available); there is a compiler that
348creates such tables from a human-readable mapping description (a simple
349text file).
350
351To facilitate the development and testing of mapping tables for TECkit,
352several applications are also included in the current package; these
353include simple tools for applying conversions to plain-text and Standard
354Format files, as well as both command-line and simple GUI versions of the
35b9e423 355TECkit compiler. However, it is not intended that these tools will be the
e5c0701f
AE
356primary means by which end users perform conversions, and they have not
357been designed, tested, and debugged to the extent that general-purpose
358applications should be.")
359 (license license:lgpl2.1+)
360 (home-page "http://scripts.sil.org/cms/scripts/page.php?cat_id=teckit")))
319e2d17
AE
361
362(define-public graphite2
363 (package
364 (name "graphite2")
6983ba56 365 (version "1.3.8")
319e2d17
AE
366 (source
367 (origin
368 (method url-fetch)
6983ba56
SB
369 (uri (string-append "https://github.com/silnrsi/graphite/releases/"
370 "download/" version "/" name "-" version ".tgz"))
319e2d17 371 (sha256
297a36ab 372 (base32
6983ba56 373 "1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz"))))
319e2d17 374 (build-system cmake-build-system)
e6f22a82
SB
375 (native-inputs
376 `(("python" ,python-2) ; because of "import imap" in tests
377 ("python-fonttools" ,python2-fonttools)))
319e2d17 378 (inputs
e6f22a82 379 `(("freetype" ,freetype)))
35b9e423 380 (synopsis "Reimplementation of the SIL Graphite text processing engine")
319e2d17
AE
381 (description
382 "Graphite2 is a reimplementation of the SIL Graphite text processing
383engine. Graphite is a smart font technology designed to facilitate the
384process known as shaping. This process takes an input Unicode text string
385and returns a sequence of positioned glyphids from the font.")
386 (license license:lgpl2.1+)
e86409c5 387 (home-page "https://github.com/silnrsi/graphite")))
ee69f85c
EB
388
389(define-public potrace
390 (package
391 (name "potrace")
922fe075 392 (version "1.13")
ee69f85c
EB
393 (source
394 (origin
395 (method url-fetch)
396 (uri (string-append "mirror://sourceforge/potrace/potrace-"
397 version ".tar.gz"))
398 (sha256
399 (base32
922fe075 400 "115p2vgyq7p2mf4nidk2x3aa341nvv2v8ml056vbji36df5l6lk2"))))
ee69f85c
EB
401 (build-system gnu-build-system)
402 (native-inputs `(("ghostscript" ,ghostscript))) ;for tests
403 (inputs `(("zlib" ,zlib)))
4797d84d
AE
404 (arguments
405 `(#:configure-flags
406 `("--with-libpotrace"))) ; install library and headers
ee69f85c
EB
407 (synopsis "Transform bitmaps into vector graphics")
408 (description
409 "Potrace is a tool for tracing a bitmap, which means, transforming a
410bitmap into a smooth, scalable image. The input is a bitmap (PBM, PGM, PPM,
411or BMP format), and the default output is an encapsulated PostScript
412file (EPS). A typical use is to create EPS files from scanned data, such as
413company or university logos, handwritten notes, etc. The resulting image is
414not \"jaggy\" like a bitmap, but smooth. It can then be rendered at any
415resolution.")
416 (license license:gpl2+)
417 (home-page "http://potrace.sourceforge.net/")))
5277dbb0 418
6ef0ec76
RJ
419(define-public libotf
420 (package
421 (name "libotf")
422 (version "0.9.13")
423 (source (origin
424 (method url-fetch)
425 (uri (string-append
8b15f42c 426 "mirror://savannah/releases/m17n/libotf-"
6ef0ec76
RJ
427 version ".tar.gz"))
428 (sha256
429 (base32 "0239zvfan56w7vrppriwy77fzb10ag9llaz15nsraps2a2x6di3v"))))
430 (build-system gnu-build-system)
431 (propagated-inputs
432 `(("freetype" ,freetype)))
433 (home-page "http://www.nongnu.org/m17n/")
434 (synopsis "Library for handling OpenType Font")
435 (description "This library can read Open Type Layout Tables from an OTF
436file. Currently these tables are supported; head, name, cmap, GDEF, GSUB, and
437GPOS. It can convert a Unicode character sequence to a glyph code sequence by
438using the above tables.")
439 (license license:lgpl2.0+)))
440
5277dbb0
EB
441(define-public libspiro
442 (package
443 (name "libspiro")
444 (version "20071029")
445 (source
446 (origin
447 (method url-fetch)
448 (uri (string-append "mirror://sourceforge/libspiro/libspiro/"
449 version "/libspiro_src-" version ".tar.bz2"))
450 (sha256
451 (base32
452 "1kylz8pvwnb85yya150r9i6mhbpzx38f32qy523qg3ylgd9b3zhy"))))
453 (build-system gnu-build-system)
454 (arguments `(#:tests? #f)) ;no tests
455 (synopsis "Clothoid to bezier conversion library")
456 (description
457 "Raph Levien's Spiro package as a library. A mechanism for drawing
458smooth contours with constant curvature at the spline joins.")
459 (license license:gpl2+)
460 (home-page "http://libspiro.sourceforge.net/")))
f945bf06
EB
461
462(define-public libuninameslist
463 (package
464 (name "libuninameslist")
5c85c726 465 (version "0.5.20150701")
f945bf06
EB
466 (source
467 (origin
468 (method url-fetch)
469 (uri (string-append "https://github.com/fontforge/libuninameslist/"
470 "archive/" version ".tar.gz"))
efe0be6d 471 (file-name (string-append name "-" version ".tar.gz"))
f945bf06
EB
472 (sha256
473 (base32
5c85c726 474 "1j6147l100rppw7axlrkdx0p35fax6bz2zh1xgpg7a3b4pmqaj3v"))))
f945bf06
EB
475 (build-system gnu-build-system)
476 (native-inputs `(("autoconf" ,autoconf)
477 ("automake" ,automake)
3246cc91 478 ("libtool" ,libtool)))
f945bf06 479 (arguments
722ec722
MW
480 `(#:phases (alist-cons-after
481 'unpack 'bootstrap
f945bf06
EB
482 (lambda _
483 (zero? (system* "autoreconf" "-vi")))
484 %standard-phases)))
485 (synopsis "Unicode names and annotation list")
486 (description
487 "LibUniNamesList holds www.unicode.org Nameslist.txt data which can be
488useful for programs that need Unicode \"Names\", \"Annotations\", and block
489definitions.")
490 (license license:gpl2)
491 (home-page "https://github.com/fontforge/libuninameslist")))
0c115d8c
EB
492
493(define-public fontforge
494 (package
495 (name "fontforge")
927e176d 496 (version "20160404")
0c115d8c
EB
497 (source (origin
498 (method url-fetch)
56586557
AE
499 (uri (string-append
500 "https://github.com/fontforge/fontforge/releases/download/"
927e176d 501 version "/fontforge-dist-" version ".tar.gz"))
0c115d8c 502 (sha256 (base32
927e176d 503 "1kavnhbkzc1hk6f39fynq9s0haama81ddrbld4b5x60d0dbaawvc"))
329a7026
LC
504 (modules '((guix build utils)))
505 (snippet
52af45ad
AE
506 '(begin
507 ;; Make builds bit-reproducible by using fixed date strings.
508 (substitute* "configure"
509 (("^FONTFORGE_MODTIME=.*$")
927e176d 510 "FONTFORGE_MODTIME=\"1459819518L\"\n")
52af45ad 511 (("^FONTFORGE_MODTIME_STR=.*$")
927e176d 512 "FONTFORGE_MODTIME_STR=\"20:25 CDT 4-Apr-2016\"\n")
52af45ad 513 (("^FONTFORGE_VERSIONDATE=.*$")
5391be11
EB
514 "FONTFORGE_VERSIONDATE=\"20160404\"\n"))))
515 (patches (list (search-patch "fontforge-svg-modtime.patch")))))
0c115d8c 516 (build-system gnu-build-system)
56586557
AE
517 (native-inputs
518 `(("pkg-config" ,pkg-config)))
519 (inputs `(("cairo" ,cairo)
520 ("fontconfig" ,fontconfig) ;dlopen'd
521 ("freetype" ,freetype)
522 ("gettext" ,gnu-gettext)
56586557 523 ("glib" ,glib) ;needed for pango detection
0c115d8c
EB
524 ("libICE" ,libice)
525 ("libSM" ,libsm)
56586557
AE
526 ("libX11" ,libx11)
527 ("libXi" ,libxi)
528 ("libjpeg" ,libjpeg)
529 ("libltdl" ,libltdl)
530 ("libpng" ,libpng)
0c115d8c 531 ("libspiro" ,libspiro)
56586557 532 ("libtiff" ,libtiff)
de946028 533 ("libungif" ,libungif)
0c115d8c 534 ("libuninameslist" ,libuninameslist)
56586557
AE
535 ("libxft" ,libxft)
536 ("libxml2" ,libxml2)
0c115d8c 537 ("pango" ,pango)
56586557
AE
538 ("potrace" ,potrace)
539 ("python" ,python)
540 ("zlib" ,zlib)))
0c115d8c 541 (arguments
56586557 542 '(#:tests? #f
0c115d8c 543 #:phases
5ab869f9 544 (modify-phases %standard-phases
5f031ed2
EB
545 (add-after 'build 'build-contrib
546 (lambda* (#:key outputs #:allow-other-keys)
547 (let* ((out (assoc-ref outputs "out"))
548 (bin (string-append out "/bin")))
549 (and (zero? (system* "make" "-Ccontrib/fonttools"
550 "CC=gcc" "showttf"))
551 (begin (install-file "contrib/fonttools/showttf" bin)
552 #t)))))
5ab869f9
EB
553 (add-after 'install 'set-library-path
554 (lambda* (#:key inputs outputs #:allow-other-keys)
555 (let ((out (assoc-ref outputs "out"))
556 (potrace (string-append (assoc-ref inputs "potrace") "/bin")))
557 (wrap-program (string-append out "/bin/fontforge")
558 ;; Fontforge dynamically opens libraries.
559 `("LD_LIBRARY_PATH" ":" prefix
560 ,(map (lambda (input)
561 (string-append (assoc-ref inputs input)
562 "/lib"))
de946028 563 '("libtiff" "libjpeg" "libpng" "libungif"
5ab869f9
EB
564 "libxml2" "zlib" "libspiro" "freetype"
565 "pango" "cairo" "fontconfig")))
566 ;; Checks for potrace program at runtime
567 `("PATH" ":" prefix (,potrace)))))))))
0c115d8c
EB
568 (synopsis "Outline font editor")
569 (description
570 "FontForge allows you to create and modify postscript, truetype and
571opentype fonts. You can save fonts in many different outline formats, and
572generate bitmaps.")
56586557 573 (license license:gpl3+)
0c115d8c 574 (home-page "http://fontforge.org/")))