Commit | Line | Data |
---|---|---|
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> |
0be22e44 | 5 | ;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il> |
37e78bc7 | 6 | ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> |
4c20b0bc | 7 | ;;; Copyright © 2017 Leo Famulari <leo@famulari.name> |
3c986a7d | 8 | ;;; Copyright © 2017 Nikita <nikita@n0.is> |
af18fff0 | 9 | ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> |
695c501d | 10 | ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> |
7670efef | 11 | ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org> |
6e3cbafb | 12 | ;;; Copyright © 2019, 2020 Marius Bakke <mbakke@fastmail.com> |
cc51c03f | 13 | ;;; Copyright © 2020 Roel Janssen <roel@gnu.org> |
a1797f32 | 14 | ;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr> |
b387a1c5 AE |
15 | ;;; |
16 | ;;; This file is part of GNU Guix. | |
17 | ;;; | |
18 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | |
19 | ;;; under the terms of the GNU General Public License as published by | |
20 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
21 | ;;; your option) any later version. | |
22 | ;;; | |
23 | ;;; GNU Guix is distributed in the hope that it will be useful, but | |
24 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | |
25 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
26 | ;;; GNU General Public License for more details. | |
27 | ;;; | |
28 | ;;; You should have received a copy of the GNU General Public License | |
29 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | |
30 | ||
a86177d6 | 31 | (define-module (gnu packages fontutils) |
b387a1c5 | 32 | #:use-module (gnu packages) |
e5c0701f | 33 | #:use-module (gnu packages compression) |
427a51fd | 34 | #:use-module (gnu packages check) |
b972db72 | 35 | #:use-module (gnu packages ghostscript) |
019c0eda | 36 | #:use-module (gnu packages linux) |
319e2d17 | 37 | #:use-module (gnu packages perl) |
6e4da6ea | 38 | #:use-module (gnu packages pkg-config) |
f945bf06 | 39 | #:use-module (gnu packages autotools) |
ab9de8cf | 40 | #:use-module (gnu packages fonts) |
0c115d8c | 41 | #:use-module (gnu packages gettext) |
319e2d17 | 42 | #:use-module (gnu packages python) |
44d10b1f | 43 | #:use-module (gnu packages python-xyz) |
0c115d8c | 44 | #:use-module (gnu packages image) |
1e69db8f EB |
45 | #:use-module (gnu packages bison) |
46 | #:use-module (gnu packages flex) | |
0c115d8c | 47 | #:use-module (gnu packages glib) |
70564e71 | 48 | #:use-module (gnu packages gperf) |
0c115d8c | 49 | #:use-module (gnu packages xorg) |
a1797f32 | 50 | #:use-module (gnu packages fribidi) |
0c115d8c | 51 | #:use-module (gnu packages gtk) |
6e4da6ea | 52 | #:use-module (gnu packages xml) |
ad8aaf47 BD |
53 | #:use-module (gnu packages sqlite) |
54 | #:use-module (gnu packages gnome) | |
55 | #:use-module (gnu packages freedesktop) | |
b5b73a82 | 56 | #:use-module ((guix licenses) #:prefix license:) |
b387a1c5 AE |
57 | #:use-module (guix packages) |
58 | #:use-module (guix download) | |
1436c5c7 | 59 | #:use-module (guix svn-download) |
579760d0 | 60 | #:use-module (guix git-download) |
319e2d17 | 61 | #:use-module (guix build-system cmake) |
427a51fd | 62 | #:use-module (guix build-system gnu) |
ad8aaf47 | 63 | #:use-module (guix build-system python) |
4affa918 MB |
64 | #:use-module (guix build-system meson) |
65 | #:use-module (guix utils) | |
66 | #:use-module (srfi srfi-1)) | |
b387a1c5 AE |
67 | |
68 | (define-public freetype | |
69 | (package | |
70 | (name "freetype") | |
e81b14f0 | 71 | (version "2.10.1") |
b387a1c5 AE |
72 | (source (origin |
73 | (method url-fetch) | |
36ee486f | 74 | (uri (string-append "mirror://savannah/freetype/freetype-" |
e81b14f0 | 75 | version ".tar.xz")) |
b387a1c5 | 76 | (sha256 (base32 |
e81b14f0 | 77 | "0vx2dg1jh5kq34dd6ifpjywkpapp8a7p1bvyq9yq5zi1i94gmnqn")))) |
b387a1c5 | 78 | (build-system gnu-build-system) |
695c501d RW |
79 | (arguments |
80 | ;; The use of "freetype-config" is deprecated, but other packages still | |
81 | ;; depend on it. | |
82 | `(#:configure-flags (list "--enable-freetype-config"))) | |
6983ba56 SB |
83 | (native-inputs |
84 | `(("pkg-config" ,pkg-config))) | |
85 | (propagated-inputs | |
86 | ;; These are all in the Requires.private field of freetype2.pc. | |
87 | ;; XXX: add harfbuzz. | |
88 | `(("libpng" ,libpng) | |
89 | ("zlib" ,zlib))) | |
35b9e423 | 90 | (synopsis "Font rendering library") |
b387a1c5 AE |
91 | (description |
92 | "Freetype is a library that can be used by applications to access the | |
35b9e423 | 93 | contents of font files. It provides a uniform interface to access font files. |
b387a1c5 | 94 | It supports both bitmap and scalable formats, including TrueType, OpenType, |
35b9e423 | 95 | Type1, CID, CFF, Windows FON/FNT, X11 PCF, and others. It supports high-speed |
b387a1c5 | 96 | anti-aliased glyph bitmap generation with 256 gray levels.") |
79c398a2 | 97 | (license license:freetype) ; some files have other licenses |
c70047f1 | 98 | (home-page "https://www.freetype.org/"))) |
6e4da6ea | 99 | |
1e69db8f EB |
100 | (define-public ttfautohint |
101 | (package | |
102 | (name "ttfautohint") | |
0be22e44 | 103 | (version "1.8.3") |
1e69db8f EB |
104 | (source |
105 | (origin | |
106 | (method url-fetch) | |
107 | (uri (string-append "mirror://savannah/freetype/ttfautohint-" | |
108 | version ".tar.gz")) | |
109 | (sha256 | |
110 | (base32 | |
0be22e44 | 111 | "0zpqgihn3yh3v51ynxwr8asqrijvs4gv686clwv7bm8sawr4kfw7")))) |
1e69db8f EB |
112 | (build-system gnu-build-system) |
113 | (native-inputs | |
114 | `(("flex" ,flex) | |
115 | ("bison" ,bison) | |
116 | ("pkg-config" ,pkg-config))) | |
117 | (inputs | |
118 | `(("freetype" ,freetype) | |
119 | ("harfbuzz" ,harfbuzz))) | |
120 | (arguments | |
f91270bf EF |
121 | `(#:configure-flags '("--disable-static" |
122 | "--with-qt=no"))) ;no gui | |
1e69db8f EB |
123 | (synopsis "Automated font hinting") |
124 | (description | |
125 | "ttfautohint provides a 99% automated hinting process and a platform for | |
126 | finely hand-hinting the last 1%. It is ideal for web fonts and supports many | |
127 | scripts.") | |
128 | (license (list license:gpl2+ license:freetype)) ;choose one or the other | |
44ff40c2 | 129 | (home-page "https://www.freetype.org/ttfautohint/"))) |
1e69db8f | 130 | |
508a85df EB |
131 | (define-public woff-tools |
132 | (package | |
133 | (name "woff-tools") | |
134 | (version "2009.10.04") | |
135 | (source | |
136 | (origin | |
137 | (method url-fetch) | |
138 | ;; Upstream source is unversioned, so use Debian's versioned tarball | |
139 | (uri (string-append "mirror://debian/pool/main/w/woff-tools/" | |
140 | "woff-tools_" version ".orig.tar.gz")) | |
141 | (file-name (string-append name "-" version ".tar.gz")) | |
142 | (sha256 | |
143 | (base32 | |
144 | "1i97gkqa6jfzlslsngqf556kx60knlgf7yc9pzsq2pizc6f0d4zl")))) | |
145 | (build-system gnu-build-system) | |
146 | (inputs | |
147 | `(("zlib" ,zlib))) | |
148 | (arguments | |
149 | `(#:make-flags '("CC=gcc") | |
150 | #:tests? #f ;no tests | |
151 | #:phases | |
152 | (modify-phases %standard-phases | |
153 | (delete 'configure) ;no configuration | |
154 | (replace 'install | |
155 | (lambda* (#:key outputs #:allow-other-keys) | |
156 | (let* ((out (assoc-ref outputs "out")) | |
157 | (bin (string-append out "/bin"))) | |
158 | (install-file "sfnt2woff" bin) | |
159 | (install-file "woff2sfnt" bin))))))) | |
160 | (synopsis "Convert between OpenType and WOFF fonts") | |
161 | (description | |
162 | "This package provides two tools: | |
163 | @table @code | |
164 | @item sfnt2woff | |
165 | Converts OpenType fonts to WOFF fonts | |
166 | @item woff2sfnt | |
167 | Converts WOFF fonts to OpenType fonts | |
168 | @end table") | |
169 | (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+)) | |
170 | (home-page "https://people.mozilla.com/~jkew/woff/"))) | |
171 | ||
1555aee7 EB |
172 | (define-public ttf2eot |
173 | (package | |
174 | (name "ttf2eot") | |
af18fff0 | 175 | (version "0.0.3") |
1555aee7 EB |
176 | (source |
177 | (origin | |
af18fff0 TGR |
178 | (method git-fetch) |
179 | (uri (git-reference | |
b0e7b699 | 180 | (url "https://github.com/wget/ttf2eot") |
af18fff0 TGR |
181 | (commit (string-append "v" version)))) |
182 | (file-name (git-file-name name version)) | |
1555aee7 EB |
183 | (sha256 |
184 | (base32 | |
af18fff0 | 185 | "0l2yh2ialx7135pjzhjs204kk3br7zxjr09zwaia493by2adzigr")) |
1555aee7 EB |
186 | (patches (list (search-patch "ttf2eot-cstddef.patch"))))) |
187 | (build-system gnu-build-system) | |
188 | (arguments | |
af18fff0 | 189 | `(#:tests? #f ; no tests |
1555aee7 EB |
190 | #:phases |
191 | (modify-phases %standard-phases | |
af18fff0 TGR |
192 | (delete 'configure) ; no configuration |
193 | (replace 'install ; no install target | |
1555aee7 EB |
194 | (lambda* (#:key outputs #:allow-other-keys) |
195 | (let* ((out (assoc-ref outputs "out")) | |
196 | (bin (string-append out "/bin"))) | |
bf43e133 TGR |
197 | (install-file "ttf2eot" bin) |
198 | #t)))))) | |
1555aee7 EB |
199 | (synopsis "Convert from TrueType to Embeddable Open Type") |
200 | (description | |
201 | "This package contains a commandline wrapper around OpenTypeUtilities.cpp | |
202 | from Chromium, used to make EOT (Embeddable Open Type) files from | |
203 | TTF (TrueType/OpenType Font) files.") | |
204 | ;; While the README states "License: Derived from WebKit, so BSD/LGPL | |
205 | ;; 2/LGPL 2.1", the single derived source file includes only BSD in its | |
206 | ;; license header, and the wrapper source contains no license header. | |
207 | (license license:bsd-2) | |
af18fff0 | 208 | (home-page "https://github.com/wget/ttf2eot"))) |
1555aee7 | 209 | |
64965a06 LC |
210 | (define-public ttf2pt1 |
211 | (package | |
212 | (name "ttf2pt1") | |
213 | (version "3.4.4") | |
214 | (source (origin | |
215 | (method url-fetch) | |
216 | (uri (string-append "mirror://sourceforge/ttf2pt1/ttf2pt1/" | |
217 | version "/ttf2pt1-" version ".tgz")) | |
218 | (sha256 | |
219 | (base32 | |
220 | "1l718n4k4widx49xz7qrj4mybzb8q67kp2jw7f47604ips4654mf")) | |
221 | (modules '((guix build utils))) | |
222 | (snippet | |
223 | '(begin | |
224 | ;; Remove trailing backslashes in the sed expression of the | |
225 | ;; 'install' rule since sed would otherwise fail. | |
226 | (substitute* "Makefile" | |
227 | (("\\|;\\\\[[:space:]]*$") "|; ")) | |
228 | #t)))) | |
229 | (build-system gnu-build-system) | |
230 | (arguments | |
231 | '(#:tests? #f ;no tests | |
232 | #:phases (modify-phases %standard-phases | |
233 | (replace 'configure | |
234 | (lambda* (#:key outputs #:allow-other-keys) | |
235 | (let ((out (assoc-ref outputs "out"))) | |
236 | (substitute* "Makefile" | |
237 | (("INSTDIR =.*") | |
238 | (string-append "INSTDIR = " out "\n")) | |
239 | (("OWNER = .*") | |
240 | "OWNER = `id -un`\n") | |
241 | (("GROUP = .*") | |
242 | "GROUP = `id -g`\n")) | |
243 | #t))) | |
244 | (replace 'build | |
245 | (lambda _ | |
246 | (invoke "make" "-j" | |
247 | (number->string (parallel-job-count)) | |
248 | "all" "CC=gcc")))))) | |
249 | (inputs `(("perl" ,perl))) | |
250 | (synopsis "Convert TrueType fonts to Postscript Type 1") | |
251 | (description | |
252 | "TTF2PT1 provides tools to convert most TrueType fonts (or other formats | |
253 | supported by the FreeType library) to an Adobe Type 1 @file{.pfa} or | |
254 | @file{.pfb} file. Another use is as a hinting engine: feed it an unhinted or | |
255 | poorly hinted Adobe Type 1 font through the FreeType library and get it back | |
256 | with freshly generated hints. The files produced by default are in | |
257 | human-readable form, which further needs to be encoded with t1utilities to | |
258 | work with most software requiring Type 1 fonts.") | |
259 | (home-page "http://ttf2pt1.sourceforge.net/") | |
260 | (license license:bsd-3))) | |
261 | ||
579760d0 | 262 | (define-public woff2 |
d9476a37 LDB |
263 | (package |
264 | (name "woff2") | |
265 | (version "1.0.2") | |
acc8a0c1 RG |
266 | (source |
267 | (origin | |
268 | (method git-fetch) | |
269 | (uri | |
270 | (git-reference | |
271 | (url "https://github.com/google/woff2.git") | |
272 | (commit (string-append "v" version)))) | |
273 | (file-name | |
274 | (git-file-name name version)) | |
275 | (sha256 | |
276 | (base32 "13l4g536h0pr84ww4wxs2za439s0xp1va55g6l478rfbb1spp44y")))) | |
d9476a37 | 277 | (build-system cmake-build-system) |
acc8a0c1 RG |
278 | (outputs '("out" "bin")) |
279 | (arguments | |
280 | `(#:tests? #f ; No target | |
281 | #:configure-flags | |
282 | (list | |
283 | (string-append "-DCMAKE_INSTALL_BINDIR=" | |
284 | (assoc-ref %outputs "bin") | |
285 | "/bin") | |
286 | (string-append "-DCMAKE_INSTALL_INCLUDEDIR=" | |
287 | (assoc-ref %outputs "out") | |
288 | "/include") | |
289 | (string-append "-DCMAKE_INSTALL_LIBDIR=" | |
290 | (assoc-ref %outputs "out") | |
291 | "/lib")) | |
292 | #:phases | |
293 | (modify-phases %standard-phases | |
294 | ;; To install both binaries and libraries. | |
295 | (add-after 'unpack 'patch-installation | |
296 | (lambda _ | |
297 | (substitute* "CMakeLists.txt" | |
298 | (("NOT BUILD_SHARED_LIBS") | |
299 | "BUILD_SHARED_LIBS")) | |
300 | #t))))) | |
d9476a37 LDB |
301 | (native-inputs |
302 | `(("pkg-config" ,pkg-config))) | |
303 | (inputs | |
acc8a0c1 RG |
304 | `(("brotli" ,google-brotli))) |
305 | (synopsis "Libraries and tools for WOFF2 font format") | |
306 | (description "WOFF2 provides libraires and tools to handle the Web Open | |
307 | Font Format (WOFF).") | |
308 | (home-page "https://w3c.github.io/woff/woff2/") | |
309 | (license license:expat))) | |
579760d0 | 310 | |
6e4da6ea AE |
311 | (define-public fontconfig |
312 | (package | |
313 | (name "fontconfig") | |
ab9de8cf MB |
314 | |
315 | ;; This replacement is not security-related, but works around the fact | |
316 | ;; that gs-fonts are not recognized by newer versions of Pango, causing | |
317 | ;; many applications to fail to find fonts otherwise. | |
318 | (replacement fontconfig/font-dejavu) | |
319 | ||
529c3622 | 320 | (version "2.13.1") |
6e4da6ea AE |
321 | (source (origin |
322 | (method url-fetch) | |
323 | (uri (string-append | |
5cc3096c | 324 | "https://www.freedesktop.org/software/fontconfig/release/fontconfig-" |
6e4da6ea | 325 | version ".tar.bz2")) |
9dd9e8fa | 326 | (patches (search-patches "fontconfig-hurd-path-max.patch")) |
6e4da6ea | 327 | (sha256 (base32 |
529c3622 | 328 | "0hb700a68kk0ip51wdlnjjc682kvlrmb6q920mzajykdk0mdsmgn")))) |
6e4da6ea | 329 | (build-system gnu-build-system) |
019c0eda | 330 | ;; In Requires or Requires.private of fontconfig.pc. |
80650d77 | 331 | (propagated-inputs `(("expat" ,expat) |
019c0eda | 332 | ("freetype" ,freetype) |
bb93042c | 333 | ("libuuid" ,util-linux "lib"))) |
80650d77 | 334 | (inputs `(("gs-fonts" ,gs-fonts))) |
c4c4cc05 | 335 | (native-inputs |
2b174b4e | 336 | `(("gperf" ,gperf) |
70564e71 | 337 | ("pkg-config" ,pkg-config))) |
0ceea4f3 | 338 | (arguments |
030fa12e SB |
339 | `(#:configure-flags |
340 | (list "--with-cache-dir=/var/cache/fontconfig" | |
341 | ;; register gs-fonts as default fonts | |
342 | (string-append "--with-default-fonts=" | |
343 | (assoc-ref %build-inputs "gs-fonts") | |
344 | "/share/fonts") | |
e71ef7ad | 345 | |
f8835ff4 AK |
346 | ;; Register fonts from user and system profiles. |
347 | (string-append "--with-add-fonts=" | |
348 | "~/.guix-profile/share/fonts," | |
349 | "/run/current-system/profile/share/fonts") | |
e71ef7ad | 350 | |
030fa12e SB |
351 | ;; python is not actually needed |
352 | "PYTHON=false") | |
353 | #:phases | |
354 | (modify-phases %standard-phases | |
355 | (replace 'install | |
356 | (lambda _ | |
357 | ;; Don't try to create /var/cache/fontconfig. | |
21398eda MW |
358 | (invoke "make" "install" |
359 | "fc_cachedir=$(TMPDIR)" | |
360 | "RUN_FC_CACHE_TEST=false")))))) | |
9e771e3b | 361 | (synopsis "Library for configuring and customizing font access") |
6e4da6ea AE |
362 | (description |
363 | "Fontconfig can discover new fonts when installed automatically; | |
364 | perform font name substitution, so that appropriate alternative fonts can | |
365 | be selected if fonts are missing; | |
366 | identify the set of fonts required to completely cover a set of languages; | |
367 | have GUI configuration tools built as it uses an XML-based configuration file; | |
368 | efficiently and quickly find needed fonts among the set of installed fonts; | |
369 | be used in concert with the X Render Extension and FreeType to implement | |
370 | high quality, anti-aliased and subpixel rendered text on a display.") | |
371 | ; The exact license is more X11-style than BSD-style. | |
166191b3 | 372 | (license (license:non-copyleft "file://COPYING" |
6e4da6ea | 373 | "See COPYING in the distribution.")) |
57e7d748 | 374 | (home-page "https://www.freedesktop.org/wiki/Software/fontconfig"))) |
313b9012 | 375 | |
ab9de8cf MB |
376 | (define fontconfig/font-dejavu |
377 | (package | |
378 | (inherit fontconfig) | |
379 | (inputs | |
380 | ;; XXX: Reuse the name to avoid having to override the configure flags. | |
381 | `(("gs-fonts" ,font-dejavu))))) | |
382 | ||
313b9012 AE |
383 | (define-public t1lib |
384 | (package | |
385 | (name "t1lib") | |
386 | (version "5.1.2") | |
387 | (source (origin | |
388 | (method url-fetch) | |
a60c705b EF |
389 | (uri (list (string-append "ftp://sunsite.unc.edu/pub/Linux/libs/" |
390 | "graphics/" name "-" version ".tar.gz") | |
391 | (string-append "https://fossies.org/linux/misc/old/" | |
392 | name "-" version ".tar.gz"))) | |
313b9012 | 393 | (sha256 (base32 |
4f3e02f1 EF |
394 | "0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2")) |
395 | (patches (search-patches | |
9c2d2c13 | 396 | "t1lib-CVE-2010-2642.patch" ; 2011-0443, 2011-5244 |
4f3e02f1 | 397 | "t1lib-CVE-2011-0764.patch" |
9c2d2c13 EF |
398 | "t1lib-CVE-2011-1552+.patch")))) ; 2011-1553, 2011-1554 |
399 | (properties `((lint-hidden-cve . ("CVE-2011-0433" | |
400 | "CVE-2011-1553" | |
401 | "CVE-2011-1554" | |
402 | "CVE-2011-5244")))) | |
313b9012 AE |
403 | (build-system gnu-build-system) |
404 | (arguments | |
405 | ;; Making the documentation requires latex, but t1lib is also an input | |
406 | ;; for building texlive. | |
407 | `(#:tests? #f ; no test target | |
408 | #:make-flags | |
409 | '("without_doc"))) | |
9e771e3b | 410 | (synopsis "Library for generating bitmaps from Type 1 fonts") |
313b9012 AE |
411 | (description |
412 | "T1lib is a library for generating/rasterising bitmaps from Type 1 fonts. | |
413 | It is based on the code of the X11 rasteriser of the X11 project. | |
414 | ||
415 | The bitmaps created by t1lib are returned in a data structure with type | |
35b9e423 EB |
416 | GLYPH. This special GLYPH-type is also used in the X11 window system to |
417 | describe character bitmaps. It contains the bitmap data as well as some | |
418 | metric information. But t1lib is in itself entirely independent of the | |
419 | X11-system or any other graphical user interface.") | |
313b9012 | 420 | (license license:gpl2) |
d716a474 | 421 | (home-page "https://www.t1lib.org/"))) |
e5c0701f AE |
422 | |
423 | (define-public teckit | |
424 | (package | |
93a55838 | 425 | (name "teckit") |
792d526a | 426 | (version "2.5.9") ;signed by key 0xC9183BEA0288CDEE |
93a55838 MB |
427 | (source |
428 | (origin | |
429 | (method url-fetch) | |
430 | (uri (string-append "https://github.com/silnrsi/teckit/releases/" | |
431 | "download/v" version "/teckit-" version ".tar.gz")) | |
432 | (sha256 | |
792d526a | 433 | (base32 "0gbxyip4wdibirdg2pvzayzyy927vxyd6dfyfiflx8zg88qzn8v8")))) |
93a55838 | 434 | (build-system gnu-build-system) |
9d2c24d2 MB |
435 | (arguments |
436 | '(#:configure-flags '("--disable-static"))) | |
93a55838 MB |
437 | (inputs |
438 | `(("zlib" ,zlib) | |
439 | ("expat" ,expat))) | |
440 | (native-inputs | |
441 | `(("perl" ,perl))) ;for the tests | |
442 | (synopsis "Toolkit for encoding conversions") | |
443 | (description | |
444 | "TECkit is a low-level toolkit intended to be used by other applications | |
e5c0701f | 445 | that need to perform encoding conversions (e.g., when importing legacy data |
35b9e423 | 446 | into a Unicode-based application). The primary component of the TECkit |
e5c0701f | 447 | package is therefore a library that performs conversions; this is the |
35b9e423 | 448 | \"TECkit engine\". The engine relies on mapping tables in a specific binary |
e5c0701f AE |
449 | format (for which documentation is available); there is a compiler that |
450 | creates such tables from a human-readable mapping description (a simple | |
451 | text file). | |
452 | ||
453 | To facilitate the development and testing of mapping tables for TECkit, | |
454 | several applications are also included in the current package; these | |
455 | include simple tools for applying conversions to plain-text and Standard | |
456 | Format files, as well as both command-line and simple GUI versions of the | |
35b9e423 | 457 | TECkit compiler. However, it is not intended that these tools will be the |
e5c0701f AE |
458 | primary means by which end users perform conversions, and they have not |
459 | been designed, tested, and debugged to the extent that general-purpose | |
460 | applications should be.") | |
93a55838 MB |
461 | (license license:lgpl2.1+) |
462 | (home-page "http://scripts.sil.org/cms/scripts/page.php?cat_id=teckit"))) | |
319e2d17 AE |
463 | |
464 | (define-public graphite2 | |
465 | (package | |
466 | (name "graphite2") | |
8152024c | 467 | (version "1.3.13") |
319e2d17 AE |
468 | (source |
469 | (origin | |
470 | (method url-fetch) | |
6983ba56 SB |
471 | (uri (string-append "https://github.com/silnrsi/graphite/releases/" |
472 | "download/" version "/" name "-" version ".tgz")) | |
319e2d17 | 473 | (sha256 |
297a36ab | 474 | (base32 |
8152024c | 475 | "01jzhwnj1c3d68dmw15jdxly0hwkmd8ja4kw755rbkykn1ly2qyx")))) |
319e2d17 | 476 | (build-system cmake-build-system) |
c4fa3918 MB |
477 | (arguments |
478 | `(#:phases (modify-phases %standard-phases | |
479 | (add-after 'unpack 'adjust-test-PYTHONPATH | |
480 | (lambda _ | |
481 | ;; Tell the build system not to override PYTHONPATH | |
482 | ;; while running the Python tests. | |
483 | (substitute* "Graphite.cmake" | |
484 | (("ENVIRONMENT PYTHONPATH=") | |
485 | (string-append "ENVIRONMENT PYTHONPATH=" | |
486 | (getenv "PYTHONPATH") ":"))) | |
487 | #t))))) | |
e6f22a82 | 488 | (native-inputs |
c4fa3918 MB |
489 | `(("python" ,python) |
490 | ("python-fonttools" ,python-fonttools))) | |
319e2d17 | 491 | (inputs |
e6f22a82 | 492 | `(("freetype" ,freetype))) |
35b9e423 | 493 | (synopsis "Reimplementation of the SIL Graphite text processing engine") |
319e2d17 AE |
494 | (description |
495 | "Graphite2 is a reimplementation of the SIL Graphite text processing | |
496 | engine. Graphite is a smart font technology designed to facilitate the | |
497 | process known as shaping. This process takes an input Unicode text string | |
498 | and returns a sequence of positioned glyphids from the font.") | |
499 | (license license:lgpl2.1+) | |
e86409c5 | 500 | (home-page "https://github.com/silnrsi/graphite"))) |
ee69f85c EB |
501 | |
502 | (define-public potrace | |
503 | (package | |
504 | (name "potrace") | |
d9ff6ad8 | 505 | (version "1.16") |
ee69f85c EB |
506 | (source |
507 | (origin | |
508 | (method url-fetch) | |
de67e922 LF |
509 | (uri (string-append "mirror://sourceforge/potrace/" version |
510 | "/potrace-" version ".tar.gz")) | |
ee69f85c EB |
511 | (sha256 |
512 | (base32 | |
d9ff6ad8 | 513 | "1k3sxgjqq0jnpk9xxys05q32sl5hbf1lbk1gmfxcrmpdgnhli0my")))) |
ee69f85c EB |
514 | (build-system gnu-build-system) |
515 | (native-inputs `(("ghostscript" ,ghostscript))) ;for tests | |
516 | (inputs `(("zlib" ,zlib))) | |
4797d84d AE |
517 | (arguments |
518 | `(#:configure-flags | |
519 | `("--with-libpotrace"))) ; install library and headers | |
ee69f85c EB |
520 | (synopsis "Transform bitmaps into vector graphics") |
521 | (description | |
522 | "Potrace is a tool for tracing a bitmap, which means, transforming a | |
523 | bitmap into a smooth, scalable image. The input is a bitmap (PBM, PGM, PPM, | |
524 | or BMP format), and the default output is an encapsulated PostScript | |
525 | file (EPS). A typical use is to create EPS files from scanned data, such as | |
526 | company or university logos, handwritten notes, etc. The resulting image is | |
527 | not \"jaggy\" like a bitmap, but smooth. It can then be rendered at any | |
528 | resolution.") | |
529 | (license license:gpl2+) | |
530 | (home-page "http://potrace.sourceforge.net/"))) | |
5277dbb0 | 531 | |
6ef0ec76 RJ |
532 | (define-public libotf |
533 | (package | |
534 | (name "libotf") | |
9b9e7481 | 535 | (version "0.9.16") |
6ef0ec76 RJ |
536 | (source (origin |
537 | (method url-fetch) | |
6a703976 MW |
538 | (uri (string-append "mirror://savannah/m17n/libotf-" |
539 | version ".tar.gz")) | |
6ef0ec76 | 540 | (sha256 |
9b9e7481 | 541 | (base32 "0sq6g3xaxw388akws6qrllp3kp2sxgk2dv4j79k6mm52rnihrnv8")))) |
6ef0ec76 | 542 | (build-system gnu-build-system) |
48342a04 MB |
543 | (native-inputs |
544 | `(("pkg-config" ,pkg-config))) | |
6ef0ec76 RJ |
545 | (propagated-inputs |
546 | `(("freetype" ,freetype))) | |
340978d7 | 547 | (home-page "https://www.nongnu.org/m17n/") |
6ef0ec76 RJ |
548 | (synopsis "Library for handling OpenType Font") |
549 | (description "This library can read Open Type Layout Tables from an OTF | |
550 | file. Currently these tables are supported; head, name, cmap, GDEF, GSUB, and | |
551 | GPOS. It can convert a Unicode character sequence to a glyph code sequence by | |
552 | using the above tables.") | |
553 | (license license:lgpl2.0+))) | |
554 | ||
5277dbb0 EB |
555 | (define-public libspiro |
556 | (package | |
557 | (name "libspiro") | |
600037b3 | 558 | (version "20190731") |
5277dbb0 EB |
559 | (source |
560 | (origin | |
561 | (method url-fetch) | |
24950127 | 562 | (uri (string-append "https://github.com/fontforge/libspiro/releases" |
600037b3 | 563 | "/download/" version "/libspiro-" version ".tar.gz")) |
5277dbb0 EB |
564 | (sha256 |
565 | (base32 | |
600037b3 | 566 | "0m63x97b7aciviijprvy85gm03p2jsgslxn323zl9zn7qz6d3ir4")))) |
5277dbb0 | 567 | (build-system gnu-build-system) |
06639876 MB |
568 | (arguments |
569 | '(#:configure-flags '("--disable-static"))) | |
5277dbb0 EB |
570 | (synopsis "Clothoid to bezier conversion library") |
571 | (description | |
572 | "Raph Levien's Spiro package as a library. A mechanism for drawing | |
573 | smooth contours with constant curvature at the spline joins.") | |
574 | (license license:gpl2+) | |
575 | (home-page "http://libspiro.sourceforge.net/"))) | |
f945bf06 EB |
576 | |
577 | (define-public libuninameslist | |
578 | (package | |
579 | (name "libuninameslist") | |
3db5a01c | 580 | (version "20200313") |
27b73b49 | 581 | (home-page "https://github.com/fontforge/libuninameslist") |
f945bf06 EB |
582 | (source |
583 | (origin | |
584 | (method url-fetch) | |
27b73b49 MB |
585 | (uri (string-append home-page "/releases/download/" version |
586 | "/libuninameslist-dist-" version ".tar.gz")) | |
f945bf06 EB |
587 | (sha256 |
588 | (base32 | |
3db5a01c | 589 | "10ri80c64xb4rhbif3sr87y5vhi3m702zb0m02imvj1jib9rq0m8")))) |
f945bf06 | 590 | (build-system gnu-build-system) |
f945bf06 EB |
591 | (synopsis "Unicode names and annotation list") |
592 | (description | |
593 | "LibUniNamesList holds www.unicode.org Nameslist.txt data which can be | |
594 | useful for programs that need Unicode \"Names\", \"Annotations\", and block | |
595 | definitions.") | |
b19c92ef MB |
596 | ;; COPYING specifies GPL2, but according to LICENSE it only covers the |
597 | ;; configure script. The actual code is BSD-3, and the Unicode data | |
598 | ;; is governed by an X11-style license only found on the web. | |
599 | (license (list license:bsd-3 | |
600 | (license:x11-style | |
27b73b49 | 601 | "https://www.unicode.org/copyright.html#License"))))) |
0c115d8c EB |
602 | |
603 | (define-public fontforge | |
604 | (package | |
605 | (name "fontforge") | |
0a502c8c | 606 | (version "20200314") |
0c115d8c EB |
607 | (source (origin |
608 | (method url-fetch) | |
56586557 AE |
609 | (uri (string-append |
610 | "https://github.com/fontforge/fontforge/releases/download/" | |
0a502c8c | 611 | version "/fontforge-" version ".tar.xz")) |
3b08c873 | 612 | (sha256 |
0a502c8c MB |
613 | (base32 "0qf88wd6riycq56d24brybyc93ns74s0nyyavm43zp2kfcihn6fd")))) |
614 | (build-system cmake-build-system) | |
56586557 | 615 | (native-inputs |
0a502c8c | 616 | `(("pkg-config" ,pkg-config))) |
56586557 AE |
617 | (inputs `(("cairo" ,cairo) |
618 | ("fontconfig" ,fontconfig) ;dlopen'd | |
619 | ("freetype" ,freetype) | |
b94a6ca0 | 620 | ("gettext" ,gettext-minimal) |
0c115d8c EB |
621 | ("libICE" ,libice) |
622 | ("libSM" ,libsm) | |
56586557 AE |
623 | ("libX11" ,libx11) |
624 | ("libXi" ,libxi) | |
4bd428a7 | 625 | ("libjpeg" ,libjpeg-turbo) |
56586557 AE |
626 | ("libltdl" ,libltdl) |
627 | ("libpng" ,libpng) | |
0c115d8c | 628 | ("libspiro" ,libspiro) |
56586557 | 629 | ("libtiff" ,libtiff) |
de946028 | 630 | ("libungif" ,libungif) |
0c115d8c | 631 | ("libuninameslist" ,libuninameslist) |
56586557 AE |
632 | ("libxft" ,libxft) |
633 | ("libxml2" ,libxml2) | |
0c115d8c | 634 | ("pango" ,pango) |
56586557 | 635 | ("potrace" ,potrace) |
01a92a70 | 636 | ("python" ,python) |
56586557 | 637 | ("zlib" ,zlib))) |
0c115d8c | 638 | (arguments |
0a502c8c MB |
639 | '(#:configure-flags '(;; TODO: Provide GTK+ for the Wayland-friendly GDK |
640 | ;; backend, instead of the legacy X11 backend. | |
641 | ;; Currently it introduces a circular dependency. | |
642 | "-DENABLE_X11=ON") | |
643 | #:phases | |
5ab869f9 | 644 | (modify-phases %standard-phases |
0a502c8c | 645 | (add-after 'unpack 'do-not-override-RPATH |
6e3cbafb | 646 | (lambda _ |
0a502c8c MB |
647 | ;; Do not attempt to set a default RPATH, as our ld-wrapper |
648 | ;; already does the right thing. | |
649 | (substitute* "CMakeLists.txt" | |
650 | (("^set_default_rpath\\(\\)") | |
651 | "")) | |
6e3cbafb | 652 | #t)) |
5ab869f9 EB |
653 | (add-after 'install 'set-library-path |
654 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
655 | (let ((out (assoc-ref outputs "out")) | |
656 | (potrace (string-append (assoc-ref inputs "potrace") "/bin"))) | |
657 | (wrap-program (string-append out "/bin/fontforge") | |
658 | ;; Fontforge dynamically opens libraries. | |
659 | `("LD_LIBRARY_PATH" ":" prefix | |
660 | ,(map (lambda (input) | |
661 | (string-append (assoc-ref inputs input) | |
662 | "/lib")) | |
de946028 | 663 | '("libtiff" "libjpeg" "libpng" "libungif" |
5ab869f9 EB |
664 | "libxml2" "zlib" "libspiro" "freetype" |
665 | "pango" "cairo" "fontconfig"))) | |
666 | ;; Checks for potrace program at runtime | |
2f3f8ae0 | 667 | `("PATH" ":" prefix (,potrace))) |
5dd7bd12 | 668 | #t)))))) |
0c115d8c EB |
669 | (synopsis "Outline font editor") |
670 | (description | |
671 | "FontForge allows you to create and modify postscript, truetype and | |
672 | opentype fonts. You can save fonts in many different outline formats, and | |
673 | generate bitmaps.") | |
56586557 | 674 | (license license:gpl3+) |
3ab8c224 | 675 | (home-page "https://fontforge.github.io"))) |
427a51fd | 676 | |
4affa918 MB |
677 | ;; This is the last version that supports Python 2, which is needed for |
678 | ;; GNU FreeFont. Remove once no longer required. | |
679 | (define-public fontforge-20190801 | |
680 | (package | |
681 | (inherit fontforge) | |
682 | (version "20190801") | |
683 | (source (origin | |
684 | (method url-fetch) | |
685 | (uri (string-append | |
686 | "https://github.com/fontforge/fontforge/releases/download/" | |
687 | version "/fontforge-" version ".tar.gz")) | |
688 | (sha256 | |
689 | (base32 "0lh8yx01asbzxm6car5cfi64njh5p4lxc7iv8dldr5rwg357a86r")))) | |
690 | (build-system gnu-build-system) | |
691 | (arguments | |
692 | (substitute-keyword-arguments (package-arguments fontforge) | |
693 | ((#:configure-flags _) | |
694 | ''()) | |
695 | ((#:phases phases) | |
696 | `(modify-phases ,phases | |
697 | (delete 'do-not-override-RPATH))))) | |
698 | (inputs | |
699 | `(("python" ,python-2) | |
700 | ,@(alist-delete "python" (package-inputs fontforge)))))) | |
701 | ||
427a51fd | 702 | (define-public python2-ufolib |
703 | (package | |
704 | (name "python2-ufolib") | |
a82bb552 | 705 | (version "2.1.1") |
427a51fd | 706 | (source |
707 | (origin | |
708 | (method url-fetch) | |
709 | (uri (pypi-uri "ufoLib" version ".zip")) | |
710 | (sha256 | |
a82bb552 | 711 | (base32 "07qy6mx7z0wi9a30lc2hj5i9q1gnz1n8l40dmjz2c19mj9s6mz9l")))) |
427a51fd | 712 | (build-system python-build-system) |
713 | (arguments | |
714 | `(#:python ,python-2)) | |
715 | (propagated-inputs | |
716 | `(("python2-fonttools" ,python2-fonttools))) | |
717 | (native-inputs | |
718 | `(("unzip" ,unzip) | |
e09bb8a4 | 719 | ("python2-pytest" ,python2-pytest) |
427a51fd | 720 | ("python2-pytest-runner" ,python2-pytest-runner))) |
721 | (home-page "https://github.com/unified-font-object/ufoLib") | |
722 | (synopsis "Low-level UFO reader and writer") | |
723 | (description | |
724 | "UfoLib reads and writes Unified Font Object (UFO) | |
725 | files. UFO is a file format that stores fonts source files.") | |
726 | (license license:bsd-3))) | |
3715aff5 | 727 | |
728 | (define-public python2-defcon | |
729 | (package | |
730 | (name "python2-defcon") | |
e6d7686f | 731 | (version "0.3.5") |
3715aff5 | 732 | (source |
733 | (origin | |
734 | (method url-fetch) | |
735 | (uri (pypi-uri "defcon" version ".zip")) | |
736 | (sha256 | |
737 | (base32 | |
e6d7686f | 738 | "03jlm2gy9lvbwj68kfdm43yaddwd634jwkdg4wf0jxx2s8mwbg22")))) |
3715aff5 | 739 | (build-system python-build-system) |
740 | (arguments | |
741 | `(#:python ,python-2)) | |
742 | (native-inputs | |
743 | `(("unzip" ,unzip) | |
e09bb8a4 | 744 | ("python2-pytest" ,python2-pytest) |
3715aff5 | 745 | ("python2-pytest-runner" ,python2-pytest-runner))) |
746 | (propagated-inputs | |
747 | `(("python2-fonttools" ,python2-fonttools) | |
748 | ("python2-ufolib" ,python2-ufolib))) | |
e85af137 | 749 | (home-page "https://pypi.org/project/defcon/") |
3715aff5 | 750 | (synopsis "Flexible objects for representing @acronym{UFO, unified font object} data") |
751 | (description | |
752 | "Defcon is a set of @acronym{UFO, unified font object} based objects | |
753 | optimized for use in font editing applications. The objects are built to | |
754 | be lightweight, fast and flexible. The objects are very bare-bones and | |
755 | they are not meant to be end-all, be-all objects. Rather, they are meant | |
756 | to provide base functionality so that you can focus on your application’s | |
757 | behavior, not object observing or maintaining cached data. Defcon | |
758 | implements UFO3 as described by the UFO font format.") | |
759 | (license license:expat))) | |
20d2c6e7 | 760 | |
761 | (define-public nototools | |
762 | (package | |
763 | (name "nototools") | |
764 | (version "20170925") | |
765 | (source | |
766 | (origin | |
b2447228 EF |
767 | (method git-fetch) |
768 | (uri (git-reference | |
769 | (url "https://github.com/googlei18n/nototools") | |
770 | (commit "v2017-09-25-tooling-for-phase3-update"))) | |
771 | (file-name (git-file-name name version)) | |
20d2c6e7 | 772 | (sha256 |
773 | (base32 | |
b2447228 | 774 | "03nzvcvwmrhfrcjhg218q2f3hfrm3vlivp4rk19sc397kh3hisiz")))) |
20d2c6e7 | 775 | (build-system python-build-system) |
776 | (arguments | |
777 | `(#:python ,python-2)) | |
778 | (propagated-inputs | |
779 | `(("python2-booleanoperations" ,python2-booleanoperations) | |
780 | ("python2-defcon" ,python2-defcon) | |
781 | ("python2-fonttools" ,python2-fonttools) | |
782 | ("python2-pillow" ,python2-pillow) | |
783 | ("python2-pyclipper" ,python2-pyclipper) | |
784 | ("python2-ufolib" ,python2-ufolib))) | |
785 | (home-page "https://github.com/googlei18n/nototools") | |
786 | (synopsis "Noto fonts support tools and scripts") | |
787 | (description | |
788 | "Nototools is a Python package containing Python scripts used to | |
789 | maintain the Noto Fonts project.") | |
790 | (license (list license:asl2.0 | |
791 | ;; Sample texts are attributed to UN and OHCHR. | |
792 | ;; The permissions on the UDHR are pretty lax: | |
793 | ;; http://www.ohchr.org/EN/UDHR/Pages/Introduction.aspx | |
794 | ;; "If UDHR translations or materials are reproduced, users | |
795 | ;; should make reference to this website as a source by | |
796 | ;; providing a link." | |
797 | license:public-domain | |
798 | (license:non-copyleft | |
799 | "file://sample_texts/attributions.txt" | |
800 | "See sample_texts/attributions.txt in the distribution."))))) | |
ad8aaf47 BD |
801 | |
802 | (define-public fontmanager | |
803 | (package | |
804 | (name "fontmanager") | |
3a5d1c9b | 805 | (version "0.7.7") |
ad8aaf47 BD |
806 | (source |
807 | (origin | |
808 | (method git-fetch) | |
809 | (uri (git-reference | |
810 | (url "https://github.com/FontManager/font-manager") | |
811 | (commit version))) | |
812 | (file-name (git-file-name name version)) | |
813 | (sha256 | |
814 | (base32 | |
3a5d1c9b | 815 | "1bzqvspplp1zj0n0869jqbc60wgbjhf0vdrn5bj8dfawxynh8s5f")))) |
ad8aaf47 BD |
816 | (build-system meson-build-system) |
817 | (arguments | |
818 | `(#:glib-or-gtk? #t | |
819 | #:build-type "release" | |
820 | #:configure-flags | |
821 | (list (string-append "-Dc_link_args=-Wl,-rpath=" | |
822 | (assoc-ref %outputs "out") | |
823 | "/lib/font-manager")))) | |
824 | (native-inputs | |
825 | `(("pkg-config" ,pkg-config) | |
826 | ("vala" ,vala) | |
827 | ("yelp-tools" ,yelp-tools) | |
828 | ("gettext" ,gettext-minimal) | |
829 | ("glib" ,glib "bin") | |
830 | ("gobject-introspection" ,gobject-introspection) | |
831 | ("desktop-file-utils" ,desktop-file-utils))) | |
832 | (inputs | |
833 | `(("json-glib" ,json-glib) | |
fad5b1a6 | 834 | ("sqlite" ,sqlite) |
ad8aaf47 BD |
835 | ("fonconfig" ,fontconfig) |
836 | ("freetype" ,freetype) | |
837 | ("gtk+" ,gtk+))) | |
838 | (home-page "https://fontmanager.github.io/") | |
839 | (synopsis "Simple font management for GTK+ desktop environments") | |
840 | (description "Font Manager is intended to provide a way for users to | |
841 | easily manage desktop fonts, without having to resort to command-line | |
842 | tools or editing configuration files by hand. | |
843 | While designed primarily with the GNOME Desktop Environment in mind, it should | |
844 | work well with other GTK+ desktop environments.") | |
845 | (license license:gpl3+))) | |
cc51c03f RJ |
846 | |
847 | (define-public fntsample | |
848 | (package | |
849 | (name "fntsample") | |
850 | (version "5.3") | |
851 | (source (origin | |
405b9ba0 EF |
852 | (method git-fetch) |
853 | (uri (git-reference | |
854 | (url "https://github.com/eugmes/fntsample") | |
855 | (commit (string-append "release/" version)))) | |
856 | (file-name (git-file-name name version)) | |
cc51c03f RJ |
857 | (sha256 |
858 | (base32 | |
405b9ba0 | 859 | "02rx3gp7k472304vhjwb129nw10a29s4nvgs7i2m6bpjhlk2xgs5")))) |
cc51c03f RJ |
860 | (build-system cmake-build-system) |
861 | (arguments | |
862 | `(#:tests? #f ; There are no tests. | |
863 | #:configure-flags | |
864 | (list (string-append | |
865 | "-DUNICODE_BLOCKS=" (assoc-ref %build-inputs "unicode-blocks"))) | |
866 | #:phases | |
867 | (modify-phases %standard-phases | |
868 | (add-after 'install 'set-library-path | |
869 | (lambda* (#:key inputs outputs #:allow-other-keys) | |
870 | (let* ((out (assoc-ref outputs "out")) | |
871 | (pdf-api2 (assoc-ref inputs "perl-pdf-api2")) | |
872 | (intl (assoc-ref inputs "perl-libintl-perl")) | |
873 | (perllib (string-append pdf-api2 | |
874 | "/lib/perl5/site_perl/" | |
875 | ,(package-version perl) | |
876 | ":" intl | |
877 | "/lib/perl5/site_perl/" | |
878 | ,(package-version perl)))) | |
879 | (wrap-program (string-append out "/bin/pdfoutline") | |
880 | `("PERL5LIB" ":" prefix (,perllib))) | |
881 | #t)))))) | |
882 | (native-inputs | |
883 | `(("pkg-config" ,pkg-config) | |
884 | ("gettext" ,gettext-minimal))) | |
885 | (inputs | |
886 | `(("cairo" ,cairo) | |
887 | ("fontconfig" ,fontconfig) | |
888 | ("freetype" ,freetype) | |
889 | ("glib" ,glib) | |
890 | ("pango" ,pango) | |
891 | ("perl-pdf-api2" ,perl-pdf-api2) | |
892 | ("perl-libintl-perl" ,perl-libintl-perl) | |
893 | ("unicode-blocks" | |
894 | ,(origin | |
895 | (method url-fetch) | |
896 | (uri "https://unicode.org/Public/UNIDATA/Blocks.txt") | |
897 | (file-name "unicode-blocks.txt") | |
898 | (sha256 | |
899 | (base32 | |
900 | "1xs8fnhh48gs41wg004r7m4r2azh9khmyjjlnvyzy9c6zrd212x2")))))) | |
901 | (home-page "https://github.com/eugmes/fntsample") | |
902 | (synopsis "PDF and PostScript font samples generator") | |
903 | (description "This package provides a tool that can be used to make font | |
904 | samples that show coverage of the font and are similar in appearance to | |
905 | Unicode Charts. It was developed for use with DejaVu Fonts project.") | |
906 | (license license:gpl3+))) | |
a1797f32 NG |
907 | |
908 | (define-public libraqm | |
909 | (package | |
910 | (name "libraqm") | |
911 | (version "0.7.0") | |
912 | (source | |
913 | (origin | |
914 | (method url-fetch) | |
915 | (uri (string-append "https://github.com/HOST-Oman/libraqm/" | |
916 | "releases/download/v" version "/" | |
67c52503 | 917 | "raqm-" version ".tar.gz")) |
a1797f32 NG |
918 | (sha256 |
919 | (base32 "0hgry3fj2y3qaq2fnmdgd93ixkk3ns5jds4vglkiv2jfvpn7b1g2")))) | |
920 | (build-system gnu-build-system) | |
921 | (arguments | |
922 | `(#:configure-flags (list "--disable-static"))) | |
923 | (native-inputs | |
924 | `(("gtk-doc" ,gtk-doc) | |
925 | ("pkg-config" ,pkg-config) | |
926 | ("python" ,python-wrapper))) | |
927 | (inputs | |
928 | `(("freetype" ,freetype) | |
929 | ("fribidi" ,fribidi) | |
930 | ("harfbuzz" ,harfbuzz))) | |
931 | (home-page "https://github.com/HOST-Oman/libraqm") | |
932 | (synopsis "Library for complex text layout") | |
933 | (description | |
934 | "Raqm is a small library that encapsulates the logic for complex text | |
935 | layout and provides a convenient API. | |
936 | ||
937 | It currently provides bidirectional text support (using FriBiDi), | |
938 | shaping (using HarfBuzz), and proper script itemization. As a result, Raqm | |
939 | can support most writing systems covered by Unicode.") | |
940 | (license license:expat))) |