forked from tribes/guix
Compare commits
580 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e8b3afeb92 | |||
| f5ebf5c6ac | |||
| 0f241da212 | |||
| a463ffd9e8 | |||
| e793178adb | |||
| c0cd1b3ea7 | |||
| 9b1ef2f323 | |||
| 46614bba7c | |||
| 47d188109e | |||
| 1b1c335f5e | |||
| 9bff16b3f2 | |||
| 3a33730a86 | |||
| f7ce90e7b9 | |||
| 35ff176877 | |||
| 2c4b49ed8d | |||
| 210cc92038 | |||
| 2c71cf66a5 | |||
| 410e38f814 | |||
| ccbce84809 | |||
| 438bb042ff | |||
| f92300852f | |||
| 0ba91c945b | |||
| 8cc9e7f9d8 | |||
| 25c936766e | |||
| e3729544f9 | |||
| 741c70c63e | |||
| 94a4b3b9f2 | |||
| 8c247e1c47 | |||
| fe3e603d14 | |||
| e31ff8b8d0 | |||
| ec5d0a85eb | |||
| a4007c9852 | |||
| dd9afe64b5 | |||
| a81bc5312b | |||
| 9c7dd33a48 | |||
| cf8f58b2af | |||
| dcee3fc5a9 | |||
| 40506d5d92 | |||
| 3309e3a103 | |||
| e789d9a80b | |||
| e3c5f2934a | |||
| 88226a504f | |||
| 06504acb78 | |||
| 37166310c7 | |||
| a2ed738989 | |||
| ce3b7a619d | |||
| fd982732f4 | |||
| cc2792dada | |||
| a6b4d213db | |||
| 83e61a73c4 | |||
| 15f67744fe | |||
| 6ba3900934 | |||
| 1d3991dc74 | |||
| 39b33961e9 | |||
| 6d267f0a5b | |||
| 36ee486f1a | |||
| 313109e050 | |||
| c5ea1201fb | |||
| e0eb886dce | |||
| dcc9053aff | |||
| 3a08a41188 | |||
| fbd8445704 | |||
| 21e9fee042 | |||
| d515cb555c | |||
| 0734a9a813 | |||
| 01155b1808 | |||
| e0fbbc889d | |||
| dab5d51be7 | |||
| 30dd831083 | |||
| 867df0eeb6 | |||
| 593987671a | |||
| 5924080dcc | |||
| 2bcfb9e065 | |||
| 19cb517012 | |||
| 1f7c6a1f53 | |||
| 8e77f41ede | |||
| 89be37a5a3 | |||
| 61ef22f432 | |||
| c4ca12c15b | |||
| 4056b82882 | |||
| a5975cedf2 | |||
| 14e2afa74b | |||
| c3f0084ad3 | |||
| 049b2f1d7b | |||
| 87dfd45594 | |||
| accf7a373e | |||
| eaff9364d5 | |||
| 7f4b5efd2d | |||
| 786944576c | |||
| 1424a96e25 | |||
| 56dbcb09d8 | |||
| cecb712cce | |||
| 9369a02bfc | |||
| 3b401612d9 | |||
| 6aded2dd3f | |||
| d83ae72401 | |||
| a9db7d10b6 | |||
| 2b6bdf7eb3 | |||
| 777fabf096 | |||
| acfc0df5ce | |||
| 6c211361fe | |||
| dfb43e45b5 | |||
| 43d8f4904c | |||
| 37a5340262 | |||
| 1c9e7d65d4 | |||
| 9e623d068d | |||
| f6f207b803 | |||
| 825d0ebc5b | |||
| 65b96a0c10 | |||
| d55a99fed3 | |||
| cac137aa84 | |||
| 0fdd3bea58 | |||
| f903dc056a | |||
| 5fe21fbeef | |||
| 867b14108d | |||
| d66c70967f | |||
| b2a886f6c7 | |||
| 19c9664d93 | |||
| 693b57e41c | |||
| 2306f7ab4b | |||
| 6ed80bed48 | |||
| 861693f3e7 | |||
| 6c365eca6d | |||
| e33d9d6f09 | |||
| bfda2997c8 | |||
| 238328c990 | |||
| fcdf58c46c | |||
| 107b415e43 | |||
| 98eb8cbe8d | |||
| c6d7e299ae | |||
| 4c7cacf117 | |||
| f286f71634 | |||
| f7758740ed | |||
| 0ff3e3aa9b | |||
| d6b8cb5c4a | |||
| 6858f9d132 | |||
| ea0ee755bd | |||
| 48febeb81a | |||
| 6c1cd80d8f | |||
| 3b78d1eab8 | |||
| b52cb20d43 | |||
| 0e993428ce | |||
| f50d2669e3 | |||
| 801486fe46 | |||
| f594028a9c | |||
| dd36b51bf7 | |||
| acb6ba2567 | |||
| 0160536dcb | |||
| 35ac56b63e | |||
| e967678ed1 | |||
| 0c357a088b | |||
| eba783b7b2 | |||
| 63b7c6c1f8 | |||
| 04fd96cac3 | |||
| 50efa79774 | |||
| baa0d82a8a | |||
| c5c555b186 | |||
| 841032d448 | |||
| d5d6db8918 | |||
| 0d2fe78f85 | |||
| 581f9eb845 | |||
| cdf2022052 | |||
| f03f0c9a86 | |||
| c7b62db614 | |||
| 6f80c9d8f3 | |||
| ca877f5a3a | |||
| 865c4ef33c | |||
| 3fdc99da19 | |||
| f0cd71f21e | |||
| 7ce1f2160f | |||
| 419fffa2e8 | |||
| 04151253e3 | |||
| f14d6b697e | |||
| afb49942e0 | |||
| 5477e0342f | |||
| bdf06d8922 | |||
| 77ffd691bf | |||
| 9adb6934f4 | |||
| c31d1a7860 | |||
| 9297c90b69 | |||
| 3b82460576 | |||
| fe0cff14f6 | |||
| d7c5d27795 | |||
| 8f3114b7a4 | |||
| 7a88ad6bff | |||
| a2011be5df | |||
| 1010e530d3 | |||
| 068cdcd07c | |||
| 53c63ee937 | |||
| 52e5910cdc | |||
| cbca6eb552 | |||
| 4f7d8d7ee4 | |||
| 0f41c26f9b | |||
| 462f8e9f33 | |||
| 6be960c7f7 | |||
| f65cf81a3c | |||
| cf53ecf514 | |||
| 8dc5d0cf7e | |||
| adb5f46940 | |||
| 2c6ab6ccd4 | |||
| ef8c03407d | |||
| c7f9993146 | |||
| 14ecc0effc | |||
| 141ccae8a7 | |||
| 0a92b5b30a | |||
| bd8c5d5b02 | |||
| fdfd3d5d9c | |||
| 3ee5a7d86a | |||
| 9be8d7c8cb | |||
| a18eda2747 | |||
| 5cfdb4bcac | |||
| a96748bb46 | |||
| bc3073c8e3 | |||
| 84419dfd25 | |||
| 7e2ec42b1a | |||
| 3a5d958570 | |||
| 1f44111f83 | |||
| 6706269ed4 | |||
| 47038b76b2 | |||
| 979bc0f49b | |||
| 4928e50033 | |||
| 73274a8ae7 | |||
| 13f5ea6f46 | |||
| 3f5a932eea | |||
| 917748dd6d | |||
| f9bbf2a819 | |||
| c6bded8a29 | |||
| bb90ad83b1 | |||
| c415f14538 | |||
| c9f94132ca | |||
| 5c126b645e | |||
| 832abc7687 | |||
| e9c0b9446b | |||
| 785db4d877 | |||
| 0b5aa854a0 | |||
| da0a26d2a7 | |||
| 7bf569186c | |||
| 47a9cb950a | |||
| a25fe6d620 | |||
| 128663e4c8 | |||
| 238f739777 | |||
| 14a3a67364 | |||
| b6a64843c6 | |||
| 9776ebb2a5 | |||
| 712e6e684c | |||
| 84a3e3b776 | |||
| 881a4cf13a | |||
| ce41a4629c | |||
| 9c3ac1b641 | |||
| a4f08f9258 | |||
| d539646af4 | |||
| b04ac5a1e2 | |||
| c0589f7591 | |||
| 71f4b81aa5 | |||
| 0bb1aa9e05 | |||
| d80855999a | |||
| 993fb66dd2 | |||
| 5ee12e217c | |||
| 847e7725e9 | |||
| 444c64b04e | |||
| 3be9f724f5 | |||
| b5c56e628f | |||
| e45a608245 | |||
| 08dccdfd12 | |||
| 42ed9985b1 | |||
| 2b8c5f547a | |||
| 68a3d0e8cd | |||
| 6f52fb63ae | |||
| 11e3f10788 | |||
| 322cbda7c5 | |||
| ef86c39f27 | |||
| 30db6af1de | |||
| 1fb78cb2c3 | |||
| 6ba9dd813d | |||
| f8d3c99ba1 | |||
| 5acf2910b8 | |||
| d92083ad99 | |||
| 6eb126c5f2 | |||
| 02065130de | |||
| 563e8b3920 | |||
| bd5ecea637 | |||
| bbd60260dd | |||
| 48ebc134f4 | |||
| 9d12d38f38 | |||
| 5223c82627 | |||
| 0820a58b3c | |||
| dd85efda47 | |||
| d385b8355d | |||
| b49317cac3 | |||
| 88ee93f917 | |||
| 5f1d0fb085 | |||
| 9aea24b608 | |||
| 6a917ef7e6 | |||
| 296540a6db | |||
| 19777ae6ea | |||
| ef010c0f3d | |||
| c50cbfd61a | |||
| ea7127b9b7 | |||
| 71eb5c1067 | |||
| b16c5a5857 | |||
| 12761f48ea | |||
| e65df6a63a | |||
| 7f614e49e8 | |||
| 938081b9ce | |||
| 81eec00cb2 | |||
| 8689a1908a | |||
| 2a1e82bb5c | |||
| 08fd1ebefd | |||
| 6af3101999 | |||
| 49f24f41e3 | |||
| d688a2f0fd | |||
| 4cdbdd4439 | |||
| c86929e403 | |||
| 11a7ceb9e8 | |||
| eb0880e71d | |||
| 5d4b411f8a | |||
| 431a35518f | |||
| ba8b732d20 | |||
| fae31edcec | |||
| 827d28914a | |||
| aaf4cb20ad | |||
| 618cea694d | |||
| 6ec8f7778f | |||
| da9bf2efc5 | |||
| a1c1467756 | |||
| 00fa3d1457 | |||
| 69ce1ffc7d | |||
| 7650e148f6 | |||
| e51035f70a | |||
| bdeee95a21 | |||
| cc68ccc5b0 | |||
| e95da44576 | |||
| 3c81cdf19c | |||
| a8a0aa49f9 | |||
| 353283bbe9 | |||
| 8faece2280 | |||
| 05c0ac721e | |||
| a1143ee3fa | |||
| 02d94dab8d | |||
| dc3f1809cf | |||
| ba4bcae035 | |||
| 396e75e37c | |||
| c07512179e | |||
| ed407c8055 | |||
| 868c923f13 | |||
| d2474c2620 | |||
| 3855e242a2 | |||
| 106ca9d0c1 | |||
| 5f7c5a97ba | |||
| 99d90fc102 | |||
| 9322c6822f | |||
| e7d2c60809 | |||
| b7e9ee3327 | |||
| 52e6e2461f | |||
| e70a28b87e | |||
| 2e48455d27 | |||
| f9c3648329 | |||
| 854d627779 | |||
| 9ede36f0ed | |||
| 790b8e0ebe | |||
| ddff766e38 | |||
| ab744c1af5 | |||
| 922f11ad22 | |||
| 6c7b6a51a4 | |||
| 76978d4062 | |||
| b6f5801e1c | |||
| b5c18c78c2 | |||
| c3f9761771 | |||
| ca8def6e6f | |||
| 11996d85d3 | |||
| 149acc2981 | |||
| abc00dc492 | |||
| c9b940cd03 | |||
| 4d60610ad7 | |||
| 7b50c68455 | |||
| 525ca3e912 | |||
| f651b477b7 | |||
| 9bb2b96aab | |||
| 7730d112a2 | |||
| c61b026e3a | |||
| 80736cdf20 | |||
| 8dcb0c55ab | |||
| f6d7be1e47 | |||
| 0442d34595 | |||
| b8d2aa264d | |||
| 15b673ebe8 | |||
| 9fd72fb1ff | |||
| 9c8ba706d0 | |||
| 855a8ad71d | |||
| fdca1c079b | |||
| fd80c705b1 | |||
| d8f257f99e | |||
| 633f045f62 | |||
| a24b75d8e1 | |||
| e49951eb3e | |||
| 040860152e | |||
| f09d925b16 | |||
| 161ed5476d | |||
| d510ab4614 | |||
| 0228826262 | |||
| 3643957260 | |||
| ffb1ee524d | |||
| 3665b4dc60 | |||
| e04f30e023 | |||
| 6956067b04 | |||
| 1dee732b81 | |||
| eb4908581c | |||
| dc5669cd65 | |||
| c2868b1e0c | |||
| 9011e97f8d | |||
| e3b2cf4c7a | |||
| 250b0404d7 | |||
| 8c3c896dbe | |||
| 0d1e6ce4d2 | |||
| 96be765ca5 | |||
| 93a6f5520c | |||
| 58867ae728 | |||
| a40f1543c0 | |||
| 0e7aac44da | |||
| 01e11826bc | |||
| 30e9cbb44e | |||
| a86177d61c | |||
| f5fd436020 | |||
| 151794bf5b | |||
| df77a46273 | |||
| beacfcabe7 | |||
| 57f662ad30 | |||
| b4fcb735d5 | |||
| ea4d96c6a5 | |||
| b1426f1785 | |||
| 95b6c70f6b | |||
| 16fd1db547 | |||
| 0750452a98 | |||
| 65d8b777c0 | |||
| 72b9eebf68 | |||
| cab249615d | |||
| 2aee33cfc1 | |||
| 6064c4cdf0 | |||
| b15fcf9ec2 | |||
| a69b7ad2d6 | |||
| 54845460ee | |||
| a38f0ab0b9 | |||
| d8707db0f7 | |||
| 2d73db7a05 | |||
| e6e82f629c | |||
| 10879c4ea1 | |||
| 87d836b2c9 | |||
| 2f4fbe1cb3 | |||
| 461572cca8 | |||
| b39a48ad4b | |||
| 9589eecb40 | |||
| 4dede022fd | |||
| 1be77eac08 | |||
| 6211223021 | |||
| 44ce77ff52 | |||
| 8dc2ecfcd9 | |||
| c23e9e48b7 | |||
| 431f35f051 | |||
| eb0119efde | |||
| 6d36a6f3b0 | |||
| a6ef51e378 | |||
| 10d1822b8e | |||
| fcdb4e8f8d | |||
| ef02e1e9b5 | |||
| 8cc9c0dadd | |||
| d464e72566 | |||
| 0f3d2504f7 | |||
| 63193ebfdc | |||
| c5a855c481 | |||
| bbb76f6f71 | |||
| 238e43b9fa | |||
| 9c63fe6c1f | |||
| 58cc3b385b | |||
| 38bbd61df1 | |||
| cb09fb24ee | |||
| 0bdba772ca | |||
| 299112d36e | |||
| aa92cf980c | |||
| 0f5378ebc4 | |||
| dc2e4b0e16 | |||
| 9ae7865e97 | |||
| f992ead284 | |||
| bbdb3ffaf3 | |||
| 1f73d3b495 | |||
| 76e38f0d78 | |||
| 6b9105e557 | |||
| fe0b8a789a | |||
| 5cfdcd6a26 | |||
| d0840e4a23 | |||
| fce2394e7d | |||
| a9ebd9efd0 | |||
| fd060fd30d | |||
| 82c38fe64c | |||
| 473b03b3c6 | |||
| bdcf35a6b2 | |||
| 2c3f47ee3a | |||
| 2fbf053b7b | |||
| 2a75d4e664 | |||
| a7b6ffee68 | |||
| d7e8e288c5 | |||
| 8aab64fca9 | |||
| 2289721c9c | |||
| acc084669c | |||
| c9ee048595 | |||
| 168030ea0c | |||
| 82fe08ed20 | |||
| d9307267b3 | |||
| 29767aaef6 | |||
| 41d42f5061 | |||
| 64858bc090 | |||
| f1d2872c82 | |||
| b8d3511ad5 | |||
| e5c0701f9c | |||
| cc957c3c74 | |||
| 47f9db4128 | |||
| 59db01942b | |||
| 97715602cb | |||
| 67158a4900 | |||
| 695e671723 | |||
| df84950e44 | |||
| 12a5199a27 | |||
| 135eb524b3 | |||
| dd6b9a3790 | |||
| 3b9c002088 | |||
| 313b901255 | |||
| d192efae07 | |||
| 21c203a53a | |||
| 9c9da07f4c | |||
| 12abb19dfb | |||
| bbb7a00e9a | |||
| 6798a8e485 | |||
| 6e4da6ead1 | |||
| 8dc8bf02c6 | |||
| 4f1ee0c964 | |||
| 821b0015fa | |||
| 2b902c3c46 | |||
| 67668155c5 | |||
| 5401dd7595 | |||
| 476f8ea33c | |||
| 7cd1d7bd0c | |||
| f153d89155 | |||
| c6dbd50594 | |||
| 4f028c8f95 | |||
| dc56970dde | |||
| 23180bebff | |||
| 87ec7a7a5e | |||
| 05bf6f8289 | |||
| eb39051936 | |||
| e1f8f477de | |||
| 7f08437bd8 | |||
| 2e87ca8f52 | |||
| 85f3a05e4c | |||
| 6b32a64a4d | |||
| 483f11589e | |||
| e509d1527d | |||
| 079fca3be8 | |||
| f6ab05509c | |||
| 091196b383 | |||
| c4854e76e2 | |||
| 6c3a720481 | |||
| c217708f7b | |||
| 2ffa297ab8 | |||
| 79c398a20c | |||
| 943f33a326 | |||
| 3889a82ef8 | |||
| 11314eb68e | |||
| f0444eafe2 | |||
| bf4018fb15 | |||
| b387a1c5b2 | |||
| 8f86331a22 | |||
| 1f5ec939ca | |||
| 23f339dd7f | |||
| 5752a7d77c | |||
| 99e6c1b18e | |||
| 6a06172b65 | |||
| 3465eb03bd | |||
| 5fc5c2f340 | |||
| 665991957c | |||
| c3d98cad5d | |||
| d7d408d578 |
+5
-1
@@ -1,11 +1,15 @@
|
||||
;; Per-directory local variables for GNU Emacs 23 and later.
|
||||
|
||||
((nil . ((fill-column . 72)
|
||||
((nil . ((fill-column . 78)
|
||||
(tab-width . 8)))
|
||||
(c-mode . ((c-file-style . "gnu")))
|
||||
(scheme-mode
|
||||
.
|
||||
((indent-tabs-mode . nil)
|
||||
(eval . (put 'test-assert 'scheme-indent-function 1))
|
||||
(eval . (put 'test-equal 'scheme-indent-function 1))
|
||||
(eval . (put 'call-with-input-string 'scheme-indent-function 1))
|
||||
(eval . (put 'guard 'scheme-indent-function 1))
|
||||
(eval . (put 'lambda* 'scheme-indent-function 1))
|
||||
(eval . (put 'substitute* 'scheme-indent-function 1))
|
||||
(eval . (put 'with-directory-excursion 'scheme-indent-function 1))
|
||||
|
||||
+13
-5
@@ -34,7 +34,6 @@ config.cache
|
||||
/po/remove-potcdate.sin
|
||||
/po/stamp-po
|
||||
/po/guix.pot
|
||||
/guix-build
|
||||
/tests/*.trs
|
||||
/INSTALL
|
||||
/m4/*
|
||||
@@ -44,12 +43,9 @@ config.cache
|
||||
/doc/guix.pdf
|
||||
/doc/stamp-vti
|
||||
/doc/version.texi
|
||||
/guix-download
|
||||
/gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz
|
||||
/gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz
|
||||
/guix-package
|
||||
/guix/config.scm
|
||||
/guix-import
|
||||
/nix/nix-daemon/nix-daemon.cc
|
||||
/nix/config.h
|
||||
/nix/config.h.in
|
||||
@@ -64,4 +60,16 @@ stamp-h[0-9]
|
||||
/nix/scripts/list-runtime-roots
|
||||
/test-env
|
||||
/nix/nix-setuid-helper/nix-setuid-helper.cc
|
||||
/guix-gc
|
||||
/scripts/guix
|
||||
/doc/guix.aux
|
||||
/doc/guix.cp
|
||||
/doc/guix.cps
|
||||
/doc/guix.fn
|
||||
/doc/guix.fns
|
||||
/doc/guix.ky
|
||||
/doc/guix.pg
|
||||
/doc/guix.toc
|
||||
/doc/guix.tp
|
||||
/doc/guix.vr
|
||||
/doc/guix.vrs
|
||||
/nix/scripts/substitute-binary
|
||||
|
||||
@@ -11,3 +11,5 @@ alphabetical order):
|
||||
|
||||
Andreas Enge <andreas@enge.fr>
|
||||
Nikita Karetnikov <nikita@karetnikov.org>
|
||||
Cyril Roelandt <tipecaml@gmail.com>
|
||||
Mark H. Weaver <mhw@netris.org>
|
||||
|
||||
@@ -1 +1,4 @@
|
||||
Please see the Git commit log at <https://gitorious.org/guix>.
|
||||
Normally a ChangeLog is generated at "make dist" time and available in
|
||||
source tarballs.
|
||||
|
||||
If not, see the Git commit log at <http://git.sv.gnu.org/cgit/guix.git/>.
|
||||
|
||||
@@ -23,6 +23,23 @@ Similarly, for a Guile session using the Guix modules:
|
||||
The ‘pre-inst-env’ script sets up all the environment variables
|
||||
necessary to support this.
|
||||
|
||||
* The Perfect Setup
|
||||
|
||||
The Perfect Setup to hack on Guix is basically the perfect setup used
|
||||
for Guile hacking (info "(guile) Using Guile in Emacs"). First, you
|
||||
need more than an editor, you need [[http://www.gnu.org/software/emacs][Emacs]], empowered by the wonderful
|
||||
[[http://nongnu.org/geiser/][Geiser]].
|
||||
|
||||
Geiser allows for interactive and incremental development from within
|
||||
Emacs: code compilation and evaluation from within buffers, access to
|
||||
on-line documentation (docstrings), context-sensitive completion, M-. to
|
||||
jump to an object definition, a REPL to try out your code, and more.
|
||||
|
||||
To actually edit the code, Emacs already has a neat Scheme mode. But in
|
||||
addition to that, you must not miss [[http://www.emacswiki.org/emacs/ParEdit][Paredit]]. It provides facilities to
|
||||
directly operate on the syntax tree, such as raising an s-expression or
|
||||
wrapping it, swallowing or rejecting the following s-expression, etc.
|
||||
|
||||
* Adding new packages
|
||||
|
||||
Package recipes in Guix look like this:
|
||||
@@ -120,8 +137,8 @@ GCC, libc, etc. need to be built. To that end, run the following
|
||||
commands:
|
||||
|
||||
#+BEGIN_SRC sh
|
||||
./pre-inst-env guix-build \
|
||||
-e '(@ (distro packages make-bootstrap) bootstrap-tarballs)' \
|
||||
./pre-inst-env guix-build -K \
|
||||
-e '(@ (gnu packages make-bootstrap) %bootstrap-tarballs)' \
|
||||
--system=i686-linux
|
||||
|
||||
#+END_SRC
|
||||
@@ -158,3 +175,29 @@ statically-linked; the bootstrap Guile must be relocatable (see patch in
|
||||
the Guix distro); the static-binaries tarball must contain the same
|
||||
programs (Coreutils, Grep, sed, Awk, etc.); and so on.
|
||||
|
||||
* Commit Access
|
||||
|
||||
Development is done using the Git distributed version control system. Thus,
|
||||
access to the repository is not strictly necessary. We welcome contributions
|
||||
in the form of patches as produced by ‘git format-patch’ sent to
|
||||
bug-guix@gnu.org.
|
||||
|
||||
However, for frequent contributors, having write access to the repository is
|
||||
convenient. When you get commit access, please make sure to follow the policy
|
||||
below (discussions of the policy can take place on bug-guix@gnu.org.)
|
||||
|
||||
Non-trivial patches should always be posted to bug-guix@gnu.org (trivial
|
||||
patches include fixing typos, etc.)
|
||||
|
||||
For patches that just add a new package, and a simple one, it’s OK to commit,
|
||||
if you’re confident (which means you successfully built it in a chroot setup.)
|
||||
Likewise for package upgrades. We have a mailing list for commit
|
||||
notifications (guix-commits@gnu.org), so people can notice. Before pushing
|
||||
your changes, make sure to run ‘git pull --rebase’.
|
||||
|
||||
For anything else, please post to bug-guix@gnu.org and leave time for a
|
||||
review, without committing anything. If you didn’t receive any reply
|
||||
after two weeks, and if you’re confident, it’s OK to commit.
|
||||
|
||||
That last part is subject to being adjusted, allowing individuals to commit
|
||||
directly on non-controversial changes on parts they’re familiar with.
|
||||
|
||||
+188
-30
@@ -18,29 +18,50 @@
|
||||
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
bin_SCRIPTS = \
|
||||
guix-build \
|
||||
guix-download \
|
||||
guix-import \
|
||||
guix-package \
|
||||
guix-gc
|
||||
scripts/guix
|
||||
|
||||
nodist_noinst_SCRIPTS = \
|
||||
pre-inst-env \
|
||||
test-env
|
||||
|
||||
MODULES = \
|
||||
guix/scripts/build.scm \
|
||||
guix/scripts/download.scm \
|
||||
guix/scripts/import.scm \
|
||||
guix/scripts/package.scm \
|
||||
guix/scripts/gc.scm \
|
||||
guix/scripts/hash.scm \
|
||||
guix/scripts/pull.scm \
|
||||
guix/scripts/substitute-binary.scm \
|
||||
guix/scripts/refresh.scm \
|
||||
guix/base32.scm \
|
||||
guix/records.scm \
|
||||
guix/utils.scm \
|
||||
guix/serialization.scm \
|
||||
guix/nar.scm \
|
||||
guix/derivations.scm \
|
||||
guix/download.scm \
|
||||
guix/gnu-maintenance.scm \
|
||||
guix/licenses.scm \
|
||||
guix/build-system.scm \
|
||||
guix/build-system/cmake.scm \
|
||||
guix/build-system/gnu.scm \
|
||||
guix/build-system/perl.scm \
|
||||
guix/build-system/python.scm \
|
||||
guix/build-system/trivial.scm \
|
||||
guix/ftp-client.scm \
|
||||
guix/web.scm \
|
||||
guix/gnupg.scm \
|
||||
guix/store.scm \
|
||||
guix/ui.scm \
|
||||
guix/build/download.scm \
|
||||
guix/build/cmake-build-system.scm \
|
||||
guix/build/gnu-build-system.scm \
|
||||
guix/build/perl-build-system.scm \
|
||||
guix/build/python-build-system.scm \
|
||||
guix/build/utils.scm \
|
||||
guix/build/union.scm \
|
||||
guix/build/rpath.scm \
|
||||
guix/packages.scm \
|
||||
guix/snix.scm \
|
||||
guix.scm \
|
||||
@@ -50,76 +71,142 @@ MODULES = \
|
||||
gnu/packages/aspell.scm \
|
||||
gnu/packages/attr.scm \
|
||||
gnu/packages/autotools.scm \
|
||||
gnu/packages/avahi.scm \
|
||||
gnu/packages/base.scm \
|
||||
gnu/packages/bash.scm \
|
||||
gnu/packages/bdb.scm \
|
||||
gnu/packages/bdw-gc.scm \
|
||||
gnu/packages/bison.scm \
|
||||
gnu/packages/bootstrap.scm \
|
||||
gnu/packages/cdrom.scm \
|
||||
gnu/packages/cflow.scm \
|
||||
gnu/packages/check.scm \
|
||||
gnu/packages/cmake.scm \
|
||||
gnu/packages/compression.scm \
|
||||
gnu/packages/cpio.scm \
|
||||
gnu/packages/cppi.scm \
|
||||
gnu/packages/cross-base.scm \
|
||||
gnu/packages/cryptsetup.scm \
|
||||
gnu/packages/curl.scm \
|
||||
gnu/packages/cyrus-sasl.scm \
|
||||
gnu/packages/dejagnu.scm \
|
||||
gnu/packages/ddrescue.scm \
|
||||
gnu/packages/dwm.scm \
|
||||
gnu/packages/ed.scm \
|
||||
gnu/packages/emacs.scm \
|
||||
gnu/packages/fdisk.scm \
|
||||
gnu/packages/file.scm \
|
||||
gnu/packages/flex.scm \
|
||||
gnu/packages/fontutils.scm \
|
||||
gnu/packages/freeipmi.scm \
|
||||
gnu/packages/gawk.scm \
|
||||
gnu/packages/gcc.scm \
|
||||
gnu/packages/gdb.scm \
|
||||
gnu/packages/gdbm.scm \
|
||||
gnu/packages/gettext.scm \
|
||||
gnu/packages/ghostscript.scm \
|
||||
gnu/packages/glib.scm \
|
||||
gnu/packages/global.scm \
|
||||
gnu/packages/gnupg.scm \
|
||||
gnu/packages/gnutls.scm \
|
||||
gnu/packages/gperf.scm \
|
||||
gnu/packages/gprolog.scm \
|
||||
gnu/packages/groff.scm \
|
||||
gnu/packages/grub.scm \
|
||||
gnu/packages/gsasl.scm \
|
||||
gnu/packages/gtk.scm \
|
||||
gnu/packages/guile.scm \
|
||||
gnu/packages/gv.scm \
|
||||
gnu/packages/help2man.scm \
|
||||
gnu/packages/hugs.scm \
|
||||
gnu/packages/icu4c.scm \
|
||||
gnu/packages/idutils.scm \
|
||||
gnu/packages/indent.scm \
|
||||
gnu/packages/irssi.scm \
|
||||
gnu/packages/ld-wrapper.scm \
|
||||
gnu/packages/less.scm \
|
||||
gnu/packages/lesstif.scm \
|
||||
gnu/packages/libapr.scm \
|
||||
gnu/packages/libdaemon.scm \
|
||||
gnu/packages/libevent.scm \
|
||||
gnu/packages/libffi.scm \
|
||||
gnu/packages/libidn.scm \
|
||||
gnu/packages/libjpeg.scm \
|
||||
gnu/packages/libphidget.scm \
|
||||
gnu/packages/libpng.scm \
|
||||
gnu/packages/libsigsegv.scm \
|
||||
gnu/packages/libtiff.scm \
|
||||
gnu/packages/libunistring.scm \
|
||||
gnu/packages/libusb.scm \
|
||||
gnu/packages/libunwind.scm \
|
||||
gnu/packages/linux.scm \
|
||||
gnu/packages/linux-initrd.scm \
|
||||
gnu/packages/lout.scm \
|
||||
gnu/packages/lsh.scm \
|
||||
gnu/packages/lsof.scm \
|
||||
gnu/packages/lua.scm \
|
||||
gnu/packages/lvm.scm \
|
||||
gnu/packages/m4.scm \
|
||||
gnu/packages/mailutils.scm \
|
||||
gnu/packages/make-bootstrap.scm \
|
||||
gnu/packages/mit-krb5.scm \
|
||||
gnu/packages/mp3.scm \
|
||||
gnu/packages/multiprecision.scm \
|
||||
gnu/packages/mysql.scm \
|
||||
gnu/packages/nano.scm \
|
||||
gnu/packages/ncurses.scm \
|
||||
gnu/packages/netpbm.scm \
|
||||
gnu/packages/nettle.scm \
|
||||
gnu/packages/ocaml.scm \
|
||||
gnu/packages/oggvorbis.scm \
|
||||
gnu/packages/openldap.scm \
|
||||
gnu/packages/openssl.scm \
|
||||
gnu/packages/parted.scm \
|
||||
gnu/packages/patchelf.scm \
|
||||
gnu/packages/pcre.scm \
|
||||
gnu/packages/pdf.scm \
|
||||
gnu/packages/perl.scm \
|
||||
gnu/packages/pkg-config.scm \
|
||||
gnu/packages/popt.scm \
|
||||
gnu/packages/pth.scm \
|
||||
gnu/packages/python.scm \
|
||||
gnu/packages/qemu.scm \
|
||||
gnu/packages/ratpoison.scm \
|
||||
gnu/packages/readline.scm \
|
||||
gnu/packages/recutils.scm \
|
||||
gnu/packages/rsync.scm \
|
||||
gnu/packages/samba.scm \
|
||||
gnu/packages/scheme.scm \
|
||||
gnu/packages/screen.scm \
|
||||
gnu/packages/shishi.scm \
|
||||
gnu/packages/smalltalk.scm \
|
||||
gnu/packages/sqlite.scm \
|
||||
gnu/packages/ssh.scm \
|
||||
gnu/packages/subversion.scm \
|
||||
gnu/packages/system.scm \
|
||||
gnu/packages/tcl.scm \
|
||||
gnu/packages/tcsh.scm \
|
||||
gnu/packages/texinfo.scm \
|
||||
gnu/packages/texlive.scm \
|
||||
gnu/packages/time.scm \
|
||||
gnu/packages/tmux.scm \
|
||||
gnu/packages/tor.scm \
|
||||
gnu/packages/version-control.scm \
|
||||
gnu/packages/vim.scm \
|
||||
gnu/packages/vpn.scm \
|
||||
gnu/packages/w3m.scm \
|
||||
gnu/packages/wdiff.scm \
|
||||
gnu/packages/wget.scm \
|
||||
gnu/packages/which.scm \
|
||||
gnu/packages/xml.scm \
|
||||
gnu/packages/zile.scm
|
||||
gnu/packages/xorg.scm \
|
||||
gnu/packages/zile.scm \
|
||||
gnu/packages/zip.scm \
|
||||
gnu/system/vm.scm
|
||||
|
||||
# Because of the autoload hack in (guix build download), we must build it
|
||||
# first to avoid errors on systems where (gnutls) is unavailable.
|
||||
guix/scripts/download.go: guix/build/download.go
|
||||
|
||||
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
|
||||
|
||||
@@ -127,33 +214,53 @@ nobase_dist_guilemodule_DATA = $(MODULES)
|
||||
|
||||
patchdir = $(guilemoduledir)/gnu/packages/patches
|
||||
dist_patch_DATA = \
|
||||
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
||||
gnu/packages/patches/automake-skip-amhello-tests.patch \
|
||||
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
||||
gnu/packages/patches/binutils-ld-new-dtags.patch \
|
||||
gnu/packages/patches/cmake-fix-tests.patch \
|
||||
gnu/packages/patches/cpio-gets-undeclared.patch \
|
||||
gnu/packages/patches/diffutils-gets-undeclared.patch \
|
||||
gnu/packages/patches/emacs-configure-sh.patch \
|
||||
gnu/packages/patches/flex-bison-tests.patch \
|
||||
gnu/packages/patches/gawk-shell.patch \
|
||||
gnu/packages/patches/diffutils-gets-undeclared.patch \
|
||||
gnu/packages/patches/emacs-configure-sh.patch \
|
||||
gnu/packages/patches/findutils-absolute-paths.patch \
|
||||
gnu/packages/patches/flac-fix-memcmp-not-declared.patch \
|
||||
gnu/packages/patches/flex-bison-tests.patch \
|
||||
gnu/packages/patches/gawk-shell.patch \
|
||||
gnu/packages/patches/gcc-cross-environment-variables.patch \
|
||||
gnu/packages/patches/gettext-gets-undeclared.patch \
|
||||
gnu/packages/patches/glib-tests-desktop.patch \
|
||||
gnu/packages/patches/glib-tests-homedir.patch \
|
||||
gnu/packages/patches/glib-tests-prlimit.patch \
|
||||
gnu/packages/patches/glib-tests-timezone.patch \
|
||||
gnu/packages/patches/glibc-bootstrap-system.patch \
|
||||
gnu/packages/patches/glibc-no-ld-so-cache.patch \
|
||||
gnu/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||
gnu/packages/patches/guile-default-utf8.patch \
|
||||
gnu/packages/patches/guile-relocatable.patch \
|
||||
gnu/packages/patches/libtool-skip-tests.patch \
|
||||
gnu/packages/patches/lsh-guile-compat.patch \
|
||||
gnu/packages/patches/lsh-no-root-login.patch \
|
||||
gnu/packages/patches/grub-gets-undeclared.patch \
|
||||
gnu/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||
gnu/packages/patches/guile-default-utf8.patch \
|
||||
gnu/packages/patches/guile-linux-syscalls.patch \
|
||||
gnu/packages/patches/guile-relocatable.patch \
|
||||
gnu/packages/patches/libapr-skip-getservbyname-test.patch \
|
||||
gnu/packages/patches/libevent-dns-tests.patch \
|
||||
gnu/packages/patches/libtool-skip-tests.patch \
|
||||
gnu/packages/patches/lsh-guile-compat.patch \
|
||||
gnu/packages/patches/lsh-no-root-login.patch \
|
||||
gnu/packages/patches/lsh-pam-service-name.patch \
|
||||
gnu/packages/patches/m4-gets-undeclared.patch \
|
||||
gnu/packages/patches/m4-readlink-EINVAL.patch \
|
||||
gnu/packages/patches/m4-s_isdir.patch \
|
||||
gnu/packages/patches/make-impure-dirs.patch \
|
||||
gnu/packages/patches/findutils-absolute-paths.patch \
|
||||
gnu/packages/patches/perl-no-sys-dirs.patch \
|
||||
gnu/packages/patches/procps-make-3.82.patch \
|
||||
gnu/packages/patches/m4-gets-undeclared.patch \
|
||||
gnu/packages/patches/m4-readlink-EINVAL.patch \
|
||||
gnu/packages/patches/m4-s_isdir.patch \
|
||||
gnu/packages/patches/make-impure-dirs.patch \
|
||||
gnu/packages/patches/mcron-install.patch \
|
||||
gnu/packages/patches/perl-no-sys-dirs.patch \
|
||||
gnu/packages/patches/python-fix-dbm.patch \
|
||||
gnu/packages/patches/procps-make-3.82.patch \
|
||||
gnu/packages/patches/qemu-multiple-smb-shares.patch \
|
||||
gnu/packages/patches/readline-link-ncurses.patch \
|
||||
gnu/packages/patches/shishi-gets-undeclared.patch \
|
||||
gnu/packages/patches/tar-gets-undeclared.patch
|
||||
gnu/packages/patches/scheme48-tests.patch \
|
||||
gnu/packages/patches/tar-gets-undeclared.patch \
|
||||
gnu/packages/patches/tcsh-fix-autotest.patch \
|
||||
gnu/packages/patches/teckit-cstdio.patch \
|
||||
gnu/packages/patches/vpnc-script.patch \
|
||||
gnu/packages/patches/w3m-fix-compile.patch \
|
||||
gnu/packages/patches/xpdf-constchar.patch
|
||||
|
||||
bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
|
||||
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
|
||||
@@ -202,21 +309,29 @@ gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz:
|
||||
|
||||
nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
|
||||
|
||||
TESTS = \
|
||||
SCM_TESTS = \
|
||||
tests/base32.scm \
|
||||
tests/builders.scm \
|
||||
tests/derivations.scm \
|
||||
tests/ui.scm \
|
||||
tests/records.scm \
|
||||
tests/utils.scm \
|
||||
tests/build-utils.scm \
|
||||
tests/packages.scm \
|
||||
tests/snix.scm \
|
||||
tests/store.scm \
|
||||
tests/union.scm \
|
||||
tests/nar.scm \
|
||||
tests/union.scm
|
||||
|
||||
SH_TESTS = \
|
||||
tests/guix-build.sh \
|
||||
tests/guix-download.sh \
|
||||
tests/guix-gc.sh \
|
||||
tests/guix-hash.sh \
|
||||
tests/guix-package.sh
|
||||
|
||||
TESTS = $(SCM_TESTS) $(SH_TESTS)
|
||||
|
||||
TEST_EXTENSIONS = .scm .sh
|
||||
|
||||
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)"
|
||||
@@ -227,6 +342,14 @@ AM_SCM_LOG_FLAGS = --no-auto-compile -L "$(top_srcdir)"
|
||||
SH_LOG_COMPILER = $(top_builddir)/test-env $(SHELL)
|
||||
AM_SH_LOG_FLAGS = -x -e
|
||||
|
||||
# Make sure `tests/guix-gc.sh' runs last, after all the others. Otherwise it
|
||||
# could end up removing files from the store while they are being used by
|
||||
# other instances of the daemon.
|
||||
tests/guix-gc.log: \
|
||||
$(patsubst %.sh,%.log,$(filter-out tests/guix-gc.sh,$(SH_TESTS))) \
|
||||
$(SCM_TESTS:%.scm=%.log)
|
||||
|
||||
|
||||
EXTRA_DIST = \
|
||||
HACKING \
|
||||
ROADMAP \
|
||||
@@ -234,6 +357,7 @@ EXTRA_DIST = \
|
||||
.dir-locals.el \
|
||||
hydra.scm \
|
||||
build-aux/download.scm \
|
||||
build-aux/sync-synopses.scm \
|
||||
srfi/srfi-64.scm \
|
||||
srfi/srfi-64.upstream.scm \
|
||||
tests/test.drv \
|
||||
@@ -242,10 +366,19 @@ EXTRA_DIST = \
|
||||
release.nix \
|
||||
$(TESTS)
|
||||
|
||||
CLEANFILES = $(GOBJECTS) *.log
|
||||
CLEANFILES = \
|
||||
$(GOBJECTS) \
|
||||
$(SCM_TESTS:tests/%.scm=%.log)
|
||||
|
||||
AM_V_GUILEC = $(AM_V_GUILEC_$(V))
|
||||
AM_V_GUILEC_ = $(AM_V_GUILEC_$(AM_DEFAULT_VERBOSITY))
|
||||
AM_V_GUILEC_0 = @echo " GUILEC" $@;
|
||||
|
||||
# XXX: Use the C locale for when Guile lacks
|
||||
# <http://git.sv.gnu.org/cgit/guile.git/commit/?h=stable-2.0&id=e2c6bf3866d1186c60bacfbd4fe5037087ee5e3f>.
|
||||
.scm.go:
|
||||
$(MKDIR_P) `dirname "$@"`
|
||||
$(AM_V_GUILEC)$(MKDIR_P) `dirname "$@"` ; \
|
||||
LC_ALL=C \
|
||||
$(top_builddir)/pre-inst-env \
|
||||
$(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \
|
||||
-Wformat -Wunbound-variable -Warity-mismatch \
|
||||
@@ -278,3 +411,28 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \
|
||||
--with-nix-prefix="$(NIX_PREFIX)" \
|
||||
--enable-daemon
|
||||
|
||||
dist-hook: sync-synopses gen-ChangeLog assert-no-store-file-names
|
||||
|
||||
sync-synopses:
|
||||
-$(top_builddir)/pre-inst-env $(GUILE) \
|
||||
$(top_srcdir)/build-aux/sync-synopses.scm
|
||||
|
||||
gen-ChangeLog:
|
||||
if test -d .git; then \
|
||||
$(top_srcdir)/build-aux/gitlog-to-changelog \
|
||||
> $(distdir)/cl-t; \
|
||||
rm -f $(distdir)/ChangeLog; \
|
||||
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
|
||||
fi
|
||||
|
||||
# Make sure we're not shipping a file that embeds a local /nix/store file name.
|
||||
assert-no-store-file-names:
|
||||
if grep -r --exclude=*.texi --exclude=*.info \
|
||||
"$(storedir)/[a-z0-9]{32}-" $(distdir) ; \
|
||||
then \
|
||||
echo "error: store file names embedded in the distribution" >&2 ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
||||
.PHONY: sync-synopses gen-ChangeLog assert-no-store-file-names
|
||||
|
||||
@@ -1 +1,126 @@
|
||||
No news yet.
|
||||
-*- org -*-
|
||||
#+TITLE: Guix NEWS – history of user-visible changes
|
||||
#+STARTUP: content hidestars
|
||||
|
||||
Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
notice and this notice are preserved.
|
||||
|
||||
Please send Guix bug reports to bug-guix@gnu.org.
|
||||
|
||||
|
||||
* Changes in 0.2 (since 0.1)
|
||||
|
||||
** Package management
|
||||
|
||||
*** Guix commands are now sub-commands of the “guix” program
|
||||
|
||||
Instead of typing “guix-package”, one now has to type “guix package”, and so
|
||||
on. This has allowed us to homogenize the user interface and initial program
|
||||
setup, and to allow commands to be upgradable through “guix pull”.
|
||||
|
||||
*** New “guix package --upgrade” option
|
||||
|
||||
As the name implies, this option atomically upgrades all the packages
|
||||
installed in a profile or the set of packages matching a given regexp.
|
||||
See “Invoking guix package” in the manual.
|
||||
|
||||
*** New “guix package --search” option
|
||||
|
||||
Performs a full text search in package synopses and descriptions, and returns
|
||||
the matching packages in recutils format. See “Invoking guix package” in the
|
||||
manual, for details.
|
||||
|
||||
*** New “guix pull” command
|
||||
|
||||
The command pulls the latest version of Guix–both the package management
|
||||
modules and the distribution. See the manual for details.
|
||||
|
||||
*** New binary substituter
|
||||
|
||||
The “substituter” mechanism allows pre-built binaries to be transparently
|
||||
downloaded instead of performing a build locally. Currently binaries are
|
||||
available for x86_64 Linux-based GNU systems from http://hydra.gnu.org. The
|
||||
distribution is continuously built and binaries are made available from there.
|
||||
|
||||
See http://hydra.gnu.org/jobset/gnu/master under “Job status” for the list of
|
||||
available binary packages.
|
||||
|
||||
*** New “guix refresh” command
|
||||
|
||||
The command is used by Guix maintainers. It automatically updates the
|
||||
distribution to the latest upstream releases of GNU software.
|
||||
|
||||
*** New “guix hash” command
|
||||
|
||||
Convenience command to compute the hash of a file. See the manual for
|
||||
details.
|
||||
|
||||
*** Nix daemon code updated
|
||||
|
||||
The daemon code from Nix, used by the ‘guix-daemon’ command, has been updated
|
||||
to current Nix ‘master’.
|
||||
|
||||
** Programming interfaces
|
||||
|
||||
*** (guix download) now supports HTTPS, using GnuTLS
|
||||
|
||||
It allows package source tarballs to be retrieved over HTTPS.
|
||||
|
||||
*** New ‘native-search-path’ and ‘search-path’ package fields
|
||||
|
||||
Packages can define in their ‘native-search-path’ field environment variables
|
||||
that define search paths and need to be set for proper functioning of the
|
||||
package. For instance, GCC has ‘CPATH’ and ‘LIBRARY_PATH’ in its
|
||||
‘native-search-path’, Perl has ‘PERL5LIB’, Python has ‘PYTHONPATH’, etc.
|
||||
These environment variables are automatically set when building a package that
|
||||
uses one of these.
|
||||
|
||||
*** Package inputs can be a function of the target system type
|
||||
|
||||
The ‘inputs’ field of a package can now be conditional on the value of
|
||||
(%current-system). This is useful for packages that take system-dependent
|
||||
tarballs as inputs, such as GNU/MIT Scheme.
|
||||
|
||||
*** New build systems
|
||||
|
||||
The ‘perl-build-system’, ‘python-build-system’, and ‘cmake-build-system’ have
|
||||
been added. They implement the standard build systems for Perl, Python, and
|
||||
CMake packages.
|
||||
|
||||
*** Tools to build Linux initrds, QEMU images, and more
|
||||
|
||||
The (gnu packages linux-initrd) module provides a procedure to build a Linux
|
||||
initrd (“initial RAM disk”). The initrd embeds Guile, which is used to
|
||||
evaluate the given expression. The example below returns an initrd that
|
||||
mounts the /proc file system and starts a REPL:
|
||||
|
||||
(expression->initrd
|
||||
'(begin
|
||||
(mkdir "/proc")
|
||||
(mount "none" "/proc" "proc")
|
||||
((@ (system repl repl) start-repl))))
|
||||
|
||||
More examples in the linux-initrd.scm file.
|
||||
|
||||
Experimental interfaces to produce and use QEMU images are provided by the
|
||||
(gnu system vm) module. For instance, the
|
||||
‘expression->derivation-in-linux-vm’ evaluates the given Scheme expression in
|
||||
a QEMU virtual machine running the Linux kernel and Guile.
|
||||
|
||||
** GNU distribution
|
||||
|
||||
Many updates and additions have been made to the distribution. Here are the
|
||||
highlights.
|
||||
|
||||
*** Major updates
|
||||
|
||||
GCC 4.7.3 (the default) and GCC 4.8.0, Binutils 2.23.2, Guile 2.0.9,
|
||||
Coreutils 8.20, GDB 7.6, Texinfo 5.1.
|
||||
|
||||
*** Noteworthy new packages
|
||||
|
||||
TeXLive, Xorg, GNU GRUB, GNU Parted, QEMU and QEMU-KVM, Avahi, Bigloo,
|
||||
CHICKEN, Scheme48, Hugs, Python, Lua, Samba.
|
||||
|
||||
@@ -51,6 +51,16 @@ The "autoreconf -vi" command can be used to generate the build system
|
||||
infrastructure; it reports an error if an inappropriate version of the
|
||||
above packages is being used.
|
||||
|
||||
* Installing Guix from Guix
|
||||
|
||||
You can re-build and re-install Guix using a system that already runs Guix.
|
||||
To do so:
|
||||
|
||||
- install the dependencies (see 'Requirements' above) using Guix
|
||||
- re-run the configure script passing it the option
|
||||
`--with-libgcrypt-prefix=$HOME/.guix-profile/'
|
||||
- run "make" and "make install"
|
||||
|
||||
* How It Works
|
||||
|
||||
Guix does the high-level preparation of a /derivation/. A derivation is
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#+TITLE: Tentative GNU Guix Road Map
|
||||
|
||||
Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
are permitted in any medium without royalty provided the copyright
|
||||
@@ -20,7 +20,7 @@ The goals of the GNU Guix project are two-fold:
|
||||
This documents lists tentative milestones toward these goals.
|
||||
|
||||
|
||||
* GNU Guix 0.1: Dec. 2012
|
||||
* GNU Guix 0.1: Jan. 2013 (was: Dec. 2012)
|
||||
|
||||
** basic package management facilities
|
||||
|
||||
@@ -41,6 +41,11 @@ Including install, upgrade, remove, roll-back, and search.
|
||||
- sophisticated handling of collisions when building a union (package
|
||||
priorities, etc.)
|
||||
|
||||
** [[file:TODO::*add%20guix-pull][guix-pull tool]] to quickly update Guix and GNU for normal users
|
||||
** support for fetching pre-built binaries
|
||||
|
||||
- this is known as the "binary-cache substituter" in Nix parlance
|
||||
|
||||
** auto-update facility available for GNU packages
|
||||
|
||||
** more packages
|
||||
|
||||
@@ -5,4 +5,9 @@ proved to be inspiring and fruitful.
|
||||
Thanks to the following people who contributed to GNU Guix through
|
||||
suggestions, bug reports, patches, or general infrastructure help:
|
||||
|
||||
Jason Self <jself@gnu.org>
|
||||
Lluís Batlle i Rossell <viric@viric.name>
|
||||
Daniel Clark <dclark@pobox.com>
|
||||
Aleix Conchillo Flaqué <aconchillo@gmail.com>
|
||||
Alex Sassmannshausen <alex.sassmannshausen@gmail.com>
|
||||
Jason Self <jself@gnu.org>
|
||||
Alen Skondro <askondro@gmail.com>
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
-*- mode: org; coding: utf-8; -*-
|
||||
|
||||
#+TITLE: What's left to do?
|
||||
#+STARTUP: content hidestars
|
||||
|
||||
Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
Copying and distribution of this file, with or without modification,
|
||||
@@ -8,12 +11,6 @@ Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
|
||||
* integrate needed Nix code
|
||||
|
||||
Guix uses Nix’s daemon (‘nix-worker’, later renamed to ‘nix-daemon’) to
|
||||
actually perform builds, scheduling, substitution of pre-built binaries,
|
||||
and GC-related tasks. The daemon mainly uses ‘libstore’ from Nix.
|
||||
Integrating it in Guix itself will make Guix self-contained, thereby
|
||||
simplifying our users’ lives.
|
||||
|
||||
** Remove dependency on OpenSSL
|
||||
|
||||
The ‘openssl’ command-line tool is used in libstore to sign store paths
|
||||
@@ -23,11 +20,13 @@ X.509 SubjectPublicKeyInfo. These can be decoded with the [[http://lists.gnu.or
|
||||
GnuTLS]], but not yet with its Guile bindings. There’s also
|
||||
‘gnutls_privkey_sign_data’ to sign, and related functions.
|
||||
|
||||
** Add a binary cache substituter
|
||||
|
||||
Like scripts/download-from-binary-cache.pl in Nix, but written in
|
||||
Scheme. Substituters allow pre-built binaries to be downloaded when
|
||||
they are available from a trusted source.
|
||||
** Add `guix publish' to publish the store using Guile's web server
|
||||
|
||||
Generate narinfos and nars on the fly, upon HTTP GET requests.
|
||||
Ideally, extend .nix-cache-info to include the server's public key, and also
|
||||
reply to requests for .narinfo.sig.
|
||||
Optionally, use Guile-Avahi to publish the service.
|
||||
|
||||
** MAYBE Add a substituter that uses the GNUnet DHT
|
||||
|
||||
@@ -39,18 +38,6 @@ they trust.
|
||||
|
||||
Like scripts/build-remote.pl in Nix.
|
||||
|
||||
* infrastructure
|
||||
|
||||
** have a Hydra instance build Guix packages
|
||||
|
||||
[[http://nixos.org/hydra/][Hydra]] is a continuous integration tool based on Nix. It now has
|
||||
[[https://github.com/NixOS/hydra/commit/f27ae1d5663680400cb99cfb898970f34d8d21be][Guile/Guix support]], which allows “build recipes” written in Guile using
|
||||
Guix to be used directly on Hydra.
|
||||
|
||||
For a start, we may use the instance at hydra.nixos.org, generously
|
||||
provided by TU Delft. However, in the future, we may want to setup our
|
||||
own instance at gnu.org.
|
||||
|
||||
* user interface
|
||||
** Add a package.el (Emacs) back-end
|
||||
|
||||
@@ -70,12 +57,6 @@ write a new one based on it, as opposed to actually using it.
|
||||
|
||||
* extend <package>
|
||||
|
||||
** add support for ‘search-paths’
|
||||
|
||||
This should be passed to the build system, to extend package-specific
|
||||
search path environment variables–like ‘GUILE_LOAD_PATH’, ‘PERL5LIB’,
|
||||
etc.
|
||||
|
||||
** add a ‘user-environment-hook’
|
||||
|
||||
This should specify builder code to be run when building a user
|
||||
@@ -95,6 +76,13 @@ create a new ‘dir’.
|
||||
("i3" ,p3)))
|
||||
#+END_SRC
|
||||
|
||||
* synchronize package descriptions with GSRC and/or the [[http://directory.fsf.org][FSD]]
|
||||
|
||||
Meta-data for GNU packages, including descriptions and synopses, can be
|
||||
dumped from the FSD:
|
||||
http://directory.fsf.org/wiki?title=GNU/Export&action=purge .
|
||||
We could periodically synchronize with that.
|
||||
|
||||
* support cross-compilation
|
||||
|
||||
Implement ‘package-cross-derivation’, and add the corresponding code in
|
||||
@@ -135,24 +123,20 @@ Support sophisticated collision handling when building a union: check
|
||||
whether the colliding files are identical, honor per-package priorities,
|
||||
etc.
|
||||
|
||||
* guix-package
|
||||
* guix package
|
||||
|
||||
** add ‘--roll-back’
|
||||
** add ‘--list-generations’, and ‘--delete-generations’
|
||||
** add ‘--upgrade’
|
||||
** add ‘--search’
|
||||
|
||||
* guix build utils
|
||||
** Add equivalent to "rm -rf"
|
||||
** Add equivalent to Nixpkgs's ‘wrapProgram’
|
||||
** Add equivalent to chrpath, possibly using [[https://gitorious.org/guile-dlhacks/guile-dlhacks/][guile-dlhacks]]
|
||||
** MAYBE Change ‘ld-wrapper’ to add RPATH for libs passed by file name
|
||||
|
||||
** Add a hash-rewriting thing for deep dependency replacement without rebuild
|
||||
** MAYBE Add equivalent to chrpath that uses [[https://gitorious.org/guile-dlhacks/guile-dlhacks/][guile-dlhacks]]
|
||||
|
||||
** MAYBE Add a hash-rewriting thing for deep dependency replacement without rebuild
|
||||
|
||||
See [[https://github.com/NixOS/nixpkgs/commit/d1662d715514e6ef9d3dc29f132f1b3d8e608a18][Shea Levy's `replace-dependency' in Nixpkgs]].
|
||||
|
||||
* distro
|
||||
** choose a name! (Jinn?)
|
||||
** port to new GNU/Linux platforms, notably ‘mipsel64-linux’
|
||||
** port to GNU/Hurd, aka. ‘i686-gnu’
|
||||
|
||||
|
||||
@@ -34,6 +34,11 @@
|
||||
;;"http://www.fdn.fr/~lcourtes/software/guix/packages"
|
||||
)
|
||||
|
||||
;; XXX: Work around <http://bugs.gnu.org/13095>, present in Guile
|
||||
;; up to 2.0.7.
|
||||
(module-define! (resolve-module '(web client))
|
||||
'shutdown (const #f))
|
||||
|
||||
(define (file-name->uri file)
|
||||
"Return the URI for FILE."
|
||||
(match (string-tokenize file (char-set-complement (char-set #\/)))
|
||||
|
||||
Executable
+432
@@ -0,0 +1,432 @@
|
||||
eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
|
||||
& eval 'exec perl -wS "$0" $argv:q'
|
||||
if 0;
|
||||
# Convert git log output to ChangeLog format.
|
||||
|
||||
my $VERSION = '2012-07-29 06:11'; # UTC
|
||||
# The definition above must lie within the first 8 lines in order
|
||||
# for the Emacs time-stamp write hook (at end) to update it.
|
||||
# If you change this file with Emacs, please let the write hook
|
||||
# do its job. Otherwise, update this string manually.
|
||||
|
||||
# Copyright (C) 2008-2013 Free Software Foundation, Inc.
|
||||
|
||||
# This program 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.
|
||||
|
||||
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# Written by Jim Meyering
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Getopt::Long;
|
||||
use POSIX qw(strftime);
|
||||
|
||||
(my $ME = $0) =~ s|.*/||;
|
||||
|
||||
# use File::Coda; # http://meyering.net/code/Coda/
|
||||
END {
|
||||
defined fileno STDOUT or return;
|
||||
close STDOUT and return;
|
||||
warn "$ME: failed to close standard output: $!\n";
|
||||
$? ||= 1;
|
||||
}
|
||||
|
||||
sub usage ($)
|
||||
{
|
||||
my ($exit_code) = @_;
|
||||
my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
|
||||
if ($exit_code != 0)
|
||||
{
|
||||
print $STREAM "Try '$ME --help' for more information.\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
print $STREAM <<EOF;
|
||||
Usage: $ME [OPTIONS] [ARGS]
|
||||
|
||||
Convert git log output to ChangeLog format. If present, any ARGS
|
||||
are passed to "git log". To avoid ARGS being parsed as options to
|
||||
$ME, they may be preceded by '--'.
|
||||
|
||||
OPTIONS:
|
||||
|
||||
--amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
|
||||
makes a change to SHA1's commit log text or metadata.
|
||||
--append-dot append a dot to the first line of each commit message if
|
||||
there is no other punctuation or blank at the end.
|
||||
--no-cluster never cluster commit messages under the same date/author
|
||||
header; the default is to cluster adjacent commit messages
|
||||
if their headers are the same and neither commit message
|
||||
contains multiple paragraphs.
|
||||
--srcdir=DIR the root of the source tree, from which the .git/
|
||||
directory can be derived.
|
||||
--since=DATE convert only the logs since DATE;
|
||||
the default is to convert all log entries.
|
||||
--format=FMT set format string for commit subject and body;
|
||||
see 'man git-log' for the list of format metacharacters;
|
||||
the default is '%s%n%b%n'
|
||||
--strip-tab remove one additional leading TAB from commit message lines.
|
||||
--strip-cherry-pick remove data inserted by "git cherry-pick";
|
||||
this includes the "cherry picked from commit ..." line,
|
||||
and the possible final "Conflicts:" paragraph.
|
||||
--help display this help and exit
|
||||
--version output version information and exit
|
||||
|
||||
EXAMPLE:
|
||||
|
||||
$ME --since=2008-01-01 > ChangeLog
|
||||
$ME -- -n 5 foo > last-5-commits-to-branch-foo
|
||||
|
||||
SPECIAL SYNTAX:
|
||||
|
||||
The following types of strings are interpreted specially when they appear
|
||||
at the beginning of a log message line. They are not copied to the output.
|
||||
|
||||
Copyright-paperwork-exempt: Yes
|
||||
Append the "(tiny change)" notation to the usual "date name email"
|
||||
ChangeLog header to mark a change that does not require a copyright
|
||||
assignment.
|
||||
Co-authored-by: Joe User <user\@example.com>
|
||||
List the specified name and email address on a second
|
||||
ChangeLog header, denoting a co-author.
|
||||
Signed-off-by: Joe User <user\@example.com>
|
||||
These lines are simply elided.
|
||||
|
||||
In a FILE specified via --amend, comment lines (starting with "#") are ignored.
|
||||
FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
|
||||
a line) referring to a commit in the current project, and CODE refers to one
|
||||
or more consecutive lines of Perl code. Pairs must be separated by one or
|
||||
more blank line.
|
||||
|
||||
Here is sample input for use with --amend=FILE, from coreutils:
|
||||
|
||||
3a169f4c5d9159283548178668d2fae6fced3030
|
||||
# fix typo in title:
|
||||
s/all tile types/all file types/
|
||||
|
||||
1379ed974f1fa39b12e2ffab18b3f7a607082202
|
||||
# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
|
||||
# Change the author to be Paul. Note the escaped "@":
|
||||
s,Jim .*>,Paul Eggert <eggert\\\@cs.ucla.edu>,
|
||||
|
||||
EOF
|
||||
}
|
||||
exit $exit_code;
|
||||
}
|
||||
|
||||
# If the string $S is a well-behaved file name, simply return it.
|
||||
# If it contains white space, quotes, etc., quote it, and return the new string.
|
||||
sub shell_quote($)
|
||||
{
|
||||
my ($s) = @_;
|
||||
if ($s =~ m![^\w+/.,-]!)
|
||||
{
|
||||
# Convert each single quote to '\''
|
||||
$s =~ s/\'/\'\\\'\'/g;
|
||||
# Then single quote the string.
|
||||
$s = "'$s'";
|
||||
}
|
||||
return $s;
|
||||
}
|
||||
|
||||
sub quoted_cmd(@)
|
||||
{
|
||||
return join (' ', map {shell_quote $_} @_);
|
||||
}
|
||||
|
||||
# Parse file F.
|
||||
# Comment lines (starting with "#") are ignored.
|
||||
# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
|
||||
# (alone on a line) referring to a commit in the current project, and
|
||||
# CODE refers to one or more consecutive lines of Perl code.
|
||||
# Pairs must be separated by one or more blank line.
|
||||
sub parse_amend_file($)
|
||||
{
|
||||
my ($f) = @_;
|
||||
|
||||
open F, '<', $f
|
||||
or die "$ME: $f: failed to open for reading: $!\n";
|
||||
|
||||
my $fail;
|
||||
my $h = {};
|
||||
my $in_code = 0;
|
||||
my $sha;
|
||||
while (defined (my $line = <F>))
|
||||
{
|
||||
$line =~ /^\#/
|
||||
and next;
|
||||
chomp $line;
|
||||
$line eq ''
|
||||
and $in_code = 0, next;
|
||||
|
||||
if (!$in_code)
|
||||
{
|
||||
$line =~ /^([0-9a-fA-F]{40})$/
|
||||
or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
|
||||
$fail = 1, next;
|
||||
$sha = lc $1;
|
||||
$in_code = 1;
|
||||
exists $h->{$sha}
|
||||
and (warn "$ME: $f:$.: duplicate SHA1\n"),
|
||||
$fail = 1, next;
|
||||
}
|
||||
else
|
||||
{
|
||||
$h->{$sha} ||= '';
|
||||
$h->{$sha} .= "$line\n";
|
||||
}
|
||||
}
|
||||
close F;
|
||||
|
||||
$fail
|
||||
and exit 1;
|
||||
|
||||
return $h;
|
||||
}
|
||||
|
||||
# git_dir_option $SRCDIR
|
||||
#
|
||||
# From $SRCDIR, the --git-dir option to pass to git (none if $SRCDIR
|
||||
# is undef). Return as a list (0 or 1 element).
|
||||
sub git_dir_option($)
|
||||
{
|
||||
my ($srcdir) = @_;
|
||||
my @res = ();
|
||||
if (defined $srcdir)
|
||||
{
|
||||
my $qdir = shell_quote $srcdir;
|
||||
my $cmd = "cd $qdir && git rev-parse --show-toplevel";
|
||||
my $qcmd = shell_quote $cmd;
|
||||
my $git_dir = qx($cmd);
|
||||
defined $git_dir
|
||||
or die "$ME: cannot run $qcmd: $!\n";
|
||||
$? == 0
|
||||
or die "$ME: $qcmd had unexpected exit code or signal ($?)\n";
|
||||
chomp $git_dir;
|
||||
push @res, "--git-dir=$git_dir/.git";
|
||||
}
|
||||
@res;
|
||||
}
|
||||
|
||||
{
|
||||
my $since_date;
|
||||
my $format_string = '%s%n%b%n';
|
||||
my $amend_file;
|
||||
my $append_dot = 0;
|
||||
my $cluster = 1;
|
||||
my $strip_tab = 0;
|
||||
my $strip_cherry_pick = 0;
|
||||
my $srcdir;
|
||||
GetOptions
|
||||
(
|
||||
help => sub { usage 0 },
|
||||
version => sub { print "$ME version $VERSION\n"; exit },
|
||||
'since=s' => \$since_date,
|
||||
'format=s' => \$format_string,
|
||||
'amend=s' => \$amend_file,
|
||||
'append-dot' => \$append_dot,
|
||||
'cluster!' => \$cluster,
|
||||
'strip-tab' => \$strip_tab,
|
||||
'strip-cherry-pick' => \$strip_cherry_pick,
|
||||
'srcdir=s' => \$srcdir,
|
||||
) or usage 1;
|
||||
|
||||
defined $since_date
|
||||
and unshift @ARGV, "--since=$since_date";
|
||||
|
||||
# This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
|
||||
# that makes a correction in the log or attribution of that commit.
|
||||
my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
|
||||
|
||||
my @cmd = ('git',
|
||||
git_dir_option $srcdir,
|
||||
qw(log --log-size),
|
||||
'--pretty=format:%H:%ct %an <%ae>%n%n'.$format_string, @ARGV);
|
||||
open PIPE, '-|', @cmd
|
||||
or die ("$ME: failed to run '". quoted_cmd (@cmd) ."': $!\n"
|
||||
. "(Is your Git too old? Version 1.5.1 or later is required.)\n");
|
||||
|
||||
my $prev_multi_paragraph;
|
||||
my $prev_date_line = '';
|
||||
my @prev_coauthors = ();
|
||||
while (1)
|
||||
{
|
||||
defined (my $in = <PIPE>)
|
||||
or last;
|
||||
$in =~ /^log size (\d+)$/
|
||||
or die "$ME:$.: Invalid line (expected log size):\n$in";
|
||||
my $log_nbytes = $1;
|
||||
|
||||
my $log;
|
||||
my $n_read = read PIPE, $log, $log_nbytes;
|
||||
$n_read == $log_nbytes
|
||||
or die "$ME:$.: unexpected EOF\n";
|
||||
|
||||
# Extract leading hash.
|
||||
my ($sha, $rest) = split ':', $log, 2;
|
||||
defined $sha
|
||||
or die "$ME:$.: malformed log entry\n";
|
||||
$sha =~ /^[0-9a-fA-F]{40}$/
|
||||
or die "$ME:$.: invalid SHA1: $sha\n";
|
||||
|
||||
# If this commit's log requires any transformation, do it now.
|
||||
my $code = $amend_code->{$sha};
|
||||
if (defined $code)
|
||||
{
|
||||
eval 'use Safe';
|
||||
my $s = new Safe;
|
||||
# Put the unpreprocessed entry into "$_".
|
||||
$_ = $rest;
|
||||
|
||||
# Let $code operate on it, safely.
|
||||
my $r = $s->reval("$code")
|
||||
or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
|
||||
|
||||
# Note that we've used this entry.
|
||||
delete $amend_code->{$sha};
|
||||
|
||||
# Update $rest upon success.
|
||||
$rest = $_;
|
||||
}
|
||||
|
||||
# Remove lines inserted by "git cherry-pick".
|
||||
if ($strip_cherry_pick)
|
||||
{
|
||||
$rest =~ s/^\s*Conflicts:\n.*//sm;
|
||||
$rest =~ s/^\s*\(cherry picked from commit [\da-f]+\)\n//m;
|
||||
}
|
||||
|
||||
my @line = split "\n", $rest;
|
||||
my $author_line = shift @line;
|
||||
defined $author_line
|
||||
or die "$ME:$.: unexpected EOF\n";
|
||||
$author_line =~ /^(\d+) (.*>)$/
|
||||
or die "$ME:$.: Invalid line "
|
||||
. "(expected date/author/email):\n$author_line\n";
|
||||
|
||||
# Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
|
||||
# `(tiny change)' annotation.
|
||||
my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
|
||||
? ' (tiny change)' : '');
|
||||
|
||||
my $date_line = sprintf "%s %s$tiny\n",
|
||||
strftime ("%F", localtime ($1)), $2;
|
||||
|
||||
my @coauthors = grep /^Co-authored-by:.*$/, @line;
|
||||
# Omit meta-data lines we've already interpreted.
|
||||
@line = grep !/^(?:Signed-off-by:[ ].*>$
|
||||
|Co-authored-by:[ ]
|
||||
|Copyright-paperwork-exempt:[ ]
|
||||
)/x, @line;
|
||||
|
||||
# Remove leading and trailing blank lines.
|
||||
if (@line)
|
||||
{
|
||||
while ($line[0] =~ /^\s*$/) { shift @line; }
|
||||
while ($line[$#line] =~ /^\s*$/) { pop @line; }
|
||||
}
|
||||
|
||||
# Record whether there are two or more paragraphs.
|
||||
my $multi_paragraph = grep /^\s*$/, @line;
|
||||
|
||||
# Format 'Co-authored-by: A U Thor <email@example.com>' lines in
|
||||
# standard multi-author ChangeLog format.
|
||||
for (@coauthors)
|
||||
{
|
||||
s/^Co-authored-by:\s*/\t /;
|
||||
s/\s*</ </;
|
||||
|
||||
/<.*?@.*\..*>/
|
||||
or warn "$ME: warning: missing email address for "
|
||||
. substr ($_, 5) . "\n";
|
||||
}
|
||||
|
||||
# If clustering of commit messages has been disabled, if this header
|
||||
# would be different from the previous date/name/email/coauthors header,
|
||||
# or if this or the previous entry consists of two or more paragraphs,
|
||||
# then print the header.
|
||||
if ( ! $cluster
|
||||
|| $date_line ne $prev_date_line
|
||||
|| "@coauthors" ne "@prev_coauthors"
|
||||
|| $multi_paragraph
|
||||
|| $prev_multi_paragraph)
|
||||
{
|
||||
$prev_date_line eq ''
|
||||
or print "\n";
|
||||
print $date_line;
|
||||
@coauthors
|
||||
and print join ("\n", @coauthors), "\n";
|
||||
}
|
||||
$prev_date_line = $date_line;
|
||||
@prev_coauthors = @coauthors;
|
||||
$prev_multi_paragraph = $multi_paragraph;
|
||||
|
||||
# If there were any lines
|
||||
if (@line == 0)
|
||||
{
|
||||
warn "$ME: warning: empty commit message:\n $date_line\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($append_dot)
|
||||
{
|
||||
# If the first line of the message has enough room, then
|
||||
if (length $line[0] < 72)
|
||||
{
|
||||
# append a dot if there is no other punctuation or blank
|
||||
# at the end.
|
||||
$line[0] =~ /[[:punct:]\s]$/
|
||||
or $line[0] .= '.';
|
||||
}
|
||||
}
|
||||
|
||||
# Remove one additional leading TAB from each line.
|
||||
$strip_tab
|
||||
and map { s/^\t// } @line;
|
||||
|
||||
# Prefix each non-empty line with a TAB.
|
||||
@line = map { length $_ ? "\t$_" : '' } @line;
|
||||
|
||||
print "\n", join ("\n", @line), "\n";
|
||||
}
|
||||
|
||||
defined ($in = <PIPE>)
|
||||
or last;
|
||||
$in ne "\n"
|
||||
and die "$ME:$.: unexpected line:\n$in";
|
||||
}
|
||||
|
||||
close PIPE
|
||||
or die "$ME: error closing pipe from " . quoted_cmd (@cmd) . "\n";
|
||||
# FIXME-someday: include $PROCESS_STATUS in the diagnostic
|
||||
|
||||
# Complain about any unused entry in the --amend=F specified file.
|
||||
my $fail = 0;
|
||||
foreach my $sha (keys %$amend_code)
|
||||
{
|
||||
warn "$ME:$amend_file: unused entry: $sha\n";
|
||||
$fail = 1;
|
||||
}
|
||||
|
||||
exit $fail;
|
||||
}
|
||||
|
||||
# Local Variables:
|
||||
# mode: perl
|
||||
# indent-tabs-mode: nil
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "my $VERSION = '"
|
||||
# time-stamp-format: "%:y-%02m-%02d %02H:%02M"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "'; # UTC"
|
||||
# End:
|
||||
@@ -0,0 +1,62 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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/>.
|
||||
|
||||
;;;
|
||||
;;; Report synopses that defer from those found in the GNU Womb.
|
||||
;;;
|
||||
|
||||
(use-modules (guix gnu-maintenance)
|
||||
(guix packages)
|
||||
(guix utils)
|
||||
(guix ui)
|
||||
(gnu packages)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match))
|
||||
|
||||
(define official
|
||||
;; GNU package descriptors from the Womb.
|
||||
(official-gnu-packages))
|
||||
|
||||
(define gnus
|
||||
;; GNU packages available in the distro.
|
||||
(let ((lookup (lambda (p)
|
||||
(find (lambda (descriptor)
|
||||
(equal? (gnu-package-name descriptor)
|
||||
(package-name p)))
|
||||
official))))
|
||||
(fold-packages (lambda (package result)
|
||||
(or (and=> (lookup package)
|
||||
(cut alist-cons package <> result))
|
||||
result))
|
||||
'())))
|
||||
|
||||
;; Iterate over GNU packages. Report those whose synopsis defers from that
|
||||
;; found upstream.
|
||||
(for-each (match-lambda
|
||||
((package . descriptor)
|
||||
(let ((upstream (gnu-package-doc-summary descriptor))
|
||||
(downstream (package-synopsis package))
|
||||
(loc (or (package-field-location package 'synopsis)
|
||||
(package-location package))))
|
||||
(unless (and upstream (string=? upstream downstream))
|
||||
(format (guix-warning-port)
|
||||
"~a: ~a: proposed synopsis: ~s~%"
|
||||
(location->string loc) (package-name package)
|
||||
upstream)))))
|
||||
gnus)
|
||||
@@ -11,6 +11,14 @@ if test "x$guix_build_daemon" = "xyes"; then
|
||||
AC_PROG_RANLIB
|
||||
AC_CONFIG_HEADER([nix/config.h])
|
||||
|
||||
dnl Decompressors, for use by the substituter.
|
||||
AC_PATH_PROG([GZIP], [gzip])
|
||||
AC_PATH_PROG([BZIP2], [bzip2])
|
||||
AC_PATH_PROG([XZ], [xz])
|
||||
AC_SUBST([GZIP])
|
||||
AC_SUBST([BZIP2])
|
||||
AC_SUBST([XZ])
|
||||
|
||||
dnl Use 64-bit file system calls so that we can support files > 2 GiB.
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
@@ -95,6 +103,8 @@ if test "x$guix_build_daemon" = "xyes"; then
|
||||
|
||||
AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
|
||||
[chmod +x nix/scripts/list-runtime-roots])
|
||||
AC_CONFIG_FILES([nix/scripts/substitute-binary],
|
||||
[chmod +x nix/scripts/substitute-binary])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"])
|
||||
|
||||
+16
-14
@@ -2,11 +2,11 @@
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.68)
|
||||
AC_INIT([GNU Guix], [0.1], [bug-guix@gnu.org], [guix],
|
||||
AC_INIT([GNU Guix], [0.2], [bug-guix@gnu.org], [guix],
|
||||
[http://gnu.org/software/guix/])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
|
||||
AM_INIT_AUTOMAKE([1.11 gnu silent-rules subdir-objects \
|
||||
AM_INIT_AUTOMAKE([1.12 gnu silent-rules subdir-objects \
|
||||
color-tests parallel-tests])
|
||||
|
||||
AC_CONFIG_SRCDIR([guix.scm])
|
||||
@@ -40,13 +40,16 @@ AC_ARG_ENABLE([daemon],
|
||||
guix_localstatedir="`eval echo $localstatedir | sed -e "s|NONE|/usr/local|g"`"
|
||||
AC_SUBST([guix_localstatedir])
|
||||
|
||||
PKG_CHECK_MODULES([GUILE], [guile-2.0])
|
||||
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.5])
|
||||
AC_PATH_PROG([GUILE], [guile])
|
||||
AC_PATH_PROG([GUILD], [guild])
|
||||
if test "x$GUILD" = "x"; then
|
||||
AC_MSG_ERROR(['guild' binary not found; please check your guile-2.x installation.])
|
||||
fi
|
||||
|
||||
dnl Make sure we have a full-fledged Guile.
|
||||
GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])
|
||||
|
||||
AC_ARG_WITH([nix-prefix],
|
||||
[AS_HELP_STRING([--with-nix-prefix=DIR], [search for Nix in DIR])],
|
||||
[case "$withval" in
|
||||
@@ -65,6 +68,12 @@ if test "x$guix_build_daemon$NIX_INSTANTIATE$NIX_HASH" = "xno"; then
|
||||
AC_MSG_ERROR([Nix programs not found; please install Nix or use `--with-nix-prefix'.])
|
||||
fi
|
||||
|
||||
if test "x$NIX_INSTANTIATE" = "x"; then
|
||||
# This program is an optional dependency, so we just want it to be
|
||||
# taken from $PATH if it's not available right now.
|
||||
NIX_INSTANTIATE="nix-instantiate"
|
||||
fi
|
||||
|
||||
AC_ARG_WITH([nixpkgs],
|
||||
[AS_HELP_STRING([--with-nixpkgs=DIR], [search for Nixpkgs in DIR])],
|
||||
[case "$withval" in
|
||||
@@ -109,17 +118,10 @@ m4_include([config-daemon.ac])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
po/Makefile.in
|
||||
guix/config.scm
|
||||
guix-build
|
||||
guix-download
|
||||
guix-import
|
||||
guix-package
|
||||
guix-gc
|
||||
pre-inst-env
|
||||
test-env])
|
||||
guix/config.scm])
|
||||
|
||||
AC_CONFIG_COMMANDS([commands-exec],
|
||||
[chmod +x guix-build guix-download guix-import guix-package guix-gc \
|
||||
pre-inst-env test-env])
|
||||
AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix])
|
||||
AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
|
||||
AC_CONFIG_FILES([test-env], [chmod +x test-env])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -105,6 +105,7 @@ libstore_headers = \
|
||||
libstore_a_CPPFLAGS = \
|
||||
$(libutil_a_CPPFLAGS) \
|
||||
-I$(top_srcdir)/nix/libstore \
|
||||
-I$(top_builddir)/nix/libstore \
|
||||
-DNIX_STORE_DIR=\"$(storedir)\" \
|
||||
-DNIX_DATA_DIR=\"$(datadir)\" \
|
||||
-DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
|
||||
@@ -114,7 +115,7 @@ libstore_a_CPPFLAGS = \
|
||||
-DNIX_BIN_DIR=\"$(bindir)\" \
|
||||
-DOPENSSL_PATH="\"openssl\""
|
||||
|
||||
libstore_a_CFLAGS = \
|
||||
libstore_a_CXXFLAGS = \
|
||||
$(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS)
|
||||
|
||||
bin_PROGRAMS = guix-daemon
|
||||
@@ -158,7 +159,8 @@ nix/libstore/schema.sql.hh: nix/libstore/schema.sql
|
||||
(write (get-string-all in) out)))))"
|
||||
|
||||
nodist_pkglibexec_SCRIPTS = \
|
||||
nix/scripts/list-runtime-roots
|
||||
nix/scripts/list-runtime-roots \
|
||||
nix/scripts/substitute-binary
|
||||
|
||||
EXTRA_DIST += \
|
||||
nix/sync-with-upstream \
|
||||
|
||||
+373
-72
@@ -13,16 +13,17 @@
|
||||
@dircategory Package management
|
||||
@direntry
|
||||
* guix: (guix). Guix, the functional package manager.
|
||||
* guix-package: (guix)Invoking guix-package
|
||||
* guix package: (guix)Invoking guix package
|
||||
Managing packages with Guix.
|
||||
* guix-build: (guix)Invoking guix-build
|
||||
* guix build: (guix)Invoking guix build
|
||||
Building packages with Guix.
|
||||
@end direntry
|
||||
|
||||
@titlepage
|
||||
@title{GNU Guix Reference Manual}
|
||||
@subtitle{Using the GNU Guix Functional Package Manager}
|
||||
@title GNU Guix Reference Manual
|
||||
@subtitle Using the GNU Guix Functional Package Manager
|
||||
@author Ludovic Courtès
|
||||
@author Nikita Karetnikov
|
||||
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
@@ -140,8 +141,10 @@ Distribution}.
|
||||
@node Installation
|
||||
@chapter Installation
|
||||
|
||||
This section describes the software requirements of Guix, as well as how
|
||||
to install it and get ready to use it.
|
||||
GNU Guix is available for download from its website at
|
||||
@url{http://www.gnu.org/software/guix/}. This section describes the
|
||||
software requirements of Guix, as well as how to install it and get
|
||||
ready to use it.
|
||||
|
||||
The build procedure for Guix is the same as for other GNU software, and
|
||||
is not covered here. Please see the files @file{README} and
|
||||
@@ -195,7 +198,7 @@ are all performed by a specialized process, the @dfn{Guix daemon}, on
|
||||
behalf of clients. Only the daemon may access the store and its
|
||||
associated database. Thus, any operation that manipulates the store
|
||||
goes through the daemon. For instance, command-line tools such as
|
||||
@command{guix-package} and @command{guix-build} communicate with the
|
||||
@command{guix package} and @command{guix build} communicate with the
|
||||
daemon (@i{via} remote procedure calls) to instruct it what to do.
|
||||
|
||||
In a standard multi-user setup, Guix and its daemon---the
|
||||
@@ -221,11 +224,14 @@ regarded as pure functions (@pxref{Introduction}).
|
||||
On a GNU/Linux system, a build user pool may be created like this (using
|
||||
Bash syntax and the @code{shadow} commands):
|
||||
|
||||
@c See http://lists.gnu.org/archive/html/bug-guix/2013-01/msg00239.html
|
||||
@c for why `-G' is needed.
|
||||
@example
|
||||
# groupadd guix-builder
|
||||
# for i in `seq 1 10`;
|
||||
do
|
||||
useradd -g guix-builder -d /var/empty -s `which nologin` \
|
||||
useradd -g guix-builder -G guix-builder \
|
||||
-d /var/empty -s `which nologin` \
|
||||
-c "Guix build user $i" guix-builder$i;
|
||||
done
|
||||
@end example
|
||||
@@ -289,6 +295,10 @@ The following command-line options are supported:
|
||||
Take users from @var{group} to run build processes (@pxref{Setting Up
|
||||
the Daemon, build users}).
|
||||
|
||||
@item --no-substitutes
|
||||
Do not use substitutes for build products. That is, always build things
|
||||
locally instead of allowing downloads of pre-built binaries.
|
||||
|
||||
@item --cache-failures
|
||||
Cache build failures. By default, only successful builds are cached.
|
||||
|
||||
@@ -298,8 +308,8 @@ Use @var{n} CPU cores to build each derivation; @code{0} means as many
|
||||
as available.
|
||||
|
||||
The default value is @code{1}, but it may be overridden by clients, such
|
||||
as the @code{--cores} option of @command{guix-build} (@pxref{Invoking
|
||||
guix-build}).
|
||||
as the @code{--cores} option of @command{guix build} (@pxref{Invoking
|
||||
guix build}).
|
||||
|
||||
The effect is to define the @code{NIX_BUILD_CORES} environment variable
|
||||
in the build process, which can then use it to exploit internal
|
||||
@@ -315,7 +325,7 @@ Produce debugging output.
|
||||
|
||||
This is useful to debug daemon start-up issues, but then it may be
|
||||
overridden by clients, for example the @code{--verbosity} option of
|
||||
@command{guix-build} (@pxref{Invoking guix-build}).
|
||||
@command{guix build} (@pxref{Invoking guix build}).
|
||||
|
||||
@item --chroot-directory=@var{dir}
|
||||
Add @var{dir} to the build chroot.
|
||||
@@ -363,6 +373,13 @@ Do not keep build logs. By default they are kept under
|
||||
Assume @var{system} as the current system type. By default it is the
|
||||
architecture/kernel pair found at configure time, such as
|
||||
@code{x86_64-linux}.
|
||||
|
||||
@item --listen=@var{socket}
|
||||
Listen for connections on @var{socket}, the file name of a Unix-domain
|
||||
socket. The default socket is
|
||||
@file{@var{localstatedir}/daemon-socket/socket}. This option is only
|
||||
useful in exceptional circumstances, such as if you need to run several
|
||||
daemons on the same machine.
|
||||
@end table
|
||||
|
||||
|
||||
@@ -380,8 +397,9 @@ management tools it provides.
|
||||
|
||||
@menu
|
||||
* Features:: How Guix will make your life brighter.
|
||||
* Invoking guix-package:: Package installation, removal, etc.
|
||||
* Invoking guix-gc:: Running the garbage collector.
|
||||
* Invoking guix package:: Package installation, removal, etc.
|
||||
* Invoking guix gc:: Running the garbage collector.
|
||||
* Invoking guix pull:: Fetching the latest Guix and distribution.
|
||||
@end menu
|
||||
|
||||
@node Features
|
||||
@@ -393,24 +411,25 @@ own directory---something that resembles
|
||||
|
||||
Instead of referring to these directories, users have their own
|
||||
@dfn{profile}, which points to the packages that they actually want to
|
||||
use. That profile is normally stored in @code{$HOME/.guix-profile}, and
|
||||
each user has its own profile.
|
||||
use. These profiles are stored within each user's home directory, at
|
||||
@code{$HOME/.guix-profile}.
|
||||
|
||||
For example, if @code{alice} installed GCC 4.7.2, then
|
||||
For example, @code{alice} installs GCC 4.7.2. As a result,
|
||||
@file{/home/alice/.guix-profile/bin/gcc} points to
|
||||
@file{/nix/store/xxx-gcc-4.7.2/bin/gcc}; on the same machine, @code{bob}
|
||||
may have installed GCC 4.8.0, in which case its profile refers to these
|
||||
particular package installation. Both coexist, without any
|
||||
interference.
|
||||
@file{/nix/store/@dots{}-gcc-4.7.2/bin/gcc}. Now, on the same machine,
|
||||
@code{bob} had already installed GCC 4.8.0. The profile of @code{bob}
|
||||
simply continues to point to
|
||||
@file{/nix/store/@dots{}-gcc-4.8.0/bin/gcc}---i.e., both versions of GCC
|
||||
coexist on the same system without any interference.
|
||||
|
||||
The @command{guix-package} command is the central tool to manage
|
||||
packages. It operates on those per-user profiles, and can be used
|
||||
@emph{with normal user privileges}.
|
||||
The @command{guix package} command is the central tool to manage
|
||||
packages (@pxref{Invoking guix package}). It operates on those per-user
|
||||
profiles, and can be used @emph{with normal user privileges}.
|
||||
|
||||
The command provides the obvious install, remove, and upgrade
|
||||
operations. Each invocation is actually a @emph{transaction}: either
|
||||
the specified operation succeeds, or nothing happens. Thus, if the
|
||||
@command{guix-package} processed is terminated during the transaction,
|
||||
@command{guix package} process is terminated during the transaction,
|
||||
or if a power outage occurs during the transaction, then the user's
|
||||
profile remains in its previous state, and remains usable.
|
||||
|
||||
@@ -422,7 +441,7 @@ of their profile, which was known to work well.
|
||||
All those packages in the package store may be @emph{garbage-collected}.
|
||||
Guix can determine which packages are still referenced by the user
|
||||
profiles, and remove those that are provably no longer referenced
|
||||
(@pxref{Invoking guix-gc}). Users may also explicitly remove old
|
||||
(@pxref{Invoking guix gc}). Users may also explicitly remove old
|
||||
generations of their profile so that the packages they refer to can be
|
||||
collected.
|
||||
|
||||
@@ -434,25 +453,22 @@ scripts, etc. This direct correspondence allows users to make sure a
|
||||
given package installation matches the current state of their
|
||||
distribution, and helps maximize @dfn{reproducibility}.
|
||||
|
||||
@c FIXME: Remove footnote when it's implemented.
|
||||
This foundation allows Guix to support @dfn{transparent binary/source
|
||||
deployment}@footnote{This feature is not implemented as of version
|
||||
@value{VERSION}. Please contact @email{bug-guix@@gnu.org} for more
|
||||
details.}. When a pre-built binary for a @file{/nix/store} path is
|
||||
deployment}. When a pre-built binary for a @file{/nix/store} path is
|
||||
available from an external source, Guix just downloads it; otherwise, it
|
||||
builds the package from source, locally.
|
||||
|
||||
@node Invoking guix-package
|
||||
@section Invoking @command{guix-package}
|
||||
@node Invoking guix package
|
||||
@section Invoking @command{guix package}
|
||||
|
||||
The @command{guix-package} command is the tool that allows users to
|
||||
The @command{guix package} command is the tool that allows users to
|
||||
install, upgrade, and remove packages, as well as rolling back to
|
||||
previous configurations. It operates only on the user's own profile,
|
||||
and works with normal user privileges (@pxref{Features}). Its syntax
|
||||
is:
|
||||
|
||||
@example
|
||||
guix-package @var{options}
|
||||
guix package @var{options}
|
||||
@end example
|
||||
|
||||
Primarily, @var{options} specifies the operations to be performed during
|
||||
@@ -468,13 +484,13 @@ variable, and so on.
|
||||
|
||||
In a multi-user setup, user profiles must be stored in a place
|
||||
registered as a @dfn{garbage-collector root}, which
|
||||
@file{$HOME/.guix-profile} points to (@pxref{Invoking guix-gc}). That
|
||||
@file{$HOME/.guix-profile} points to (@pxref{Invoking guix gc}). That
|
||||
directory is normally
|
||||
@code{@var{localstatedir}/profiles/per-user/@var{user}}, where
|
||||
@var{localstatedir} is the value passed to @code{configure} as
|
||||
@code{--localstatedir}, and @var{user} is the user name. It must be
|
||||
created by @code{root}, with @var{user} as the owner. When it does not
|
||||
exist, @command{guix-package} emits an error about it.
|
||||
exist, @command{guix package} emits an error about it.
|
||||
|
||||
The @var{options} can be among the following:
|
||||
|
||||
@@ -486,17 +502,58 @@ Install @var{package}.
|
||||
|
||||
@var{package} may specify either a simple package name, such as
|
||||
@code{guile}, or a package name followed by a hyphen and version number,
|
||||
such as @code{guile-1.8.8}. In addition, @var{package} may contain a
|
||||
colon, followed by the name of one of the outputs of the package, as in
|
||||
@code{gcc:doc} or @code{binutils-2.22:lib}.
|
||||
such as @code{guile-1.8.8}. If no version number is specified, the
|
||||
newest available version will be selected. In addition, @var{package}
|
||||
may contain a colon, followed by the name of one of the outputs of the
|
||||
package, as in @code{gcc:doc} or @code{binutils-2.22:lib}.
|
||||
|
||||
@cindex propagated inputs
|
||||
Sometimes packages have @dfn{propagated inputs}: these are dependencies
|
||||
that automatically get installed along with the required package.
|
||||
|
||||
An example is the GNU MPC library: its C header files refer to those of
|
||||
the GNU MPFR library, which in turn refer to those of the GMP library.
|
||||
Thus, when installing MPC, the MPFR and GMP libraries also get installed
|
||||
in the profile; removing MPC also removes MPFR and GMP---unless they had
|
||||
also been explicitly installed independently.
|
||||
|
||||
Besides, packages sometime rely on the definition of environment
|
||||
variables for their search paths (see explanation of
|
||||
@code{--search-paths} below.) Any missing or possibly incorrect
|
||||
environment variable definitions are reported here.
|
||||
|
||||
@c XXX: keep me up-to-date
|
||||
Finally, when installing a GNU package, the tool reports the
|
||||
availability of a newer upstream version. In the future, it may provide
|
||||
the option of installing directly from the upstream version, even if
|
||||
that version is not yet in the distribution.
|
||||
|
||||
@item --install-from-expression=@var{exp}
|
||||
@itemx -e @var{exp}
|
||||
Install the package @var{exp} evaluates to.
|
||||
|
||||
@var{exp} must be a Scheme expression that evaluates to a
|
||||
@code{<package>} object. This option is notably useful to disambiguate
|
||||
between same-named variants of a package, with expressions such as
|
||||
@code{(@@ (gnu packages base) guile-final)}.
|
||||
|
||||
Note that this option installs the first output of the specified
|
||||
package, which may be insufficient when needing a specific output of a
|
||||
multiple-output package.
|
||||
|
||||
@item --remove=@var{package}
|
||||
@itemx -r @var{package}
|
||||
Remove @var{package}.
|
||||
|
||||
@item --upgrade=@var{regexp}
|
||||
@itemx -u @var{regexp}
|
||||
Upgrade all the installed packages matching @var{regexp}.
|
||||
@item --upgrade[=@var{regexp}]
|
||||
@itemx -u [@var{regexp}]
|
||||
Upgrade all the installed packages. When @var{regexp} is specified, upgrade
|
||||
only installed packages whose name matches @var{regexp}.
|
||||
|
||||
Note that this upgrades package to the latest version of packages found
|
||||
in the distribution currently installed. To update your distribution,
|
||||
you should regularly run @command{guix pull} (@pxref{Invoking guix
|
||||
pull}).
|
||||
|
||||
@item --roll-back
|
||||
Roll back to the previous @dfn{generation} of the profile---i.e., undo
|
||||
@@ -505,6 +562,30 @@ the last transaction.
|
||||
When combined with options such as @code{--install}, roll back occurs
|
||||
before any other actions.
|
||||
|
||||
When rolling back from the first generation that actually contains
|
||||
installed packages, the profile is made to point to the @dfn{empty
|
||||
profile}, also known as @dfn{profile zero}---i.e., it contains no files
|
||||
apart from its own meta-data.
|
||||
|
||||
Installing, removing, or upgrading packages from a generation that has
|
||||
been rolled back to overwrites previous future generations. Thus, the
|
||||
history of a profile's generations is always linear.
|
||||
|
||||
@item --search-paths
|
||||
@cindex search paths
|
||||
Report environment variable definitions, in Bash syntax, that may be
|
||||
needed in order to use the set of installed packages. These environment
|
||||
variables are used to specify @dfn{search paths} for files used by some
|
||||
of the installed packages.
|
||||
|
||||
For example, GCC needs the @code{CPATH} and @code{LIBRARY_PATH}
|
||||
environment variables to be defined so it can look for headers and
|
||||
libraries in the user's profile (@pxref{Environment Variables,,, gcc,
|
||||
Using the GNU Compiler Collection (GCC)}). If GCC and, say, the C
|
||||
library are installed in the profile, then @code{--search-paths} will
|
||||
suggest setting these variables to @code{@var{profile}/include} and
|
||||
@code{@var{profile}/lib}, respectively.
|
||||
|
||||
@item --profile=@var{profile}
|
||||
@itemx -p @var{profile}
|
||||
Use @var{profile} instead of the user's default profile.
|
||||
@@ -513,6 +594,9 @@ Use @var{profile} instead of the user's default profile.
|
||||
@itemx -n
|
||||
Show what would be done without actually doing it.
|
||||
|
||||
@item --no-substitutes
|
||||
Build instead of resorting to pre-built substitutes.
|
||||
|
||||
@item --verbose
|
||||
Produce verbose output. In particular, emit the environment's build log
|
||||
on the standard error port.
|
||||
@@ -523,12 +607,31 @@ useful to distribution developers.
|
||||
|
||||
@end table
|
||||
|
||||
In addition to these actions @command{guix-package} supports the
|
||||
In addition to these actions @command{guix package} supports the
|
||||
following options to query the current state of a profile, or the
|
||||
availability of packages:
|
||||
|
||||
@table @option
|
||||
|
||||
@item --search=@var{regexp}
|
||||
@itemx -s @var{regexp}
|
||||
List the available packages whose synopsis or description matches
|
||||
@var{regexp}. Print all the meta-data of matching packages in
|
||||
@code{recutils} format (@pxref{Top, GNU recutils databases,, recutils,
|
||||
GNU recutils manual}).
|
||||
|
||||
This allows specific fields to be extracted using the @command{recsel}
|
||||
command, for instance:
|
||||
|
||||
@example
|
||||
$ guix package -s malloc | recsel -p name,version
|
||||
name: glibc
|
||||
version: 2.17
|
||||
|
||||
name: libgc
|
||||
version: 7.2alpha6
|
||||
@end example
|
||||
|
||||
@item --list-installed[=@var{regexp}]
|
||||
@itemx -I [@var{regexp}]
|
||||
List currently installed packages in the specified profile. When
|
||||
@@ -555,22 +658,22 @@ source location of its definition.
|
||||
@end table
|
||||
|
||||
|
||||
@node Invoking guix-gc
|
||||
@section Invoking @command{guix-gc}
|
||||
@node Invoking guix gc
|
||||
@section Invoking @command{guix gc}
|
||||
|
||||
@cindex garbage collector
|
||||
Packages that are installed but not used may be @dfn{garbage-collected}.
|
||||
The @command{guix-gc} command allows users to explicitly run the garbage
|
||||
The @command{guix gc} command allows users to explicitly run the garbage
|
||||
collector to reclaim space from the @file{/nix/store} directory.
|
||||
|
||||
The garbage collector has a set of known @dfn{roots}: any file under
|
||||
@file{/nix/store} reachable from a root is considered @dfn{live} and
|
||||
cannot be deleted; any other file is considered @dfn{dead} and may be
|
||||
deleted. The set of garbage collector roots includes default user
|
||||
profiles, and may be augmented with @command{guix-build --root}, for
|
||||
example (@pxref{Invoking guix-build}).
|
||||
profiles, and may be augmented with @command{guix build --root}, for
|
||||
example (@pxref{Invoking guix build}).
|
||||
|
||||
The @command{guix-gc} command has three modes of operation: it can be
|
||||
The @command{guix gc} command has three modes of operation: it can be
|
||||
used to garbage-collect any dead files (the default), to delete specific
|
||||
files (the @code{--delete} option), or to print garbage-collector
|
||||
information. The available options are listed below:
|
||||
@@ -600,8 +703,47 @@ store---i.e., files and directories no longer reachable from any root.
|
||||
|
||||
@item --list-live
|
||||
Show the list of live store files and directories.
|
||||
|
||||
@end table
|
||||
|
||||
In addition, the references among existing store files can be queried:
|
||||
|
||||
@table @code
|
||||
|
||||
@item --references
|
||||
@itemx --referrers
|
||||
List the references (respectively, the referrers) of store files given
|
||||
as arguments.
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
@node Invoking guix pull
|
||||
@section Invoking @command{guix pull}
|
||||
|
||||
Packages are installed or upgraded to the latest version available in
|
||||
the distribution currently available on your local machine. To update
|
||||
that distribution, along with the Guix tools, you must run @command{guix
|
||||
pull}: the command downloads the latest Guix source code and package
|
||||
descriptions, and deploys it.
|
||||
|
||||
On completion, @command{guix package} will use packages and package
|
||||
versions from this just-retrieved copy of Guix. Not only that, but all
|
||||
the Guix commands and Scheme modules will also be taken from that latest
|
||||
version. New @command{guix} sub-commands added by the update also
|
||||
become available.
|
||||
|
||||
The @command{guix pull} command is usually invoked with no arguments,
|
||||
but it supports the following options:
|
||||
|
||||
@table @code
|
||||
@item --verbose
|
||||
Produce verbose output, writing build logs to the standard error output.
|
||||
|
||||
@item --bootstrap
|
||||
Use the bootstrap Guile to build the latest Guix. This option is only
|
||||
useful to Guix developers.
|
||||
@end table
|
||||
|
||||
@c *********************************************************************
|
||||
@node Programming Interface
|
||||
@@ -692,8 +834,9 @@ the GNU mirrors defined in @code{(guix download)}.
|
||||
The @code{sha256} field specifies the expected SHA256 hash of the file
|
||||
being downloaded. It is mandatory, and allows Guix to check the
|
||||
integrity of the file. The @code{(base32 @dots{})} form introduces the
|
||||
base32 representation of the hash. A convenient way to obtain this
|
||||
information is with the @code{guix-download} tool.
|
||||
base32 representation of the hash. You can obtain this information with
|
||||
@code{guix download} (@pxref{Invoking guix download}) and @code{guix
|
||||
hash} (@pxref{Invoking guix hash}).
|
||||
|
||||
@item
|
||||
@cindex GNU Build System
|
||||
@@ -751,9 +894,11 @@ Guile process launched by the daemon (@pxref{Derivations}).
|
||||
|
||||
Once a package definition is in place@footnote{Simple package
|
||||
definitions like the one above may be automatically converted from the
|
||||
Nixpkgs distribution using the @command{guix-import} command.}, the
|
||||
package may actually be built using the @code{guix-build} command-line
|
||||
tool (@pxref{Invoking guix-build}).
|
||||
Nixpkgs distribution using the @command{guix import} command.}, the
|
||||
package may actually be built using the @code{guix build} command-line
|
||||
tool (@pxref{Invoking guix build}). Eventually, updating the package
|
||||
definition to a new upstream version can be partly automated by the
|
||||
@command{guix refresh} command (@pxref{Invoking guix refresh}).
|
||||
|
||||
Behind the scenes, a derivation corresponding to the @code{<package>}
|
||||
object is first computed by the @code{package-derivation} procedure.
|
||||
@@ -762,9 +907,8 @@ The build actions it prescribes may then be realized by using the
|
||||
@code{build-derivations} procedure (@pxref{The Store}).
|
||||
|
||||
@deffn {Scheme Procedure} package-derivation @var{store} @var{package} [@var{system}]
|
||||
Return the derivation of @var{package} for @var{system}. The result is
|
||||
the file name of the derivation---i.e., a @code{.drv} file under
|
||||
@code{/nix/store}.
|
||||
Return the derivation path and corresponding @code{<derivation>} object
|
||||
of @var{package} for @var{system} (@pxref{Derivations}).
|
||||
|
||||
@var{package} must be a valid @code{<package>} object, and @var{system}
|
||||
must be a string denoting the target system type---e.g.,
|
||||
@@ -971,24 +1115,36 @@ space.
|
||||
@node Utilities
|
||||
@chapter Utilities
|
||||
|
||||
This section describes tools primarily targeted at developers and users
|
||||
who write new package definitions. They complement the Scheme
|
||||
programming interface of Guix in a convenient way.
|
||||
|
||||
@menu
|
||||
* Invoking guix-build:: Building packages from the command line.
|
||||
* Invoking guix build:: Building packages from the command line.
|
||||
* Invoking guix download:: Downloading a file and printing its hash.
|
||||
* Invoking guix hash:: Computing the cryptographic hash of a file.
|
||||
* Invoking guix refresh:: Updating package definitions.
|
||||
@end menu
|
||||
|
||||
@node Invoking guix-build
|
||||
@section Invoking @command{guix-build}
|
||||
@node Invoking guix build
|
||||
@section Invoking @command{guix build}
|
||||
|
||||
The @command{guix-build} command builds packages or derivations and
|
||||
their dependencies, and prints the resulting store paths. It is mainly
|
||||
useful for distribution developers. The general syntax is:
|
||||
The @command{guix build} command builds packages or derivations and
|
||||
their dependencies, and prints the resulting store paths. Note that it
|
||||
does not modify the user's profile---this is the job of the
|
||||
@command{guix package} command (@pxref{Invoking guix package}). Thus,
|
||||
it is mainly useful for distribution developers.
|
||||
|
||||
The general syntax is:
|
||||
|
||||
@example
|
||||
guix-build @var{options} @var{package-or-derivation}@dots{}
|
||||
guix build @var{options} @var{package-or-derivation}@dots{}
|
||||
@end example
|
||||
|
||||
@var{package-or-derivation} may be either the name of a package found in
|
||||
the software distribution such as @code{coreutils}, or a derivation such
|
||||
as @file{/nix/store/xxx-coreutils-8.19.drv}. Alternatively, the
|
||||
the software distribution such as @code{coreutils} or
|
||||
@code{coreutils-8.20}, or a derivation such as
|
||||
@file{/nix/store/@dots{}-coreutils-8.19.drv}. Alternatively, the
|
||||
@code{--expression} option may be used to specify a Scheme expression
|
||||
that evaluates to a package; this is useful when disambiguation among
|
||||
several same-named packages or package variants is needed.
|
||||
@@ -1001,7 +1157,7 @@ The @var{options} may be zero or more of the following:
|
||||
@itemx -e @var{expr}
|
||||
Build the package @var{expr} evaluates to.
|
||||
|
||||
For example, @var{expr} may be @code{(@@ (distro packages guile)
|
||||
For example, @var{expr} may be @code{(@@ (gnu packages guile)
|
||||
guile-1.8)}, which unambiguously designates this specific variant of
|
||||
version 1.8 of Guile.
|
||||
|
||||
@@ -1010,8 +1166,8 @@ version 1.8 of Guile.
|
||||
Build the packages' source derivations, rather than the packages
|
||||
themselves.
|
||||
|
||||
For instance, @code{guix-build -S gcc} returns something like
|
||||
@file{/nix/store/xxx-gcc-4.7.2.tar.bz2}, which is GCC's source tarball.
|
||||
For instance, @code{guix build -S gcc} returns something like
|
||||
@file{/nix/store/@dots{}-gcc-4.7.2.tar.bz2}, which is GCC's source tarball.
|
||||
|
||||
@item --system=@var{system}
|
||||
@itemx -s @var{system}
|
||||
@@ -1058,11 +1214,156 @@ may be helpful when debugging setup issues with the build daemon.
|
||||
|
||||
@end table
|
||||
|
||||
Behind the scenes, @command{guix-build} is essentially an interface to
|
||||
Behind the scenes, @command{guix build} is essentially an interface to
|
||||
the @code{package-derivation} procedure of the @code{(guix packages)}
|
||||
module, and to the @code{build-derivations} procedure of the @code{(guix
|
||||
store)} module.
|
||||
|
||||
@node Invoking guix download
|
||||
@section Invoking @command{guix download}
|
||||
|
||||
When writing a package definition, developers typically need to download
|
||||
the package's source tarball, compute its SHA256 hash, and write that
|
||||
hash in the package definition (@pxref{Defining Packages}). The
|
||||
@command{guix download} tool helps with this task: it downloads a file
|
||||
from the given URI, adds it to the store, and prints both its file name
|
||||
in the store and its SHA256 hash.
|
||||
|
||||
The fact that the downloaded file is added to the store saves bandwidth:
|
||||
when the developer eventually tries to build the newly defined package
|
||||
with @command{guix build}, the source tarball will not have to be
|
||||
downloaded again because it is already in the store. It is also a
|
||||
convenient way to temporarily stash files, which may be deleted
|
||||
eventually (@pxref{Invoking guix gc}).
|
||||
|
||||
The @command{guix download} command supports the same URIs as used in
|
||||
package definitions. In particular, it supports @code{mirror://} URIs.
|
||||
@code{https} URIs (HTTP over TLS) are supported @emph{provided} the
|
||||
Guile bindings for GnuTLS are available in the user's environment; when
|
||||
they are not available, an error is raised.
|
||||
|
||||
The following option is available:
|
||||
|
||||
@table @code
|
||||
@item --format=@var{fmt}
|
||||
@itemx -f @var{fmt}
|
||||
Write the hash in the format specified by @var{fmt}. For more
|
||||
information on the valid values for @var{fmt}, @ref{Invoking guix hash}.
|
||||
@end table
|
||||
|
||||
@node Invoking guix hash
|
||||
@section Invoking @command{guix hash}
|
||||
|
||||
The @command{guix hash} command computes the SHA256 hash of a file.
|
||||
It is primarily a convenience tool for anyone contributing to the
|
||||
distribution: it computes the cryptographic hash of a file, which can be
|
||||
used in the definition of a package (@pxref{Defining Packages}).
|
||||
|
||||
The general syntax is:
|
||||
|
||||
@example
|
||||
guix hash @var{option} @var{file}
|
||||
@end example
|
||||
|
||||
@command{guix hash} has the following option:
|
||||
|
||||
@table @code
|
||||
|
||||
@item --format=@var{fmt}
|
||||
@itemx -f @var{fmt}
|
||||
Write the hash in the format specified by @var{fmt}.
|
||||
|
||||
Supported formats: @code{nix-base32}, @code{base32}, @code{base16}
|
||||
(@code{hex} and @code{hexadecimal} can be used as well).
|
||||
|
||||
If the @option{--format} option is not specified, @command{guix hash}
|
||||
will output the hash in @code{nix-base32}. This representation is used
|
||||
in the definitions of packages.
|
||||
|
||||
@end table
|
||||
|
||||
@node Invoking guix refresh
|
||||
@section Invoking @command{guix refresh}
|
||||
|
||||
The primary audience of the @command{guix refresh} command is developers
|
||||
of the GNU software distribution. By default, it reports any packages
|
||||
provided by the distribution that are outdated compared to the latest
|
||||
upstream version, like this:
|
||||
|
||||
@example
|
||||
$ guix refresh
|
||||
gnu/packages/gettext.scm:29:13: gettext would be upgraded from 0.18.1.1 to 0.18.2.1
|
||||
gnu/packages/glib.scm:77:12: glib would be upgraded from 2.34.3 to 2.37.0
|
||||
@end example
|
||||
|
||||
It does so by browsing each package's FTP directory and determining the
|
||||
highest version number of the source tarballs
|
||||
therein@footnote{Currently, this only works for GNU packages.}.
|
||||
|
||||
When passed @code{--update}, it modifies distribution source files to
|
||||
update the version numbers and source tarball hashes of those packages'
|
||||
recipes (@pxref{Defining Packages}). This is achieved by downloading
|
||||
each package's latest source tarball and its associated OpenPGP
|
||||
signature, authenticating the downloaded tarball against its signature
|
||||
using @command{gpg}, and finally computing its hash. When the public
|
||||
key used to sign the tarball is missing from the user's keyring, an
|
||||
attempt is made to automatically retrieve it from a public key server;
|
||||
when it's successful, the key is added to the user's keyring; otherwise,
|
||||
@command{guix refresh} reports an error.
|
||||
|
||||
The following options are supported:
|
||||
|
||||
@table @code
|
||||
|
||||
@item --update
|
||||
@itemx -u
|
||||
Update distribution source files (package recipes) in place.
|
||||
@ref{Defining Packages}, for more information on package definitions.
|
||||
|
||||
@item --select=[@var{subset}]
|
||||
@itemx -s @var{subset}
|
||||
Select all the packages in @var{subset}, one of @code{core} or
|
||||
@code{non-core}.
|
||||
|
||||
The @code{core} subset refers to all the packages at the core of the
|
||||
distribution---i.e., packages that are used to build ``everything
|
||||
else''. This includes GCC, libc, Binutils, Bash, etc. Usually,
|
||||
changing one of these packages in the distribution entails a rebuild of
|
||||
all the others. Thus, such updates are an inconvenience to users in
|
||||
terms of build time or bandwidth used to achieve the upgrade.
|
||||
|
||||
The @code{non-core} subset refers to the remaining packages. It is
|
||||
typically useful in cases where an update of the core packages would be
|
||||
inconvenient.
|
||||
|
||||
@end table
|
||||
|
||||
In addition, @command{guix refresh} can be passed one or more package
|
||||
names, as in this example:
|
||||
|
||||
@example
|
||||
guix refresh -u emacs idutils
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
The command above specifically updates the @code{emacs} and
|
||||
@code{idutils} packages. The @code{--select} option would have no
|
||||
effect in this case.
|
||||
|
||||
The following options can be used to customize GnuPG operation:
|
||||
|
||||
@table @code
|
||||
|
||||
@item --key-server=@var{host}
|
||||
Use @var{host} as the OpenPGP key server when importing a public key.
|
||||
|
||||
@item --gpg=@var{command}
|
||||
Use @var{command} as the GnuPG 2.x command. @var{command} is searched
|
||||
for in @code{$PATH}.
|
||||
|
||||
@end table
|
||||
|
||||
|
||||
@c *********************************************************************
|
||||
@node GNU Distribution
|
||||
@chapter GNU Distribution
|
||||
@@ -1073,11 +1374,11 @@ Guix comes with a distribution of free software@footnote{The term
|
||||
users of that software}.} that form the basis of the GNU system. This
|
||||
includes core GNU packages such as GNU libc, GCC, and Binutils, as well
|
||||
as many GNU and non-GNU applications. The complete list of available
|
||||
packages can be seen by running @command{guix-package} (@pxref{Invoking
|
||||
guix-package}):
|
||||
packages can be seen by running @command{guix package} (@pxref{Invoking
|
||||
guix package}):
|
||||
|
||||
@example
|
||||
guix-package --list-available
|
||||
guix package --list-available
|
||||
@end example
|
||||
|
||||
The package definitions of the distribution may are provided by Guile
|
||||
|
||||
+48
-16
@@ -1,5 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -18,8 +19,11 @@
|
||||
|
||||
(define-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (ice-9 vlist)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-39)
|
||||
@@ -28,7 +32,8 @@
|
||||
%patch-directory
|
||||
%bootstrap-binaries-path
|
||||
fold-packages
|
||||
find-packages-by-name))
|
||||
find-packages-by-name
|
||||
find-newest-available-packages))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
@@ -86,9 +91,8 @@
|
||||
result)
|
||||
(const #f) ; skip
|
||||
(lambda (path stat errno result)
|
||||
(format (current-error-port)
|
||||
(_ "warning: cannot access `~a': ~a~%")
|
||||
path (strerror errno))
|
||||
(warning (_ "cannot access `~a': ~a~%")
|
||||
path (strerror errno))
|
||||
result)
|
||||
'()
|
||||
%distro-module-directory
|
||||
@@ -108,18 +112,24 @@
|
||||
|
||||
(define (fold-packages proc init)
|
||||
"Call (PROC PACKAGE RESULT) for each available package, using INIT as
|
||||
the initial value of RESULT."
|
||||
(fold (lambda (module result)
|
||||
(fold (lambda (var result)
|
||||
(if (package? var)
|
||||
(proc var result)
|
||||
result))
|
||||
result
|
||||
(module-map (lambda (sym var)
|
||||
(false-if-exception (variable-ref var)))
|
||||
module)))
|
||||
init
|
||||
(package-modules)))
|
||||
the initial value of RESULT. It is guaranteed to never traverse the
|
||||
same package twice."
|
||||
(identity ; discard second return value
|
||||
(fold2 (lambda (module result seen)
|
||||
(fold2 (lambda (var result seen)
|
||||
(if (and (package? var)
|
||||
(not (vhash-assq var seen)))
|
||||
(values (proc var result)
|
||||
(vhash-consq var #t seen))
|
||||
(values result seen)))
|
||||
result
|
||||
seen
|
||||
(module-map (lambda (sym var)
|
||||
(false-if-exception (variable-ref var)))
|
||||
module)))
|
||||
init
|
||||
vlist-null
|
||||
(package-modules))))
|
||||
|
||||
(define* (find-packages-by-name name #:optional version)
|
||||
"Return the list of packages with the given NAME. If VERSION is not #f,
|
||||
@@ -137,3 +147,25 @@ then only return packages whose version is equal to VERSION."
|
||||
(cons package result)
|
||||
result))
|
||||
'()))
|
||||
|
||||
(define (find-newest-available-packages)
|
||||
"Return a vhash keyed by package names, and with
|
||||
associated values of the form
|
||||
|
||||
(newest-version newest-package ...)
|
||||
|
||||
where the preferred package is listed first."
|
||||
|
||||
;; FIXME: Currently, the preferred package is whichever one
|
||||
;; was found last by 'fold-packages'. Find a better solution.
|
||||
(fold-packages (lambda (p r)
|
||||
(let ((name (package-name p))
|
||||
(version (package-version p)))
|
||||
(match (vhash-assoc name r)
|
||||
((_ newest-so-far . pkgs)
|
||||
(case (version-compare version newest-so-far)
|
||||
((>) (vhash-cons name `(,version ,p) r))
|
||||
((=) (vhash-cons name `(,version ,p ,@pkgs) r))
|
||||
((<) r)))
|
||||
(#f (vhash-cons name `(,version ,p) r)))))
|
||||
vlist-null))
|
||||
|
||||
@@ -63,4 +63,4 @@
|
||||
"Library and tools for manipulating access control lists")
|
||||
(description
|
||||
"Library and tools for manipulating access control lists.")
|
||||
(license '(gpl2+ lgpl2.1+))))
|
||||
(license (list gpl2+ lgpl2.1+))))
|
||||
|
||||
+23
-24
@@ -60,14 +60,14 @@ multiplication routines such as Toom–Cook and the FFT. ")
|
||||
(define-public fplll
|
||||
(package
|
||||
(name "fplll")
|
||||
(version "4.0.1")
|
||||
(version "4.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://perso.ens-lyon.fr/damien.stehle/fplll/libfplll-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"122bpqdlikshhd7nmq0l5qfc0agyk7x21gvplv1l9hb77l8cy9rw"))))
|
||||
"0zkifm4s77cl2qib905lxpwvlwf6liy8q7bnmvfdfyz0fbgxl8z8"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)))
|
||||
@@ -92,7 +92,7 @@ solve the shortest vector problem.")
|
||||
"18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/gsl/")
|
||||
(synopsis "The GNU Scientific Library, a large numerical library")
|
||||
(synopsis "Numerical library for C and C++")
|
||||
(description
|
||||
"The GNU Scientific Library (GSL) is a numerical library for C
|
||||
and C++ programmers. It is free software under the GNU General
|
||||
@@ -120,26 +120,25 @@ extensive test suite.")
|
||||
("perl" ,perl)
|
||||
("readline" ,readline)))
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:make-flags '("gp")
|
||||
;; FIXME: building the documentation requires tex; once this is available,
|
||||
;; replace "gp" by "all"
|
||||
#:test-target "dobench"
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(readline (assoc-ref inputs "readline"))
|
||||
(gmp (assoc-ref inputs "gmp")))
|
||||
(zero?
|
||||
(system* "./Configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--with-readline=" readline)
|
||||
(string-append "--with-gmp=" gmp)))))
|
||||
;; FIXME: readline and gmp will be detected automatically in the next
|
||||
;; stable release
|
||||
%standard-phases))))
|
||||
'(#:make-flags '("gp")
|
||||
;; FIXME: building the documentation requires tex; once this is available,
|
||||
;; replace "gp" by "all"
|
||||
#:test-target "dobench"
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(readline (assoc-ref inputs "readline"))
|
||||
(gmp (assoc-ref inputs "gmp")))
|
||||
(zero?
|
||||
(system* "./Configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--with-readline=" readline)
|
||||
(string-append "--with-gmp=" gmp)))))
|
||||
;; FIXME: readline and gmp will be detected automatically in the next
|
||||
;; stable release
|
||||
%standard-phases)))
|
||||
(synopsis "PARI/GP, a computer algebra system for number theory")
|
||||
(description
|
||||
"PARI/GP is a widely used computer algebra system designed for fast
|
||||
@@ -178,7 +177,7 @@ PARI is also available as a C library to allow for faster computations.")
|
||||
(string-append "--prefix=" out)))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.gnu.org/software/bc/")
|
||||
(synopsis "GNU software calculator")
|
||||
(synopsis "Arbitrary precision numeric processing language")
|
||||
(description
|
||||
"bc is an arbitrary precision numeric processing language. Syntax
|
||||
is similar to C, but differs in many substantial areas. It supports
|
||||
|
||||
@@ -38,8 +38,7 @@
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(home-page "http://aspell.net/")
|
||||
(synopsis
|
||||
"GNU Aspell, A spell checker for many languages")
|
||||
(synopsis "Spell checker")
|
||||
(description
|
||||
"GNU Aspell is a free spell checker designed to eventually replace
|
||||
Ispell. It can either be used as a library or as an independent spell
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -74,4 +74,4 @@
|
||||
"Library and tools for manipulating extended attributes")
|
||||
(description
|
||||
"Portable library and tools for manipulating extended attributes.")
|
||||
(license '(gpl2+ lgpl2.1+))))
|
||||
(license (list gpl2+ lgpl2.1+))))
|
||||
|
||||
+143
-20
@@ -22,9 +22,12 @@
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial))
|
||||
|
||||
(define-public autoconf
|
||||
(package
|
||||
@@ -47,8 +50,7 @@
|
||||
(arguments `(#:tests? #f))
|
||||
(home-page
|
||||
"http://www.gnu.org/software/autoconf/")
|
||||
(synopsis
|
||||
"GNU Autoconf, a part of the GNU Build System")
|
||||
(synopsis "Create source code configuration scripts")
|
||||
(description
|
||||
"GNU Autoconf is an extensible package of M4 macros that produce
|
||||
shell scripts to automatically configure software source code
|
||||
@@ -59,31 +61,152 @@ file that lists the operating system features that the package
|
||||
can use, in the form of M4 macro calls.")
|
||||
(license gpl3+))) ; some files are under GPLv2+
|
||||
|
||||
(define-public autoconf-wrapper
|
||||
;; An Autoconf wrapper that generates `configure' scripts that use our
|
||||
;; own Bash instead of /bin/sh in shebangs. For that reason, it
|
||||
;; should only be used internally---users should not end up
|
||||
;; distributing `configure' files with a system-specific shebang.
|
||||
(package (inherit autoconf)
|
||||
(location (source-properties->location (current-source-location)))
|
||||
(name (string-append (package-name autoconf) "-wrapper"))
|
||||
(build-system trivial-build-system)
|
||||
(inputs `(("guile"
|
||||
;; XXX: Kludge to hide the circular dependency.
|
||||
,(module-ref (resolve-interface '(gnu packages guile))
|
||||
'guile-2.0))
|
||||
("autoconf" ,autoconf)
|
||||
("bash" ,bash)))
|
||||
(arguments
|
||||
'(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(autoconf (string-append
|
||||
(assoc-ref %build-inputs "autoconf")
|
||||
"/bin/autoconf"))
|
||||
(guile (string-append
|
||||
(assoc-ref %build-inputs "guile")
|
||||
"/bin/guile"))
|
||||
(sh (string-append
|
||||
(assoc-ref %build-inputs "bash")
|
||||
"/bin/sh"))
|
||||
(modules ((compose dirname dirname dirname)
|
||||
(search-path %load-path
|
||||
"guix/build/utils.scm"))))
|
||||
(mkdir-p bin)
|
||||
|
||||
;; Symlink all the binaries but `autoconf'.
|
||||
(with-directory-excursion bin
|
||||
(for-each (lambda (file)
|
||||
(unless (string=? (basename file) "autoconf")
|
||||
(symlink file (basename file))))
|
||||
(find-files (dirname autoconf) ".*")))
|
||||
|
||||
;; Add an `autoconf' binary that wraps the real one.
|
||||
(call-with-output-file (string-append bin "/autoconf")
|
||||
(lambda (port)
|
||||
;; Shamefully, Guile can be used in shebangs only if a
|
||||
;; single argument is passed (-ds); otherwise it gets
|
||||
;; them all as a single argument and fails to parse them.
|
||||
(format port "#!~a
|
||||
export GUILE_LOAD_PATH=\"~a\"
|
||||
export GUILE_LOAD_COMPILED_PATH=\"~a\"
|
||||
exec ~a --no-auto-compile \"$0\" \"$@\"
|
||||
!#~%"
|
||||
sh modules modules guile)
|
||||
(write
|
||||
`(begin
|
||||
(use-modules (guix build utils))
|
||||
(let ((result (apply system* ,autoconf
|
||||
(cdr (command-line)))))
|
||||
(if (and (zero? result)
|
||||
(file-exists? "configure")
|
||||
(not (file-exists? "/bin/sh")))
|
||||
(begin
|
||||
(patch-shebang "configure")
|
||||
#t)
|
||||
(exit (status:exit-val result)))))
|
||||
port)))
|
||||
(chmod (string-append bin "/autoconf") #o555)))))))
|
||||
|
||||
(define-public automake
|
||||
(package
|
||||
(name "automake")
|
||||
(version "1.12.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/automake/automake-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ynvca8z4aqcwr94rf7j1bfiid2w9w250y9qhnyj9vmi8lhsnd7q"))))
|
||||
(version "1.13.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/automake/automake-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12yi1bzkipi7qdmkdy77pazljsa9z7q66hi6c4rq73p7hbv6rkbf"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("perl" ,perl)))
|
||||
(home-page
|
||||
"http://www.gnu.org/software/automake/")
|
||||
(synopsis
|
||||
"GNU Automake, a GNU standard-compliant makefile generator")
|
||||
`(("autoconf" ,autoconf-wrapper)
|
||||
("perl" ,perl)
|
||||
("patch/skip-amhello"
|
||||
,(search-patch "automake-skip-amhello-tests.patch"))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "ACLOCAL_PATH")
|
||||
(directories '("share/aclocal")))))
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/skip-amhello"))
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(rnrs io ports))
|
||||
#:phases (alist-cons-before
|
||||
'patch-source-shebangs 'patch-tests-shebangs
|
||||
(lambda _
|
||||
(let ((sh (which "sh")))
|
||||
(substitute* (find-files "t" "\\.(sh|tap)$")
|
||||
(("#![[:blank:]]?/bin/sh")
|
||||
(string-append "#!" sh)))
|
||||
|
||||
;; Set these variables for all the `configure' runs
|
||||
;; that occur during the test suite.
|
||||
(setenv "SHELL" sh)
|
||||
(setenv "CONFIG_SHELL" sh)))
|
||||
|
||||
;; Files like `install-sh', `mdate.sh', etc. must use
|
||||
;; #!/bin/sh, otherwise users could leak erroneous shebangs
|
||||
;; in the wild. See <http://bugs.gnu.org/14201> for an
|
||||
;; example.
|
||||
(alist-cons-after
|
||||
'install 'unpatch-shebangs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/share")))
|
||||
(define (starts-with-shebang? file)
|
||||
(equal? (call-with-input-file file
|
||||
(lambda (p)
|
||||
(list (get-u8 p) (get-u8 p))))
|
||||
(map char->integer '(#\# #\!))))
|
||||
|
||||
(for-each (lambda (file)
|
||||
(when (and (starts-with-shebang? file)
|
||||
(executable-file? file))
|
||||
(format #t "restoring shebang on `~a'~%"
|
||||
file)
|
||||
(substitute* file
|
||||
(("^#!.*/bin/sh")
|
||||
"#!/bin/sh")
|
||||
(("^#!.*/bin/env(.*)$" _ args)
|
||||
(string-append "#!/usr/bin/env"
|
||||
args)))))
|
||||
(find-files dir ".*"))))
|
||||
%standard-phases))))
|
||||
(home-page "http://www.gnu.org/software/automake/")
|
||||
(synopsis "Making GNU standards-compliant Makefiles")
|
||||
(description
|
||||
"GNU Automake is a tool for automatically generating
|
||||
`Makefile.in' files compliant with the GNU Coding
|
||||
Standards. Automake requires the use of Autoconf.")
|
||||
(license gpl2+))) ; some files are under GPLv3+
|
||||
(license gpl2+))) ; some files are under GPLv3+
|
||||
|
||||
(define-public libtool
|
||||
(package
|
||||
@@ -132,7 +255,7 @@ Standards. Automake requires the use of Autoconf.")
|
||||
%standard-phases)))
|
||||
(inputs `(("patch/skip-tests"
|
||||
,(search-patch "libtool-skip-tests.patch"))))
|
||||
(synopsis "GNU Libtool, a generic library support script")
|
||||
(synopsis "Generic shared library support tools")
|
||||
(description
|
||||
"GNU libtool is a generic library support script. Libtool hides the
|
||||
complexity of using shared libraries behind a consistent, portable interface.
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 avahi)
|
||||
#:use-module ((guix licenses) #:select (lgpl2.1+))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages gdbm)
|
||||
#:use-module (gnu packages libdaemon)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public avahi
|
||||
(package
|
||||
(name "avahi")
|
||||
(version "0.6.31")
|
||||
(home-page "http://avahi.org")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "/download/avahi-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--with-distro=none"
|
||||
"--disable-python"
|
||||
"--disable-mono"
|
||||
"--disable-doxygen-doc"
|
||||
"--disable-xmltoman"
|
||||
"--enable-tests"
|
||||
"--disable-qt3" "--disable-qt4"
|
||||
"--disable-gtk" "--disable-gtk3")))
|
||||
(inputs
|
||||
`(("expat" ,expat)
|
||||
("glib" ,glib)
|
||||
("dbus" ,dbus)
|
||||
("libdaemon" ,libdaemon)
|
||||
("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)
|
||||
("gdbm" ,gdbm)))
|
||||
(synopsis "Avahi, an mDNS/DNS-SD implementation")
|
||||
(description
|
||||
"Avahi is a system which facilitates service discovery on a local
|
||||
network. It is an implementation of the mDNS (for \"Multicast DNS\") and
|
||||
DNS-SD (for \"DNS-Based Service Discovery\") protocols.")
|
||||
(license lgpl2.1+)))
|
||||
+268
-303
@@ -18,12 +18,14 @@
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages base)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl3+ lgpl2.0+ public-domain))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages acl)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bootstrap)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
@@ -60,7 +62,7 @@
|
||||
,(string-append "--with-gawk=" ; for illustration purposes
|
||||
(assoc-ref %build-inputs "gawk")))))
|
||||
(inputs `(("gawk" ,gawk)))
|
||||
(synopsis "GNU Hello")
|
||||
(synopsis "Hello, GNU world: An example GNU package")
|
||||
(description "Yeah...")
|
||||
(home-page "http://www.gnu.org/software/hello/")
|
||||
(license gpl3+)))
|
||||
@@ -77,7 +79,7 @@
|
||||
(base32
|
||||
"1qbjb1l7f9blckc5pqy8jlf6482hpx4awn2acmhyf5mv9wfq03p7"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "GNU implementation of the Unix grep command")
|
||||
(synopsis "Print lines matching a pattern")
|
||||
(description
|
||||
"The grep command searches one or more input files for lines containing a
|
||||
match to a specified pattern. By default, grep prints the matching
|
||||
@@ -88,16 +90,16 @@ lines.")
|
||||
(define-public sed
|
||||
(package
|
||||
(name "sed")
|
||||
(version "4.2.1")
|
||||
(version "4.2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/sed/sed-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"13wlsb4sf5d5a82xjhxqmdvrrn36rmw5f0pl9qyb9zkvldnb7hra"))))
|
||||
"1myvrmh99jsvk7v3d7crm0gcrq51hmmm1r2kjyyci152in1x2j7h"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "GNU sed, a batch stream editor")
|
||||
(synopsis "Stream editor")
|
||||
(arguments
|
||||
`(#:phases (alist-cons-before
|
||||
'patch-source-shebangs 'patch-test-suite
|
||||
@@ -133,7 +135,7 @@ substituting multiple occurrences of a string within a file.")
|
||||
(inputs `(("patch/gets" ,(search-patch "tar-gets-undeclared.patch"))))
|
||||
(arguments
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/gets"))))
|
||||
(synopsis "GNU implementation of the `tar' archiver")
|
||||
(synopsis "Managing tar archives")
|
||||
(description
|
||||
"The Tar program provides the ability to create tar archives, as well as
|
||||
various other kinds of manipulation. For example, you can use Tar on
|
||||
@@ -151,22 +153,22 @@ files (as archives).")
|
||||
(define-public patch
|
||||
(package
|
||||
(name "patch")
|
||||
(version "2.6.1")
|
||||
(version "2.7.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/patch/patch-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18012gxs9wc96izskp1q7bclrwns6rdmkn4jj31c8jbyfz6l5npq"))))
|
||||
"1sqckf560pzwgniy00vcpdv2c9c11s4cmhlm14yqgg8avd3bl94i"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs '()) ; FIXME: needs `ed' for the tests
|
||||
(arguments
|
||||
(case-lambda
|
||||
((system) '(#:tests? #f))
|
||||
((system cross-system)
|
||||
'(#:configure-flags '("ac_cv_func_strnlen_working=yes")))))
|
||||
(synopsis "GNU Patch, a program to apply differences to files")
|
||||
'(#:tests? #f)
|
||||
;; TODO: When cross-compiling, add this:
|
||||
;; '(#:configure-flags '("ac_cv_func_strnlen_working=yes"))
|
||||
)
|
||||
(synopsis "Apply differences to originals, with optional backups")
|
||||
(description
|
||||
"GNU Patch takes a patch file containing a difference listing produced by
|
||||
the diff program and applies those differences to one or more original files,
|
||||
@@ -177,19 +179,16 @@ producing patched versions.")
|
||||
(define-public diffutils
|
||||
(package
|
||||
(name "diffutils")
|
||||
(version "3.2")
|
||||
(version "3.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/diffutils/diffutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jci0wv68025xd0s0rq4s5qxpx56dd9d730lka63qpzk1rfvfkxb"))))
|
||||
"1761vymxbp4wb5rzjvabhdkskk95pghnn67464byvzb5mfl8jpm2"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("patch/gets"
|
||||
,(search-patch "diffutils-gets-undeclared.patch"))))
|
||||
(arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets"))))
|
||||
(synopsis "Programs to find differences among text files")
|
||||
(synopsis "Comparing and merging files")
|
||||
(description
|
||||
"GNU Diffutils is a package of several programs related to finding
|
||||
differences between files.
|
||||
@@ -235,16 +234,14 @@ You can use the sdiff command to merge two files interactively.")
|
||||
`(("patch/absolute-paths"
|
||||
,(search-patch "findutils-absolute-paths.patch"))))
|
||||
(arguments
|
||||
(case-lambda
|
||||
((system)
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/absolute-paths"))))
|
||||
((system cross-system)
|
||||
;; Work around cross-compilation failure.
|
||||
;; See <http://savannah.gnu.org/bugs/?27299#comment1>.
|
||||
`(#:configure-flags '("gl_cv_func_wcwidth_works=yes")
|
||||
,@(arguments cross-system)))))
|
||||
(synopsis "Basic directory searching utilities of the GNU operating
|
||||
system")
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/absolute-paths")))
|
||||
|
||||
;; TODO: Work around cross-compilation failure.
|
||||
;; See <http://savannah.gnu.org/bugs/?27299#comment1>.
|
||||
;; `(#:configure-flags '("gl_cv_func_wcwidth_works=yes")
|
||||
;; ,@(arguments cross-system))
|
||||
)
|
||||
(synopsis "Operating on files matching given criteria")
|
||||
(description
|
||||
"The GNU Find Utilities are the basic directory searching utilities of
|
||||
the GNU operating system. These programs are typically used in conjunction
|
||||
@@ -264,14 +261,14 @@ The tools supplied with this package are:
|
||||
(define-public coreutils
|
||||
(package
|
||||
(name "coreutils")
|
||||
(version "8.20")
|
||||
(version "8.21")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/coreutils/coreutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cly97xdy3v4nbbx631k43smqw0nnpn651kkprs0yyl2cj3pkjyv"))))
|
||||
"064f512185iysqqcvhnhaf3bfmzrvcgs7n405qsyp99zmfyl9amd"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("acl" ,acl)
|
||||
("gmp" ,gmp)
|
||||
@@ -291,9 +288,7 @@ The tools supplied with this package are:
|
||||
(("#!/bin/sh")
|
||||
(format #f "#!~a/bin/bash" bash)))))
|
||||
%standard-phases)))
|
||||
(synopsis
|
||||
"The basic file, shell and text manipulation utilities of the GNU
|
||||
operating system")
|
||||
(synopsis "Core GNU utilities (file, text, shell)")
|
||||
(description
|
||||
"The GNU Core Utilities are the basic file, shell and text manipulation
|
||||
utilities of the GNU operating system. These are the core utilities which
|
||||
@@ -327,8 +322,7 @@ are expected to exist on every operating system.")
|
||||
(format #f "default_shell[] = \"~a/bin/bash\";\n"
|
||||
bash)))))
|
||||
%standard-phases)))
|
||||
(synopsis "GNU Make, a program controlling the generation of non-source
|
||||
files from sources")
|
||||
(synopsis "Remake files automatically")
|
||||
(description
|
||||
"Make is a tool which controls the generation of executables and other
|
||||
non-source files of a program from the program's source files.
|
||||
@@ -343,14 +337,14 @@ that it is possible to use Make to build and install the program.")
|
||||
(define-public binutils
|
||||
(package
|
||||
(name "binutils")
|
||||
(version "2.22")
|
||||
(version "2.23.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/binutils/binutils-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a9w66v5dwvbnawshjwqcgz7km6kw6ihkzp6sswv9ycc3knzhykc"))))
|
||||
"15qhbkz3r266xaa52slh857qn3abw7rb2x2jnhpfrafpzrb4x4gy"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
;; Split Binutils in several outputs, mostly to avoid collisions in
|
||||
@@ -368,10 +362,13 @@ that it is possible to use Make to build and install the program.")
|
||||
"LDFLAGS=-static-libgcc"
|
||||
|
||||
;; Don't search under /usr/lib & co.
|
||||
"--with-lib-path=/no-ld-lib-path")))
|
||||
"--with-lib-path=/no-ld-lib-path"
|
||||
|
||||
(synopsis "GNU Binutils, tools for manipulating binaries (linker,
|
||||
assembler, etc.)")
|
||||
;; Glibc 2.17 has a "comparison of unsigned
|
||||
;; expression >= 0 is always true" in wchar.h.
|
||||
"--disable-werror")))
|
||||
|
||||
(synopsis "Binary utilities: bfd gas gprof ld")
|
||||
(description
|
||||
"The GNU Binutils are a collection of binary tools. The main ones are
|
||||
`ld' (the GNU linker) and `as' (the GNU assembler). They also include the
|
||||
@@ -379,120 +376,6 @@ BFD (Binary File Descriptor) library, `gprof', `nm', `strip', etc.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/binutils/")))
|
||||
|
||||
(define-public gcc-4.7
|
||||
(let ((stripped? #t)) ; TODO: make this a parameter
|
||||
(package
|
||||
(name "gcc")
|
||||
(version "4.7.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gcc/gcc-"
|
||||
version "/gcc-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"115h03hil99ljig8lkrq4qk426awmzh0g99wrrggxf8g07bq74la"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)
|
||||
("mpc" ,mpc))) ; TODO: libelf, ppl, cloog, zlib, etc.
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:out-of-source? #t
|
||||
#:strip-binaries? ,stripped?
|
||||
#:configure-flags
|
||||
`("--enable-plugin"
|
||||
"--enable-languages=c,c++"
|
||||
"--disable-multilib"
|
||||
|
||||
"--with-local-prefix=/no-gcc-local-prefix"
|
||||
|
||||
,(let ((libc (assoc-ref %build-inputs "libc")))
|
||||
(if libc
|
||||
(string-append "--with-native-system-header-dir=" libc
|
||||
"/include")
|
||||
"--without-headers")))
|
||||
#:make-flags
|
||||
(let ((libc (assoc-ref %build-inputs "libc")))
|
||||
`(,@(if libc
|
||||
(list (string-append "LDFLAGS_FOR_BUILD="
|
||||
"-L" libc "/lib "
|
||||
"-Wl,-dynamic-linker "
|
||||
"-Wl," libc
|
||||
,(glibc-dynamic-linker system)))
|
||||
'())
|
||||
,(string-append "BOOT_CFLAGS=-O2 "
|
||||
,(if stripped? "-g0" "-g"))))
|
||||
|
||||
#:tests? #f
|
||||
#:phases
|
||||
(alist-cons-before
|
||||
'configure 'pre-configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(libc (assoc-ref inputs "libc")))
|
||||
(when libc
|
||||
;; The following is not performed for `--without-headers'
|
||||
;; cross-compiler builds.
|
||||
|
||||
;; Fix the dynamic linker's file name.
|
||||
(substitute* (find-files "gcc/config"
|
||||
"^linux(64|-elf)?\\.h$")
|
||||
(("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
|
||||
(format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
|
||||
suffix
|
||||
(string-append libc ,(glibc-dynamic-linker system)))))
|
||||
|
||||
;; Tell where to find libstdc++, libc, and `?crt*.o', except
|
||||
;; `crt{begin,end}.o', which come with GCC.
|
||||
(substitute* (find-files "gcc/config"
|
||||
"^(gnu-user(64)?|linux-elf)\\.h$")
|
||||
(("#define LIB_SPEC (.*)$" _ suffix)
|
||||
;; Note that with this "lib" spec, we may still add a
|
||||
;; RUNPATH to GCC even when `libgcc_s' is not NEEDED.
|
||||
;; There's not much that can be done to avoid it, though.
|
||||
(format #f "#define LIB_SPEC \"-L~a/lib %{!static:-rpath=~a/lib \
|
||||
%{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib}} \" ~a~%"
|
||||
libc libc out out suffix))
|
||||
(("#define STARTFILE_SPEC.*$" line)
|
||||
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
|
||||
#define STANDARD_STARTFILE_PREFIX_2 \"\"
|
||||
~a~%"
|
||||
libc line))))
|
||||
|
||||
;; Don't retain a dependency on the build-time sed.
|
||||
(substitute* "fixincludes/fixincl.x"
|
||||
(("static char const sed_cmd_z\\[\\] =.*;")
|
||||
"static char const sed_cmd_z[] = \"sed\";"))))
|
||||
|
||||
(alist-cons-after
|
||||
'configure 'post-configure
|
||||
(lambda _
|
||||
;; Don't store configure flags, to avoid retaining references to
|
||||
;; build-time dependencies---e.g., `--with-ppl=/nix/store/xxx'.
|
||||
(substitute* "Makefile"
|
||||
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
|
||||
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))
|
||||
(alist-replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero?
|
||||
(system* "make"
|
||||
,(if stripped?
|
||||
"install-strip"
|
||||
"install"))))
|
||||
%standard-phases))))))
|
||||
|
||||
(properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
|
||||
(synopsis "The GNU Compiler Collection")
|
||||
(description
|
||||
"The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgcj, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the compiler
|
||||
used in the GNU system including the GNU/Linux variant.")
|
||||
(license gpl3+)
|
||||
(home-page "http://gcc.gnu.org/"))))
|
||||
|
||||
(define-public glibc
|
||||
(package
|
||||
(name "glibc")
|
||||
@@ -510,13 +393,28 @@ used in the GNU system including the GNU/Linux variant.")
|
||||
;; users should automatically pull Linux headers as well.
|
||||
(propagated-inputs `(("linux-headers" ,linux-libre-headers)))
|
||||
|
||||
;; Store the locales separately (~100 MiB). Note that "out" retains a
|
||||
;; reference to them anyway, so there's no space savings here.
|
||||
;; TODO: Eventually we may want to add a $LOCALE_ARCHIVE search path like
|
||||
;; Nixpkgs does.
|
||||
(outputs '("out" "locales"))
|
||||
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
#:patches (list (assoc-ref %build-inputs "patch/ld.so.cache"))
|
||||
#:configure-flags
|
||||
(list "--enable-add-ons"
|
||||
"--sysconfdir=/etc"
|
||||
"--localedir=/var/run/current-system/sw/lib/locale" ; XXX
|
||||
(string-append "--localedir=" (assoc-ref %outputs "locales")
|
||||
"/share/locale")
|
||||
|
||||
;; `--localedir' is not honored, so work around it.
|
||||
;; See <http://sourceware.org/ml/libc-alpha/2013-03/msg00093.html>.
|
||||
(string-append "libc_cv_localedir="
|
||||
(assoc-ref %outputs "locales")
|
||||
"/share/locale")
|
||||
|
||||
|
||||
(string-append "--with-headers="
|
||||
(assoc-ref %build-inputs "linux-headers")
|
||||
"/include")
|
||||
@@ -582,7 +480,12 @@ used in the GNU system including the GNU/Linux variant.")
|
||||
(substitute* "libio/iopopen.c"
|
||||
(("/bin/sh")
|
||||
(string-append out "/bin/bash")))))
|
||||
%standard-phases)))
|
||||
(alist-cons-after
|
||||
'install 'install-locales
|
||||
(lambda _
|
||||
(zero? (system* "make" "localedata/install-locales")))
|
||||
%standard-phases))))
|
||||
|
||||
(inputs `(("patch/ld.so.cache"
|
||||
,(search-patch "glibc-no-ld-so-cache.patch"))
|
||||
("static-bash" ,(static-package bash-light))))
|
||||
@@ -597,6 +500,74 @@ with the Linux kernel.")
|
||||
(license lgpl2.0+)
|
||||
(home-page "http://www.gnu.org/software/libc/")))
|
||||
|
||||
(define-public tzdata
|
||||
(package
|
||||
(name "tzdata")
|
||||
(version "2013c")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.iana.org/time-zones/repository/releases/tzdata"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"11swq6fg20m2dh520qcr8vb23gqhzbvqhizx8wifnmci4gmsg5z5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
#:make-flags (let ((out (assoc-ref %outputs "out"))
|
||||
(tmp (getenv "TMPDIR")))
|
||||
(list (string-append "TOPDIR=" out)
|
||||
(string-append "TZDIR=" out "/share/zoneinfo")
|
||||
|
||||
;; Discard zic, dump, and tzselect, already
|
||||
;; provided by glibc.
|
||||
(string-append "ETCDIR=" tmp "/etc")
|
||||
|
||||
;; Likewise for the C library routines.
|
||||
(string-append "LIBDIR=" tmp "/lib")
|
||||
(string-append "MANDIR=" tmp "/man")
|
||||
|
||||
"AWK=awk"
|
||||
"CC=gcc"))
|
||||
#:modules ((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(srfi srfi-1))
|
||||
#:phases
|
||||
(alist-replace
|
||||
'unpack
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(and (zero? (system* "tar" "xvf" (assoc-ref inputs "source")))
|
||||
(zero? (system* "tar" "xvf" (assoc-ref inputs "tzcode")))))
|
||||
(alist-cons-after
|
||||
'install 'post-install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Move data in the right place.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(copy-recursively (string-append out "/share/zoneinfo-posix")
|
||||
(string-append out "/share/zoneinfo/posix"))
|
||||
(copy-recursively (string-append out "/share/zoneinfo-leaps")
|
||||
(string-append out "/share/zoneinfo/right"))
|
||||
(delete-file-recursively (string-append out "/share/zoneinfo-posix"))
|
||||
(delete-file-recursively (string-append out "/share/zoneinfo-leaps"))))
|
||||
(alist-delete 'configure %standard-phases)))))
|
||||
(inputs `(("tzcode" ,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.iana.org/time-zones/repository/releases/tzcode"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1w6nkdwhi6k9llshp4baac1yj43jqf3apdf6n66i0wvjj8qyjvp4"))))))
|
||||
(home-page "http://www.iana.org/time-zones")
|
||||
(synopsis "Database of current and historical time zones")
|
||||
(description "The Time Zone Database (often called tz or zoneinfo)
|
||||
contains code and data that represent the history of local time for many
|
||||
representative locations around the globe. It is updated periodically to
|
||||
reflect changes made by political bodies to time zone boundaries, UTC offsets,
|
||||
and daylight-saving rules.")
|
||||
(license public-domain)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Bootstrap packages.
|
||||
@@ -653,7 +624,8 @@ with the Linux kernel.")
|
||||
("findutils" ,findutils-boot0)
|
||||
,@%bootstrap-inputs))
|
||||
|
||||
(define* (nix-system->gnu-triplet system #:optional (vendor "unknown"))
|
||||
(define* (nix-system->gnu-triplet
|
||||
#:optional (system (%current-system)) (vendor "unknown"))
|
||||
"Return an a guess of the GNU triplet corresponding to Nix system
|
||||
identifier SYSTEM."
|
||||
(let* ((dash (string-index system #\-))
|
||||
@@ -665,10 +637,10 @@ identifier SYSTEM."
|
||||
"linux-gnu"
|
||||
os))))
|
||||
|
||||
(define boot-triplet
|
||||
(define* (boot-triplet #:optional (system (%current-system)))
|
||||
;; Return the triplet used to create the cross toolchain needed in the
|
||||
;; first bootstrapping stage.
|
||||
(cut nix-system->gnu-triplet <> "guix"))
|
||||
(nix-system->gnu-triplet system "guix"))
|
||||
|
||||
;; Following Linux From Scratch, build a cross-toolchain in stage 0. That
|
||||
;; toolchain actually targets the same OS and arch, but it has the advantage
|
||||
@@ -680,12 +652,12 @@ identifier SYSTEM."
|
||||
(package (inherit binutils)
|
||||
(name "binutils-cross-boot0")
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
,@(substitute-keyword-arguments (package-arguments binutils)
|
||||
((#:configure-flags cf)
|
||||
`(list ,(string-append "--target=" (boot-triplet system))))))))
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
,@(substitute-keyword-arguments (package-arguments binutils)
|
||||
((#:configure-flags cf)
|
||||
`(cons ,(string-append "--target=" (boot-triplet))
|
||||
,cf)))))
|
||||
(inputs %boot0-inputs))))
|
||||
|
||||
(define gcc-boot0
|
||||
@@ -693,82 +665,80 @@ identifier SYSTEM."
|
||||
(package (inherit gcc-4.7)
|
||||
(name "gcc-cross-boot0")
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 regex)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
,@(substitute-keyword-arguments ((package-arguments gcc-4.7) system)
|
||||
((#:configure-flags flags)
|
||||
`(append (list ,(string-append "--target="
|
||||
(boot-triplet system))
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 regex)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
,@(substitute-keyword-arguments (package-arguments gcc-4.7)
|
||||
((#:configure-flags flags)
|
||||
`(append (list ,(string-append "--target=" (boot-triplet))
|
||||
|
||||
;; No libc yet.
|
||||
"--without-headers"
|
||||
;; No libc yet.
|
||||
"--without-headers"
|
||||
|
||||
;; Disable features not needed at this stage.
|
||||
"--disable-shared"
|
||||
"--enable-languages=c"
|
||||
"--disable-libmudflap"
|
||||
"--disable-libgomp"
|
||||
"--disable-libssp"
|
||||
"--disable-libquadmath"
|
||||
"--disable-decimal-float")
|
||||
(remove (cut string-match "--enable-languages.*" <>)
|
||||
,flags)))
|
||||
((#:phases phases)
|
||||
`(alist-cons-after
|
||||
'unpack 'unpack-gmp&co
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
|
||||
(mpfr (assoc-ref %build-inputs "mpfr-source"))
|
||||
(mpc (assoc-ref %build-inputs "mpc-source")))
|
||||
;; Disable features not needed at this stage.
|
||||
"--disable-shared"
|
||||
"--enable-languages=c"
|
||||
"--disable-libmudflap"
|
||||
"--disable-libgomp"
|
||||
"--disable-libssp"
|
||||
"--disable-libquadmath"
|
||||
"--disable-decimal-float")
|
||||
(remove (cut string-match "--enable-languages.*" <>)
|
||||
,flags)))
|
||||
((#:phases phases)
|
||||
`(alist-cons-after
|
||||
'unpack 'unpack-gmp&co
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((gmp (assoc-ref %build-inputs "gmp-source"))
|
||||
(mpfr (assoc-ref %build-inputs "mpfr-source"))
|
||||
(mpc (assoc-ref %build-inputs "mpc-source")))
|
||||
|
||||
;; To reduce the set of pre-built bootstrap inputs, build
|
||||
;; GMP & co. from GCC.
|
||||
(for-each (lambda (source)
|
||||
(or (zero? (system* "tar" "xvf" source))
|
||||
(error "failed to unpack tarball"
|
||||
source)))
|
||||
(list gmp mpfr mpc))
|
||||
;; To reduce the set of pre-built bootstrap inputs, build
|
||||
;; GMP & co. from GCC.
|
||||
(for-each (lambda (source)
|
||||
(or (zero? (system* "tar" "xvf" source))
|
||||
(error "failed to unpack tarball"
|
||||
source)))
|
||||
(list gmp mpfr mpc))
|
||||
|
||||
;; Create symlinks like `gmp' -> `gmp-5.0.5'.
|
||||
,@(map (lambda (lib)
|
||||
`(symlink ,(package-full-name lib)
|
||||
,(package-name lib)))
|
||||
(list gmp mpfr mpc))
|
||||
;; Create symlinks like `gmp' -> `gmp-5.0.5'.
|
||||
,@(map (lambda (lib)
|
||||
`(symlink ,(package-full-name lib)
|
||||
,(package-name lib)))
|
||||
(list gmp mpfr mpc))
|
||||
|
||||
;; MPFR headers/lib are found under $(MPFR)/src, but
|
||||
;; `configure' wrongfully tells MPC too look under
|
||||
;; $(MPFR), so fix that.
|
||||
(substitute* "configure"
|
||||
(("extra_mpc_mpfr_configure_flags(.+)--with-mpfr-include=([^/]+)/mpfr(.*)--with-mpfr-lib=([^ ]+)/mpfr"
|
||||
_ equals include middle lib)
|
||||
(string-append "extra_mpc_mpfr_configure_flags" equals
|
||||
"--with-mpfr-include=" include
|
||||
"/mpfr/src" middle
|
||||
"--with-mpfr-lib=" lib
|
||||
"/mpfr/src"))
|
||||
(("gmpinc='-I([^ ]+)/mpfr -I([^ ]+)/mpfr" _ a b)
|
||||
(string-append "gmpinc='-I" a "/mpfr/src "
|
||||
"-I" b "/mpfr/src"))
|
||||
(("gmplibs='-L([^ ]+)/mpfr" _ a)
|
||||
(string-append "gmplibs='-L" a "/mpfr/src")))))
|
||||
(alist-cons-after
|
||||
'install 'symlink-libgcc_eh
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Glibc wants to link against libgcc_eh, so provide
|
||||
;; it.
|
||||
(with-directory-excursion
|
||||
(string-append out "/lib/gcc/"
|
||||
,(boot-triplet system)
|
||||
"/" ,(package-version gcc-4.7))
|
||||
(symlink "libgcc.a" "libgcc_eh.a"))))
|
||||
,phases)))))))
|
||||
;; MPFR headers/lib are found under $(MPFR)/src, but
|
||||
;; `configure' wrongfully tells MPC too look under
|
||||
;; $(MPFR), so fix that.
|
||||
(substitute* "configure"
|
||||
(("extra_mpc_mpfr_configure_flags(.+)--with-mpfr-include=([^/]+)/mpfr(.*)--with-mpfr-lib=([^ ]+)/mpfr"
|
||||
_ equals include middle lib)
|
||||
(string-append "extra_mpc_mpfr_configure_flags" equals
|
||||
"--with-mpfr-include=" include
|
||||
"/mpfr/src" middle
|
||||
"--with-mpfr-lib=" lib
|
||||
"/mpfr/src"))
|
||||
(("gmpinc='-I([^ ]+)/mpfr -I([^ ]+)/mpfr" _ a b)
|
||||
(string-append "gmpinc='-I" a "/mpfr/src "
|
||||
"-I" b "/mpfr/src"))
|
||||
(("gmplibs='-L([^ ]+)/mpfr" _ a)
|
||||
(string-append "gmplibs='-L" a "/mpfr/src")))))
|
||||
(alist-cons-after
|
||||
'install 'symlink-libgcc_eh
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Glibc wants to link against libgcc_eh, so provide
|
||||
;; it.
|
||||
(with-directory-excursion
|
||||
(string-append out "/lib/gcc/"
|
||||
,(boot-triplet)
|
||||
"/" ,(package-version gcc-4.7))
|
||||
(symlink "libgcc.a" "libgcc_eh.a"))))
|
||||
,phases))))))
|
||||
|
||||
(inputs `(("gmp-source" ,(package-source gmp))
|
||||
("mpfr-source" ,(package-source mpfr))
|
||||
@@ -812,20 +782,19 @@ identifier SYSTEM."
|
||||
(package (inherit glibc)
|
||||
(name "glibc-intermediate")
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
|
||||
,@(substitute-keyword-arguments (package-arguments glibc)
|
||||
((#:configure-flags flags)
|
||||
`(append (list ,(string-append "--host=" (boot-triplet system))
|
||||
,(string-append "--build="
|
||||
(nix-system->gnu-triplet system))
|
||||
,@(substitute-keyword-arguments (package-arguments glibc)
|
||||
((#:configure-flags flags)
|
||||
`(append (list ,(string-append "--host=" (boot-triplet))
|
||||
,(string-append "--build="
|
||||
(nix-system->gnu-triplet))
|
||||
|
||||
;; Build Sun/ONC RPC support. In particular,
|
||||
;; install rpc/*.h.
|
||||
"--enable-obsolete-rpc")
|
||||
,flags))))))
|
||||
;; Build Sun/ONC RPC support. In particular,
|
||||
;; install rpc/*.h.
|
||||
"--enable-obsolete-rpc")
|
||||
,flags)))))
|
||||
(propagated-inputs `(("linux-headers" ,linux-libre-headers-boot0)))
|
||||
(inputs
|
||||
`( ;; A native GCC is needed to build `cross-rpcgen'.
|
||||
@@ -847,40 +816,39 @@ that makes it available under the native tool names."
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder (begin
|
||||
(use-modules (guix build utils))
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder (begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(let* ((binutils (assoc-ref %build-inputs "binutils"))
|
||||
(gcc (assoc-ref %build-inputs "gcc"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(bash (assoc-ref %build-inputs "bash"))
|
||||
(out (assoc-ref %outputs "out"))
|
||||
(bindir (string-append out "/bin"))
|
||||
(triplet ,(boot-triplet system)))
|
||||
(mkdir-p bindir)
|
||||
(with-directory-excursion bindir
|
||||
(for-each (lambda (tool)
|
||||
(symlink (string-append binutils "/bin/"
|
||||
triplet "-" tool)
|
||||
tool))
|
||||
'("ar" "ranlib"))
|
||||
(let* ((binutils (assoc-ref %build-inputs "binutils"))
|
||||
(gcc (assoc-ref %build-inputs "gcc"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(bash (assoc-ref %build-inputs "bash"))
|
||||
(out (assoc-ref %outputs "out"))
|
||||
(bindir (string-append out "/bin"))
|
||||
(triplet ,(boot-triplet)))
|
||||
(mkdir-p bindir)
|
||||
(with-directory-excursion bindir
|
||||
(for-each (lambda (tool)
|
||||
(symlink (string-append binutils "/bin/"
|
||||
triplet "-" tool)
|
||||
tool))
|
||||
'("ar" "ranlib"))
|
||||
|
||||
;; GCC-BOOT0 is a libc-less cross-compiler, so it
|
||||
;; needs to be told where to find the crt files and
|
||||
;; the dynamic linker.
|
||||
(call-with-output-file "gcc"
|
||||
(lambda (p)
|
||||
(format p "#!~a/bin/bash
|
||||
;; GCC-BOOT0 is a libc-less cross-compiler, so it
|
||||
;; needs to be told where to find the crt files and
|
||||
;; the dynamic linker.
|
||||
(call-with-output-file "gcc"
|
||||
(lambda (p)
|
||||
(format p "#!~a/bin/bash
|
||||
exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
||||
bash
|
||||
gcc triplet
|
||||
libc libc
|
||||
,(glibc-dynamic-linker system))))
|
||||
bash
|
||||
gcc triplet
|
||||
libc libc
|
||||
,(glibc-dynamic-linker))))
|
||||
|
||||
(chmod "gcc" #o555)))))))
|
||||
(chmod "gcc" #o555))))))
|
||||
(native-inputs
|
||||
`(("binutils" ,binutils)
|
||||
("gcc" ,gcc)
|
||||
@@ -896,9 +864,8 @@ exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
||||
(car (assoc-ref %boot1-inputs "bash"))))
|
||||
(bash (package (inherit bash-light)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
,@(package-arguments bash-light)))))))
|
||||
`(#:guile ,%bootstrap-guile
|
||||
,@(package-arguments bash-light))))))
|
||||
(package-with-bootstrap-guile
|
||||
(package-with-explicit-inputs (static-package bash)
|
||||
`(("gcc" ,gcc)
|
||||
@@ -932,10 +899,9 @@ exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
||||
(package-with-bootstrap-guile
|
||||
(package (inherit binutils)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
,@(package-arguments binutils))))
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
,@(package-arguments binutils)))
|
||||
(inputs %boot2-inputs))))
|
||||
|
||||
(define-public gcc-final
|
||||
@@ -943,23 +909,22 @@ exec ~a/bin/~a-gcc -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
||||
(package (inherit gcc-boot0)
|
||||
(name "gcc")
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:implicit-inputs? #f
|
||||
|
||||
;; Build again GMP & co. within GCC's build process, because it's hard
|
||||
;; to do outside (because GCC-BOOT0 is a cross-compiler, and thus
|
||||
;; doesn't honor $LIBRARY_PATH, which breaks `gnu-build-system'.)
|
||||
,@(substitute-keyword-arguments ((package-arguments gcc-boot0) system)
|
||||
((#:configure-flags boot-flags)
|
||||
(let loop ((args ((package-arguments gcc-4.7) system)))
|
||||
(match args
|
||||
((#:configure-flags normal-flags _ ...)
|
||||
normal-flags)
|
||||
((_ rest ...)
|
||||
(loop rest)))))
|
||||
((#:phases phases)
|
||||
`(alist-delete 'symlink-libgcc_eh ,phases))))))
|
||||
;; Build again GMP & co. within GCC's build process, because it's hard
|
||||
;; to do outside (because GCC-BOOT0 is a cross-compiler, and thus
|
||||
;; doesn't honor $LIBRARY_PATH, which breaks `gnu-build-system'.)
|
||||
,@(substitute-keyword-arguments (package-arguments gcc-boot0)
|
||||
((#:configure-flags boot-flags)
|
||||
(let loop ((args (package-arguments gcc-4.7)))
|
||||
(match args
|
||||
((#:configure-flags normal-flags _ ...)
|
||||
normal-flags)
|
||||
((_ rest ...)
|
||||
(loop rest)))))
|
||||
((#:phases phases)
|
||||
`(alist-delete 'symlink-libgcc_eh ,phases)))))
|
||||
|
||||
(inputs `(("gmp-source" ,(package-source gmp))
|
||||
("mpfr-source" ,(package-source mpfr))
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
#:phases (alist-cons-after 'install 'post-install
|
||||
,post-install-phase
|
||||
%standard-phases)))
|
||||
(synopsis "GNU Bourne-Again Shell")
|
||||
(synopsis "The GNU Bourne-Again SHell")
|
||||
(description
|
||||
"Bash is the shell, or command language interpreter, that will appear in
|
||||
the GNU operating system. Bash is an sh-compatible shell that incorporates
|
||||
|
||||
+12
-13
@@ -35,19 +35,18 @@
|
||||
"1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:tests? #f ; no check target available
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero?
|
||||
(system* "./dist/configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "CONFIG_SHELL=" (which "bash"))
|
||||
(string-append "SHELL=" (which "bash"))))))
|
||||
%standard-phases))))
|
||||
'(#:tests? #f ; no check target available
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero?
|
||||
(system* "./dist/configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "CONFIG_SHELL=" (which "bash"))
|
||||
(string-append "SHELL=" (which "bash"))))))
|
||||
%standard-phases)))
|
||||
(synopsis "db, the Berkeley database")
|
||||
(description
|
||||
"Berkeley DB is an embeddable database allowing developers the choice of
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -20,7 +20,6 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libgc
|
||||
@@ -36,6 +35,7 @@
|
||||
(base32
|
||||
"05jwadjbrv8pr7z9cb4miskicxqpxm0pca4h2rg5cgbpajr2bx7b"))))
|
||||
(build-system gnu-build-system)
|
||||
;; TODO: Build with -DUSE_LIBC_PRIVATES (see make-bootstrap.scm).
|
||||
(synopsis "The Boehm-Demers-Weiser conservative garbage collector
|
||||
for C and C++")
|
||||
(description
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
(define-public bison
|
||||
(package
|
||||
(name "bison")
|
||||
(version "2.6.1")
|
||||
(version "2.7.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -35,13 +35,12 @@
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y9svfkbw8jc8yv280hqzilpvlwg60gayck83jj98djmzaxr1w86"))))
|
||||
"1yx7isx67sdmyijvihgyra1f59fwdz7sqriginvavfj5yb5ss2dl"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(propagated-inputs `(("m4" ,m4)))
|
||||
(home-page "http://www.gnu.org/software/bison/")
|
||||
(synopsis
|
||||
"GNU Bison, a Yacc-compatible parser generator")
|
||||
(synopsis "Parser generator")
|
||||
(description
|
||||
"Bison is a general-purpose parser generator that converts an
|
||||
annotated context-free grammar into an LALR(1) or GLR parser for
|
||||
|
||||
+83
-82
@@ -99,15 +99,13 @@ check whether everything is alright."
|
||||
(zero? (system* (string-append "bin/" ,program-to-test)
|
||||
"--version"))))))))
|
||||
(inputs
|
||||
`(("tar" ,(lambda (system)
|
||||
(search-bootstrap-binary "tar" system)))
|
||||
("xz" ,(lambda (system)
|
||||
(search-bootstrap-binary "xz" system)))
|
||||
("tarball" ,(lambda (system)
|
||||
(bootstrap-origin (source* system))))))
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin (source* (%current-system))))))
|
||||
(synopsis description*)
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
(home-page #f)
|
||||
(license #f)))
|
||||
|
||||
(define package-with-bootstrap-guile
|
||||
(memoize
|
||||
@@ -133,10 +131,11 @@ check whether everything is alright."
|
||||
(propagated-inputs (map rewritten-input
|
||||
(package-propagated-inputs p)))))))
|
||||
|
||||
(define (glibc-dynamic-linker system)
|
||||
(define* (glibc-dynamic-linker #:optional (system (%current-system)))
|
||||
"Return the name of Glibc's dynamic linker for SYSTEM."
|
||||
(cond ((string=? system "x86_64-linux") "/lib/ld-linux-x86-64.so.2")
|
||||
((string=? system "i686-linux") "/lib/ld-linux.so.2")
|
||||
((string=? system "mips64el-linux") "/lib/ld.so.1")
|
||||
(else (error "dynamic linker name not known for this system"
|
||||
system))))
|
||||
|
||||
@@ -155,9 +154,10 @@ check whether everything is alright."
|
||||
(let ((raw (build-system
|
||||
(name "raw")
|
||||
(description "Raw build system with direct store access")
|
||||
(build (lambda* (store name source inputs #:key outputs system)
|
||||
(build (lambda* (store name source inputs
|
||||
#:key outputs system search-paths)
|
||||
(define (->store file)
|
||||
(add-to-store store file #t #t "sha256"
|
||||
(add-to-store store file #t "sha256"
|
||||
(or (search-bootstrap-binary file
|
||||
system)
|
||||
(error "bootstrap binary not found"
|
||||
@@ -269,28 +269,26 @@ $out/bin/guile --version~%"
|
||||
(("/[^ ]+/lib/(libc|ld)" _ prefix)
|
||||
(string-append out "/lib/" prefix))))))))
|
||||
(inputs
|
||||
`(("tar" ,(lambda (system)
|
||||
(search-bootstrap-binary "tar" system)))
|
||||
("xz" ,(lambda (system)
|
||||
(search-bootstrap-binary "xz" system)))
|
||||
("tarball" ,(lambda (system)
|
||||
(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
"/20130105/glibc-2.17.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88"))))))))))
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
"/20130105/glibc-2.17.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"18kv1z9d8dr1j3hm9w7663kchqw9p6rsx11n1m143jgba2jz6jy3"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"08hv8i0axwnihrcgbz19x0a7s6zyv3yx38x8r29liwl8h82x9g88")))))))))
|
||||
(synopsis "Bootstrap binaries and headers of the GNU C Library")
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
(home-page #f)
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define %bootstrap-gcc
|
||||
;; The initial GCC. Uses binaries from a tarball typically built by
|
||||
@@ -301,68 +299,71 @@ $out/bin/guile --version~%"
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(bash (assoc-ref %build-inputs "bash"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
`(#:guile ,%bootstrap-guile
|
||||
#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz"))
|
||||
(bash (assoc-ref %build-inputs "bash"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 popen))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(system* xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append out "/bin")))
|
||||
(with-directory-excursion out
|
||||
(system* tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(system* xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd))
|
||||
(bindir (string-append out "/bin")))
|
||||
(with-directory-excursion out
|
||||
(system* tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
|
||||
(with-directory-excursion bindir
|
||||
(chmod "." #o755)
|
||||
(rename-file "gcc" ".gcc-wrapped")
|
||||
(call-with-output-file "gcc"
|
||||
(lambda (p)
|
||||
(format p "#!~a
|
||||
(with-directory-excursion bindir
|
||||
(chmod "." #o755)
|
||||
(rename-file "gcc" ".gcc-wrapped")
|
||||
(call-with-output-file "gcc"
|
||||
(lambda (p)
|
||||
(format p "#!~a
|
||||
exec ~a/bin/.gcc-wrapped -B~a/lib \
|
||||
-Wl,-rpath -Wl,~a/lib \
|
||||
-Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
|
||||
bash
|
||||
out libc libc libc
|
||||
,(glibc-dynamic-linker system))))
|
||||
bash
|
||||
out libc libc libc
|
||||
,(glibc-dynamic-linker))))
|
||||
|
||||
(chmod "gcc" #o555)))))))
|
||||
(chmod "gcc" #o555))))))
|
||||
(inputs
|
||||
`(("tar" ,(lambda (system)
|
||||
(search-bootstrap-binary "tar" system)))
|
||||
("xz" ,(lambda (system)
|
||||
(search-bootstrap-binary "xz" system)))
|
||||
("bash" ,(lambda (system)
|
||||
(search-bootstrap-binary "bash" system)))
|
||||
`(("tar" ,(search-bootstrap-binary "tar" (%current-system)))
|
||||
("xz" ,(search-bootstrap-binary "xz" (%current-system)))
|
||||
("bash" ,(search-bootstrap-binary "bash" (%current-system)))
|
||||
("libc" ,%bootstrap-glibc)
|
||||
("tarball" ,(lambda (system)
|
||||
(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
"/20130105/gcc-4.7.2.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2"))))))))))
|
||||
("tarball" ,(bootstrap-origin
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" (%current-system)
|
||||
"/20130105/gcc-4.7.2.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match (%current-system)
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1x1p7han5crnbw906iwdifykr6grzm0w27dy9gz75j0q1b32i4px"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"06wqs0xxnpw3hn0xjb4c9cs0899p1xwkcysa2rvzhvpra0c5vsg2")))))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CPATH")
|
||||
(directories '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(directories '("lib" "lib64")))))
|
||||
(synopsis "Bootstrap binaries of the GNU Compiler Collection")
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
(home-page #f)
|
||||
(license gpl3+)))
|
||||
|
||||
(define %bootstrap-inputs
|
||||
;; The initial, pre-built inputs. From now on, we can start building our
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 cdrom)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:select (lgpl2.1+ gpl3+))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages acl)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages help2man)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
|
||||
(define-public libcddb
|
||||
(package
|
||||
(name "libcddb")
|
||||
(version "1.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/libcddb/libcddb-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1y8bfy12dwm41m1jahayn3v47dm34fmz7m9cjxyh7xcw6fp3lzaf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:tests? #f)) ; tests rely on access to external servers
|
||||
(home-page "http://libcddb.sourceforge.net/")
|
||||
(synopsis "C library to access data on a CDDB server")
|
||||
(description
|
||||
"Libcddb is a C library to access data on a CDDB server (freedb.org). It
|
||||
allows you to:
|
||||
|
||||
1. search the database for possible CD matches;
|
||||
|
||||
2. retrieve detailed information about a specific CD;
|
||||
|
||||
3. submit new CD entries to the database.
|
||||
|
||||
Libcddb supports both the custom CDDB protocol and tunnelling the query and
|
||||
read operations over plain HTTP. It is also possible to use an HTTP proxy
|
||||
server. If you want to speed things up, you can make use of the built-in
|
||||
caching facility provided by the library.")
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define-public libcdio
|
||||
(package
|
||||
(name "libcdio")
|
||||
(version "0.90")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libcdio/libcdio-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kpp6gr5sjr30pb9klncc37fhkw0wi6r41d2fmvmw17cbj176zmg"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("help2man" ,help2man)
|
||||
("ncurses" ,ncurses)
|
||||
("pkg-config" ,pkg-config)
|
||||
("libcddb" ,libcddb)))
|
||||
(home-page "http://www.gnu.org/software/libcdio/")
|
||||
(synopsis "CD Input and Control library")
|
||||
(description
|
||||
"GNU libcdio is a library for OS-idependent CD-ROM and CD image access.
|
||||
It includes a library for working with ISO-9660 filesystems (libiso9660), as
|
||||
well as utility programs such as an audio CD player and an extractor.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public xorriso
|
||||
(package
|
||||
(name "xorriso")
|
||||
(version "1.2.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/xorriso/xorriso-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1h3w9ymhsi0wghcnl7mmlml40rm4yill1c75g90xc7r1a2g8k1mn"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("acl" ,acl)
|
||||
("readline" ,readline)
|
||||
("bzip2" ,bzip2)
|
||||
("zlib" ,zlib)
|
||||
("libcdio" ,libcdio)))
|
||||
(home-page "http://www.gnu.org/software/xorriso/")
|
||||
(synopsis "Create, manipulate, burn ISO-9660 filesystems")
|
||||
(description
|
||||
"GNU xorriso copies file objects from POSIX compliant filesystems into
|
||||
Rock Ridge enhanced ISO 9660 filesystems and allows session-wise manipulation
|
||||
of such filesystems. It can load the management information of existing ISO
|
||||
images and it writes the session results to optical media or to filesystem
|
||||
objects. Vice versa xorriso is able to copy file objects out of ISO 9660
|
||||
filesystems.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,51 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 cflow)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages emacs))
|
||||
|
||||
(define-public cflow
|
||||
(package
|
||||
(name "cflow")
|
||||
(version "1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/cflow/cflow-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jkbq97ajcf834z68hbn3xfhiz921zhn39gklml1racf0kb3jzh3"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/cflow/")
|
||||
(synopsis "Create a graph of control flow within a program")
|
||||
(description
|
||||
"GNU cflow analyzes a collection of C source files and prints a
|
||||
graph, charting control flow within the program.
|
||||
|
||||
GNU cflow is able to produce both direct and inverted flowgraphs
|
||||
for C sources. Optionally a cross-reference listing can be
|
||||
generated. Two output formats are implemented: POSIX and GNU
|
||||
(extended).
|
||||
|
||||
The package also provides Emacs major mode for examining the
|
||||
produced flowcharts in Emacs.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,78 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;;
|
||||
;;; 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 cmake)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages file))
|
||||
|
||||
(define-public cmake
|
||||
(package
|
||||
(name "cmake")
|
||||
(version "2.8.10.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.cmake.org/files/v"
|
||||
(substring version 0
|
||||
(string-index version #\. (+ 1 (string-index version #\.))))
|
||||
"/cmake-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1c8fj6i2x9sb39wc9av2ighj415mw33cxfrlfpafcvm0knrlylnf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:test-target "test"
|
||||
#:patches (list (assoc-ref %build-inputs "fix-tests"))
|
||||
#:patch-flags '("-p0")
|
||||
#:phases (alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Replace "/bin/sh" by the right path in... a lot of
|
||||
;; files.
|
||||
(substitute*
|
||||
'("Modules/CompilerId/Xcode-3.pbxproj.in"
|
||||
"Modules/CompilerId/Xcode-1.pbxproj.in"
|
||||
"Modules/CompilerId/Xcode-2.pbxproj.in"
|
||||
"Modules/CPack.RuntimeScript.in"
|
||||
"Source/cmakexbuild.cxx"
|
||||
"Source/cmGlobalXCodeGenerator.cxx"
|
||||
"Source/CTest/cmCTestBatchTestHandler.cxx"
|
||||
"Source/cmLocalUnixMakefileGenerator3.cxx"
|
||||
"Utilities/cmbzip2/Makefile-libbz2_so"
|
||||
"Utilities/Release/release_cmake.cmake"
|
||||
"Utilities/cmlibarchive/libarchive/archive_write_set_format_shar.c"
|
||||
"Tests/CMakeLists.txt")
|
||||
(("/bin/sh") (which "sh")))
|
||||
(zero? (system* "./configure"
|
||||
(string-append "--prefix=" out)))))
|
||||
%standard-phases)))
|
||||
(inputs
|
||||
`(("file" ,file)
|
||||
("fix-tests" ,(search-patch "cmake-fix-tests.patch"))))
|
||||
(home-page "http://www.cmake.org/")
|
||||
(synopsis "A cross-platform, open-source build system")
|
||||
(description
|
||||
"CMake is a family of tools designed to build, test and package software.
|
||||
CMake is used to control the software compilation process using simple platform
|
||||
and compiler independent configuration files. CMake generates native makefiles
|
||||
and workspaces that can be used in the compiler environment of your choice.")
|
||||
(license bsd-3)))
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -73,7 +73,7 @@ in compression.")
|
||||
(base32
|
||||
"18rm80kar7n016g8bsyy1a3zk50i2826xdgs874yh64rzj7nxmdm"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Gzip, the GNU zip compression program")
|
||||
(synopsis "General file (de)compression (using lzw)")
|
||||
(arguments
|
||||
;; FIXME: The test suite wants `less', and optionally Perl.
|
||||
'(#:tests? #f))
|
||||
@@ -171,7 +171,7 @@ been modified quite a lot to be suitable for XZ Utils. The primary
|
||||
compression algorithm is currently LZMA2, which is used inside the .xz
|
||||
container format. With typical files, XZ Utils create 30 % smaller output
|
||||
than gzip and 15 % smaller output than bzip2.")
|
||||
(license '(license:gpl2+ license:lgpl2.1+)) ; bits of both
|
||||
(license (list license:gpl2+ license:lgpl2.1+)) ; bits of both
|
||||
(home-page "http://tukaani.org/xz/")))
|
||||
|
||||
(define-public lzo
|
||||
|
||||
@@ -42,8 +42,7 @@
|
||||
(inputs
|
||||
`(("patch/gets" ,(search-patch "cpio-gets-undeclared.patch"))))
|
||||
(home-page "https://www.gnu.org/software/cpio/")
|
||||
(synopsis
|
||||
"A program to create or extract from cpio archives")
|
||||
(synopsis "Manage cpio and tar file archives")
|
||||
(description
|
||||
"GNU Cpio copies files into or out of a cpio or tar archive. The
|
||||
archive can be another file on the disk, a magnetic tape, or a pipe.
|
||||
@@ -55,4 +54,4 @@ default, cpio creates binary format archives, for compatibility with
|
||||
older cpio programs. When extracting from archives, cpio automatically
|
||||
recognizes which kind of archive it is reading and can read archives
|
||||
created on machines with a different byte-order.")
|
||||
(license gpl3+)))
|
||||
(license gpl3+)))
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 cppi)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses))
|
||||
|
||||
(define-public cppi
|
||||
(package
|
||||
(name "cppi")
|
||||
(version "1.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/cppi/cppi-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jk42cjaggk71rimjnx3qpmb6hivps0917vl3z7wbxk3i2whb98j"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/cppi/")
|
||||
(synopsis "Indent C preprocessor directives to reflect nesting and more")
|
||||
(description
|
||||
"GNU cppi indents C preprocessor directives to reflect their nesting and
|
||||
ensure that there is exactly one space character between each #if, #elif,
|
||||
#define directive and the following token. The number of spaces between the
|
||||
`#' and the following directive must correspond to the level of nesting of
|
||||
that directive.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,244 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 cross-base)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match))
|
||||
|
||||
(define (cross p target)
|
||||
(package (inherit p)
|
||||
(location (source-properties->location (current-source-location)))
|
||||
(name (string-append (package-name p) "-cross-" target))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments p)
|
||||
((#:configure-flags flags)
|
||||
`(cons ,(string-append "--target=" target)
|
||||
,flags))))))
|
||||
|
||||
(define cross-binutils
|
||||
(cut cross binutils <>))
|
||||
|
||||
(define* (cross-gcc target
|
||||
#:optional (xbinutils (cross-binutils target)) libc)
|
||||
"Return a cross-compiler for TARGET, where TARGET is a GNU triplet. Use
|
||||
XBINUTILS as the associated cross-Binutils. If LIBC is false, then build a
|
||||
GCC that does not target a libc; otherwise, target that libc."
|
||||
(define args
|
||||
;; Get the arguments as if we were building for TARGET. In particular, we
|
||||
;; want `glibc-dynamic-linker' to return the right thing.
|
||||
(parameterize ((%current-system (gnu-triplet->nix-system target)))
|
||||
(package-arguments gcc-4.7)))
|
||||
|
||||
(package (inherit gcc-4.7)
|
||||
(name (string-append "gcc-cross-"
|
||||
(if libc "" "sans-libc-")
|
||||
target))
|
||||
(arguments
|
||||
`(#:implicit-inputs? #f
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 regex)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
#:patches (list (assoc-ref %build-inputs "patch/cross-env-vars"))
|
||||
|
||||
,@(substitute-keyword-arguments args
|
||||
((#:configure-flags flags)
|
||||
`(append (list ,(string-append "--target=" target)
|
||||
,@(if libc
|
||||
'()
|
||||
`( ;; Disable features not needed at this stage.
|
||||
"--disable-shared" "--enable-static"
|
||||
|
||||
;; Disable C++ because libstdc++'s
|
||||
;; configure script otherwise fails with
|
||||
;; "Link tests are not allowed after
|
||||
;; GCC_NO_EXECUTABLES."
|
||||
"--enable-languages=c"
|
||||
|
||||
"--disable-threads" ; libgcc, would need libc
|
||||
"--disable-libmudflap"
|
||||
"--disable-libgomp"
|
||||
"--disable-libssp"
|
||||
"--disable-libquadmath"
|
||||
"--disable-decimal-float" ; would need libc
|
||||
)))
|
||||
|
||||
,(if libc
|
||||
flags
|
||||
`(remove (cut string-match "--enable-languages.*" <>)
|
||||
,flags))))
|
||||
((#:make-flags flags)
|
||||
(if libc
|
||||
`(let ((libc (assoc-ref %build-inputs "libc")))
|
||||
;; FLAGS_FOR_TARGET are needed for the target libraries to
|
||||
;; receive the -Bxxx for the startfiles.
|
||||
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
|
||||
,flags))
|
||||
flags))
|
||||
((#:phases phases)
|
||||
(let ((phases
|
||||
`(alist-cons-after
|
||||
'install 'make-cross-binutils-visible
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(libexec (string-append out "/libexec/gcc/"
|
||||
,target))
|
||||
(binutils (string-append
|
||||
(assoc-ref inputs "binutils-cross")
|
||||
"/bin/" ,target "-")))
|
||||
(for-each (lambda (file)
|
||||
(symlink (string-append binutils file)
|
||||
(string-append libexec "/"
|
||||
file)))
|
||||
'("as" "ld" "nm"))
|
||||
#t))
|
||||
,phases)))
|
||||
(if libc
|
||||
`(alist-cons-before
|
||||
'configure 'set-cross-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Add the cross Linux headers to CROSS_CPATH, and remove
|
||||
;; them from CPATH.
|
||||
(let ((libc (assoc-ref inputs "libc"))
|
||||
(linux (assoc-ref inputs
|
||||
"libc/cross-linux-headers")))
|
||||
(define (cross? x)
|
||||
;; Return #t if X is a cross-libc or cross Linux.
|
||||
(or (string-prefix? libc x)
|
||||
(string-prefix? linux x)))
|
||||
|
||||
(setenv "CROSS_CPATH"
|
||||
(string-append libc "/include:"
|
||||
linux "/include"))
|
||||
(setenv "CROSS_LIBRARY_PATH"
|
||||
(string-append libc "/lib"))
|
||||
|
||||
(let ((cpath (search-path-as-string->list
|
||||
(getenv "CPATH")))
|
||||
(libpath (search-path-as-string->list
|
||||
(getenv "LIBRARY_PATH"))))
|
||||
(setenv "CPATH"
|
||||
(list->search-path-as-string
|
||||
(remove cross? cpath) ":"))
|
||||
(setenv "LIBRARY_PATH"
|
||||
(list->search-path-as-string
|
||||
(remove cross? libpath) ":"))
|
||||
#t)))
|
||||
,phases)
|
||||
phases)))
|
||||
((#:strip-binaries? _)
|
||||
;; Disable stripping as this can break binaries, with object files
|
||||
;; of libgcc.a showing up as having an unknown architecture. See
|
||||
;; <http://lists.fedoraproject.org/pipermail/arm/2010-August/000663.html>
|
||||
;; for instance.
|
||||
#f))))
|
||||
(inputs
|
||||
`(("patch/cross-env-vars"
|
||||
,(search-patch "gcc-cross-environment-variables.patch"))
|
||||
|
||||
("binutils-cross" ,xbinutils)
|
||||
|
||||
;; Call it differently so that the builder can check whether the "libc"
|
||||
;; input is #f.
|
||||
("libc-native" ,@(assoc-ref %final-inputs "libc"))
|
||||
|
||||
;; Remaining inputs.
|
||||
,@(let ((inputs (append (package-inputs gcc-4.7)
|
||||
(alist-delete "libc" %final-inputs))))
|
||||
(if libc
|
||||
`(("libc" ,libc)
|
||||
,@inputs)
|
||||
inputs))))))
|
||||
|
||||
(define* (cross-libc target
|
||||
#:optional
|
||||
(xgcc (cross-gcc target))
|
||||
(xbinutils (cross-binutils target)))
|
||||
"Return a libc cross-built for TARGET, a GNU triplet. Use XGCC and
|
||||
XBINUTILS and the cross tool chain."
|
||||
(define xlinux-headers
|
||||
(package (inherit linux-libre-headers)
|
||||
(name (string-append (package-name linux-libre-headers)
|
||||
"-cross-" target))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments linux-libre-headers)
|
||||
((#:phases phases)
|
||||
`(alist-replace
|
||||
'build
|
||||
(lambda _
|
||||
(setenv "ARCH" ,(system->linux-architecture target))
|
||||
(format #t "`ARCH' set to `~a' (cross compiling)~%" (getenv "ARCH"))
|
||||
|
||||
(and (zero? (system* "make" "defconfig"))
|
||||
(zero? (system* "make" "mrproper" "headers_check"))))
|
||||
,phases))))
|
||||
(inputs `(("cross-gcc" ,xgcc)
|
||||
("cross-binutils" ,xbinutils)
|
||||
,@(package-inputs linux-libre-headers)))))
|
||||
|
||||
(package (inherit glibc)
|
||||
(name (string-append "glibc-cross-" target))
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
`(#:strip-binaries? #f ; disable stripping (see above)
|
||||
,@(package-arguments glibc))
|
||||
((#:configure-flags flags)
|
||||
`(cons ,(string-append "--host=" target)
|
||||
,flags))
|
||||
((#:phases phases)
|
||||
`(alist-cons-before
|
||||
'configure 'set-cross-linux-headers-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((linux (assoc-ref inputs "cross-linux-headers")))
|
||||
(setenv "CROSS_CPATH"
|
||||
(string-append linux "/include"))
|
||||
#t))
|
||||
,phases))))
|
||||
(propagated-inputs `(("cross-linux-headers" ,xlinux-headers)))
|
||||
(inputs `(("cross-gcc" ,xgcc)
|
||||
("cross-binutils" ,xbinutils)
|
||||
,@(package-inputs glibc)))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Concrete cross toolchains.
|
||||
;;;
|
||||
|
||||
(define-public xgcc-mips64el
|
||||
(let ((triplet "mips64el-linux-gnu"))
|
||||
(cross-gcc triplet
|
||||
(cross-binutils triplet)
|
||||
(cross-libc triplet))))
|
||||
|
||||
;; (define-public xgcc-armel
|
||||
;; (let ((triplet "armel-linux-gnueabi"))
|
||||
;; (cross-gcc triplet
|
||||
;; (cross-binutils triplet)
|
||||
;; (cross-libc triplet))))
|
||||
@@ -0,0 +1,59 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 cryptsetup)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages lvm)
|
||||
#:use-module (gnu packages popt)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages linux))
|
||||
|
||||
(define-public cryptsetup
|
||||
(package
|
||||
(name "cryptsetup")
|
||||
(version "1.6.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://cryptsetup.googlecode.com/files/cryptsetup-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"170lalkhh2fa316d12i6r7jprm0yss3c949d91069sq37ik6xwxs"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libgcrypt" ,libgcrypt)
|
||||
("lvm2" ,lvm2)
|
||||
("popt" ,popt)
|
||||
("python" ,python)
|
||||
("util-linux" ,util-linux)))
|
||||
(synopsis "hard disk encryption tool")
|
||||
(description
|
||||
"LUKS (Linux Unified Key Setup)/Cryptsetup provides a standard on-disk
|
||||
encryption format, which does not only facilitate compatibility among
|
||||
distributions, but which also provides secure management of multiple user
|
||||
passwords. In contrast to existing solutions, LUKS stores all setup necessary
|
||||
setup information in the partition header, enabling the users to transport
|
||||
or migrate their data seamlessly.")
|
||||
(license license:gpl2)
|
||||
(home-page "http://code.google.com/p/cryptsetup/")))
|
||||
@@ -0,0 +1,70 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 curl)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gnutls)
|
||||
#:use-module (gnu packages groff)
|
||||
#:use-module (gnu packages gsasl)
|
||||
#:use-module (gnu packages libidn)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages ssh))
|
||||
|
||||
(define-public curl
|
||||
(package
|
||||
(name "curl")
|
||||
(version "7.28.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://curl.haxx.se/download/curl-"
|
||||
version ".tar.lzma"))
|
||||
(sha256
|
||||
(base32
|
||||
"13bhfs41yf60ys2hrikqxjwfzaj0gm91kqzsgc5fr4grzmpm38nx"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gnutls" ,gnutls)
|
||||
;; to enable the --manual option and make test 1026 pass
|
||||
("groff" ,groff)
|
||||
("gss" ,gss)
|
||||
("libidn" ,libidn)
|
||||
("libssh2" ,libssh2)
|
||||
("openldap" ,openldap)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-gnutls" "--with-gssapi")))
|
||||
(synopsis "curl, command line tool for transferring data with URL syntax")
|
||||
(description
|
||||
"curl is a command line tool for transferring data with URL syntax,
|
||||
supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP,
|
||||
LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP.
|
||||
curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading,
|
||||
HTTP form based upload, proxies, cookies, user+password authentication
|
||||
(Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume,
|
||||
proxy tunneling, and so on")
|
||||
(license (license:bsd-style "file://COPYING"
|
||||
"See COPYING in the distribution."))
|
||||
(home-page "http://curl.haxx.se/")))
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -37,24 +37,21 @@
|
||||
(build-system gnu-build-system)
|
||||
(home-page
|
||||
"http://www.gnu.org/software/ddrescue/ddrescue.html")
|
||||
(synopsis "GNU ddrescue, a data recovery tool")
|
||||
(synopsis "Data recovery utility")
|
||||
(description
|
||||
"GNU ddrescue is a data recovery tool. It copies data from one
|
||||
file or block device (hard disc, cdrom, etc) to another, trying hard to
|
||||
"GNU Ddrescue is a data recovery tool. It copies data from one
|
||||
file or block device (e.g., hard disk, CD-ROM) to another, trying hard to
|
||||
rescue data in case of read errors.
|
||||
|
||||
The basic operation of ddrescue is fully automatic. That is, you don't
|
||||
The basic operation of Ddrescue is fully automatic. That is, you don't
|
||||
have to wait for an error, stop the program, read the log, run it in
|
||||
reverse mode, etc.
|
||||
|
||||
If you use the logfile feature of ddrescue, the data is rescued very
|
||||
efficiently (only the needed blocks are read). Also you can interrupt
|
||||
If you use the logfile feature of Ddrescue, the data is rescued very
|
||||
efficiently (only the needed blocks are read). Also, you can interrupt
|
||||
the rescue at any time and resume it later at the same point.
|
||||
|
||||
Automatic merging of backups: If you have two or more damaged copies of
|
||||
a file, cdrom, etc, and run ddrescue on all of them, one at a time, with
|
||||
the same output file, you will probably obtain a complete and error-free
|
||||
file. This is so because the probability of having damaged areas at the
|
||||
same places on different input files is very low. Using the logfile,
|
||||
only the needed blocks are read from the second and successive copies.")
|
||||
a file and run Ddrescue on all of them, one at a time, with the same
|
||||
output file, you will probably obtain a complete and error-free file.")
|
||||
(license gpl3+)))
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
(define-public dejagnu
|
||||
(package
|
||||
(name "dejagnu")
|
||||
(version "1.5")
|
||||
(version "1.5.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -34,7 +34,7 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nx3x3h96a82q92q108q71giv2nz9xmbbn2nrlr3wvvs6l45id68"))))
|
||||
"1lik8h4qi7x0mhsi8xmj91an1yb63rjbk6v4xrmzgiy5lk8lgrv0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("expect" ,expect)))
|
||||
(arguments
|
||||
@@ -75,7 +75,7 @@
|
||||
%standard-phases))))
|
||||
(home-page
|
||||
"http://www.gnu.org/software/dejagnu/")
|
||||
(synopsis "The DejaGNU testing framework")
|
||||
(synopsis "GNU software testing framework")
|
||||
(description
|
||||
"DejaGnu is a framework for testing other programs. Its purpose
|
||||
is to provide a single front end for all tests. Think of it as a
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;;
|
||||
;;; 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 dwm)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
(define-public dwm
|
||||
(package
|
||||
(name "dwm")
|
||||
(version "6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://dl.suckless.org/dwm/dwm-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0mpbivy9j80l1jqq4bd4g4z8s5c54fxrjj44avmfwncjwqylifdj"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda _
|
||||
(substitute* "Makefile" (("\\$\\{CC\\}") "gcc"))
|
||||
#t)
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero?
|
||||
(system* "make" "install"
|
||||
(string-append "DESTDIR=" out) "PREFIX="))))
|
||||
%standard-phases))))
|
||||
(inputs
|
||||
`(("libx11" ,libx11)
|
||||
("libxinerama" ,libxinerama)))
|
||||
(home-page "http://dwm.suckless.org/")
|
||||
(synopsis "Dynamic window manager")
|
||||
(description
|
||||
"dwm is a dynamic window manager for X. It manages windows in tiled,
|
||||
monocle and floating layouts. All of the layouts can be applied dynamically,
|
||||
optimising the environment for the application in use and the task performed.
|
||||
|
||||
In tiled layout windows are managed in a master and stacking area. The master
|
||||
area contains the window which currently needs most attention, whereas the
|
||||
stacking area contains all other windows. In monocle layout all windows are
|
||||
maximised to the screen size. In floating layout windows can be resized and
|
||||
moved freely. Dialog windows are always managed floating, regardless of the
|
||||
layout applied.
|
||||
|
||||
Windows are grouped by tags. Each window can be tagged with one or multiple
|
||||
tags. Selecting certain tags displays all windows with these tags.
|
||||
|
||||
Each screen contains a small status bar which displays all available tags, the
|
||||
layout, the number of visible windows, the title of the focused window, and the
|
||||
text read from the root window name property, if the screen is focused. A
|
||||
floating window is indicated with an empty square and a maximised floating
|
||||
window is indicated with a filled square before the windows title. The selected
|
||||
tags are indicated with a different color. The tags of the focused window are
|
||||
indicated with a filled square in the top left corner. The tags which are
|
||||
applied to one or more windows are indicated with an empty square in the top
|
||||
left corner.
|
||||
|
||||
dwm draws a small customizable border around windows to indicate the focus
|
||||
state.")
|
||||
(license x11)))
|
||||
+17
-14
@@ -1,5 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -25,22 +26,24 @@
|
||||
(define-public ed
|
||||
(package
|
||||
(name "ed")
|
||||
(version "1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/ed/ed-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18gvhyhwpabmgv4lh21lg8vl3z7acdyhh2mr2kj9g75wksj39pcp"))))
|
||||
(version "1.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ed/ed-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wvj190ky5i0gm0pilx9k75l6alyc6h5s14fm3dbk90y7g9kihb4"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("CC=gcc")))
|
||||
(arguments
|
||||
'(#:configure-flags '("CC=gcc")
|
||||
#:phases (alist-cons-before 'patch-source-shebangs 'patch-test-suite
|
||||
(lambda _
|
||||
(substitute* "testsuite/check.sh"
|
||||
(("/bin/sh") (which "sh"))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.gnu.org/software/ed/")
|
||||
(synopsis
|
||||
"GNU ed, an implementation of the standard Unix editor")
|
||||
(synopsis "Line-oriented text editor")
|
||||
(description
|
||||
"GNU ed is a line-oriented text editor. It is used to create,
|
||||
display, modify and otherwise manipulate text files, both
|
||||
|
||||
+68
-15
@@ -25,24 +25,35 @@
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages gnutls)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages lesstif)
|
||||
#:use-module (gnu packages libjpeg)
|
||||
#:use-module (gnu packages libtiff)
|
||||
#:use-module (gnu packages libpng)
|
||||
#:use-module ((gnu packages compression)
|
||||
#:renamer (symbol-prefix-proc 'compression:))
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages glib))
|
||||
|
||||
(define-public emacs
|
||||
(package
|
||||
(name "emacs")
|
||||
(version "24.2")
|
||||
(version "24.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/emacs/emacs-"
|
||||
version ".tar.bz2"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13wbjfjmz13qpjwssy44nw2230lllmkkgjsy0rqfm6am2cf87n3k"))))
|
||||
"1385qzs3bsa52s5rcncbrkxlydkw0ajzrvfxgv8rws5fx512kakh"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc")
|
||||
"/lib"))
|
||||
"/lib")
|
||||
"--with-gif=no") ; XXX: add libungif
|
||||
#:patches (list (assoc-ref %build-inputs "patch/epaths"))
|
||||
#:phases (alist-cons-before
|
||||
'configure 'fix-/bin/pwd
|
||||
@@ -59,22 +70,27 @@
|
||||
("ncurses" ,ncurses)
|
||||
|
||||
;; TODO: Add the optional dependencies.
|
||||
;; ("xlibs" ,xlibs)
|
||||
("xlibs" ,libx11)
|
||||
("libXaw" ,libxaw) ; XXX: eventually replace by GTK+
|
||||
;; ("gtk+" ,gtk+)
|
||||
;; ("libXft" ,libXft)
|
||||
;; ("libtiff" ,libtiff)
|
||||
("libXft" ,libxft)
|
||||
("libtiff" ,libtiff)
|
||||
;; ("libungif" ,libungif)
|
||||
;; ("libjpeg" ,libjpeg)
|
||||
;; ("libpng" ,libpng)
|
||||
;; ("libXpm" ,libXpm)
|
||||
;; ("libxml2" ,libxml2)
|
||||
;; ("dbus-library" ,dbus-library)
|
||||
("libjpeg" ,libjpeg-8)
|
||||
|
||||
;; When looking for libpng `configure' links with `-lpng -lz', so we
|
||||
;; must also provide zlib as an input.
|
||||
("libpng" ,libpng)
|
||||
("zlib" ,compression:zlib)
|
||||
|
||||
("libXpm" ,libxpm)
|
||||
("libxml2" ,libxml2)
|
||||
("dbus" ,dbus)
|
||||
|
||||
("patch/epaths" ,(search-patch "emacs-configure-sh.patch"))
|
||||
))
|
||||
(home-page "http://www.gnu.org/software/emacs/")
|
||||
(synopsis
|
||||
"GNU Emacs 24, the extensible, customizable text editor")
|
||||
(synopsis "The extensible, customizable, self-documenting text editor")
|
||||
(description
|
||||
"GNU Emacs is an extensible, customizable text editor—and more. At its
|
||||
core is an interpreter for Emacs Lisp, a dialect of the Lisp
|
||||
@@ -91,3 +107,40 @@ reader, debugger interface, calendar, and more. Many of these
|
||||
extensions are distributed with GNU Emacs; others are available
|
||||
separately.")
|
||||
(license gpl3+)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Emacs hacking.
|
||||
;;;
|
||||
|
||||
(define-public geiser
|
||||
(package
|
||||
(name "geiser")
|
||||
(version "0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/geiser/" version
|
||||
"/geiser-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0ds7zk9b1839l9fsqfsgrby6manvy1cf5bjniiqhxl55h0cr6ijp"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("guile" ,guile-2.0)
|
||||
("emacs" ,emacs)))
|
||||
(home-page "http://nongnu.org/geiser/")
|
||||
(synopsis "Collection of Emacs modes for Guile and Racket hacking")
|
||||
(description
|
||||
"Geiser is a collection of Emacs major and minor modes that
|
||||
conspire with one or more Scheme interpreters to keep the Lisp Machine
|
||||
Spirit alive. It draws inspiration (and a bit more) from environments
|
||||
such as Common Lisp’s Slime, Factor’s FUEL, Squeak or Emacs itself, and
|
||||
does its best to make Scheme hacking inside Emacs (even more) fun.
|
||||
|
||||
Or, to be precise, what i consider fun. Geiser is thus my humble
|
||||
contribution to the dynamic school of expression, and a reaction against
|
||||
what i perceive as a derailment, in modern times, of standard Scheme
|
||||
towards the static camp. Because i prefer growing and healing to poking
|
||||
at corpses, the continuously running Scheme interpreter takes the center
|
||||
of the stage in Geiser. A bundle of Elisp shims orchestrates the dialog
|
||||
between the Scheme interpreter, Emacs and, ultimately, the schemer,
|
||||
giving her access to live metadata.")
|
||||
(license bsd-3)))
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.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 fdisk)
|
||||
#:use-module ((guix licenses) #:select (gpl3+))
|
||||
#:use-module ((gnu packages gettext)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages parted)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public fdisk
|
||||
(package
|
||||
(name "fdisk")
|
||||
(version "2.0.0a")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/fdisk/gnufdisk-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04nd7civ561x2lwcmxhsqbprml3178jfc58fy1v7hzqg5k4nbhy3"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gettext" ,guix:gettext)
|
||||
("guile" ,guile-1.8)
|
||||
("util-linux" ,util-linux)
|
||||
("parted" ,parted)))
|
||||
(home-page "https://www.gnu.org/software/fdisk/")
|
||||
(synopsis "Low-level disk partitioning and formatting")
|
||||
(description
|
||||
"GNU Fdisk provides alternatives to util-linux fdisk and util-linux
|
||||
cfdisk. It uses GNU Parted.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,160 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 pkg-config)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public freetype
|
||||
(package
|
||||
(name "freetype")
|
||||
(version "2.4.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/freetype/freetype-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0gpcz6swir64kp0dk3rwgqqkmf48b90dqgczdmznjjryhrahx9r9"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys #:rest args)
|
||||
(let ((install (assoc-ref %standard-phases 'install))
|
||||
(include (string-append (assoc-ref outputs "out") "/include")))
|
||||
(apply install args)
|
||||
;; Unravel one directory, since ft2build.h includes directly from
|
||||
;; freetype/, not freetype2/freetype; this is announced in the file
|
||||
;; to be changed in a future release.
|
||||
(symlink (string-append include "/freetype2/freetype")
|
||||
(string-append include "/freetype"))))
|
||||
%standard-phases)))
|
||||
(synopsis "Freetype, a library to render fonts")
|
||||
(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 "http://www.freetype.org/")))
|
||||
|
||||
(define-public fontconfig
|
||||
(package
|
||||
(name "fontconfig")
|
||||
(version "2.10.91")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.freedesktop.org/software/fontconfig/release/fontconfig-"
|
||||
version ".tar.bz2"))
|
||||
(sha256 (base32
|
||||
"1vk37q3zj8bjppj3l0pkby1psialpwl263jqf6pbih2hx5a7jwm4"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("expat" ,expat)
|
||||
("freetype" ,freetype)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "Fontconfig, a library for configuring and customising 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:bsd-style "file://COPYING"
|
||||
"See COPYING in the distribution."))
|
||||
(home-page "http://www.freedesktop.org/wiki/Software/fontconfig")))
|
||||
|
||||
(define-public t1lib
|
||||
(package
|
||||
(name "t1lib")
|
||||
(version "5.1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri "ftp://sunsite.unc.edu/pub/Linux/libs/graphics/t1lib-5.1.2.tar.gz")
|
||||
(sha256 (base32
|
||||
"0nbvjpnmcznib1nlgg8xckrmsw3haa154byds2h90y2g0nsjh4w2"))))
|
||||
(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 "T1lib, a 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.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://scripts.sil.org/svn-view/teckit/TAGS/TECkit_"
|
||||
(string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0fjiwvic8mdxpkyccfp7zh26y9xnvkp0skqbyfkrjiacd191k82r"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("patch/teckit" ,(search-patch "teckit-cstdio.patch"))
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/teckit"))))
|
||||
(synopsis "TECkit, a 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")))
|
||||
@@ -0,0 +1,53 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 freeipmi)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages gnupg))
|
||||
|
||||
(define-public freeipmi
|
||||
(package
|
||||
(name "freeipmi")
|
||||
(version "1.2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/freeipmi/freeipmi-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0fjc9kr6x1k55a101qikl3rsc9y6fh4iqr84mj7kgzqgk7rwp5ij"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("readline" ,readline) ("libgcrypt" ,libgcrypt)))
|
||||
(home-page "http://www.gnu.org/software/freeipmi/")
|
||||
(synopsis "Platform management, including sensor and power monitoring")
|
||||
(description
|
||||
"GNU FreeIPMI provides in-band and out-of-band IPMI software based on the
|
||||
IPMI v1.5/2.0 specification. The IPMI specification defines a set of
|
||||
interfaces for platform management and is implemented by a number vendors for
|
||||
system management. The features of IPMI that most users will be interested in
|
||||
are sensor monitoring, system event monitoring, power control, and
|
||||
serial-over-LAN (SOL). The FreeIPMI tools and libraries listed below should
|
||||
provide users with the ability to access and utilize these and many other
|
||||
features. A number of useful features for large HPC or cluster environments
|
||||
have also been implemented into FreeIPMI.")
|
||||
(license gpl3+)))
|
||||
+16
-21
@@ -21,42 +21,37 @@
|
||||
#:use-module (gnu packages libsigsegv)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gawk
|
||||
(package
|
||||
(name "gawk")
|
||||
(version "4.0.0")
|
||||
(version "4.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gawk/gawk-" version
|
||||
".tar.bz2"))
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0"))))
|
||||
(base32 "04vd0axif762mf781pj3days6ilv2333b9zi9c50y5mma66g5q91"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(case-lambda
|
||||
((system)
|
||||
`(#:parallel-tests? #f ; test suite fails in parallel
|
||||
`(#:parallel-tests? #f ; test suite fails in parallel
|
||||
|
||||
;; Work around test failure on Cygwin.
|
||||
#:tests? ,(not (string=? system "i686-cygwin"))
|
||||
;; Work around test failure on Cygwin.
|
||||
#:tests? ,(not (string=? (%current-system) "i686-cygwin"))
|
||||
|
||||
#:phases (alist-cons-before
|
||||
'configure 'set-shell-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Refer to the right shell.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "io.c"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/bash")))))
|
||||
%standard-phases)))
|
||||
((system cross-system)
|
||||
'(#:parallel-tests? #f))))
|
||||
#:phases (alist-cons-before
|
||||
'configure 'set-shell-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Refer to the right shell.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "io.c"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/bash")))))
|
||||
%standard-phases)))
|
||||
(inputs `(("libsigsegv" ,libsigsegv)))
|
||||
(home-page "http://www.gnu.org/software/gawk/")
|
||||
(synopsis "GNU implementation of the Awk programming language")
|
||||
(synopsis "A text scanning and processing language")
|
||||
(description
|
||||
"Many computer users need to manipulate text files: extract and then
|
||||
operate on data from parts of certain lines while discarding the rest, make
|
||||
|
||||
@@ -0,0 +1,266 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013 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 gcc)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl3+ gpl2+ lgpl2.1+ lgpl2.0+))
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages bootstrap)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define %gcc-infrastructure
|
||||
;; Base URL for GCC's infrastructure.
|
||||
"ftp://gcc.gnu.org/pub/gcc/infrastructure/")
|
||||
|
||||
(define-public gcc-4.7
|
||||
(let ((stripped? #t)) ; TODO: make this a parameter
|
||||
(package
|
||||
(name "gcc")
|
||||
(version "4.7.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gcc/gcc-"
|
||||
version "/gcc-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hx9h64ivarlzi4hxvq42as5m9vlr5cyzaaq4gzj4i619zmkfz1g"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)
|
||||
("mpc" ,mpc)
|
||||
("isl" ,isl)
|
||||
("cloog" ,cloog)
|
||||
("libelf" ,libelf)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
#:strip-binaries? ,stripped?
|
||||
#:configure-flags
|
||||
`("--enable-plugin"
|
||||
"--enable-languages=c,c++"
|
||||
"--disable-multilib"
|
||||
|
||||
"--with-local-prefix=/no-gcc-local-prefix"
|
||||
|
||||
,(let ((libc (assoc-ref %build-inputs "libc")))
|
||||
(if libc
|
||||
(string-append "--with-native-system-header-dir=" libc
|
||||
"/include")
|
||||
"--without-headers")))
|
||||
#:make-flags
|
||||
(let ((libc (assoc-ref %build-inputs "libc")))
|
||||
`(,@(if libc
|
||||
(list (string-append "LDFLAGS_FOR_TARGET="
|
||||
"-B" libc "/lib "
|
||||
"-Wl,-dynamic-linker "
|
||||
"-Wl," libc
|
||||
,(glibc-dynamic-linker)))
|
||||
'())
|
||||
,(string-append "BOOT_CFLAGS=-O2 "
|
||||
,(if stripped? "-g0" "-g"))))
|
||||
|
||||
#:tests? #f
|
||||
#:phases
|
||||
(alist-cons-before
|
||||
'configure 'pre-configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(libc (assoc-ref inputs "libc")))
|
||||
(when libc
|
||||
;; The following is not performed for `--without-headers'
|
||||
;; cross-compiler builds.
|
||||
|
||||
;; Fix the dynamic linker's file name.
|
||||
(substitute* (find-files "gcc/config"
|
||||
"^linux(64|-elf)?\\.h$")
|
||||
(("#define GLIBC_DYNAMIC_LINKER([^ ]*).*$" _ suffix)
|
||||
(format #f "#define GLIBC_DYNAMIC_LINKER~a \"~a\"~%"
|
||||
suffix
|
||||
(string-append libc ,(glibc-dynamic-linker)))))
|
||||
|
||||
;; Tell where to find libstdc++, libc, and `?crt*.o', except
|
||||
;; `crt{begin,end}.o', which come with GCC.
|
||||
(substitute* (find-files "gcc/config"
|
||||
"^(gnu-user(64)?|linux-elf)\\.h$")
|
||||
(("#define LIB_SPEC (.*)$" _ suffix)
|
||||
;; Note that with this "lib" spec, we may still add a
|
||||
;; RUNPATH to GCC even when `libgcc_s' is not NEEDED.
|
||||
;; There's not much that can be done to avoid it, though.
|
||||
(format #f "#define LIB_SPEC \"-L~a/lib %{!static:-rpath=~a/lib \
|
||||
%{!static-libgcc:-rpath=~a/lib64 -rpath=~a/lib}} \" ~a"
|
||||
libc libc out out suffix))
|
||||
(("#define STARTFILE_SPEC.*$" line)
|
||||
(format #f "#define STANDARD_STARTFILE_PREFIX_1 \"~a/lib\"
|
||||
#define STANDARD_STARTFILE_PREFIX_2 \"\"
|
||||
~a~%"
|
||||
libc line))))
|
||||
|
||||
;; Don't retain a dependency on the build-time sed.
|
||||
(substitute* "fixincludes/fixincl.x"
|
||||
(("static char const sed_cmd_z\\[\\] =.*;")
|
||||
"static char const sed_cmd_z[] = \"sed\";"))))
|
||||
|
||||
(alist-cons-after
|
||||
'configure 'post-configure
|
||||
(lambda _
|
||||
;; Don't store configure flags, to avoid retaining references to
|
||||
;; build-time dependencies---e.g., `--with-ppl=/nix/store/xxx'.
|
||||
(substitute* "Makefile"
|
||||
(("^TOPLEVEL_CONFIGURE_ARGUMENTS=(.*)$" _ rest)
|
||||
"TOPLEVEL_CONFIGURE_ARGUMENTS=\n")))
|
||||
(alist-replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero?
|
||||
(system* "make"
|
||||
,(if stripped?
|
||||
"install-strip"
|
||||
"install"))))
|
||||
%standard-phases)))))
|
||||
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "CPATH")
|
||||
(directories '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(directories '("lib" "lib64")))))
|
||||
|
||||
(properties `((gcc-libc . ,(assoc-ref inputs "libc"))))
|
||||
(synopsis "GNU Compiler Collection")
|
||||
(description
|
||||
"The GNU Compiler Collection includes compiler front ends for C, C++,
|
||||
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well as
|
||||
libraries for these languages (libstdc++, libgcj, libgomp,...).
|
||||
|
||||
GCC development is a part of the GNU Project, aiming to improve the compiler
|
||||
used in the GNU system including the GNU/Linux variant.")
|
||||
(license gpl3+)
|
||||
(home-page "http://gcc.gnu.org/"))))
|
||||
|
||||
(define-public gcc-4.8
|
||||
;; FIXME: Move to gcc.scm when Binutils is updated.
|
||||
(package (inherit gcc-4.7)
|
||||
(version "4.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gcc/gcc-"
|
||||
version "/gcc-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0b6cp9d1sas3vq6dj3zrgd134p9b569fqhbixb9cl7mp698zwdxh"))))))
|
||||
|
||||
(define-public isl
|
||||
(package
|
||||
(name "isl")
|
||||
(version "0.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
"ftp://ftp.linux.student.kuleuven.be/pub/people/skimo/isl/isl-"
|
||||
version
|
||||
".tar.bz2")
|
||||
(string-append %gcc-infrastructure
|
||||
name "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"13d9cqa5rzhbjq0xf0b2dyxag7pqa72xj9dhsa03m8ccr1a4npq9"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)))
|
||||
(home-page "http://www.kotnet.org/~skimo/isl/")
|
||||
(synopsis
|
||||
"A library for manipulating sets and relations of integer points bounded
|
||||
by linear constraints")
|
||||
(description
|
||||
"isl is a library for manipulating sets and relations of integer points
|
||||
bounded by linear constraints. Supported operations on sets include
|
||||
intersection, union, set difference, emptiness check, convex hull, (integer)
|
||||
affine hull, integer projection, computing the lexicographic minimum using
|
||||
parametric integer programming, coalescing and parametric vertex
|
||||
enumeration. It also includes an ILP solver based on generalized basis
|
||||
reduction, transitive closures on maps (which may encode infinite graphs),
|
||||
dependence analysis and bounds on piecewise step-polynomials.")
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define-public cloog
|
||||
(package
|
||||
(name "cloog")
|
||||
(version "0.18.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
"http://www.bastoul.net/cloog/pages/download/count.php3?url=cloog-"
|
||||
version
|
||||
".tar.gz")
|
||||
(string-append %gcc-infrastructure
|
||||
name "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0a12rwfwp22zd0nlld0xyql11cj390rrq1prw35yjsw8wzfshjhw"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("isl" ,isl)))
|
||||
(arguments '(#:configure-flags '("--with-isl=system")))
|
||||
(home-page "http://www.cloog.org/")
|
||||
(synopsis "A library to generate code for scanning Z-polyhedra")
|
||||
(description
|
||||
"CLooG is a free software library to generate code for scanning
|
||||
Z-polyhedra. That is, it finds a code (e.g., in C, FORTRAN...) that
|
||||
reaches each integral point of one or more parameterized polyhedra.
|
||||
CLooG has been originally written to solve the code generation problem
|
||||
for optimizing compilers based on the polytope model. Nevertheless it
|
||||
is used now in various area e.g., to build control automata for
|
||||
high-level synthesis or to find the best polynomial approximation of a
|
||||
function. CLooG may help in any situation where scanning polyhedra
|
||||
matters. While the user has full control on generated code quality,
|
||||
CLooG is designed to avoid control overhead and to produce a very
|
||||
effective code.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public libelf
|
||||
(package
|
||||
(name "libelf")
|
||||
(version "0.8.13")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.mr511.de/software/libelf-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vf7s9dwk2xkmhb79aigqm0x0yfbw1j0b9ksm51207qwr179n6jr"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:phases (alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; This old `configure' script doesn't support
|
||||
;; variables passed as arguments.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
(zero?
|
||||
(system* "./configure"
|
||||
(string-append "--prefix=" out)))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.mr511.de/software/english.html")
|
||||
(synopsis "An ELF object file access library")
|
||||
(description "libelf is a C library to access ELF object files.")
|
||||
(license lgpl2.0+)))
|
||||
@@ -32,14 +32,14 @@
|
||||
(define-public gdb
|
||||
(package
|
||||
(name "gdb")
|
||||
(version "7.5")
|
||||
(version "7.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gdb/gdb-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0chrws5ga90b50kp06yll6zy42fhnx9yr87r4i7swsc369fc8y6i"))))
|
||||
"06yzggy97qka6fs1vdz4q0d2fgrpm3iaj7dzvf1ww377bvryh454"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-cons-after
|
||||
@@ -57,7 +57,7 @@
|
||||
("texinfo" ,texinfo)
|
||||
("dejagnu" ,dejagnu)))
|
||||
(home-page "http://www.gnu.org/software/gdb/")
|
||||
(synopsis "GDB, the GNU Project debugger")
|
||||
(synopsis "The GNU debugger")
|
||||
(description
|
||||
"GDB, the GNU Project debugger, allows you to see what is going
|
||||
on `inside' another program while it executes -- or what another
|
||||
|
||||
@@ -34,9 +34,11 @@
|
||||
(sha256
|
||||
(base32
|
||||
"0h9lfzdjc2yl849y0byg51h6xfjg0y7vg9jnsw3gpfwlbd617y13"))))
|
||||
(arguments `(#:configure-flags '("--enable-libgdbm-compat")))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/gdbm/")
|
||||
(synopsis "GNU dbm key/value database library")
|
||||
(synopsis
|
||||
"Hash library of database functions compatible with traditional dbm")
|
||||
(description
|
||||
"GNU dbm (or GDBM, for short) is a library of database functions
|
||||
that use extensible hashing and work similar to the standard UNIX dbm.
|
||||
|
||||
@@ -56,8 +56,7 @@
|
||||
,(search-patch "gettext-gets-undeclared.patch"))))
|
||||
(home-page
|
||||
"http://www.gnu.org/software/gettext/")
|
||||
(synopsis
|
||||
"GNU gettext, a well integrated set of translation tools and documentation")
|
||||
(synopsis "Tools and documentation for translation")
|
||||
(description
|
||||
"Usually, programs are written and documented in English, and use
|
||||
English at execution time for interacting with users. Using a common
|
||||
|
||||
@@ -0,0 +1,216 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 ghostscript)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages libjpeg)
|
||||
#:use-module (gnu packages libpng)
|
||||
#:use-module (gnu packages libtiff)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public lcms
|
||||
(package
|
||||
(name "lcms")
|
||||
(version "2.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://downloads.sourceforge.net/project/lcms/lcms/"
|
||||
version "/lcms2-" version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"1s1ppvqaydf2yqc72mw6zfviwxccb311a6hrbi802sgjxw84sl9a"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libjpeg-8" ,libjpeg-8)
|
||||
("libtiff" ,libtiff)
|
||||
("zlib" ,zlib)))
|
||||
(synopsis "Little CMS, a small-footprint colour management engine")
|
||||
(description
|
||||
"Little CMS is a small-footprint colour management engine, with special
|
||||
focus on accuracy and performance. It uses the International Color
|
||||
Consortium standard (ICC), approved as ISO 15076-1.")
|
||||
(license license:x11)
|
||||
(home-page "http://www.littlecms.com/")))
|
||||
|
||||
(define-public libpaper
|
||||
(package
|
||||
(name "libpaper")
|
||||
(version "1.1.24")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://ftp.de.debian.org/debian/pool/main/libp/libpaper/libpaper_"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0zhcx67afb6b5r936w5jmaydj3ks8zh83n9rm5sv3m3k8q8jib1q"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "libpaper, a library for handling paper sizes")
|
||||
(description
|
||||
"The paper library and accompanying files are intended to provide a simple
|
||||
way for applications to take actions based on a system- or user-specified
|
||||
paper size.")
|
||||
(license license:gpl2)
|
||||
(home-page "http://packages.qa.debian.org/libp/libpaper.html")))
|
||||
|
||||
(define-public psutils
|
||||
(package
|
||||
(name "psutils")
|
||||
(version "17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri "ftp://ftp.knackered.org/pub/psutils/psutils.tar.gz")
|
||||
(sha256 (base32
|
||||
"1r4ab1fvgganm02kmm70b2r1azwzbav2am41gbigpa2bb1wynlrq"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(arguments
|
||||
`(#:tests? #f ; none provided
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
|
||||
(let ((perl (assoc-ref inputs "perl"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(copy-file "Makefile.unix" "Makefile")
|
||||
(substitute* "Makefile"
|
||||
(("/usr/local/bin/perl") (string-append perl "/bin/perl")))
|
||||
(substitute* "Makefile"
|
||||
(("/usr/local") out))
|
||||
;; for the install phase
|
||||
(substitute* "Makefile"
|
||||
(("-mkdir") "mkdir -p"))
|
||||
;; drop installation of non-free files
|
||||
(substitute* "Makefile"
|
||||
((" install.include") ""))))
|
||||
%standard-phases)))
|
||||
(synopsis "psutils, a collection of utilities for manipulating PostScript documents")
|
||||
(description
|
||||
"PSUtils is a collection of utilities for manipulating PostScript
|
||||
documents. Programs included are psnup, for placing out several logical pages
|
||||
on a single sheet of paper, psselect, for selecting pages from a document,
|
||||
pstops, for general imposition, psbook, for signature generation for booklet
|
||||
printing, and psresize, for adjusting page sizes.")
|
||||
(license (license:bsd-style "file://LICENSE"
|
||||
"See LICENSE in the distribution."))
|
||||
(home-page "http://knackered.org/angus/psutils/")))
|
||||
|
||||
(define-public ghostscript
|
||||
(package
|
||||
(name "ghostscript")
|
||||
(version "9.06.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ghostscript/gnu-ghostscript-"
|
||||
version ".tar.xz"))
|
||||
(sha256 (base32
|
||||
"0bcg2203p7cm0f53f3s883xhj2c91xnaxakj2cy7kcdknfxplvs4"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("freetype" ,freetype)
|
||||
("lcms" ,lcms)
|
||||
("libjpeg-8" ,libjpeg-8)
|
||||
("libpng" ,libpng)
|
||||
("libpaper" ,libpaper)
|
||||
("libtiff" ,libtiff)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config) ; needed to find libtiff
|
||||
("python" ,python)
|
||||
("tcl" ,tcl)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
(apply configure args)
|
||||
(substitute* "base/all-arch.mak"
|
||||
(("/bin/sh") (which "bash")))
|
||||
(substitute* "base/unixhead.mak"
|
||||
(("/bin/sh") (which "bash")))))
|
||||
(alist-replace
|
||||
'build
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((build (assoc-ref %standard-phases 'build)))
|
||||
(apply build args)
|
||||
(system* "make" "so")))
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((install (assoc-ref %standard-phases 'install)))
|
||||
(apply install args)
|
||||
(system* "make" "install-so")))
|
||||
%standard-phases)))))
|
||||
(synopsis "PostScript and PDF interpreter")
|
||||
(description
|
||||
"GNU Ghostscript is an interpreter for PostScript and Portable Document
|
||||
Format (PDF) files.
|
||||
It consists of a PostScript interpreter layer, and a graphics
|
||||
library.")
|
||||
(license license:gpl3+)
|
||||
(home-page "http://www.gnu.org/software/ghostscript/")))
|
||||
|
||||
(define-public gs-fonts
|
||||
(package
|
||||
(name "gs-fonts")
|
||||
(version "8.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gs-fonts/gs-fonts/"
|
||||
version
|
||||
"%20%28base%2035%2C%20GPL%29/ghostscript-fonts-std-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"00f4l10xd826kak51wsmaz69szzm2wp8a41jasr4jblz25bg7dhf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; nothing to check, just files to copy
|
||||
#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1)) ; for alist-delete
|
||||
#:phases
|
||||
(alist-delete
|
||||
'configure
|
||||
(alist-delete
|
||||
'build
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/share/fonts/type1/ghostscript")))
|
||||
(mkdir-p dir)
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(copy-file file (string-append dir "/" file)))
|
||||
(find-files "." "pfb|afm"))))
|
||||
%standard-phases)))))
|
||||
(synopsis "free replacements for the PostScript fonts")
|
||||
(description
|
||||
"gs-fonts provides fonts and font metrics customarily distributed with
|
||||
Ghostscript. It currently includes the 35 standard PostScript fonts.")
|
||||
(license license:gpl2)
|
||||
(home-page "http://sourceforge.net/projects/gs-fonts/")))
|
||||
|
||||
@@ -0,0 +1,168 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.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 glib)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module ((gnu packages gettext)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages xml))
|
||||
|
||||
(define-public dbus
|
||||
(package
|
||||
(name "dbus")
|
||||
(version "1.6.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "http://dbus.freedesktop.org/releases/dbus/dbus-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1wacqyfkcpayg7f8rvx9awqg275n5pksxq5q7y21lxjx85x6pfjz"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("expat" ,expat)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "http://dbus.freedesktop.org/")
|
||||
(synopsis "Message bus for inter-process communication (IPC)")
|
||||
(description
|
||||
"D-Bus is a message bus system, a simple way for applications to
|
||||
talk to one another. In addition to interprocess communication, D-Bus
|
||||
helps coordinate process lifecycle; it makes it simple and reliable to
|
||||
code a \"single instance\" application or daemon, and to launch
|
||||
applications and daemons on demand when their services are needed.
|
||||
|
||||
D-Bus supplies both a system daemon (for events such as \"new hardware
|
||||
device added\" or \"printer queue changed\") and a
|
||||
per-user-login-session daemon (for general IPC needs among user
|
||||
applications). Also, the message bus is built on top of a general
|
||||
one-to-one message passing framework, which can be used by any two apps
|
||||
to communicate directly (without going through the message bus
|
||||
daemon). Currently the communicating applications are on one computer,
|
||||
or through unencrypted TCP/IP suitable for use behind a firewall with
|
||||
shared NFS home directories.")
|
||||
(license license:gpl2+))) ; or Academic Free License 2.1
|
||||
|
||||
(define-public glib
|
||||
(package
|
||||
(name "glib")
|
||||
(version "2.34.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/"
|
||||
name "/2.34/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "19sq4rhl2vr8ikjvl8qh51vr38yqfhbkb3imi2s6ac5rgkwcnpw5"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" ; everything
|
||||
"doc")) ; 20 MiB of GTK-Doc reference
|
||||
(inputs
|
||||
`(("coreutils" ,coreutils)
|
||||
("gettext" ,guix:gettext)
|
||||
("libffi" ,libffi)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python)
|
||||
("zlib" ,zlib)
|
||||
("perl" ,perl) ; needed by GIO tests
|
||||
("dbus" ,dbus) ; for GDBus tests
|
||||
|
||||
("patch/tests-tzdata"
|
||||
,(search-patch "glib-tests-timezone.patch"))
|
||||
("patch/tests-homedir"
|
||||
,(search-patch "glib-tests-homedir.patch"))
|
||||
("patch/tests-desktop"
|
||||
,(search-patch "glib-tests-desktop.patch"))
|
||||
("patch/tests-prlimit"
|
||||
,(search-patch "glib-tests-prlimit.patch"))))
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/tests-tzdata")
|
||||
(assoc-ref %build-inputs "patch/tests-homedir")
|
||||
(assoc-ref %build-inputs "patch/tests-desktop")
|
||||
(assoc-ref %build-inputs "patch/tests-prlimit"))
|
||||
#:phases (alist-cons-before
|
||||
'build 'pre-build
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(substitute* '("glib/gspawn.c"
|
||||
"glib/tests/utils.c"
|
||||
"tests/spawn-test.c")
|
||||
(("/bin/sh") (which "sh"))))
|
||||
%standard-phases)
|
||||
|
||||
;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
|
||||
#:configure-flags (list (string-append "--with-html-dir="
|
||||
(assoc-ref %outputs "doc")
|
||||
"/share/gtk-doc"))))
|
||||
(synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
|
||||
(description
|
||||
"GLib provides data structure handling for C, portability wrappers,
|
||||
and interfaces for such runtime functionality as an event loop, threads,
|
||||
dynamic loading, and an object system.")
|
||||
(home-page "http://developer.gnome.org/glib/")
|
||||
(license license:lgpl2.0+))) ; some files are under lgpl2.1+
|
||||
|
||||
(define-public intltool
|
||||
(package
|
||||
(name "intltool")
|
||||
(version "0.50.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://launchpad.net/intltool/trunk/"
|
||||
version "/+download/intltool-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01j4yd7i84n9nk4ccs6yifg84pp68nr9by57jdbhj7dpdxf5rwk7"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(;; Propagate gettext because users expect it to be there, and so does
|
||||
;; the `intltool-update' script.
|
||||
("gettext" ,guix:gettext)
|
||||
|
||||
("perl-xml-parser" ,perl-xml-parser)
|
||||
("perl" ,perl)))
|
||||
(home-page "https://launchpad.net/intltool/+download")
|
||||
(synopsis "Tools to centralise translations of different file formats")
|
||||
(description
|
||||
"intltool is a set of tools to centralise translations of many different
|
||||
file formats using GNU gettext-compatible PO files.
|
||||
|
||||
The intltool collection can be used to do these things:
|
||||
|
||||
Extract translatable strings from various source files (.xml.in,
|
||||
glade, .desktop.in, .server.in, .oaf.in).
|
||||
|
||||
Collect the extracted strings together with messages from traditional
|
||||
source files (.c, .h) in po/$(PACKAGE).pot.
|
||||
|
||||
Merge back the translations from .po files into .xml, .desktop and
|
||||
oaf files. This merge step will happen at build resp. installation time.")
|
||||
(license license:gpl2+)))
|
||||
+10
-11
@@ -28,15 +28,14 @@
|
||||
(define-public global ; a global variable
|
||||
(package
|
||||
(name "global")
|
||||
(version "6.2.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/global/global-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dr250kz65wqpbms4lhz857mzmvmpmiaxgyqxvxkb4b0s840i14i"))))
|
||||
(version "6.2.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/global/global-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l6g51kff5010gwmw08jbks1mssgddz7wggjvfsky3g000jkpvf1"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)
|
||||
("libtool" ,libtool)))
|
||||
@@ -45,7 +44,7 @@
|
||||
(list (string-append "--with-ncurses="
|
||||
(assoc-ref %build-inputs "ncurses")))))
|
||||
(home-page "http://www.gnu.org/software/global/")
|
||||
(synopsis "GNU GLOBAL source code tag system")
|
||||
(synopsis "Cross-environment source code tag system")
|
||||
(description
|
||||
"GNU GLOBAL is a source code tagging system that works the same way
|
||||
across diverse environments (Emacs, vi, less, Bash, web browser, etc).
|
||||
@@ -55,4 +54,4 @@ subdirectories, many #ifdef and many main() functions. It is similar
|
||||
to ctags or etags but is different from them at the point of
|
||||
independence of any editor. It runs on a UNIX (POSIX) compatible
|
||||
operating system like GNU and BSD.")
|
||||
(license "GPLv3+")))
|
||||
(license gpl3+)))
|
||||
|
||||
+188
-26
@@ -1,5 +1,6 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -18,7 +19,11 @@
|
||||
|
||||
(define-module (gnu packages gnupg)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages openldap)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pth)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module ((gnu packages compression)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
@@ -29,7 +34,7 @@
|
||||
(define-public libgpg-error
|
||||
(package
|
||||
(name "libgpg-error")
|
||||
(version "1.10")
|
||||
(version "1.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -37,7 +42,7 @@
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cal3jdnzdailr13qcy74grfbplbghkgr3qwk6qjjp4bass2j1jj"))))
|
||||
"1h0ql8j65ns2rmhj9wnc9035026crzkg226xg8614fq71947ccxf"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://gnupg.org")
|
||||
(synopsis
|
||||
@@ -52,21 +57,19 @@ Daemon and possibly more in the future.")
|
||||
(define-public libgcrypt
|
||||
(package
|
||||
(name "libgcrypt")
|
||||
(version "1.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ykkh7dm0gyndz7bbpvn3agijj8xb2h02m02f42hm504c18zqqjb"))))
|
||||
(version "1.5.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/libgcrypt/libgcrypt-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gwnzqd64cpwdmk93nll54nidsr74jpimxzj4p4z7502ylwl66p4"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgpg-error" ,libgpg-error)))
|
||||
(home-page "http://gnupg.org/")
|
||||
(synopsis
|
||||
"GNU Libgcrypt, a general-pupose cryptographic library")
|
||||
(synopsis "Cryptographic function library")
|
||||
(description
|
||||
"GNU Libgcrypt is a general purpose cryptographic library based on
|
||||
the code from GnuPG. It provides functions for all
|
||||
@@ -78,7 +81,7 @@ functions, random numbers and a lot of supporting functions.")
|
||||
(define-public libassuan
|
||||
(package
|
||||
(name "libassuan")
|
||||
(version "2.0.3")
|
||||
(version "2.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -86,7 +89,7 @@ functions, random numbers and a lot of supporting functions.")
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"06xckkvxxlx7cj77803m8x58gxksap4k8yhspc5cqsy7fhinimds"))))
|
||||
"0ry2078pafpx2prnhngqsj9bvqxaywakp2paqayfh9i71hxbvid4"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgpg-error" ,libgpg-error) ("pth" ,pth)))
|
||||
@@ -128,7 +131,7 @@ specifications are building blocks of S/MIME and TLS.")
|
||||
(define-public gnupg
|
||||
(package
|
||||
(name "gnupg")
|
||||
(version "2.0.19")
|
||||
(version "2.0.20")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -136,25 +139,33 @@ specifications are building blocks of S/MIME and TLS.")
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"08n636sfffs5qvg9ppiprvsh00q0dmdw425psg3m3nssja53m8pg"))))
|
||||
"16mp0j5inrcqcb3fxbn0b3aamascy3n923wiy0y8marc0rzrp53f"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(;; TODO: Add missing optional deps.
|
||||
;; ("curl" ,curl)
|
||||
;; ("libusb" ,libusb)
|
||||
;; ("openldap" ,openldap)
|
||||
|
||||
`(;; TODO: Add missing optional dep libusb.
|
||||
;; ("libusb" ,libusb)
|
||||
("bzip2" ,guix:bzip2)
|
||||
("curl" ,curl)
|
||||
("libassuan" ,libassuan)
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("libgpg-error" ,libgpg-error)
|
||||
("libksba" ,libksba)
|
||||
("pth" ,pth)
|
||||
("libgpg-error" ,libgpg-error)
|
||||
("openldap" ,openldap)
|
||||
("zlib" ,guix:zlib)
|
||||
("readline" ,readline)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
(substitute* "tests/openpgp/Makefile.in"
|
||||
(("/bin/sh") (which "bash")))
|
||||
(apply configure args)))
|
||||
%standard-phases)))
|
||||
(home-page "http://gnupg.org/")
|
||||
(synopsis
|
||||
"GNU Privacy Guard (GnuPG), GNU Project's implementation of the OpenPGP standard")
|
||||
(synopsis "GNU Privacy Guard")
|
||||
(description
|
||||
"GnuPG is the GNU project's complete and free implementation of
|
||||
the OpenPGP standard as defined by RFC4880. GnuPG allows to
|
||||
@@ -166,3 +177,154 @@ applications. A wealth of frontend applications and libraries
|
||||
are available. Version 2 of GnuPG also provides support for
|
||||
S/MIME.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public pius
|
||||
(package
|
||||
(name "pius")
|
||||
(version "2.0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/pgpius/pius/"
|
||||
version "/pius-"
|
||||
version ".tar.bz2"))
|
||||
(sha256 (base32
|
||||
"1g1jly3wl4ks6h8ydkygyl2c4i7v3z91rg42005m6vm70y1d8b3d"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)
|
||||
("python" ,python)))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys) #t)
|
||||
(alist-replace
|
||||
'build
|
||||
(lambda* (#:key #:allow-other-keys) #t)
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(mkdir out)
|
||||
(mkdir (string-append out "/bin"))
|
||||
(for-each
|
||||
(lambda (filename)
|
||||
(copy-file filename (string-append out "/bin/" filename)))
|
||||
'("pius" "pius-keyring-mgr" "pius-party-worksheet"))))
|
||||
%standard-phases)))))
|
||||
(synopsis "programs to simplify gnupg key signing")
|
||||
(description
|
||||
"Pius (PGP Individual UID Signer) helps attendees of PGP keysigning
|
||||
parties. It is the main utility and makes it possible to quickly and easily
|
||||
sign each UID on a set of PGP keys. It is designed to take the pain out of
|
||||
the sign-all-the-keys part of PGP Keysigning Party while adding security
|
||||
to the process.
|
||||
|
||||
pius-keyring-mgr and pius-party-worksheet help organisers of
|
||||
PGP keysigning parties.")
|
||||
(license gpl2)
|
||||
(home-page "http://www.phildev.net/pius/index.shtml")))
|
||||
|
||||
(define-public signing-party
|
||||
(package
|
||||
(name "signing-party")
|
||||
(version "1.1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://ftp.debian.org/debian/pool/main/s/signing-party/signing-party_"
|
||||
version ".orig.tar.gz"))
|
||||
(sha256 (base32
|
||||
"188gp0prbh8qs29lq3pbf0qibfd6jq4fk7i0pfrybl8aahvm84rx"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(alist-replace
|
||||
'unpack
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((unpack (assoc-ref %standard-phases 'unpack)))
|
||||
(apply unpack args)
|
||||
;; remove spurious symlink
|
||||
(delete-file "keyanalyze/pgpring/depcomp")))
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "keyanalyze/Makefile"
|
||||
(("LDLIBS") (string-append "CC=" (which "gcc") "\nLDLIBS")))
|
||||
(substitute* "keyanalyze/Makefile"
|
||||
(("./configure") (string-append "./configure --prefix=" out)))
|
||||
(substitute* "keyanalyze/pgpring/configure"
|
||||
(("/bin/sh") (which "bash")))
|
||||
(substitute* "gpgwrap/Makefile"
|
||||
(("\\} clean") (string-append "} clean\ninstall:\n\tinstall -D bin/gpgwrap "
|
||||
out "/bin/gpgwrap\n")))
|
||||
(substitute* '("gpgsigs/Makefile" "keyanalyze/Makefile"
|
||||
"keylookup/Makefile" "sig2dot/Makefile"
|
||||
"springgraph/Makefile")
|
||||
(("/usr") out))))
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys #:rest args)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(install (assoc-ref %standard-phases 'install)))
|
||||
(apply install args)
|
||||
(for-each
|
||||
(lambda (dir file)
|
||||
(copy-file (string-append dir "/" file)
|
||||
(string-append out "/bin/" file)))
|
||||
'("caff" "caff" "caff" "gpgdir" "gpg-key2ps"
|
||||
"gpglist" "gpg-mailkeys" "gpgparticipants")
|
||||
'("caff" "pgp-clean" "pgp-fixkey" "gpgdir" "gpg-key2ps"
|
||||
"gpglist" "gpg-mailkeys" "gpgparticipants"))
|
||||
(for-each
|
||||
(lambda (dir file)
|
||||
(copy-file (string-append dir "/" file)
|
||||
(string-append out "/share/man/man1/" file)))
|
||||
'("caff" "caff" "caff" "gpgdir"
|
||||
"gpg-key2ps" "gpglist" "gpg-mailkeys"
|
||||
"gpgparticipants" "gpgsigs" "gpgwrap/doc"
|
||||
"keyanalyze" "keyanalyze/pgpring" "keyanalyze")
|
||||
'("caff.1" "pgp-clean.1" "pgp-fixkey.1" "gpgdir.1"
|
||||
"gpg-key2ps.1" "gpglist.1" "gpg-mailkeys.1"
|
||||
"gpgparticipants.1" "gpgsigs.1" "gpgwrap.1"
|
||||
"process_keys.1" "pgpring.1" "keyanalyze.1"))))
|
||||
%standard-phases)))))
|
||||
(synopsis "collection of scripts for simplifying gnupg key signing")
|
||||
(description
|
||||
"signing-party is a collection for all kinds of PGP/GnuPG related things,
|
||||
including tools for signing keys, keyring analysis, and party preparation.
|
||||
|
||||
* caff: CA - Fire and Forget signs and mails a key
|
||||
|
||||
* pgp-clean: removes all non-self signatures from key
|
||||
|
||||
* pgp-fixkey: removes broken packets from keys
|
||||
|
||||
* gpg-mailkeys: simply mail out a signed key to its owner
|
||||
|
||||
* gpg-key2ps: generate PostScript file with fingerprint paper strips
|
||||
|
||||
* gpgdir: recursive directory encryption tool
|
||||
|
||||
* gpglist: show who signed which of your UIDs
|
||||
|
||||
* gpgsigs: annotates list of GnuPG keys with already done signatures
|
||||
|
||||
* gpgparticipants: create list of party participants for the organiser
|
||||
|
||||
* gpgwrap: a passphrase wrapper
|
||||
|
||||
* keyanalyze: minimum signing distance (MSD) analysis on keyrings
|
||||
|
||||
* keylookup: ncurses wrapper around gpg --search
|
||||
|
||||
* sig2dot: converts a list of GnuPG signatures to a .dot file
|
||||
|
||||
* springgraph: creates a graph from a .dot file")
|
||||
;; gpl2+ for almost all programs, except for keyanalyze: gpl2
|
||||
;; and caff and gpgsigs: bsd-3, see
|
||||
;; http://packages.debian.org/changelogs/pool/main/s/signing-party/current/copyright
|
||||
(license gpl2)
|
||||
(home-page "http://pgp-tools.alioth.debian.org/")))
|
||||
|
||||
+15
-24
@@ -21,7 +21,6 @@
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module ((gnu packages compression)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (gnu packages nettle)
|
||||
@@ -32,7 +31,7 @@
|
||||
(define-public libtasn1
|
||||
(package
|
||||
(name "libtasn1")
|
||||
(version "3.2")
|
||||
(version "3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -40,10 +39,10 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gvgndypwicchf7m660zh7jdgmkfj9g9xavpcc08pyd0120y0bk7"))))
|
||||
"1h1sz5py8zlg4yczybr6wa925pyadvjcxrdmhilwaqqgs4n2lrcj"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/libtasn1/")
|
||||
(synopsis "GNU Libtasn1, an ASN.1 library")
|
||||
(synopsis "ASN.1 library")
|
||||
(description
|
||||
"Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some
|
||||
other packages. The goal of this implementation is to be highly
|
||||
@@ -53,27 +52,20 @@ portable, and only require an ANSI C89 platform.")
|
||||
(define-public gnutls
|
||||
(package
|
||||
(name "gnutls")
|
||||
(version "3.1.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/gnutls/gnutls-"
|
||||
version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zsybr9plllk1phh83bx9bg7c5ccik427j4n3k1s9fiy4j69n0w3"))))
|
||||
(version "3.1.9.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
;; Note: Releases are no longer on ftp.gnu.org since the
|
||||
;; schism (after version 3.1.5).
|
||||
(string-append "mirror://gnupg/gnutls/v3.1/gnutls-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gkwhz7sypfy39jfj2yzrngbxq5j9l9smqc89mqlqsh25spc8009"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
;; Build of the Guile bindings is not parallel-safe. See
|
||||
;; <http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=330995a920037b6030ec0282b51dde3f8b493cad>
|
||||
;; for the actual fix.
|
||||
(arguments '(#:parallel-build? #f))
|
||||
|
||||
(inputs
|
||||
`(("guile" ,guile-2.0)
|
||||
;; ("lzo" ,lzo)
|
||||
("zlib" ,guix:zlib)
|
||||
("perl" ,perl)))
|
||||
(propagated-inputs
|
||||
@@ -81,8 +73,7 @@ portable, and only require an ANSI C89 platform.")
|
||||
("nettle" ,nettle)
|
||||
("which" ,which)))
|
||||
(home-page "http://www.gnu.org/software/gnutls/")
|
||||
(synopsis
|
||||
"The GNU Transport Layer Security Library")
|
||||
(synopsis "Transport layer security library")
|
||||
(description
|
||||
"GnuTLS is a project that aims to develop a library which provides
|
||||
a secure layer, over a reliable transport layer. Currently the GnuTLS
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -20,7 +20,6 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gperf
|
||||
@@ -38,8 +37,7 @@
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:parallel-tests? #f))
|
||||
(home-page "http://www.gnu.org/software/gperf/")
|
||||
(synopsis
|
||||
"GNU gperf, a perfect hash function generator")
|
||||
(synopsis "Perfect hash function generator")
|
||||
(description
|
||||
"GNU gperf is a perfect hash function generator. For a given
|
||||
list of strings, it produces a hash function and hash table, in
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2013 Mark H Weaver <mhw@netris.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 gprolog)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gprolog
|
||||
(package
|
||||
(name "gprolog")
|
||||
(version "1.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gprolog/gprolog-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13miyas47bmijmadm68cbvb21n4s156gjafz7kfx9brk9djfkh0q"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (alist-cons-before
|
||||
'configure 'change-dir-n-fix-shells
|
||||
(lambda _
|
||||
(chdir "src")
|
||||
(substitute* "configure"
|
||||
(("-/bin/sh") (string-append "-" (which "sh")))
|
||||
(("= /bin/sh") (string-append "= " (which "sh")))))
|
||||
%standard-phases)))
|
||||
(home-page "https://www.gnu.org/software/gprolog/")
|
||||
(synopsis "Prolog compiler")
|
||||
(description
|
||||
"GNU Prolog is a free Prolog compiler with constraint solving over
|
||||
finite domains developed by Daniel Diaz.
|
||||
|
||||
GNU Prolog accepts Prolog+constraint programs and produces native
|
||||
binaries (like gcc does from a C source). The obtained executable is
|
||||
then stand-alone. The size of this executable can be quite small since
|
||||
GNU Prolog can avoid to link the code of most unused built-in
|
||||
predicates. The performances of GNU Prolog are very
|
||||
encouraging (comparable to commercial systems).
|
||||
|
||||
Beside the native-code compilation, GNU Prolog offers a classical
|
||||
interactive interpreter (top-level) with a debugger.
|
||||
|
||||
The Prolog part conforms to the ISO standard for Prolog with many
|
||||
extensions very useful in practice (e.g., global variables, OS
|
||||
interface, sockets).
|
||||
|
||||
GNU Prolog also includes an efficient constraint solver over finite domains.
|
||||
This opens contraint logic programming to the user combining the power of
|
||||
constraint programming to the declarativity of logic programming.")
|
||||
(license (list gpl2+ lgpl3+))))
|
||||
@@ -0,0 +1,53 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 groff)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages netpbm)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages texinfo))
|
||||
|
||||
(define-public groff
|
||||
(package
|
||||
(name "groff")
|
||||
(version "1.22.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/groff/groff-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0xi07nhj5vdgax37rj25mwxzdmsz1ifx50hjgc6hqbkpqkd6821q"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("bison" ,bison)
|
||||
("ghostscript" ,ghostscript)
|
||||
("netpbm" ,netpbm)
|
||||
("perl" ,perl)
|
||||
("psutils" ,psutils)
|
||||
("texinfo" ,texinfo)))
|
||||
(synopsis "Typesetting from plain text mixed with formatting commands")
|
||||
(description
|
||||
"GNU Troff (Groff) is a software typesetting package which reads plain
|
||||
text mixed with formatting commands and produces formatted output.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/groff/")))
|
||||
@@ -0,0 +1,86 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 grub)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:select (gpl3+))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module ((gnu packages gettext) #:renamer (symbol-prefix-proc 'gnu:))
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages qemu)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages cdrom))
|
||||
|
||||
(define-public grub
|
||||
(package
|
||||
(name "grub")
|
||||
(version "2.00")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/grub/grub-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/gets"))
|
||||
#:configure-flags '("--disable-werror")
|
||||
#:phases (alist-cons-before
|
||||
'patch-source-shebangs 'patch-stuff
|
||||
(lambda _
|
||||
(substitute* "grub-core/Makefile.in"
|
||||
(("/bin/sh") (which "sh")))
|
||||
|
||||
;; TODO: Re-enable this test when we have Parted.
|
||||
(substitute* "tests/partmap_test.in"
|
||||
(("set -e") "exit 77")))
|
||||
%standard-phases)))
|
||||
(inputs
|
||||
`(;; ("lvm2" ,lvm2)
|
||||
("gettext" ,gnu:gettext)
|
||||
("freetype" ,freetype)
|
||||
;; ("libusb" ,libusb)
|
||||
("ncurses" ,ncurses)
|
||||
|
||||
("patch/gets" ,(search-patch "grub-gets-undeclared.patch"))))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
("flex" ,flex)
|
||||
|
||||
;; Dependencies for the test suite. The "real" QEMU is needed here,
|
||||
;; because several targets are used.
|
||||
("qemu" ,qemu)
|
||||
("xorriso" ,xorriso)))
|
||||
(home-page "http://www.gnu.org/software/grub/")
|
||||
(synopsis "GRand unified boot loader")
|
||||
(description
|
||||
"GNU GRUB is a Multiboot boot loader. It was derived from GRUB, GRand
|
||||
Unified Bootloader, which was originally designed and implemented by Erich
|
||||
Stefan Boleyn.
|
||||
|
||||
Briefly, the boot loader is the first software program that runs when a
|
||||
computer starts. It is responsible for loading and transferring control to
|
||||
the operating system kernel software (such as the Hurd or the Linux). The
|
||||
kernel, in turn, initializes the rest of the operating system (e.g., GNU).")
|
||||
(license gpl3+)))
|
||||
@@ -61,7 +61,7 @@
|
||||
("shishi" ,shishi)
|
||||
("zlib" ,guix:zlib)
|
||||
))
|
||||
(synopsis "GNU GSS (Generic Security Service), a free implementatio of RFC 2743/2744")
|
||||
(synopsis "Generic Security Service library")
|
||||
(description
|
||||
"GNU GSS is an implementation of the Generic Security Service Application
|
||||
Program Interface (GSS-API). GSS-API is used by network servers to provide
|
||||
@@ -83,11 +83,13 @@ SMTP/IMAP servers. GSS consists of a library and a manual.")
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libidn" ,libidn)
|
||||
("libntlm" ,libntlm)
|
||||
("gnutls" ,gnutls)
|
||||
("gss" ,gss)
|
||||
("zlib" ,guix:zlib)
|
||||
))
|
||||
(synopsis "GNU SASL, an implementation of the Simple Authentication and Security Layer framework")
|
||||
("zlib" ,guix:zlib)))
|
||||
(propagated-inputs
|
||||
;; Propagate GnuTLS because libgnutls.la reads `-lnettle', and Nettle is a
|
||||
;; propagated input of GnuTLS.
|
||||
`(("gnutls" ,gnutls)))
|
||||
(synopsis "Simple Authentication and Security Layer library")
|
||||
(description
|
||||
"GNU SASL is an implementation of the Simple Authentication and Security
|
||||
Layer framework and a few common SASL mechanisms. SASL is used by network
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 gtk)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
|
||||
(define-public atk
|
||||
(package
|
||||
(name "atk")
|
||||
(version "2.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/atk/2.8/atk-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1x3dd3hg9l1j9dq70xwph13vxdp6a9wbfcnryryf1wr6c8bij9dj"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("glib" ,glib)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "GNOME accessability toolkit")
|
||||
(description
|
||||
"ATK provides the set of accessibility interfaces that are implemented
|
||||
by other toolkits and applications. Using the ATK interfaces, accessibility
|
||||
tools have full access to view and control running applications.")
|
||||
(license license:lgpl2.0+)
|
||||
(home-page "https://developer.gnome.org/atk/")))
|
||||
+105
-14
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -29,6 +29,9 @@
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages ed)
|
||||
#:use-module (gnu packages which)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
@@ -57,17 +60,21 @@
|
||||
;; Insert a phase before `configure' to patch things up.
|
||||
#:phases (alist-cons-before
|
||||
'configure
|
||||
'patch-loader-search-path
|
||||
'patch-stuff
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Add a call to `lt_dladdsearchdir' so that
|
||||
;; `libguile-readline.so' & co. are in the
|
||||
;; loader's search path.
|
||||
(substitute* "libguile/dynl.c"
|
||||
(("lt_dlinit.*$" match)
|
||||
(format #f
|
||||
" ~a~% lt_dladdsearchdir(\"~a/lib\");~%"
|
||||
match
|
||||
(assoc-ref outputs "out")))))
|
||||
(("lt_dlinit.*$" match)
|
||||
(format #f
|
||||
" ~a~% lt_dladdsearchdir(\"~a/lib\");~%"
|
||||
match
|
||||
(assoc-ref outputs "out"))))
|
||||
|
||||
;; The usual /bin/sh...
|
||||
(substitute* "ice-9/popen.scm"
|
||||
(("/bin/sh") (which "sh"))))
|
||||
%standard-phases)))
|
||||
(inputs `(("patch/snarf" ,(search-patch "guile-1.8-cpp-4.5.patch"))
|
||||
("gawk" ,gawk)
|
||||
@@ -81,7 +88,12 @@
|
||||
;; When cross-compiling, a native version of Guile itself is needed.
|
||||
(self-native-input? #t)
|
||||
|
||||
(synopsis "GNU Guile 1.8, an embeddable Scheme interpreter")
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "GUILE_LOAD_PATH")
|
||||
(directories '("share/guile/site")))))
|
||||
|
||||
(synopsis "Scheme implementation intended especially for extensions")
|
||||
(description
|
||||
"GNU Guile 1.8 is an interpreter for the Scheme programming language,
|
||||
packaged as a library that can be embedded into programs to make them
|
||||
@@ -92,14 +104,14 @@ extensible. It supports many SRFIs.")
|
||||
(define-public guile-2.0
|
||||
(package
|
||||
(name "guile")
|
||||
(version "2.0.7")
|
||||
(version "2.0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/guile/guile-" version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg"))))
|
||||
"0nw9y8vjyz4r61v06p9msks5lm58pd91irmzg4k487vmv743h2pp"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkgconfig" ,pkg-config)))
|
||||
(inputs `(("libffi" ,libffi)
|
||||
@@ -130,7 +142,15 @@ extensible. It supports many SRFIs.")
|
||||
(string-append bash "/bin/bash")))))
|
||||
%standard-phases)))
|
||||
|
||||
(synopsis "GNU Guile 2.0, an embeddable Scheme implementation")
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "GUILE_LOAD_PATH")
|
||||
(directories '("share/guile/site/2.0")))
|
||||
(search-path-specification
|
||||
(variable "GUILE_LOAD_COMPILED_PATH")
|
||||
(directories '("share/guile/site/2.0")))))
|
||||
|
||||
(synopsis "Scheme implementation intended especially for extensions")
|
||||
(description
|
||||
"GNU Guile is an implementation of the Scheme programming language, with
|
||||
support for many SRFIs, packaged for use in a wide variety of environments.
|
||||
@@ -155,7 +175,7 @@ call interface, and powerful string processing.")
|
||||
"Build Guile-Reader against GUILE, a package of some version of Guile 1.8
|
||||
or 2.0."
|
||||
(package
|
||||
(name (string-append "guile-reader-for-guile-" (package-version guile)))
|
||||
(name (string-append "guile-reader-for-guile_" (package-version guile)))
|
||||
(version "0.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
@@ -169,8 +189,14 @@ or 2.0."
|
||||
(native-inputs `(("pkgconfig" ,pkg-config)
|
||||
("gperf" ,gperf)))
|
||||
(inputs `(("guile" ,guile)))
|
||||
(synopsis "Guile-Reader, a simple framework for building readers for
|
||||
GNU Guile")
|
||||
(arguments `(#:configure-flags
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
,(if (string-prefix? "2." (package-version guile))
|
||||
'(list (string-append "--with-guilemoduledir="
|
||||
out "/share/guile/site/2.0"))
|
||||
'(list (string-append "--with-guilemoduledir="
|
||||
out "/share/guile/site"))))))
|
||||
(synopsis "Framework for building readers for GNU Guile")
|
||||
(description
|
||||
"Guile-Reader is a simple framework for building readers for GNU Guile.
|
||||
|
||||
@@ -194,4 +220,69 @@ many readers as needed).")
|
||||
;; Guile-Reader built against Guile 2.0.
|
||||
(guile-reader guile-2.0))
|
||||
|
||||
(define-public guile-ncurses
|
||||
(package
|
||||
(name "guile-ncurses")
|
||||
(version "1.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/guile-ncurses/guile-ncurses-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"070wl664lsm14hb6y9ch97x9q6cns4k6nxgdzbdzi5byixn74899"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)
|
||||
("guile" ,guile-2.0)))
|
||||
(arguments
|
||||
'(#:configure-flags (list (string-append "--with-guilesitedir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/share/guile/site"))
|
||||
#:phases (alist-cons-after
|
||||
'install 'post-install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append out "/share/guile/site/"))
|
||||
(files (find-files dir ".scm")))
|
||||
(substitute* files
|
||||
(("\"libguile-ncurses\"")
|
||||
(format #f "\"~a/lib/libguile-ncurses\""
|
||||
out)))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.gnu.org/software/guile-ncurses/")
|
||||
(synopsis "Guile bindings to ncurses")
|
||||
(description
|
||||
"GNU Guile-Ncurses is a library for the Guile Scheme interpreter that
|
||||
provides functions for creating text user interfaces. The text user interface
|
||||
functionality is built on the ncurses libraries: curses, form, panel, and
|
||||
menu.")
|
||||
(license lgpl3+)))
|
||||
|
||||
(define-public mcron
|
||||
(package
|
||||
(name "mcron")
|
||||
(version "1.0.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mcron/mcron-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yvrfzzdy2m7fbqkr61fw01wd9r2jpnbyabxhcsfivgxywknl0fy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/install"))))
|
||||
(inputs
|
||||
`(("ed" ,ed) ("which" ,which) ("guile" ,guile-1.8)
|
||||
("patch/install" ,(search-patch "mcron-install.patch"))))
|
||||
(home-page "http://www.gnu.org/software/mcron/")
|
||||
(synopsis "Run jobs at scheduled times")
|
||||
(description
|
||||
"The GNU package mcron (Mellor's cron) is a 100% compatible replacement
|
||||
for Vixie cron. It is written in pure Guile, and allows configuration files
|
||||
to be written in scheme (as well as Vixie's original format) for infinite
|
||||
flexibility in specifying when jobs should be run. Mcron was written by Dale
|
||||
Mellor.")
|
||||
(license gpl3+)))
|
||||
|
||||
;;; guile.scm ends here
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2013 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 gv)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages ghostscript)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public ghostscript/x
|
||||
(package (inherit ghostscript)
|
||||
(name (string-append (package-name ghostscript) "-with-x"))
|
||||
(inputs `(("libxext" ,libxext)
|
||||
("libxt" ,libxt)
|
||||
,@(package-inputs ghostscript)))))
|
||||
|
||||
(define-public gv
|
||||
(package
|
||||
(name "gv")
|
||||
(version "3.7.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gv/gv-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0q8s43z14vxm41pfa8s5h9kyyzk1fkwjhkiwbf2x70alm6rv6qi1"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs `(("ghostscript" ,ghostscript/x)))
|
||||
(inputs `(("libx11" ,libx11)
|
||||
("libxaw3d" ,libxaw3d)
|
||||
("libxinerama" ,libxinerama)
|
||||
("libxpm" ,libxpm)
|
||||
("pkg-config" ,pkg-config)
|
||||
("zlib" ,zlib)))
|
||||
(synopsis "PostScript and PDF viewer using Ghostscript as a back-end")
|
||||
(description
|
||||
"GNU gv allows to view and navigate through PostScript and PDF documents
|
||||
on an X display by providing a graphical user interface for the Ghostscript
|
||||
interpreter.")
|
||||
(license license:gpl3+)
|
||||
(home-page "http://www.gnu.org/software/gv/")))
|
||||
@@ -26,7 +26,7 @@
|
||||
(define-public help2man
|
||||
(package
|
||||
(name "help2man")
|
||||
(version "1.40.8")
|
||||
(version "1.41.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -34,7 +34,7 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0s6phazn8jgvpbsby8kj2m58rj1zjghi1aipvamh8af226ssqfzj"))))
|
||||
"1as014d8wxy7529fr8n2ihy61c2p5jzywzirkqggvz8lwg6r933a"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(;; There's no `check' target.
|
||||
#:tests? #f))
|
||||
@@ -45,7 +45,7 @@
|
||||
;; ("gettext" ,gettext)
|
||||
))
|
||||
(home-page "http://www.gnu.org/software/help2man/")
|
||||
(synopsis "GNU help2man generates man pages from `--help' output")
|
||||
(synopsis "Automatically generate man pages from program --help")
|
||||
(description
|
||||
"help2man produces simple manual pages from the ‘--help’ and
|
||||
‘--version’ output of other commands.")
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.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 hugs)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public hugs
|
||||
(package
|
||||
(name "hugs")
|
||||
(version "Sep2006")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://cvs.haskell.org/Hugs/downloads/2006-09/"
|
||||
name "98-plus-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mdy4aq4campgmnpc2qwq7bsbfhaxfsqdghbyyz2wms4lnfcmyma"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (alist-cons-before
|
||||
'configure 'fix-sh-n-cp
|
||||
(lambda _
|
||||
(substitute*
|
||||
'("configure"
|
||||
"libraries/configure"
|
||||
"packages/time/configure"
|
||||
"packages/base/configure"
|
||||
"packages/X11/configure"
|
||||
"packages/HGL/configure"
|
||||
"packages/OpenAL/configure"
|
||||
"packages/OpenGL/configure"
|
||||
"packages/network/configure"
|
||||
"packages/unix/configure"
|
||||
"packages/Cabal/tests/HSQL/configure"
|
||||
"packages/ALUT/configure"
|
||||
"packages/GLUT/configure"
|
||||
"packages/base/cbits/execvpe.c"
|
||||
"packages/base/System/Process/Internals.hs"
|
||||
"packages/Cabal/Distribution/attic"
|
||||
"packages/Cabal/Distribution/Simple/Register.hs"
|
||||
"packages/Cabal/Distribution/Simple/Hugs.hs"
|
||||
"tools/hugs-hc"
|
||||
"src/machdep.c"
|
||||
"libraries/Makefile.in")
|
||||
(("/bin/sh") (which "sh")))
|
||||
(substitute* '("demos/Makefile.in"
|
||||
"libraries/Makefile.in")
|
||||
(("/bin/cp") (which "cp"))))
|
||||
%standard-phases)
|
||||
#:tests? #f)) ; no test target
|
||||
(home-page "http://haskell.org/hugs")
|
||||
(synopsis "Functional programming system based on Haskell 98")
|
||||
(description
|
||||
"Hugs 98 is an interpreter and programming environment for developing
|
||||
Haskell programs. It provides an almost complete implementation of Haskell
|
||||
98, which includes expression and pattern syntax, primitives for monadic I/O,
|
||||
with support for simple interactive programs, handle-based I/O, and exception
|
||||
handling. Hugs has a nearly complete implementation of the Haskell module
|
||||
system and supports a number of advanced extensions.")
|
||||
(license (bsd-style "file://License"
|
||||
"See License in the distribution."))))
|
||||
@@ -42,7 +42,7 @@
|
||||
,(search-patch "diffutils-gets-undeclared.patch"))))
|
||||
(arguments `(#:patches (list (assoc-ref %build-inputs "patch/gets"))))
|
||||
(home-page "http://www.gnu.org/software/idutils/")
|
||||
(synopsis "GNU Idutils, a text searching utility")
|
||||
(synopsis "Identifier database utilities")
|
||||
(description
|
||||
"An \"ID database\" is a binary file containing a list of file
|
||||
names, a list of tokens, and a sparse matrix indicating which
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
(sha256 (base32
|
||||
"0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "GNU Indent, a program for code indentation and formatting")
|
||||
(synopsis "Code reformatter")
|
||||
(description
|
||||
"GNU Indent can be used to make code easier to read. It can also convert
|
||||
from one style of writing C to another. Indent understands a substantial
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;;
|
||||
;;; 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 irssi)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
|
||||
(define-public irssi
|
||||
(package
|
||||
(name "irssi")
|
||||
(version "0.8.15")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.irssi.org/files/irssi-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"19m0aah9bhc70dnhh7kpydbsz5n35l0l9knxav1df0sic3xicbf1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(ncurses (assoc-ref inputs "ncurses")))
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
(zero?
|
||||
(system* "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--with-ncurses=" ncurses)))))
|
||||
%standard-phases)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("pkg-config" ,pkg-config)
|
||||
("ncurses" ,ncurses)
|
||||
("perl" ,perl)))
|
||||
(home-page "http://www.irssi.org/")
|
||||
(synopsis "Irssi, a terminal-based IRC client")
|
||||
(description
|
||||
"Irssi is a terminal based IRC client for UNIX systems. It also supports
|
||||
SILC and ICB protocols via plugins.")
|
||||
(license gpl2+)))
|
||||
@@ -38,9 +38,7 @@
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)))
|
||||
(home-page "https://www.gnu.org/software/less/")
|
||||
(synopsis
|
||||
"GNU less is a program similar to more, but which allows backward
|
||||
movement in the file as well as forward movement")
|
||||
(synopsis "Paginator for terminals")
|
||||
(description
|
||||
"GNU less is a program similar to more, but which allows backward
|
||||
movement in the file as well as forward movement. Also, less does not
|
||||
@@ -48,4 +46,4 @@ have to read the entire input file before starting, so with large input
|
||||
files it starts up faster than text editors like vi. Less uses
|
||||
termcap (or terminfo on some systems), so it can run on a variety of
|
||||
terminals. There is even limited support for hardcopy terminals.")
|
||||
(license gpl3+))) ; some files are under GPLv2+
|
||||
(license gpl3+))) ; some files are under GPLv2+
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 lesstif)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
|
||||
(define-public lesstif
|
||||
(package
|
||||
(name "lesstif")
|
||||
(version "0.95.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/lesstif/lesstif/" version
|
||||
"/lesstif-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qzpxjjf7ri1jzv71mvq5m9g8hfaj5yzwp30rwxlm6n2b24a6jpb"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("printproto" ,printproto)))
|
||||
(inputs
|
||||
`(("libxext" ,libxext)
|
||||
("libxt" ,libxt)))
|
||||
(home-page "http://lesstif.sourceforge.net/")
|
||||
(synopsis "Clone of the Motif toolkit for the X window system")
|
||||
(description "Clone of the Motif toolkit for the X window system")
|
||||
(license license:gpl2+))) ; some files are lgpl2.1+ or x11
|
||||
@@ -0,0 +1,91 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;;
|
||||
;;; 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 libapr)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages autotools))
|
||||
|
||||
(define-public libapr
|
||||
(package
|
||||
(name "libapr")
|
||||
(version "1.4.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://apache/apr/apr-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1g0w9396akmhhrmjzmcwddny5ms43zvj2mrpdkyfcqxizrh5wqwv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:patches (list (assoc-ref %build-inputs
|
||||
"patch/skip-test"))
|
||||
#:patch-flags '("-p0")))
|
||||
(inputs `(("perl" ,perl)
|
||||
("libtool" ,libtool)
|
||||
("patch/skip-test"
|
||||
,(search-patch "libapr-skip-getservbyname-test.patch"))))
|
||||
(home-page "http://apr.apache.org/")
|
||||
(synopsis "The Apache Portable Runtime Library")
|
||||
(description
|
||||
"The mission of the Apache Portable Runtime (APR) project is to create and
|
||||
maintain software libraries that provide a predictable and consistent interface
|
||||
to underlying platform-specific implementations. The primary goal is to provide
|
||||
an API to which software developers may code and be assured of predictable if
|
||||
not identical behaviour regardless of the platform on which their software is
|
||||
built, relieving them of the need to code special-case conditions to work
|
||||
around or take advantage of platform-specific deficiencies or features.")
|
||||
(license asl2.0)))
|
||||
|
||||
(define-public libaprutil
|
||||
(package
|
||||
(name "libaprutil")
|
||||
(version "1.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://apache/apr/apr-util-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0832cb90zd7zqhhdx0v3i8viw1rmn0d945qbk1zid3cnky9r0s19"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libapr" ,libapr)))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(libapr (assoc-ref inputs "libapr")))
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
(zero?
|
||||
(system* "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--with-apr=" libapr)))))
|
||||
%standard-phases)))
|
||||
(home-page "http://apr.apache.org/")
|
||||
(synopsis "One of the Apache Portable Runtime Library companions")
|
||||
(description
|
||||
"APR-util provides a number of helpful abstractions on top of APR.")
|
||||
(license asl2.0)))
|
||||
@@ -0,0 +1,61 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 libdaemon)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libdaemon
|
||||
(package
|
||||
(name "libdaemon")
|
||||
(version "0.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://0pointer.de/lennart/projects/libdaemon/libdaemon-"
|
||||
version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d5qlq5ab95wh1xc87rqrh1vx6i8lddka1w3f1zcqvcqdxgyn8zx"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://0pointer.de/lennart/projects/libdaemon/")
|
||||
(synopsis "Lightweight C library that eases the writing of UNIX daemons")
|
||||
(description
|
||||
"libdaemon is a lightweight C library that eases the writing of UNIX
|
||||
daemons. It consists of the following parts:
|
||||
|
||||
• A wrapper around fork() which does the correct daemonization procedure of
|
||||
a process
|
||||
|
||||
• A wrapper around syslog() for simpler and compatible log output to Syslog
|
||||
or STDERR
|
||||
|
||||
• An API for writing PID files
|
||||
|
||||
• An API for serializing UNIX signals into a pipe for usage with select() or
|
||||
poll()
|
||||
|
||||
• An API for running subprocesses with STDOUT and STDERR redirected to
|
||||
syslog.
|
||||
|
||||
APIs like these are used in most daemon software available. It is not that
|
||||
simple to get it done right and code duplication is not a goal.")
|
||||
(license lgpl2.1+)))
|
||||
@@ -0,0 +1,63 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 libevent)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages which)
|
||||
#:use-module (gnu packages python))
|
||||
|
||||
(define-public libevent
|
||||
(package
|
||||
(name "libevent")
|
||||
(version "2.0.21")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/downloads/libevent/libevent/libevent-"
|
||||
version
|
||||
"-stable.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xblymln9vihdmf1aqkp8chwvnhpdch3786bh30bj75slnl31992"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("patch/dns-tests" ,(search-patch "libevent-dns-tests.patch"))
|
||||
|
||||
;; Dependencies used for the tests and for `event_rpcgen.py'.
|
||||
("which" ,which)
|
||||
("python" ,python)))
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/dns-tests"))))
|
||||
(home-page "http://libevent.org/")
|
||||
(synopsis
|
||||
"libevent, an event notification library")
|
||||
(description
|
||||
"The libevent API provides a mechanism to execute a callback
|
||||
function when a specific event occurs on a file descriptor or after a
|
||||
timeout has been reached. Furthermore, libevent also support callbacks
|
||||
due to signals or regular timeouts.
|
||||
|
||||
libevent is meant to replace the event loop found in event driven
|
||||
network servers. An application just needs to call event_dispatch() and
|
||||
then add or remove events dynamically without having to change the event
|
||||
loop.")
|
||||
(license bsd-3)))
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -20,7 +20,6 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libffi
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"0g657kv60rh486m7bwyp5k24ljmym4wnb8nmk6d3i3qgr1qlqbqa"))))
|
||||
(build-system gnu-build-system)
|
||||
;; FIXME: No Java and C# libraries are currently built.
|
||||
(synopsis "GNU Libidn, a library to encode and decode internationalised domain names")
|
||||
(synopsis "Internationalized string processing library")
|
||||
(description
|
||||
"GNU Libidn is a fully documented implementation of the Stringprep,
|
||||
Punycode and IDNA specifications. Libidn's purpose is to encode and decode
|
||||
|
||||
@@ -46,7 +46,6 @@ image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.")
|
||||
|
||||
(define-public libjpeg-8
|
||||
(package (inherit libjpeg)
|
||||
(name "libjpeg-8")
|
||||
(version "8d")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 libphidget)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages libusb))
|
||||
|
||||
(define-public libphidget
|
||||
(package
|
||||
(name "libphidget")
|
||||
(version "2.1.8.20130320")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.phidgets.com/downloads/libraries/libphidget_"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "09ibrz1df5ajqcm9vmx6zw8qama2rzf0961yhmmfsy629qfhyrk0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libusb" ,libusb)))
|
||||
(home-page "http://www.phidgets.com/")
|
||||
(license lgpl3+)
|
||||
(synopsis "C library to manipulate Phidgets")
|
||||
(description synopsis)))
|
||||
@@ -0,0 +1,46 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 libpng)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libpng
|
||||
(package
|
||||
(name "libpng")
|
||||
(version "1.5.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://downloads.sourceforge.net/project/libpng/libpng15/"
|
||||
version "/libpng-"
|
||||
version ".tar.xz"))
|
||||
(sha256 (base32
|
||||
"0m3vz3gig7s63zanq5b1dgb5ph12qm0cylw4g4fbxlsq3f74hn8l"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("zlib" ,zlib)))
|
||||
(synopsis "Libpng, a library for handling PNG files")
|
||||
(description
|
||||
"Libpng is the official PNG (Portable Network Graphics) reference
|
||||
library. It supports almost all PNG features and is extensible.")
|
||||
(license license:zlib)
|
||||
(home-page "http://www.libpng.org/pub/png/libpng.html")))
|
||||
@@ -20,7 +20,6 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libsigsegv
|
||||
@@ -36,7 +35,7 @@
|
||||
(base32 "16hrs8k3nmc7a8jam5j1fpspd6sdpkamskvsdpcw6m29vnis8q44"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/libsigsegv/")
|
||||
(synopsis "GNU libsigsegv, a library to handle page faults in user mode")
|
||||
(synopsis "Library for handling page faults")
|
||||
(description
|
||||
"GNU libsigsegv is a library for handling page faults in user mode. A page
|
||||
fault occurs when a program tries to access to a region of memory that is
|
||||
|
||||
@@ -18,9 +18,10 @@
|
||||
|
||||
(define-module (gnu packages libtiff)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages libjpeg)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module ((guix licenses) #:select (bsd-style))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
@@ -37,6 +38,7 @@
|
||||
"0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("file" ,file)
|
||||
("zlib" ,zlib)
|
||||
("libjpeg-8" ,libjpeg-8)))
|
||||
;; currently does not compile with libjpeg version 9
|
||||
(arguments
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -20,7 +20,6 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libunistring
|
||||
@@ -37,7 +36,7 @@
|
||||
"18q620269xzpw39dwvr9zpilnl2dkw5z5kz3mxaadnpv4k3kw3b1"))))
|
||||
(propagated-inputs '()) ; FIXME: add libiconv when !glibc
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "GNU Libunistring, a Unicode string library")
|
||||
(synopsis "C library for manipulating Unicode strings")
|
||||
(description
|
||||
"This library provides functions for manipulating Unicode strings and for
|
||||
manipulating C strings according to the Unicode standard.
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 libunwind)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses))
|
||||
|
||||
(define-public libunwind
|
||||
(package
|
||||
(name "libunwind")
|
||||
(version "1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/libunwind/libunwind-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"16nhx2pahh9d62mvszc88q226q5lwjankij276fxwrm8wb50zzlx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; FIXME: As of glibc 2.17, we get 3 out of 34 test failures.
|
||||
;; Report them upstream.
|
||||
'(#:tests? #f))
|
||||
(home-page "http://www.nongnu.org/libunwind")
|
||||
(synopsis
|
||||
"A portable and efficient API to determine the call-chain of a program")
|
||||
(description
|
||||
"The primary goal of this project is to define a portable and efficient C
|
||||
programming interface (API) to determine the call-chain of a program. The API
|
||||
additionally provides the means to manipulate the preserved (callee-saved)
|
||||
state of each call-frame and to resume execution at any point in the
|
||||
call-chain (non-local goto). The API supports both local (same-process) and
|
||||
remote (across-process) operation. As such, the API is useful in a number of
|
||||
applications.")
|
||||
(license x11)))
|
||||
@@ -0,0 +1,288 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 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 linux-initrd)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages cpio)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module ((gnu packages make-bootstrap)
|
||||
#:select (%guile-static-stripped))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system trivial))
|
||||
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; Tools to build initial RAM disks (initrd's) for Linux-Libre, and in
|
||||
;;; particular initrd's that run Guile.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
|
||||
(define* (expression->initrd exp
|
||||
#:key
|
||||
(guile %guile-static-stripped)
|
||||
(cpio cpio)
|
||||
(gzip gzip)
|
||||
(name "guile-initrd")
|
||||
(system (%current-system))
|
||||
(linux #f)
|
||||
(linux-modules '()))
|
||||
"Return a package that contains a Linux initrd (a gzipped cpio archive)
|
||||
containing GUILE and that evaluates EXP upon booting. LINUX-MODULES is a list
|
||||
of `.ko' file names to be copied from LINUX into the initrd."
|
||||
;; TODO: Add a `modules' parameter.
|
||||
|
||||
;; General Linux overview in `Documentation/early-userspace/README' and
|
||||
;; `Documentation/filesystems/ramfs-rootfs-initramfs.txt'.
|
||||
|
||||
(define builder
|
||||
`(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 pretty-print)
|
||||
(ice-9 popen)
|
||||
(ice-9 match)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-26)
|
||||
(system base compile)
|
||||
(rnrs bytevectors)
|
||||
((system foreign) #:select (sizeof)))
|
||||
|
||||
(let ((guile (assoc-ref %build-inputs "guile"))
|
||||
(cpio (string-append (assoc-ref %build-inputs "cpio")
|
||||
"/bin/cpio"))
|
||||
(gzip (string-append (assoc-ref %build-inputs "gzip")
|
||||
"/bin/gzip"))
|
||||
(out (assoc-ref %outputs "out")))
|
||||
(mkdir out)
|
||||
(mkdir "contents")
|
||||
(with-directory-excursion "contents"
|
||||
(copy-recursively guile ".")
|
||||
(call-with-output-file "init"
|
||||
(lambda (p)
|
||||
(format p "#!/bin/guile -ds~%!#~%" guile)
|
||||
(pretty-print ',exp p)))
|
||||
(chmod "init" #o555)
|
||||
(chmod "bin/guile" #o555)
|
||||
|
||||
;; Compile `init'.
|
||||
(let ((go-dir (format #f ".cache/guile/ccache/~a-~a-~a-~a"
|
||||
(effective-version)
|
||||
(if (eq? (native-endianness) (endianness little))
|
||||
"LE"
|
||||
"BE")
|
||||
(sizeof '*)
|
||||
(effective-version))))
|
||||
(mkdir-p go-dir)
|
||||
(compile-file "init"
|
||||
#:opts %auto-compilation-options
|
||||
#:output-file (string-append go-dir "/init.go")))
|
||||
|
||||
(let* ((linux (assoc-ref %build-inputs "linux"))
|
||||
(module-dir (and linux
|
||||
(string-append linux "/lib/modules"))))
|
||||
(mkdir "modules")
|
||||
,@(map (lambda (module)
|
||||
`(match (find-files module-dir ,module)
|
||||
((file)
|
||||
(format #t "copying '~a'...~%" file)
|
||||
(copy-file file (string-append "modules/"
|
||||
,module)))
|
||||
(()
|
||||
(error "module not found" ,module module-dir))
|
||||
((_ ...)
|
||||
(error "several modules by that name"
|
||||
,module module-dir))))
|
||||
linux-modules))
|
||||
|
||||
;; Reset the timestamps of all the files that will make it in the
|
||||
;; initrd.
|
||||
(for-each (cut utime <> 0 0 0 0)
|
||||
(find-files "." ".*"))
|
||||
|
||||
(system* cpio "--version")
|
||||
(let ((pipe (open-pipe* OPEN_WRITE cpio "-o"
|
||||
"-O" (string-append out "/initrd")
|
||||
"-H" "newc" "--null")))
|
||||
(define print0
|
||||
(let ((len (string-length "./")))
|
||||
(lambda (file)
|
||||
(format pipe "~a\0" (string-drop file len)))))
|
||||
|
||||
;; Note: as per `ramfs-rootfs-initramfs.txt', always add
|
||||
;; directory entries before the files that are inside of it: "The
|
||||
;; Linux kernel cpio extractor won't create files in a directory
|
||||
;; that doesn't exist, so the directory entries must go before
|
||||
;; the files that go in those directories."
|
||||
(file-system-fold (const #t)
|
||||
(lambda (file stat result) ; leaf
|
||||
(print0 file))
|
||||
(lambda (dir stat result) ; down
|
||||
(unless (string=? dir ".")
|
||||
(print0 dir)))
|
||||
(const #f) ; up
|
||||
(const #f) ; skip
|
||||
(const #f)
|
||||
#f
|
||||
".")
|
||||
|
||||
(and (zero? (close-pipe pipe))
|
||||
(with-directory-excursion out
|
||||
(and (zero? (system* gzip "--best" "initrd"))
|
||||
(rename-file "initrd.gz" "initrd")))))))))
|
||||
|
||||
(let ((name* name))
|
||||
(package
|
||||
(name name*)
|
||||
(version "0")
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments `(#:modules ((guix build utils))
|
||||
#:builder ,builder))
|
||||
(inputs `(("guile" ,guile)
|
||||
("cpio" ,cpio)
|
||||
("gzip" ,gzip)
|
||||
,@(if linux
|
||||
`(("linux" ,linux))
|
||||
'())))
|
||||
(synopsis "An initial RAM disk (initrd) for the Linux kernel")
|
||||
(description
|
||||
"An initial RAM disk (initrd), really a gzipped cpio archive, for use by
|
||||
the Linux kernel.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/guix/"))))
|
||||
|
||||
(define-public qemu-initrd
|
||||
(expression->initrd
|
||||
'(begin
|
||||
(use-modules (rnrs io ports)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match)
|
||||
((system foreign) #:select (string->pointer))
|
||||
((system base compile) #:select (compile-file)))
|
||||
|
||||
(display "Welcome, this is GNU/Guile!\n")
|
||||
(display "Use '--repl' for an initrd REPL.\n\n")
|
||||
|
||||
(mkdir "/proc")
|
||||
(mount "none" "/proc" "proc")
|
||||
|
||||
(mkdir "/sys")
|
||||
(mount "none" "/sys" "sysfs")
|
||||
|
||||
(let* ((command (string-trim-both
|
||||
(call-with-input-file "/proc/cmdline"
|
||||
get-string-all)))
|
||||
(args (string-split command char-set:blank))
|
||||
(option (lambda (opt)
|
||||
(let ((opt (string-append opt "=")))
|
||||
(and=> (find (cut string-prefix? opt <>)
|
||||
args)
|
||||
(lambda (arg)
|
||||
(substring arg (+ 1 (string-index arg #\=))))))))
|
||||
(to-load (option "--load"))
|
||||
(root (option "--root")))
|
||||
|
||||
(when (member "--repl" args)
|
||||
((@ (system repl repl) start-repl)))
|
||||
|
||||
(let ((slurp (lambda (module)
|
||||
(call-with-input-file
|
||||
(string-append "/modules/" module)
|
||||
get-bytevector-all))))
|
||||
(display "loading CIFS and companion modules...\n")
|
||||
(for-each (compose load-linux-module slurp)
|
||||
(list "md4.ko" "ecb.ko" "cifs.ko")))
|
||||
|
||||
;; See net/slirp.c for default QEMU networking values.
|
||||
(display "configuring network...\n")
|
||||
(let* ((sock (socket AF_INET SOCK_STREAM 0))
|
||||
(address (make-socket-address AF_INET
|
||||
(inet-pton AF_INET
|
||||
"10.0.2.10")
|
||||
0))
|
||||
(flags (network-interface-flags sock "eth0")))
|
||||
(set-network-interface-address sock "eth0" address)
|
||||
(set-network-interface-flags sock "eth0"
|
||||
(logior flags IFF_UP))
|
||||
(if (logand (network-interface-flags sock "eth0") IFF_UP)
|
||||
(display "network interface is up\n")
|
||||
(display "network interface is DOWN\n"))
|
||||
|
||||
(mkdir "/etc")
|
||||
(call-with-output-file "/etc/resolv.conf"
|
||||
(lambda (p)
|
||||
(display "nameserver 10.0.2.3\n" p)))
|
||||
(sleep 1))
|
||||
|
||||
;; Prepare the real root file system under /root.
|
||||
(unless (file-exists? "/root")
|
||||
(mkdir "/root"))
|
||||
(if root
|
||||
(mount root "/root" "ext3")
|
||||
(mount "none" "/root" "tmpfs"))
|
||||
(mkdir "/root/proc")
|
||||
(mount "none" "/root/proc" "proc")
|
||||
(mkdir "/root/sys")
|
||||
(mount "none" "/root/sys" "sysfs")
|
||||
(mkdir "/root/xchg")
|
||||
(mkdir "/root/nix")
|
||||
(mkdir "/root/nix/store")
|
||||
|
||||
(mkdir "/root/dev")
|
||||
(let ((makedev (lambda (major minor)
|
||||
(+ (* major 256) minor))))
|
||||
(mknod "/root/dev/null" 'char-special #o666 (makedev 1 3))
|
||||
(mknod "/root/dev/zero" 'char-special #o666 (makedev 1 5)))
|
||||
|
||||
;; Mount the host's store and exchange directory.
|
||||
(display "mounting QEMU's SMB shares...\n")
|
||||
(let ((server "10.0.2.4"))
|
||||
(mount (string-append "//" server "/store") "/root/nix/store" "cifs" 0
|
||||
(string->pointer "guest,sec=none"))
|
||||
(mount (string-append "//" server "/xchg") "/root/xchg" "cifs" 0
|
||||
(string->pointer "guest,sec=none")))
|
||||
|
||||
(if to-load
|
||||
(begin
|
||||
(format #t "loading boot file '~a'...\n" to-load)
|
||||
(compile-file (string-append "/root/" to-load)
|
||||
#:output-file "/root/loader.go"
|
||||
#:opts %auto-compilation-options)
|
||||
(match (primitive-fork)
|
||||
(0
|
||||
(chroot "/root")
|
||||
(load-compiled "/loader.go"))
|
||||
(pid
|
||||
(format #t "boot file loaded under PID ~a~%" pid)
|
||||
(let ((status (waitpid pid)))
|
||||
(reboot)))))
|
||||
(begin
|
||||
(display "no boot file passed via '--load'\n")
|
||||
(display "entering a warm and cozy REPL\n")
|
||||
((@ (system repl repl) start-repl))))))
|
||||
#:name "qemu-initrd"
|
||||
#:linux linux-libre
|
||||
#:linux-modules '("cifs.ko" "md4.ko" "ecb.ko")))
|
||||
|
||||
;;; linux-initrd.scm ends here
|
||||
+164
-10
@@ -31,18 +31,25 @@
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public (system->linux-architecture arch)
|
||||
"Return the Linux architecture name for ARCH, a Guix system name such as
|
||||
\"x86_64-linux\"."
|
||||
(let ((arch (car (string-split arch #\-))))
|
||||
(cond ((string=? arch "i686") "i386")
|
||||
((string-prefix? "mips" arch) "mips")
|
||||
((string-prefix? "arm" arch) "arm")
|
||||
(else arch))))
|
||||
|
||||
(define-public linux-libre-headers
|
||||
(let* ((version* "3.3.8")
|
||||
(build-phase
|
||||
'(lambda* (#:key system #:allow-other-keys)
|
||||
(let ((arch (car (string-split system #\-))))
|
||||
(setenv "ARCH"
|
||||
(cond ((string=? arch "i686") "i386")
|
||||
(else arch)))
|
||||
(format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
|
||||
(lambda (arch)
|
||||
`(lambda _
|
||||
(setenv "ARCH" ,(system->linux-architecture arch))
|
||||
(format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
|
||||
|
||||
(and (zero? (system* "make" "defconfig"))
|
||||
(zero? (system* "make" "mrproper" "headers_check")))))
|
||||
(and (zero? (system* "make" "defconfig"))
|
||||
(zero? (system* "make" "mrproper" "headers_check"))))))
|
||||
(install-phase
|
||||
`(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
@@ -73,14 +80,122 @@
|
||||
(guix build utils)
|
||||
(srfi srfi-1))
|
||||
#:phases (alist-replace
|
||||
'build ,build-phase
|
||||
'build ,(build-phase (%current-system))
|
||||
(alist-replace
|
||||
'install ,install-phase
|
||||
(alist-delete 'configure %standard-phases)))
|
||||
#:tests? #f))
|
||||
(synopsis "GNU Linux-Libre kernel headers")
|
||||
(description "Headers of the Linux-Libre kernel.")
|
||||
(license "GPLv2")
|
||||
(license gpl2)
|
||||
(home-page "http://www.gnu.org/software/linux-libre/"))))
|
||||
|
||||
(define-public module-init-tools
|
||||
(package
|
||||
(name "module-init-tools")
|
||||
(version "3.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://kernel.org/linux/utils/kernel/module-init-tools/module-init-tools-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
;; The upstream tarball lacks man pages, and building them would require
|
||||
;; DocBook & co. Thus, use Gentoo's pre-built man pages.
|
||||
`(("man-pages"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://distfiles.gentoo.org/distfiles/module-init-tools-" version
|
||||
"-man.tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1j1nzi87kgsh4scl645fhwhjvljxj83cmdasa4n4p5krhasgw358"))))))
|
||||
(arguments
|
||||
'(#:phases (alist-cons-before
|
||||
'unpack 'unpack-man-pages
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((man-pages (assoc-ref inputs "man-pages")))
|
||||
(zero? (system* "tar" "xvf" man-pages))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/")
|
||||
(synopsis "Tools for loading and managing Linux kernel modules")
|
||||
(description
|
||||
"Tools for loading and managing Linux kernel modules, such as `modprobe',
|
||||
`insmod', `lsmod', and more.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public linux-libre
|
||||
(let* ((version* "3.3.8")
|
||||
(build-phase
|
||||
'(lambda* (#:key system #:allow-other-keys #:rest args)
|
||||
(let ((arch (car (string-split system #\-))))
|
||||
(setenv "ARCH"
|
||||
(cond ((string=? arch "i686") "i386")
|
||||
(else arch)))
|
||||
(format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
|
||||
|
||||
(let ((build (assoc-ref %standard-phases 'build)))
|
||||
(and (zero? (system* "make" "defconfig"))
|
||||
(begin
|
||||
(format #t "enabling additional modules...~%")
|
||||
(substitute* ".config"
|
||||
(("^# CONFIG_CIFS.*$")
|
||||
"CONFIG_CIFS=m\n"))
|
||||
(zero? (system* "make" "oldconfig")))
|
||||
|
||||
;; Call the default `build' phase so `-j' is correctly
|
||||
;; passed.
|
||||
(apply build #:make-flags "all" args)))))
|
||||
(install-phase
|
||||
`(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(moddir (string-append out "/lib/modules"))
|
||||
(mit (assoc-ref inputs "module-init-tools")))
|
||||
(mkdir-p moddir)
|
||||
(for-each (lambda (file)
|
||||
(copy-file file
|
||||
(string-append out "/" (basename file))))
|
||||
(find-files "." "^(bzImage|System\\.map)$"))
|
||||
(copy-file ".config" (string-append out "/config"))
|
||||
(zero? (system* "make"
|
||||
(string-append "DEPMOD=" mit "/sbin/depmod")
|
||||
(string-append "MODULE_DIR=" moddir)
|
||||
(string-append "INSTALL_PATH=" out)
|
||||
(string-append "INSTALL_MOD_PATH=" out)
|
||||
"modules_install"))))))
|
||||
(package
|
||||
(name "linux-libre")
|
||||
(version version*)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://linux-libre.fsfla.org/pub/linux-libre/releases/3.3.8-gnu/linux-libre-"
|
||||
version "-gnu.tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jkfh0z1s6izvdnc3njm39dhzp1cg8i06jv06izwqz9w9qsprvnl"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl)
|
||||
("module-init-tools" ,module-init-tools)))
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1)
|
||||
(ice-9 match))
|
||||
#:phases (alist-replace
|
||||
'build ,build-phase
|
||||
(alist-replace
|
||||
'install ,install-phase
|
||||
(alist-delete 'configure %standard-phases)))
|
||||
#:tests? #f))
|
||||
(synopsis "100% free redistribution of a cleaned Linux kernel")
|
||||
(description "Linux-Libre operating system kernel.")
|
||||
(license gpl2)
|
||||
(home-page "http://www.gnu.org/software/linux-libre/"))))
|
||||
|
||||
(define-public linux-pam
|
||||
@@ -257,3 +372,42 @@ slabtop, and skill.")
|
||||
(description
|
||||
"Tools for working with USB devices, such as lsusb.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public e2fsprogs
|
||||
(package
|
||||
(name "e2fsprogs")
|
||||
(version "1.42.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/e2fsprogs/e2fsprogs-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ibkkvp6kan0hn0d1anq4n2md70j5gcm7mwna515w82xwyr02rfw"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("util-linux" ,util-linux)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(arguments
|
||||
'(#:phases (alist-cons-before
|
||||
'configure 'patch-shells
|
||||
(lambda _
|
||||
(substitute* "configure"
|
||||
(("/bin/sh (.*)parse-types.sh" _ dir)
|
||||
(string-append (which "sh") " " dir
|
||||
"parse-types.sh")))
|
||||
(substitute* (find-files "." "^Makefile.in$")
|
||||
(("#!/bin/sh")
|
||||
(string-append "#!" (which "sh")))))
|
||||
%standard-phases)
|
||||
|
||||
;; FIXME: Tests work by comparing the stdout/stderr of programs, that
|
||||
;; they fail because we get an extra line that says "Can't check if
|
||||
;; filesystem is mounted due to missing mtab file".
|
||||
#:tests? #f))
|
||||
(home-page "http://e2fsprogs.sourceforge.net/")
|
||||
(synopsis "Tools for creating and checking ext2/ext3/ext4 filesystems")
|
||||
(description
|
||||
"This package provides tools for manipulating ext2/ext3/ext4 file systems.")
|
||||
(license (list gpl2 ; programs
|
||||
lgpl2.0 ; libext2fs
|
||||
x11)))) ; libuuid
|
||||
|
||||
+6
-11
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -20,8 +20,8 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages ghostscript))
|
||||
|
||||
(define-public lout
|
||||
;; This one is a bit tricky, because it doesn't follow the GNU Build System
|
||||
@@ -80,20 +80,15 @@
|
||||
(version "3.39")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; FIXME: `http-get' doesn't follow redirects, hence the URL.
|
||||
(uri (string-append
|
||||
"http://download-mirror.savannah.gnu.org/releases/lout/lout-"
|
||||
version ".tar.gz"))
|
||||
(uri (string-append "mirror://savannah/lout/lout-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12gkyqrn0kaa8xq7sc7v3wm407pz2fxg9ngc75aybhi5z825b9vq"))))
|
||||
(build-system gnu-build-system) ; actually, just a makefile
|
||||
(outputs '("out" "doc"))
|
||||
(inputs
|
||||
`(;; FIXME: Add dependency on Ghostscript.
|
||||
;; ("ghostscript" ,(lambda _
|
||||
;; (nixpkgs-derivation "ghostscript")))
|
||||
))
|
||||
`(("ghostscript" ,ghostscript)))
|
||||
(arguments `(#:modules ((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(srfi srfi-1)) ; we need SRFI-1
|
||||
|
||||
@@ -117,8 +117,7 @@
|
||||
(which "cat"))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.lysator.liu.se/~nisse/lsh/")
|
||||
(synopsis
|
||||
"GNU lsh, a GPL'd implementation of the SSH protocol")
|
||||
(synopsis "GNU implementation of the Secure Shell (ssh) protocols")
|
||||
(description
|
||||
"lsh is a free implementation (in the GNU sense) of the ssh
|
||||
version 2 protocol, currently being standardised by the IETF
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 lsof)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages perl))
|
||||
|
||||
(define-public lsof
|
||||
(package
|
||||
(name "lsof")
|
||||
(version "4.87")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_"
|
||||
version ".tar.bz2"))
|
||||
(sha256 (base32
|
||||
"0b6si72sml7gr9784ak491cxxbm9mx5bh174yg6rrirbv04kgpfz"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(arguments
|
||||
`(#:tests? #f ; no test target
|
||||
#:phases
|
||||
(alist-replace
|
||||
'unpack
|
||||
(lambda* (#:key source name version #:allow-other-keys)
|
||||
(let ((unpack (assoc-ref %standard-phases 'unpack)))
|
||||
(apply unpack (list #:source source))
|
||||
(apply unpack (list #:source (car (find-files "." "\\.tar$"))))))
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys)
|
||||
(setenv "LSOF_CC" "gcc")
|
||||
(setenv "LSOF_MAKE" "make")
|
||||
(system* "./Configure" "linux"))
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(mkdir out)
|
||||
(mkdir (string-append out "/bin"))
|
||||
(copy-file "lsof" (string-append out "/bin/lsof"))
|
||||
(mkdir (string-append out "/share"))
|
||||
(mkdir (string-append out "/share/man"))
|
||||
(mkdir (string-append out "/share/man/man8"))
|
||||
(copy-file "lsof.8" (string-append out "/share/man/man8/lsof.8"))
|
||||
))
|
||||
%standard-phases)))))
|
||||
(synopsis "lsof displays information about open files")
|
||||
(description
|
||||
"Lsof stands for LiSt Open Files, and it does just that.
|
||||
It lists information about files that are open by the processes running
|
||||
on the system.")
|
||||
(license (license:fsf-free
|
||||
"file://00FAQ"
|
||||
"License inspired by zlib, see point 1.9 of 00FAQ in the distribution."))
|
||||
(home-page "http://people.freebsd.org/~abe/")))
|
||||
@@ -0,0 +1,63 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;;
|
||||
;;; 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 lua)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages readline))
|
||||
|
||||
(define-public lua
|
||||
(package
|
||||
(name "lua")
|
||||
(version "5.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.lua.org/ftp/lua-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1rbv2ysq5fdksz7xg07dnrkl8i0gnx855hg4z6b324vng6l4sc34"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("readline", readline)))
|
||||
(arguments
|
||||
'(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1))
|
||||
#:test-target "test"
|
||||
#:phases (alist-replace
|
||||
'build
|
||||
(lambda _ (zero? (system* "make" "linux"))) ; XXX: Other OS.
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero? (system
|
||||
(string-append "make install INSTALL_TOP=" out)))))
|
||||
(alist-delete 'configure %standard-phases)))))
|
||||
(home-page "http://www.lua.org/")
|
||||
(synopsis "An embeddable scripting language.")
|
||||
(description
|
||||
"Lua is a powerful, fast, lightweight, embeddable scripting language. Lua
|
||||
combines simple procedural syntax with powerful data description constructs
|
||||
based on associative arrays and extensible semantics. Lua is dynamically typed,
|
||||
runs by interpreting bytecode for a register-based virtual machine, and has
|
||||
automatic memory management with incremental garbage collection, making it ideal
|
||||
for configuration, scripting, and rapid prototyping.")
|
||||
(license x11)))
|
||||
@@ -0,0 +1,64 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 lvm)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
|
||||
(define-public lvm2
|
||||
(package
|
||||
(name "lvm2")
|
||||
(version "2.02.98")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://sources.redhat.com/pub/lvm2/LVM2."
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0r6q6z8ip6q5qgkzng0saljassp4912k6i21ra10vq7pzrc0l0vi"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("procps" ,procps)))
|
||||
(arguments
|
||||
`(#:tests? #f ; require to be root
|
||||
#:configure-flags
|
||||
`(,(string-append "--with-confdir=" (assoc-ref %outputs "out") "/etc"))
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
(substitute* "make.tmpl.in"
|
||||
(("/bin/sh") (which "sh"))
|
||||
(("CC \\?=") "CC =")) ; force CC argument to be set from configure
|
||||
(apply configure args)))
|
||||
%standard-phases)))
|
||||
(synopsis "logical volume management")
|
||||
(description
|
||||
"LVM2 refers to the userspace toolset that provides logical volume
|
||||
management facilities on linux. It is reasonably backwards-compatible with
|
||||
the original LVM toolset.")
|
||||
(license license:gpl2)
|
||||
(home-page "http://www.sourceware.org/lvm2/")))
|
||||
+24
-31
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -21,7 +21,6 @@
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public m4
|
||||
@@ -36,39 +35,33 @@
|
||||
(base32
|
||||
"035r7ma272j2cwni2961jp22k6bn3n9xwn3b3qbcn2yrvlghql22"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments (case-lambda
|
||||
((system)
|
||||
;; XXX: Disable tests on those platforms with know issues.
|
||||
`(#:tests? ,(not (member system
|
||||
'("x86_64-darwin"
|
||||
"i686-cygwin"
|
||||
"i686-sunos")))
|
||||
#:patches (list (assoc-ref %build-inputs "patch/s_isdir")
|
||||
(assoc-ref %build-inputs
|
||||
"patch/readlink-EINVAL")
|
||||
(assoc-ref %build-inputs "patch/gets"))
|
||||
#:phases (alist-cons-before
|
||||
'check 'pre-check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Fix references to /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(for-each patch-shebang
|
||||
(find-files "tests" "\\.sh$"))
|
||||
(substitute* (find-files "tests"
|
||||
"posix_spawn")
|
||||
(("/bin/sh")
|
||||
(format #f "~a/bin/bash" bash)))))
|
||||
%standard-phases)))
|
||||
((system cross-system)
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/s_isdir")
|
||||
(assoc-ref %build-inputs
|
||||
"patch/readlink-EINVAL")
|
||||
(assoc-ref %build-inputs "patch/gets"))))))
|
||||
(arguments
|
||||
;; XXX: Disable tests on those platforms with know issues.
|
||||
`(#:tests? ,(not (member (%current-system)
|
||||
'("x86_64-darwin"
|
||||
"i686-cygwin"
|
||||
"i686-sunos")))
|
||||
#:patches (list (assoc-ref %build-inputs "patch/s_isdir")
|
||||
(assoc-ref %build-inputs
|
||||
"patch/readlink-EINVAL")
|
||||
(assoc-ref %build-inputs "patch/gets"))
|
||||
#:phases (alist-cons-before
|
||||
'check 'pre-check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Fix references to /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(for-each patch-shebang
|
||||
(find-files "tests" "\\.sh$"))
|
||||
(substitute* (find-files "tests"
|
||||
"posix_spawn")
|
||||
(("/bin/sh")
|
||||
(format #f "~a/bin/bash" bash)))))
|
||||
%standard-phases)))
|
||||
(inputs `(("patch/s_isdir" ,(search-patch "m4-s_isdir.patch"))
|
||||
("patch/readlink-EINVAL"
|
||||
,(search-patch "m4-readlink-EINVAL.patch"))
|
||||
("patch/gets" ,(search-patch "m4-gets-undeclared.patch"))))
|
||||
(synopsis "GNU M4, a macro processor")
|
||||
(synopsis "Macro processor")
|
||||
(description
|
||||
"GNU M4 is an implementation of the traditional Unix macro processor. It
|
||||
is mostly SVR4 compatible although it has some extensions (for example,
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
("patch/gets-undeclared"
|
||||
,(search-patch "m4-gets-undeclared.patch"))))
|
||||
(home-page "http://www.gnu.org/software/mailutils/")
|
||||
(synopsis "A rich and powerful protocol-independent mail framework")
|
||||
(synopsis "Utilities and library for reading and serving mail")
|
||||
(description
|
||||
"GNU Mailutils is a rich and powerful protocol-independent mail
|
||||
framework. It contains a series of useful mail libraries, clients, and
|
||||
|
||||
+117
-101
@@ -27,7 +27,9 @@
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages bdw-gc)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (ice-9 match)
|
||||
@@ -52,17 +54,15 @@
|
||||
;; without nscd, and with static NSS modules.
|
||||
(package (inherit glibc-final)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
(substitute-keyword-arguments ((package-arguments glibc-final) system)
|
||||
((#:patches patches)
|
||||
`(cons (assoc-ref %build-inputs "patch/system")
|
||||
,patches))
|
||||
((#:configure-flags flags)
|
||||
;; Arrange so that getaddrinfo & co. do not contact the nscd,
|
||||
;; and can use statically-linked NSS modules.
|
||||
`(cons* "--disable-nscd" "--disable-build-nscd"
|
||||
"--enable-static-nss"
|
||||
,flags)))))
|
||||
(substitute-keyword-arguments (package-arguments glibc-final)
|
||||
((#:patches patches)
|
||||
`(cons (assoc-ref %build-inputs "patch/system") ,patches))
|
||||
((#:configure-flags flags)
|
||||
;; Arrange so that getaddrinfo & co. do not contact the nscd,
|
||||
;; and can use statically-linked NSS modules.
|
||||
`(cons* "--disable-nscd" "--disable-build-nscd"
|
||||
"--enable-static-nss"
|
||||
,flags))))
|
||||
(inputs
|
||||
`(("patch/system" ,(search-patch "glibc-bootstrap-system.patch"))
|
||||
,@(package-inputs glibc-final)))))
|
||||
@@ -119,19 +119,17 @@
|
||||
%standard-phases)))))
|
||||
(gawk (package (inherit gawk)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/sh"))
|
||||
,@(substitute-keyword-arguments
|
||||
((package-arguments gawk) system)
|
||||
((#:phases phases)
|
||||
`(alist-cons-before
|
||||
'configure 'no-export-dynamic
|
||||
(lambda _
|
||||
;; Since we use `-static', remove
|
||||
;; `-export-dynamic'.
|
||||
(substitute* "configure"
|
||||
(("-export-dynamic") "")))
|
||||
,phases))))))
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/sh"))
|
||||
,@(substitute-keyword-arguments (package-arguments gawk)
|
||||
((#:phases phases)
|
||||
`(alist-cons-before
|
||||
'configure 'no-export-dynamic
|
||||
(lambda _
|
||||
;; Since we use `-static', remove
|
||||
;; `-export-dynamic'.
|
||||
(substitute* "configure"
|
||||
(("-export-dynamic") "")))
|
||||
,phases)))))
|
||||
(inputs `(("patch/sh" ,(search-patch "gawk-shell.patch"))))))
|
||||
(finalize (lambda (p)
|
||||
(static-package (package-with-explicit-inputs
|
||||
@@ -253,7 +251,9 @@
|
||||
(define %binutils-static-stripped
|
||||
;; The subset of Binutils that we need.
|
||||
(package (inherit %binutils-static)
|
||||
(name (string-append (package-name %binutils-static) "-stripped"))
|
||||
(build-system trivial-build-system)
|
||||
(outputs '("out"))
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
@@ -324,7 +324,10 @@
|
||||
(string-append incdir "/asm-generic"))
|
||||
#t))))
|
||||
(inputs `(("libc" ,glibc)
|
||||
("linux-headers" ,linux-libre-headers))))))
|
||||
("linux-headers" ,linux-libre-headers)))
|
||||
|
||||
;; Only one output.
|
||||
(outputs '("out")))))
|
||||
|
||||
(define %gcc-static
|
||||
;; A statically-linked GCC, with stripped-down functionality.
|
||||
@@ -332,29 +335,28 @@
|
||||
(package (inherit gcc-final)
|
||||
(name "gcc-static")
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:modules ((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 regex))
|
||||
,@(substitute-keyword-arguments ((package-arguments gcc-final) system)
|
||||
((#:guile _) #f)
|
||||
((#:implicit-inputs? _) #t)
|
||||
((#:configure-flags flags)
|
||||
`(append (list
|
||||
"--disable-shared"
|
||||
"--disable-plugin"
|
||||
"--enable-languages=c"
|
||||
"--disable-libmudflap"
|
||||
"--disable-libgomp"
|
||||
"--disable-libssp"
|
||||
"--disable-libquadmath"
|
||||
"--disable-decimal-float")
|
||||
(remove (cut string-match "--(.*plugin|enable-languages)" <>)
|
||||
,flags)))
|
||||
((#:make-flags flags)
|
||||
`(cons "BOOT_LDFLAGS=-static" ,flags))))))
|
||||
`(#:modules ((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 regex))
|
||||
,@(substitute-keyword-arguments (package-arguments gcc-final)
|
||||
((#:guile _) #f)
|
||||
((#:implicit-inputs? _) #t)
|
||||
((#:configure-flags flags)
|
||||
`(append (list
|
||||
"--disable-shared"
|
||||
"--disable-plugin"
|
||||
"--enable-languages=c"
|
||||
"--disable-libmudflap"
|
||||
"--disable-libgomp"
|
||||
"--disable-libssp"
|
||||
"--disable-libquadmath"
|
||||
"--disable-decimal-float")
|
||||
(remove (cut string-match "--(.*plugin|enable-languages)" <>)
|
||||
,flags)))
|
||||
((#:make-flags flags)
|
||||
`(cons "BOOT_LDFLAGS=-static" ,flags)))))
|
||||
(inputs `(("gmp-source" ,(package-source gmp))
|
||||
("mpfr-source" ,(package-source mpfr))
|
||||
("mpc-source" ,(package-source mpc))
|
||||
@@ -402,44 +404,58 @@
|
||||
;; A statically-linked Guile that is relocatable--i.e., it can search
|
||||
;; .scm and .go files relative to its installation directory, rather
|
||||
;; than in hard-coded configure-time paths.
|
||||
(let ((guile (package (inherit guile-2.0)
|
||||
(inputs
|
||||
`(("patch/relocatable"
|
||||
,(search-patch "guile-relocatable.patch"))
|
||||
("patch/utf8"
|
||||
,(search-patch "guile-default-utf8.patch"))
|
||||
,@(package-inputs guile-2.0)))
|
||||
(arguments
|
||||
`(;; When `configure' checks for ltdl availability, it
|
||||
;; doesn't try to link using libtool, and thus fails
|
||||
;; because of a missing -ldl. Work around that.
|
||||
#:configure-flags '("LDFLAGS=-ldl")
|
||||
(let* ((libgc (package (inherit libgc)
|
||||
(arguments
|
||||
;; Make it so that we don't rely on /proc. This is
|
||||
;; especially useful in an initrd run before /proc is
|
||||
;; mounted.
|
||||
'(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES")))))
|
||||
(guile (package (inherit guile-2.0)
|
||||
(name (string-append (package-name guile-2.0) "-static"))
|
||||
(inputs
|
||||
`(("patch/relocatable"
|
||||
,(search-patch "guile-relocatable.patch"))
|
||||
("patch/utf8"
|
||||
,(search-patch "guile-default-utf8.patch"))
|
||||
("patch/syscalls"
|
||||
,(search-patch "guile-linux-syscalls.patch"))
|
||||
,@(package-inputs guile-2.0)))
|
||||
(propagated-inputs
|
||||
`(("bdw-gc" ,libgc)
|
||||
,@(alist-delete "bdw-gc"
|
||||
(package-propagated-inputs guile-2.0))))
|
||||
(arguments
|
||||
`(;; When `configure' checks for ltdl availability, it
|
||||
;; doesn't try to link using libtool, and thus fails
|
||||
;; because of a missing -ldl. Work around that.
|
||||
#:configure-flags '("LDFLAGS=-ldl")
|
||||
|
||||
#:phases (alist-cons-before
|
||||
'configure 'static-guile
|
||||
(lambda _
|
||||
(substitute* "libguile/Makefile.in"
|
||||
;; Create a statically-linked `guile'
|
||||
;; executable.
|
||||
(("^guile_LDFLAGS =")
|
||||
"guile_LDFLAGS = -all-static")
|
||||
#:phases (alist-cons-before
|
||||
'configure 'static-guile
|
||||
(lambda _
|
||||
(substitute* "libguile/Makefile.in"
|
||||
;; Create a statically-linked `guile'
|
||||
;; executable.
|
||||
(("^guile_LDFLAGS =")
|
||||
"guile_LDFLAGS = -all-static")
|
||||
|
||||
;; Add `-ldl' *after* libguile-2.0.la.
|
||||
(("^guile_LDADD =(.*)$" _ ldadd)
|
||||
(string-append "guile_LDADD = "
|
||||
(string-trim-right ldadd)
|
||||
" -ldl\n"))))
|
||||
%standard-phases)
|
||||
;; Add `-ldl' *after* libguile-2.0.la.
|
||||
(("^guile_LDADD =(.*)$" _ ldadd)
|
||||
(string-append "guile_LDADD = "
|
||||
(string-trim-right ldadd)
|
||||
" -ldl\n"))))
|
||||
%standard-phases)
|
||||
|
||||
;; Allow Guile to be relocated, as is needed during
|
||||
;; bootstrap.
|
||||
#:patches
|
||||
(list (assoc-ref %build-inputs "patch/relocatable")
|
||||
(assoc-ref %build-inputs "patch/utf8"))
|
||||
;; Allow Guile to be relocated, as is needed during
|
||||
;; bootstrap.
|
||||
#:patches
|
||||
(list (assoc-ref %build-inputs "patch/relocatable")
|
||||
(assoc-ref %build-inputs "patch/utf8")
|
||||
(assoc-ref %build-inputs "patch/syscalls"))
|
||||
|
||||
;; There are uses of `dynamic-link' in
|
||||
;; {foreign,coverage}.test that don't fly here.
|
||||
#:tests? #f)))))
|
||||
;; There are uses of `dynamic-link' in
|
||||
;; {foreign,coverage}.test that don't fly here.
|
||||
#:tests? #f)))))
|
||||
(package-with-explicit-inputs (static-package guile)
|
||||
%standard-inputs-with-relocatable-glibc
|
||||
(current-source-location))))
|
||||
@@ -482,25 +498,25 @@
|
||||
("xz" ,xz)
|
||||
("input" ,pkg)))
|
||||
(arguments
|
||||
(lambda (system)
|
||||
(let ((name (package-name pkg))
|
||||
(version (package-version pkg)))
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(input (assoc-ref %build-inputs "input"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz")))
|
||||
(mkdir out)
|
||||
(set-path-environment-variable "PATH" '("bin") (list tar xz))
|
||||
(with-directory-excursion input
|
||||
(zero? (system* "tar" "cJvf"
|
||||
(string-append out "/"
|
||||
,name "-" ,version
|
||||
"-" ,system ".tar.xz")
|
||||
".")))))))))))
|
||||
(let ((name (package-name pkg))
|
||||
(version (package-version pkg)))
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let ((out (assoc-ref %outputs "out"))
|
||||
(input (assoc-ref %build-inputs "input"))
|
||||
(tar (assoc-ref %build-inputs "tar"))
|
||||
(xz (assoc-ref %build-inputs "xz")))
|
||||
(mkdir out)
|
||||
(set-path-environment-variable "PATH" '("bin") (list tar xz))
|
||||
(with-directory-excursion input
|
||||
(zero? (system* "tar" "cJvf"
|
||||
(string-append out "/"
|
||||
,name "-" ,version
|
||||
"-" ,(%current-system)
|
||||
".tar.xz")
|
||||
"."))))))))))
|
||||
|
||||
(define %bootstrap-binaries-tarball
|
||||
;; A tarball with the statically-linked bootstrap binaries.
|
||||
|
||||
+26
-14
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2012, 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -42,23 +42,35 @@
|
||||
("perl" ,perl)
|
||||
))
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(alist-replace
|
||||
'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(system* "echo" source)
|
||||
(let ((inner
|
||||
(substring source
|
||||
(string-index-right source #\k)
|
||||
(string-index-right source #\-))))
|
||||
(system* "echo" inner)
|
||||
'(#:phases
|
||||
(alist-replace
|
||||
'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(let ((inner
|
||||
(substring source
|
||||
(string-index-right source #\k)
|
||||
(string-index-right source #\-))))
|
||||
(and (zero? (system* "tar" "xvf" source))
|
||||
(zero? (system* "tar" "xvf" (string-append inner ".tar.gz")))
|
||||
(chdir inner)
|
||||
(chdir "src"))))
|
||||
%standard-phases))))
|
||||
(alist-replace
|
||||
'check
|
||||
(lambda* (#:key inputs #:allow-other-keys #:rest args)
|
||||
(let ((perl (assoc-ref inputs "perl"))
|
||||
(check (assoc-ref %standard-phases 'check)))
|
||||
(substitute* "plugins/kdb/db2/libdb2/test/run.test"
|
||||
(("/bin/cat") (string-append perl "/bin/perl")))
|
||||
(substitute* "plugins/kdb/db2/libdb2/test/run.test"
|
||||
(("D/bin/sh") (string-append "D" (which "bash"))))
|
||||
(substitute* "plugins/kdb/db2/libdb2/test/run.test"
|
||||
(("bindir=/bin/.") (string-append "bindir=" perl "/bin")))
|
||||
;; use existing files and directories in test
|
||||
(substitute* "tests/resolve/Makefile"
|
||||
(("-p telnet") "-p 23"))
|
||||
;; avoid service names since /etc/services is unavailable
|
||||
(apply check args)))
|
||||
%standard-phases))))
|
||||
(synopsis "MIT Kerberos 5")
|
||||
(description
|
||||
"Massachusetts Institute of Technology implementation of Kerberos.
|
||||
|
||||
@@ -0,0 +1,183 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
;;;
|
||||
;;; 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 mp3)
|
||||
#:use-module ((guix licenses)
|
||||
#:renamer (symbol-prefix-proc 'license:))
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages oggvorbis)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libmad
|
||||
(package
|
||||
(name "libmad")
|
||||
(version "0.15.1b")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/mad/libmad/"
|
||||
version "/libmad-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
;; remove option that is not supported by gcc any more
|
||||
(substitute* "configure" ((" -fforce-mem") ""))
|
||||
(apply configure args)))
|
||||
%standard-phases)))
|
||||
(synopsis "libmad, an MPEG audio decoder")
|
||||
(description
|
||||
"MAD (MPEG Audio Decoder) supports MPEG-1 and the MPEG-2 extension to
|
||||
lower sampling frequencies, as well as the de facto MPEG 2.5 format.
|
||||
All three audio layers — Layer I, Layer II, and Layer III (i.e. MP3) — are
|
||||
fully implemented.
|
||||
|
||||
This package contains the library.")
|
||||
(license license:gpl2+)
|
||||
(home-page "http://www.underbit.com/products/mad/")))
|
||||
|
||||
(define-public libid3tag
|
||||
(package
|
||||
(name "libid3tag")
|
||||
(version "0.15.1b")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/mad/libid3tag/"
|
||||
version "/libid3tag-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lb1w883dc46dajbdvnia5870brl5lvnlk7g7y58y9wpg5p4znk3"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("zlib" ,zlib)))
|
||||
(synopsis "libid3tag, a library for reading ID3 tags")
|
||||
(description
|
||||
"libid3tag is a library for reading ID3 tags, both ID3v1 and the various
|
||||
versions of ID3v2")
|
||||
(license license:gpl2+)
|
||||
(home-page "http://www.underbit.com/products/mad/")))
|
||||
|
||||
(define-public id3lib
|
||||
(package
|
||||
(name "id3lib")
|
||||
(version "3.8.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/id3lib/id3lib/"
|
||||
version "/id3lib-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yfhqwk0w8q2hyv1jib1008jvzmwlpsxvc8qjllhna6p1hycqj97"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
(substitute* "configure"
|
||||
(("iomanip.h") "")) ; drop check for unused header
|
||||
;; see http://www.linuxfromscratch.org/patches/downloads/id3lib/
|
||||
(substitute* "include/id3/id3lib_strings.h"
|
||||
(("include <string>") "include <cstring>\n#include <string>"))
|
||||
(substitute* "include/id3/writers.h"
|
||||
(("//\\#include <string.h>") "#include <cstring>"))
|
||||
(substitute* "examples/test_io.cpp"
|
||||
(("dami;") "dami;\nusing namespace std;"))
|
||||
(apply configure args)))
|
||||
%standard-phases)))
|
||||
(synopsis "a library for reading, writing, and manipulating ID3v1 and ID3v2 tags")
|
||||
(description
|
||||
"id3lib is a cross-platform software development library for reading,
|
||||
writing, and manipulating ID3v1 and ID3v2 tags. It is an on-going project
|
||||
whose primary goals are full compliance with the ID3v2 standard, portability
|
||||
across several platforms, and providing a powerful and feature-rich API with
|
||||
a highly stable and efficient implementation.")
|
||||
(license license:lgpl2.0+)
|
||||
(home-page "http://id3lib.sourceforge.net/")))
|
||||
|
||||
(define-public libmp3splt
|
||||
(package
|
||||
(name "libmp3splt")
|
||||
(version "0.8.1a")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/mp3splt/libmp3splt/"
|
||||
version "/libmp3splt-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d20r1bd4fgp9kp7w3qixjgll34czck9dgw59mx2kbhb0mhh00d8"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libid3tag" ,libid3tag)
|
||||
("libmad" ,libmad)
|
||||
("libogg" ,libogg)
|
||||
("libtool" ,libtool)
|
||||
("libvorbid" ,libvorbis)
|
||||
("pkg-config" ,pkg-config)
|
||||
("pcre" ,pcre)))
|
||||
(synopsis "libmp3splt, a library for splitting mp3 and ogg vorbis files")
|
||||
(description
|
||||
"Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
|
||||
and an end time position, without decoding. For splitting an album, one may
|
||||
select split points and filenames manually or obtain them automatically from
|
||||
CDDB (internet or a local file) or from .cue files. The tool also supports
|
||||
automatic silence split, that can be used also to adjust cddb/cue splitpoints.
|
||||
|
||||
This package contains the library.")
|
||||
(license license:gpl2+)
|
||||
(home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
|
||||
|
||||
(define-public mp3splt
|
||||
(package
|
||||
(name "mp3splt")
|
||||
(version "2.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/mp3splt/mp3splt/"
|
||||
version "/mp3splt-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"106dnka56prlc9nsfh300f8841am2lmkwlzgl9lkr25mgnc35wwh"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("libmp3splt" ,libmp3splt)))
|
||||
(synopsis "mp3splt, a utiliy for splitting mp3 and ogg vorbis files")
|
||||
(description
|
||||
"Mp3splt is a utility to split mp3 and ogg vorbis files selecting a begin
|
||||
and an end time position, without decoding. For splitting an album, one may
|
||||
select split points and filenames manually or obtain them automatically from
|
||||
CDDB (internet or a local file) or from .cue files. The tool also supports
|
||||
automatic silence split, that can be used also to adjust cddb/cue splitpoints.
|
||||
|
||||
This package contains the binary.")
|
||||
(license license:gpl2+)
|
||||
(home-page "http://mp3splt.sourceforge.net/mp3splt_page/home.php")))
|
||||
|
||||
@@ -22,24 +22,20 @@
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gmp
|
||||
(package
|
||||
(name "gmp")
|
||||
(version "5.1.0")
|
||||
(version "5.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
;; Note: this version is not available from GNU mirrors
|
||||
;; because it was made with an Automake affected by
|
||||
;; CVE-2012-3386.
|
||||
(string-append "ftp://ftp.gmplib.org/pub/gmp-"
|
||||
version "/gmp-" version ".tar.bz2"))
|
||||
(string-append "mirror://gnu/gmp/gmp-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15n7xxgasbxdch8ii8z9ic6fxc2ysk3q8iavf55abjp5iylspnfz"))))
|
||||
"1hili06lcf0clg5qfvz7knm6pmj6ab54yhsvskp1mdny5xw4vmjb"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("m4" ,m4)))
|
||||
(arguments `(#:configure-flags
|
||||
@@ -47,7 +43,7 @@
|
||||
;; sub-architectures.
|
||||
"--enable-fat"
|
||||
"--enable-cxx")))
|
||||
(synopsis "GMP, the GNU multiple precision arithmetic library")
|
||||
(synopsis "Multiple-precision arithmetic library")
|
||||
(description
|
||||
"GMP is a free library for arbitrary precision arithmetic, operating on
|
||||
signed integers, rational numbers, and floating point numbers. There is no
|
||||
@@ -74,17 +70,16 @@ faster algorithms.")
|
||||
(define-public mpfr
|
||||
(package
|
||||
(name "mpfr")
|
||||
(version "3.1.1")
|
||||
(version "3.1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mpfr/mpfr-" version
|
||||
".tar.xz"))
|
||||
(sha256 (base32
|
||||
"0ym1ylcq803n52qrggxqmkz66gbn8ncc3ybawal31v5y5p1srma9"))))
|
||||
"0fs501qi8l523gs3cpy4jjcnvwxggyfbklcys80wq236xx3hz79r"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)))
|
||||
(synopsis "GNU MPFR, a library for multiple-precision floating-point
|
||||
arithmetic")
|
||||
(propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h>
|
||||
(synopsis "C library for arbitrary precision floating-point arithmetic")
|
||||
(description
|
||||
"The GNU MPFR library is a C library for multiple-precision
|
||||
floating-point computations with correct rounding. MPFR is based on the GMP
|
||||
@@ -108,10 +103,9 @@ double-precision floating-point arithmetic (53-bit mantissa).")
|
||||
(sha256 (base32
|
||||
"1zq0fidp1jii2j5k5n9hmx55a6wwid33gjzhimvxq9d5zrf82npd"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)))
|
||||
(synopsis "GNU MPC, a library for multiprecision complex arithmetic
|
||||
with exact rounding")
|
||||
(propagated-inputs `(("gmp" ,gmp) ; <mpc.h> refers to both
|
||||
("mpfr" ,mpfr)))
|
||||
(synopsis "C library for arbitrary precision complex arithmetic")
|
||||
(description
|
||||
"GNU MPC is a C library for the arithmetic of complex numbers with
|
||||
arbitrarily high precision and correct rounding of the result. It extends
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
(define-public nano
|
||||
(package
|
||||
(name "nano")
|
||||
(version "2.2.6")
|
||||
(version "2.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -36,17 +36,16 @@
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yp6pid67k8h7394spzw0067fl2r7rxm2b6kfccg87g8nlry2s5y"))))
|
||||
"1s3b21h5p7r8xafw0gahswj16ai6k2vnjhmd15b491hl0x494c7z"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gettext" ,guix:gettext)
|
||||
("ncurses" ,ncurses)))
|
||||
(home-page "http://www.nano-editor.org/")
|
||||
(synopsis
|
||||
"A small, user-friendly console text editor")
|
||||
(synopsis "Small, user-friendly console text editor")
|
||||
(description
|
||||
"GNU nano is designed to be a free replacement for the Pico text
|
||||
editor, part of the Pine email suite from The University of
|
||||
Washington. It aims to emulate Pico as closely as possible and perhaps
|
||||
include extra functionality.")
|
||||
(license gpl3+))) ; some files are under GPLv2+
|
||||
(license gpl3+))) ; some files are under GPLv2+
|
||||
|
||||
+23
-29
@@ -20,7 +20,6 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public ncurses
|
||||
@@ -83,37 +82,32 @@
|
||||
"0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(case-lambda
|
||||
((system)
|
||||
`(#:configure-flags
|
||||
`("--with-shared" "--without-debug" "--enable-widec"
|
||||
`(#:configure-flags
|
||||
`("--with-shared" "--without-debug" "--enable-widec"
|
||||
|
||||
;; By default headers land in an `ncursesw' subdir, which is not
|
||||
;; what users expect.
|
||||
,(string-append "--includedir=" (assoc-ref %outputs "out")
|
||||
"/include")
|
||||
;; By default headers land in an `ncursesw' subdir, which is not
|
||||
;; what users expect.
|
||||
,(string-append "--includedir=" (assoc-ref %outputs "out")
|
||||
"/include")
|
||||
|
||||
;; C++ bindings fail to build on
|
||||
;; `i386-pc-solaris2.11' with GCC 3.4.3:
|
||||
;; <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6395191>.
|
||||
,,@(if (string=? system "i686-solaris")
|
||||
'("--without-cxx-binding")
|
||||
'()))
|
||||
#:tests? #f ; no "check" target
|
||||
#:phases (alist-cons-after
|
||||
'install 'post-install ,post-install-phase
|
||||
(alist-cons-before
|
||||
'configure 'patch-makefile-SHELL
|
||||
,patch-makefile-phase
|
||||
(alist-replace
|
||||
'configure
|
||||
,configure-phase
|
||||
%standard-phases)))))
|
||||
((system cross-system)
|
||||
(arguments cross-system))))
|
||||
;; C++ bindings fail to build on
|
||||
;; `i386-pc-solaris2.11' with GCC 3.4.3:
|
||||
;; <http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6395191>.
|
||||
,,@(if (string=? (%current-system) "i686-solaris")
|
||||
'("--without-cxx-binding")
|
||||
'()))
|
||||
#:tests? #f ; no "check" target
|
||||
#:phases (alist-cons-after
|
||||
'install 'post-install ,post-install-phase
|
||||
(alist-cons-before
|
||||
'configure 'patch-makefile-SHELL
|
||||
,patch-makefile-phase
|
||||
(alist-replace
|
||||
'configure
|
||||
,configure-phase
|
||||
%standard-phases)))))
|
||||
(self-native-input? #t)
|
||||
(synopsis
|
||||
"GNU Ncurses, a free software emulation of curses in SVR4 and more")
|
||||
(synopsis "Terminal emulation (termcap, terminfo) library")
|
||||
(description
|
||||
"The Ncurses (new curses) library is a free software emulation of curses
|
||||
in System V Release 4.0, and more. It uses Terminfo format, supports pads
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user