forked from tribes/guix
Compare commits
561 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a1ba8475a6 | |||
| 59a43334a9 | |||
| 1ffa7090b9 | |||
| 08ba7ff318 | |||
| 4fd27cdfb9 | |||
| 75f1e8f7cd | |||
| 082b3c6a6c | |||
| 1d97441709 | |||
| f24996724c | |||
| 4b5f8cde38 | |||
| dd9e87e185 | |||
| c1e628f6ce | |||
| 9241172c9d | |||
| 24e262f086 | |||
| 8ca6cc4b45 | |||
| aba326f79c | |||
| 2a6c679561 | |||
| 183c9a89a3 | |||
| d041488307 | |||
| 874e687428 | |||
| 1da983b9f0 | |||
| b28168c125 | |||
| 4c9e797577 | |||
| a01b6da792 | |||
| e531ac2ad9 | |||
| 156b5010ff | |||
| 9282e25962 | |||
| 727afa3be8 | |||
| ed9f9a7765 | |||
| c4d645341b | |||
| acf60b26bd | |||
| 0dd7a135b2 | |||
| c7e4a72a74 | |||
| 04732c37ca | |||
| e2034de5d0 | |||
| e117772ddd | |||
| 29c1793dc2 | |||
| f4b60f5f6b | |||
| 5b00f53526 | |||
| 0ec1af59e5 | |||
| 2a5ab9dceb | |||
| ae9e328800 | |||
| 1ca982808a | |||
| 90a6d47caa | |||
| a53b000c7a | |||
| 34fcbe3a10 | |||
| 85a8a5f556 | |||
| 468bdabb56 | |||
| 80ba8cc076 | |||
| a661e42025 | |||
| d5529a9162 | |||
| fa39cc0da6 | |||
| fbbb1c0f4c | |||
| 75abd8ab23 | |||
| 39224d94e3 | |||
| fe8ccfcc72 | |||
| e47e3effaf | |||
| eb6d676e2a | |||
| b22a12fda7 | |||
| 01e354eb83 | |||
| 28e5560421 | |||
| ab6522aeb0 | |||
| f03e7115d7 | |||
| 5fedc65b0f | |||
| 704197f4bf | |||
| 4873f8ed9f | |||
| a06a99ff77 | |||
| bfe384cc4c | |||
| c0b3c89f16 | |||
| b2d58cd80a | |||
| b9e5c0a949 | |||
| 44b6be7744 | |||
| 58db733e6d | |||
| bd5e766b87 | |||
| 2498d43adb | |||
| 6221db61f5 | |||
| 784bb1f37b | |||
| 9149f1a087 | |||
| 98fefb210a | |||
| 87009d8aa1 | |||
| 9762706b90 | |||
| cc57f25d96 | |||
| ad85c617b5 | |||
| e7aa73ef09 | |||
| ab8ed44fce | |||
| 708d0ceb50 | |||
| 4e6b699d50 | |||
| 27160c856b | |||
| 4a219a1a47 | |||
| b30e4f3f12 | |||
| 2357f85032 | |||
| e66ca1a5a8 | |||
| e47bac7902 | |||
| fb83842efb | |||
| a9f8b72ee1 | |||
| 4050e5d6cf | |||
| 79580eb698 | |||
| 233e76769a | |||
| fe8ff02827 | |||
| 2646c55b03 | |||
| 7244a5f74e | |||
| 4155e2a909 | |||
| 7584f822bf | |||
| 3441e16497 | |||
| 312543dcfc | |||
| d3b59727fb | |||
| c2d771fd1d | |||
| fdc78b72f8 | |||
| 2f8a123ed3 | |||
| feddc16c70 | |||
| 8ba8aeb74d | |||
| 2ea2baf16c | |||
| 2aa4fb5f73 | |||
| 706d0641cf | |||
| 60a290926b | |||
| a974a0be5b | |||
| f9975b5a49 | |||
| bb1ff9aa0a | |||
| 9dc6f288bf | |||
| 5501e6b64f | |||
| 97d3998e7a | |||
| 52b8e5fc30 | |||
| 46866fadee | |||
| 8cd8e97cb5 | |||
| 93b0357575 | |||
| 4d058c6792 | |||
| 450fb5a6b4 | |||
| b2adb3ae04 | |||
| 03fa275801 | |||
| bc5bf85fa2 | |||
| f678f6d913 | |||
| 98ea038b47 | |||
| 6253961de2 | |||
| 3aa6fab83b | |||
| 2aaa45b03c | |||
| 2ee8edc450 | |||
| a2745393d2 | |||
| 380d5decfc | |||
| 5a8fd06d01 | |||
| c8911fa395 | |||
| c089511288 | |||
| 8722e80e82 | |||
| 8ffaa93bff | |||
| eca63d3df8 | |||
| 4c377e861b | |||
| f5b7894942 | |||
| 42ff70e262 | |||
| 530c169561 | |||
| c20313637f | |||
| 2ed139c42c | |||
| 8ccdbaa827 | |||
| 49f5a21698 | |||
| a18b4d085b | |||
| 0f09955213 | |||
| 5d4fd2671a | |||
| 6e32f6c019 | |||
| d6f80f187c | |||
| dfb53ee232 | |||
| ea8fbbf2f2 | |||
| c3ee7448c9 | |||
| 45298f8fd2 | |||
| 5d5c427839 | |||
| 3b48f78c85 | |||
| 325285d581 | |||
| d8989c2394 | |||
| c43e006164 | |||
| 3c738d6bd8 | |||
| 868fce7c4a | |||
| e2332e8aa7 | |||
| 72ce03739e | |||
| d008415219 | |||
| c1c94acf32 | |||
| 74baf333bf | |||
| a784c3077e | |||
| 07ab4bf1fc | |||
| da30f55582 | |||
| 335dd762cc | |||
| 4a44e743a0 | |||
| 0d12bea306 | |||
| e1b7096acd | |||
| b3a53fb361 | |||
| 7f131cf368 | |||
| cdec10f936 | |||
| 7f4f06513a | |||
| e2a06ddc7a | |||
| 9d1d434cd0 | |||
| 4aa52039a7 | |||
| 6cb3ccf835 | |||
| a020d2a996 | |||
| cb1427dd08 | |||
| 53f974fd45 | |||
| 8e1cd71376 | |||
| d7e2841b9d | |||
| 1e9824513c | |||
| b35c0f866c | |||
| 6a95fa501f | |||
| ad1ebab379 | |||
| 5fb868033f | |||
| c9b70836d0 | |||
| 3a61f8017a | |||
| 8a9451c89e | |||
| fdb50f8d8a | |||
| a9128eac41 | |||
| 70915c1a2e | |||
| ba55b1cb69 | |||
| f15b31c562 | |||
| 7a6548cbae | |||
| 1c67d639d5 | |||
| a09ec3a5af | |||
| 836676450d | |||
| 200dc93761 | |||
| 4d152bf1d9 | |||
| 3259877d35 | |||
| d3648e0118 | |||
| 2af7e4a373 | |||
| 51c8d7909d | |||
| 4ce823c424 | |||
| 2d34fa4902 | |||
| 09c95deb1e | |||
| a0f16bb663 | |||
| 838d78e3e0 | |||
| a4eabecd11 | |||
| 6ad2697d23 | |||
| 3d282f90f8 | |||
| e9f6d6dd45 | |||
| 5c403e3518 | |||
| 29833b26eb | |||
| aca54b395e | |||
| 351782e2f1 | |||
| d8eea3d2bc | |||
| 69cfce50db | |||
| b980f0f9fd | |||
| f5c82e15e0 | |||
| 8b15ac6700 | |||
| 22189ed117 | |||
| d23077dc5c | |||
| 2606bbcf91 | |||
| ca8dbb7d4e | |||
| 0adb527600 | |||
| 5f25049e9c | |||
| c7bdb1b9d1 | |||
| cd3ded4301 | |||
| 860a6f1ae0 | |||
| 3036a01ff7 | |||
| 18d50d7621 | |||
| 02b80c3f65 | |||
| 686f14e8a4 | |||
| b49ffe2d67 | |||
| e05385192c | |||
| c2033df432 | |||
| 7eba5e6361 | |||
| 967305e88b | |||
| 3af4e05304 | |||
| fa29b19988 | |||
| 6b345e06cd | |||
| 80fe5c6046 | |||
| fd76c904c7 | |||
| b40b259f12 | |||
| 480943dd46 | |||
| 5321f74f23 | |||
| 501b16750a | |||
| b147f59f41 | |||
| 6e6979c6f1 | |||
| bdd7eb270d | |||
| 52bda18abf | |||
| 0b3651bc93 | |||
| fe7777c14b | |||
| 7f40d97d88 | |||
| c80e7e55b3 | |||
| da7b042dd9 | |||
| 034cb8e781 | |||
| a65e3306d1 | |||
| f190f92f91 | |||
| ec5288609b | |||
| 5b2fd61868 | |||
| 36d4d49e69 | |||
| 80ffc7082c | |||
| e2b2c46693 | |||
| cf153fc472 | |||
| 30c40755fc | |||
| 0aa94f0ca4 | |||
| 3dc1970dda | |||
| dce3a40bae | |||
| 5075e28305 | |||
| ef1ee6b221 | |||
| d9d0536340 | |||
| 64fc89b6ec | |||
| ba326ce41b | |||
| 733b4130d7 | |||
| c6f09dfade | |||
| fb9821f023 | |||
| cc8e5e25b4 | |||
| 1df895b00b | |||
| 8c0e5b1e87 | |||
| b6dd891c1c | |||
| 6b8875c838 | |||
| d38487e9ca | |||
| f8348b91ad | |||
| 68c141f144 | |||
| 01d45404f6 | |||
| ec4d308a9e | |||
| 352ec143de | |||
| ecdb81e159 | |||
| db32c281dd | |||
| 7543f8653b | |||
| 2e65982725 | |||
| c6eac7616c | |||
| 92b8d1ea8b | |||
| 1dfb715df0 | |||
| 671d8f5e6f | |||
| 25608d640a | |||
| 0db342a590 | |||
| 94d222ad97 | |||
| 270246defe | |||
| 87f5d36630 | |||
| 62cab99c32 | |||
| ddc29a782e | |||
| 9e782349fe | |||
| cfeb75954a | |||
| e722af7522 | |||
| 7bdd1f0e3c | |||
| 813986ac09 | |||
| c4c7406b90 | |||
| a3aa25f83d | |||
| 37d19403e7 | |||
| 912209ee61 | |||
| eeaf44276c | |||
| 9518856b9b | |||
| 1227fabb65 | |||
| 74fe2df2ad | |||
| c78bd12b44 | |||
| d3c9a1dae8 | |||
| 8ba60d7b65 | |||
| ce1ef15b25 | |||
| 53dcd5eea1 | |||
| bca114d528 | |||
| 4500581a7c | |||
| 0af2c24ef7 | |||
| a48dddfe9c | |||
| d1acf1fd4a | |||
| 8d1939e4d0 | |||
| 6a92093dcd | |||
| a268f085db | |||
| d373e57ea3 | |||
| 1627f7f733 | |||
| c44899a28b | |||
| 18633d4f35 | |||
| 9d9e645081 | |||
| 59b775cca9 | |||
| 10226c05b1 | |||
| 5901471cec | |||
| d45122f537 | |||
| 6709752fe7 | |||
| 9b48fb88ca | |||
| d388c2c435 | |||
| 1275baeba7 | |||
| cdd5d6f95f | |||
| 00e219d1c9 | |||
| e76bdf8b87 | |||
| 81dbd783bd | |||
| 0afdc48532 | |||
| e3d741065e | |||
| 07d18f39cc | |||
| 97298ffae9 | |||
| 073c34d72f | |||
| 111111d046 | |||
| f03da4a008 | |||
| 34811f02bf | |||
| c8c88afaa1 | |||
| 48da001fd9 | |||
| d6ed71cbf4 | |||
| 8f3ecbd715 | |||
| 9144af5aa7 | |||
| 5992f213d7 | |||
| b8605698b8 | |||
| 1c52c42fe2 | |||
| 735bb2af10 | |||
| a9f60c421b | |||
| cc9abfd0f4 | |||
| bfb3c3d03a | |||
| fc2f38023b | |||
| 0778385802 | |||
| 5e6c90121f | |||
| d25468bcb2 | |||
| fc95fdaebe | |||
| 20d83444dd | |||
| 450ccdc3aa | |||
| fbc93bedff | |||
| b642e4b853 | |||
| ae39d1b233 | |||
| b272c47433 | |||
| 4033bde841 | |||
| e67245597e | |||
| 60c21332d2 | |||
| 1c702d1e92 | |||
| 371a20e048 | |||
| 5ab57a13dd | |||
| c52a5bf09a | |||
| 82058eff59 | |||
| e6cc3d8654 | |||
| 692c6c1576 | |||
| 1430808cae | |||
| d90248844b | |||
| d398e2c242 | |||
| 827a3087da | |||
| 3f8de86dec | |||
| 40749fb6eb | |||
| 131edf67a0 | |||
| 5155fb89b2 | |||
| 83ce0cf1f1 | |||
| 80d09f7452 | |||
| 592ef6c88f | |||
| 095c7a2683 | |||
| 58a7891ccf | |||
| 17ff4ccdf5 | |||
| 5cbb559046 | |||
| 5cc3061673 | |||
| a5a349f302 | |||
| d6e8777688 | |||
| d14ecda913 | |||
| 1c3972daa8 | |||
| e3dadc6818 | |||
| 207ad6b2e9 | |||
| 683d57f420 | |||
| f76a51add0 | |||
| 4c261f4169 | |||
| c0746cc9db | |||
| 7da95264f1 | |||
| 7172116ca5 | |||
| a52e429f76 | |||
| 124b17673b | |||
| ac5aa28889 | |||
| 9735a7b6ea | |||
| eb1db76e34 | |||
| b7f280ee3e | |||
| 9b9b6f3d51 | |||
| 8587b54268 | |||
| 91133c2d71 | |||
| dcd7290654 | |||
| df1fab5837 | |||
| 4004f95379 | |||
| 568717fd90 | |||
| e300a0f8d2 | |||
| a3f75312ec | |||
| ad8526466c | |||
| e4588af969 | |||
| ead1f1086d | |||
| df7bbd3813 | |||
| 58ddf10ea3 | |||
| 14da91e2f0 | |||
| 81c7948d9a | |||
| 2143cf7a50 | |||
| 12d5aa0f5a | |||
| db1a15314d | |||
| 7da7ae937e | |||
| 49feac7a54 | |||
| f4544767b4 | |||
| ab90f87c41 | |||
| 75668d7916 | |||
| cb0d69ed16 | |||
| 1722d6800f | |||
| 1f455fdca6 | |||
| 8ffae202ac | |||
| 82dc2b9af9 | |||
| dc8907d8e3 | |||
| 457dd86d66 | |||
| fb585745ad | |||
| dc0a9729dd | |||
| b289e9f9dd | |||
| 321b099643 | |||
| be13fbfa83 | |||
| 3c0670e686 | |||
| 2d14ef0f2c | |||
| 9d9ef458e8 | |||
| 5f805fdf17 | |||
| 181df11887 | |||
| 5f45668080 | |||
| dc1045be7d | |||
| 1f34bda1e2 | |||
| a08cdce7ed | |||
| 2847050a61 | |||
| 609354bf0a | |||
| 5dba31494e | |||
| ff352cfb97 | |||
| ea52a52d7c | |||
| 6818af7ba5 | |||
| 60f984b262 | |||
| 113aef68fb | |||
| a2ebaddda7 | |||
| 8bb9f66fc6 | |||
| 0a3da5b7f0 | |||
| a5071b990d | |||
| 472894aae8 | |||
| 946b72c924 | |||
| aaa848f3af | |||
| f39bd08ad2 | |||
| d118c548b5 | |||
| 8197c978ef | |||
| 9dd036f35c | |||
| 6dd7787c39 | |||
| 4c1eddf766 | |||
| dc4e02572e | |||
| f1f100b297 | |||
| 6e0874db3d | |||
| 877217b85a | |||
| 8759a648ba | |||
| e815763e69 | |||
| 84209975fd | |||
| a436d2018e | |||
| dcd60f4398 | |||
| c79dae6076 | |||
| 7cdeac023d | |||
| 3db3913ebb | |||
| 73f9a978ef | |||
| 8f6201a31f | |||
| 81e57ec5ff | |||
| 8773648e35 | |||
| 22b5d9c9a5 | |||
| d36622dc44 | |||
| dfae21c8cc | |||
| 2c957cd244 | |||
| 24cf75b9ef | |||
| e0fb536aaf | |||
| fbeec3d9bd | |||
| 04a32ee5ea | |||
| 2dda7734ba | |||
| 3abaf0c440 | |||
| 800cdeef31 | |||
| af5521ca01 | |||
| 6794b278ce | |||
| 852403224e | |||
| 8dcad9aa9d | |||
| 9350da0dac | |||
| ab77686565 | |||
| fc484f605c | |||
| 525a59d6d3 | |||
| 54ba617e9f | |||
| 437fd80992 | |||
| ebe2f31f19 | |||
| ad102c4683 | |||
| 3a310cc017 | |||
| 93a0a8b3fd | |||
| cf56996046 | |||
| 10d8289861 | |||
| 437e0729d8 | |||
| d95c0113c9 | |||
| b86b00567c | |||
| ed795c0608 | |||
| 2152e3c5b2 | |||
| 202851dd8d | |||
| 040d1b2c4a | |||
| 38701758da | |||
| f66963df93 | |||
| 1788a45637 | |||
| 2282ec3a04 | |||
| 7e2255e6c1 | |||
| ce5d658c5c | |||
| fd33c82c43 | |||
| 454fe58b49 | |||
| eb229e889a | |||
| 4ac3df4290 |
@@ -0,0 +1,17 @@
|
||||
;; Per-directory local variables for GNU Emacs 23 and later.
|
||||
|
||||
((nil . ((fill-column . 72)
|
||||
(tab-width . 8)))
|
||||
(c-mode . ((c-file-style . "gnu")))
|
||||
(scheme-mode
|
||||
.
|
||||
((indent-tabs-mode . nil)
|
||||
(eval . (put 'lambda* 'scheme-indent-function 1))
|
||||
(eval . (put 'substitute* 'scheme-indent-function 1))
|
||||
(eval . (put 'with-directory-excursion 'scheme-indent-function 1))
|
||||
(eval . (put 'package 'scheme-indent-function 1))
|
||||
(eval . (put 'substitute-keyword-arguments 'scheme-indent-function 1))
|
||||
(eval . (put 'with-error-handling 'scheme-indent-function 0))))
|
||||
(emacs-lisp-mode . ((indent-tabs-mode . nil)))
|
||||
(texinfo-mode . ((indent-tabs-mode . nil)
|
||||
(fill-column . 72))))
|
||||
+27
@@ -38,3 +38,30 @@ config.cache
|
||||
/tests/*.trs
|
||||
/INSTALL
|
||||
/m4/*
|
||||
/pre-inst-env
|
||||
/doc/.dirstamp
|
||||
/doc/guix.info
|
||||
/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
|
||||
stamp-h[0-9]
|
||||
/nix/AUTHORS
|
||||
/nix/COPYING
|
||||
/libformat.a
|
||||
/libstore.a
|
||||
/libutil.a
|
||||
/guix-daemon
|
||||
/test-tmp
|
||||
/nix/scripts/list-runtime-roots
|
||||
/test-env
|
||||
/nix/nix-setuid-helper/nix-setuid-helper.cc
|
||||
/guix-gc
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "nix-upstream"]
|
||||
path = nix-upstream
|
||||
url = http://github.com/NixOS/nix.git
|
||||
@@ -1 +1,13 @@
|
||||
Ludovic Courtès <ludo@gnu.org>
|
||||
GNU Guix is consists of Scheme code that implements the deployment model
|
||||
of the Nix package management tool. In fact, it currently talks to a
|
||||
build daemon whose code comes from Nix (see the manual for details.)
|
||||
|
||||
Nix was initially written by Eelco Dolstra; other people have been
|
||||
contributing to it. See `nix/AUTHORS' for details.
|
||||
|
||||
GNU Guix was initiated by Ludovic Courtès <ludo@gnu.org>, but it would
|
||||
not be what it is without the contributions of the following people (in
|
||||
alphabetical order):
|
||||
|
||||
Andreas Enge <andreas@enge.fr>
|
||||
Nikita Karetnikov <nikita@karetnikov.org>
|
||||
|
||||
@@ -0,0 +1,160 @@
|
||||
-*- mode: org; coding: utf-8; -*-
|
||||
|
||||
#+TITLE: Hacking GNU Guix and Its Incredible Distro
|
||||
|
||||
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
|
||||
notice and this notice are preserved.
|
||||
|
||||
|
||||
* Running Guix before it is installed
|
||||
|
||||
Command-line tools can be used even if you have not run "make install".
|
||||
To do that, prefix each command with ‘./pre-inst-env’, as in:
|
||||
|
||||
./pre-inst-env guix-build --help
|
||||
|
||||
Similarly, for a Guile session using the Guix modules:
|
||||
|
||||
./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
|
||||
|
||||
The ‘pre-inst-env’ script sets up all the environment variables
|
||||
necessary to support this.
|
||||
|
||||
* Adding new packages
|
||||
|
||||
Package recipes in Guix look like this:
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(package
|
||||
(name "nettle")
|
||||
(version "2.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/nettle/nettle-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wicr7amx01l03rm0pzgr1qvw3f9blaw17vjsy1301dh13ll58aa"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("m4" ,m4)))
|
||||
(propagated-inputs `(("gmp" ,gmp)))
|
||||
(home-page
|
||||
"http://www.lysator.liu.se/~nisse/nettle/")
|
||||
(synopsis "GNU Nettle, a cryptographic library")
|
||||
(description
|
||||
"Nettle is a cryptographic library...")
|
||||
(license gpl2+))
|
||||
#+END_SRC
|
||||
|
||||
Such a recipe can be written by hand, and then tested by running
|
||||
‘./pre-inst-env guix-build nettle’.
|
||||
|
||||
When writing the recipe, the base32-encoded SHA256 hash of the source
|
||||
code tarball, which can be seen in the example above, can be obtained by
|
||||
running:
|
||||
|
||||
guix-download http://ftp.gnu.org/gnu/nettle/nettle-2.5.tar.gz
|
||||
|
||||
Alternatively, it is possible to semi-automatically import recipes from
|
||||
the [[http://nixos.org/nixpkgs/][Nixpkgs]] software distribution using this command:
|
||||
|
||||
guix-import /path/to/nixpkgs/checkout nettle
|
||||
|
||||
The command automatically fetches and converts to Guix the “Nix
|
||||
expression” of Nettle.
|
||||
|
||||
* Porting the Guix distro on a new platform
|
||||
|
||||
** Introduction
|
||||
|
||||
Unlike Make or similar build tools, Guix requires absolutely /all/ the
|
||||
dependencies of a build process to be specified.
|
||||
|
||||
For a user-land software distribution, that means that the process that
|
||||
builds GCC (then used to build all other programs) must itself be
|
||||
specified; and the process to build the C library to build that GCC; and
|
||||
the process to build the GCC to build that library; and... See the
|
||||
problem? Chicken-and-egg.
|
||||
|
||||
To break that cycle, the distro starts from a set of pre-built
|
||||
binaries–usually referred to as “bootstrap binaries.” These include
|
||||
statically-linked versions of Guile, GCC, Coreutils, Make, Grep, sed,
|
||||
etc., and the GNU C Library.
|
||||
|
||||
This section describes how to build those bootstrap binaries when
|
||||
porting to a new platform.
|
||||
|
||||
** When the platform is supported by Nixpkgs
|
||||
|
||||
In that case, the easiest thing is to bootstrap the distro using
|
||||
binaries from Nixpkgs.
|
||||
|
||||
To do that, you need to comment out the definitions of
|
||||
‘%bootstrap-guile’ and ‘%bootstrap-inputs’ in distro/packages/bootstrap.scm
|
||||
to force the use of Nixpkgs derivations. For instance, when porting to
|
||||
‘i686-linux’, you should redefine these variables along these lines:
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(define %bootstrap-guile
|
||||
(nixpkgs-derivation "guile" "i686-linux"))
|
||||
|
||||
(define %bootstrap-inputs
|
||||
(compile-time-value
|
||||
`(("libc" ,(nixpkgs-derivation "glibc" "i686-linux"))
|
||||
,@(map (lambda (name)
|
||||
(list name (nixpkgs-derivation name "i686-linux")))
|
||||
'("gnutar" "gzip" "bzip2" "xz" "patch"
|
||||
"coreutils" "gnused" "gnugrep" "bash"
|
||||
"gawk" ; used by `config.status'
|
||||
"gcc" "binutils")))))
|
||||
#+END_SRC
|
||||
|
||||
That should allow the distro to be bootstrapped.
|
||||
|
||||
Then, the tarballs containing the initial binaries of Guile, Coreutils,
|
||||
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)' \
|
||||
--system=i686-linux
|
||||
|
||||
#+END_SRC
|
||||
|
||||
These should build tarballs containing statically-linked tools usable on
|
||||
that system.
|
||||
|
||||
In the source tree, you need to install binaries for ‘mkdir’, ‘bash’,
|
||||
‘tar’, and ‘xz’ under ‘distro/packages/bootstrap/i686-linux’. These
|
||||
binaries can be extracted from the static-binaries tarball built above.
|
||||
|
||||
A rule for ‘distro/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz’
|
||||
needs to be added in ‘Makefile.am’, with the appropriate hexadecimal
|
||||
vrepresentation of its SHA256 hash.
|
||||
|
||||
You may then revert your changes to ‘bootstrap.scm’. For the variables
|
||||
‘%bootstrap-coreutils&co’, ‘%bootstrap-binutils’, ‘%bootstrap-glibc’,
|
||||
and ‘%bootstrap-gcc’, the expected SHA256 of the corresponding tarballs
|
||||
for ‘i686-linux’ (built above) must be added.
|
||||
|
||||
This should be enough to bootstrap the distro without resorting to
|
||||
Nixpkgs.
|
||||
|
||||
** When the platform is *not* supported by Nixpkgs
|
||||
|
||||
In that case, the bootstrap binaries should be built using whatever
|
||||
tools are available on the target platform. That is, the tarballs and
|
||||
binaries show above must first be built manually, using the available
|
||||
tools.
|
||||
|
||||
They should have the same properties as those built by the Guix recipes
|
||||
shown above. For example, all the binaries (except for glibc) must be
|
||||
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.
|
||||
|
||||
+225
-30
@@ -1,73 +1,255 @@
|
||||
# Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2013 Andreas Enge <andreas@enge.fr>
|
||||
#
|
||||
# This file is part of Guix.
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
# Guix is free software; you can redistribute it and/or modify it
|
||||
# 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.
|
||||
#
|
||||
# Guix is distributed in the hope that it will be useful, but
|
||||
# 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 Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
bin_SCRIPTS = guix-build
|
||||
bin_SCRIPTS = \
|
||||
guix-build \
|
||||
guix-download \
|
||||
guix-import \
|
||||
guix-package \
|
||||
guix-gc
|
||||
|
||||
MODULES = \
|
||||
guix/base32.scm \
|
||||
guix/utils.scm \
|
||||
guix/derivations.scm \
|
||||
guix/download.scm \
|
||||
guix/gnu-maintenance.scm \
|
||||
guix/licenses.scm \
|
||||
guix/build-system.scm \
|
||||
guix/build-system/gnu.scm \
|
||||
guix/http.scm \
|
||||
guix/build-system/trivial.scm \
|
||||
guix/ftp-client.scm \
|
||||
guix/store.scm \
|
||||
guix/ui.scm \
|
||||
guix/build/download.scm \
|
||||
guix/build/gnu-build-system.scm \
|
||||
guix/build/http.scm \
|
||||
guix/build/utils.scm \
|
||||
guix/build/union.scm \
|
||||
guix/packages.scm \
|
||||
guix/snix.scm \
|
||||
guix.scm \
|
||||
distro.scm \
|
||||
distro/base.scm
|
||||
gnu/packages.scm \
|
||||
gnu/packages/acl.scm \
|
||||
gnu/packages/algebra.scm \
|
||||
gnu/packages/aspell.scm \
|
||||
gnu/packages/attr.scm \
|
||||
gnu/packages/autotools.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/check.scm \
|
||||
gnu/packages/compression.scm \
|
||||
gnu/packages/cpio.scm \
|
||||
gnu/packages/cyrus-sasl.scm \
|
||||
gnu/packages/dejagnu.scm \
|
||||
gnu/packages/ddrescue.scm \
|
||||
gnu/packages/ed.scm \
|
||||
gnu/packages/emacs.scm \
|
||||
gnu/packages/file.scm \
|
||||
gnu/packages/flex.scm \
|
||||
gnu/packages/gawk.scm \
|
||||
gnu/packages/gdb.scm \
|
||||
gnu/packages/gdbm.scm \
|
||||
gnu/packages/gettext.scm \
|
||||
gnu/packages/global.scm \
|
||||
gnu/packages/gnupg.scm \
|
||||
gnu/packages/gnutls.scm \
|
||||
gnu/packages/gperf.scm \
|
||||
gnu/packages/gsasl.scm \
|
||||
gnu/packages/guile.scm \
|
||||
gnu/packages/help2man.scm \
|
||||
gnu/packages/icu4c.scm \
|
||||
gnu/packages/idutils.scm \
|
||||
gnu/packages/indent.scm \
|
||||
gnu/packages/ld-wrapper.scm \
|
||||
gnu/packages/less.scm \
|
||||
gnu/packages/libffi.scm \
|
||||
gnu/packages/libidn.scm \
|
||||
gnu/packages/libjpeg.scm \
|
||||
gnu/packages/libsigsegv.scm \
|
||||
gnu/packages/libtiff.scm \
|
||||
gnu/packages/libunistring.scm \
|
||||
gnu/packages/libusb.scm \
|
||||
gnu/packages/linux.scm \
|
||||
gnu/packages/lout.scm \
|
||||
gnu/packages/lsh.scm \
|
||||
gnu/packages/m4.scm \
|
||||
gnu/packages/mailutils.scm \
|
||||
gnu/packages/make-bootstrap.scm \
|
||||
gnu/packages/mit-krb5.scm \
|
||||
gnu/packages/multiprecision.scm \
|
||||
gnu/packages/mysql.scm \
|
||||
gnu/packages/nano.scm \
|
||||
gnu/packages/ncurses.scm \
|
||||
gnu/packages/nettle.scm \
|
||||
gnu/packages/openssl.scm \
|
||||
gnu/packages/perl.scm \
|
||||
gnu/packages/pkg-config.scm \
|
||||
gnu/packages/pth.scm \
|
||||
gnu/packages/python.scm \
|
||||
gnu/packages/readline.scm \
|
||||
gnu/packages/recutils.scm \
|
||||
gnu/packages/rsync.scm \
|
||||
gnu/packages/scheme.scm \
|
||||
gnu/packages/shishi.scm \
|
||||
gnu/packages/system.scm \
|
||||
gnu/packages/tcl.scm \
|
||||
gnu/packages/texinfo.scm \
|
||||
gnu/packages/time.scm \
|
||||
gnu/packages/wget.scm \
|
||||
gnu/packages/which.scm \
|
||||
gnu/packages/xml.scm \
|
||||
gnu/packages/zile.scm
|
||||
|
||||
GOBJECTS = $(MODULES:%.scm=%.go)
|
||||
|
||||
nobase_dist_guilemodule_DATA = \
|
||||
$(MODULES) \
|
||||
distro/guile-1.8-cpp-4.5.patch
|
||||
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
|
||||
|
||||
nobase_nodist_guilemodule_DATA = $(GOBJECTS)
|
||||
nobase_dist_guilemodule_DATA = $(MODULES)
|
||||
|
||||
patchdir = $(guilemoduledir)/gnu/packages/patches
|
||||
dist_patch_DATA = \
|
||||
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
||||
gnu/packages/patches/binutils-ld-new-dtags.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/gettext-gets-undeclared.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/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/readline-link-ncurses.patch \
|
||||
gnu/packages/patches/shishi-gets-undeclared.patch \
|
||||
gnu/packages/patches/tar-gets-undeclared.patch
|
||||
|
||||
bootstrapdir = $(guilemoduledir)/gnu/packages/bootstrap
|
||||
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
|
||||
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
|
||||
|
||||
dist_bootstrap_x86_64_linux_DATA = \
|
||||
gnu/packages/bootstrap/x86_64-linux/bash \
|
||||
gnu/packages/bootstrap/x86_64-linux/mkdir \
|
||||
gnu/packages/bootstrap/x86_64-linux/tar \
|
||||
gnu/packages/bootstrap/x86_64-linux/xz
|
||||
|
||||
dist_bootstrap_i686_linux_DATA = \
|
||||
gnu/packages/bootstrap/i686-linux/bash \
|
||||
gnu/packages/bootstrap/i686-linux/mkdir \
|
||||
gnu/packages/bootstrap/i686-linux/tar \
|
||||
gnu/packages/bootstrap/i686-linux/xz
|
||||
|
||||
# Big bootstrap binaries are not included in the tarball. Instead, they
|
||||
# are downloaded.
|
||||
nodist_bootstrap_x86_64_linux_DATA = \
|
||||
gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz
|
||||
nodist_bootstrap_i686_linux_DATA = \
|
||||
gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz
|
||||
|
||||
# Those files must remain executable, so they remain executable once
|
||||
# imported into the store.
|
||||
install-data-hook:
|
||||
chmod +x $(DESTDIR)$(bootstrapdir)/*/{bash,mkdir,tar,xz}
|
||||
|
||||
DISTCLEANFILES = \
|
||||
$(nodist_bootstrap_x86_64_linux_DATA) \
|
||||
$(nodist_bootstrap_i686_linux_DATA)
|
||||
|
||||
# Method to download a file from an external source.
|
||||
DOWNLOAD_FILE = \
|
||||
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
|
||||
$(GUILE) --no-auto-compile -L "$(top_builddir)" -L "$(top_srcdir)" \
|
||||
"$(top_srcdir)/build-aux/download.scm"
|
||||
|
||||
gnu/packages/bootstrap/x86_64-linux/guile-2.0.7.tar.xz:
|
||||
$(MKDIR_P) `dirname "$@"`
|
||||
$(DOWNLOAD_FILE) "$@" "bc43210dcd146d242bef4d354b0aeac12c4ef3118c07502d17ffa8d49e15aa2c"
|
||||
gnu/packages/bootstrap/i686-linux/guile-2.0.7.tar.xz:
|
||||
$(MKDIR_P) `dirname "$@"`
|
||||
$(DOWNLOAD_FILE) "$@" "f9a7c6f4c556eaafa2a69bcf07d4ffbb6682ea831d4c9da9ba095aca3ccd217c"
|
||||
|
||||
nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
|
||||
|
||||
TESTS = \
|
||||
tests/base32.scm \
|
||||
tests/builders.scm \
|
||||
tests/derivations.scm \
|
||||
tests/utils.scm \
|
||||
tests/build-utils.scm \
|
||||
tests/packages.scm
|
||||
tests/packages.scm \
|
||||
tests/snix.scm \
|
||||
tests/store.scm \
|
||||
tests/union.scm \
|
||||
tests/guix-build.sh \
|
||||
tests/guix-download.sh \
|
||||
tests/guix-gc.sh \
|
||||
tests/guix-package.sh
|
||||
|
||||
TESTS_ENVIRONMENT = \
|
||||
NIXPKGS="$(NIXPKGS)"; \
|
||||
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH"; \
|
||||
export NIXPKGS GUILE_LOAD_COMPILED_PATH;
|
||||
TEST_EXTENSIONS = .scm .sh
|
||||
|
||||
LOG_COMPILER = \
|
||||
$(GUILE) --no-auto-compile -L "$(top_srcdir)"
|
||||
AM_TESTS_ENVIRONMENT = abs_top_srcdir="$(abs_top_srcdir)"
|
||||
|
||||
EXTRA_DIST = build-aux/config.rpath $(TESTS)
|
||||
SCM_LOG_COMPILER = $(top_builddir)/test-env $(GUILE)
|
||||
AM_SCM_LOG_FLAGS = --no-auto-compile -L "$(top_srcdir)"
|
||||
|
||||
SH_LOG_COMPILER = $(top_builddir)/test-env $(SHELL)
|
||||
AM_SH_LOG_FLAGS = -x -e
|
||||
|
||||
EXTRA_DIST = \
|
||||
HACKING \
|
||||
ROADMAP \
|
||||
TODO \
|
||||
.dir-locals.el \
|
||||
hydra.scm \
|
||||
build-aux/download.scm \
|
||||
srfi/srfi-64.scm \
|
||||
srfi/srfi-64.upstream.scm \
|
||||
tests/test.drv \
|
||||
build-aux/config.rpath \
|
||||
bootstrap \
|
||||
release.nix \
|
||||
$(TESTS)
|
||||
|
||||
CLEANFILES = $(GOBJECTS) *.log
|
||||
|
||||
.scm.go:
|
||||
$(MKDIR_P) `dirname "$@"`
|
||||
NIXPKGS="$(NIXPKGS)" \
|
||||
GUILE_AUTO_COMPILE=0 \
|
||||
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
|
||||
$(GUILD) compile -L "$(top_srcdir)" \
|
||||
-Wformat -Wunbound-variable -Warity-mismatch \
|
||||
--target="$(host)" \
|
||||
$(top_builddir)/pre-inst-env \
|
||||
$(GUILD) compile -L "$(top_builddir)" -L "$(top_srcdir)" \
|
||||
-Wformat -Wunbound-variable -Warity-mismatch \
|
||||
--target="$(host)" \
|
||||
-o "$@" "$<"
|
||||
|
||||
SUFFIXES = .go
|
||||
@@ -82,4 +264,17 @@ $(guix_install_go_files): install-nobase_dist_guilemoduleDATA
|
||||
|
||||
SUBDIRS = po
|
||||
|
||||
info_TEXINFOS = doc/guix.texi
|
||||
EXTRA_DIST += doc/fdl-1.3.texi
|
||||
|
||||
if BUILD_DAEMON
|
||||
|
||||
include daemon.am
|
||||
|
||||
endif BUILD_DAEMON
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
AM_DISTCHECK_CONFIGURE_FLAGS = \
|
||||
--with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \
|
||||
--with-nix-prefix="$(NIX_PREFIX)" \
|
||||
--enable-daemon
|
||||
|
||||
@@ -1,30 +1,56 @@
|
||||
-*- mode: org -*-
|
||||
|
||||
Guix is Nix[0] from Guile[1]!
|
||||
[[http://www.gnu.org/software/guix/][GNU Guix]] (IPA: /ɡiːks/) is a purely functional package manager, and
|
||||
associated free software distribution, for the [[http://www.gnu.org/gnu/gnu.html][GNU system]]. In addition
|
||||
to standard package management features, Guix supports transactional
|
||||
upgrades and roll-backs, unprivileged package management, per-user
|
||||
profiles, and garbage collection.
|
||||
|
||||
Concretely, it allows Nix package management to be done entirely in
|
||||
Scheme. The goal is to investigate whether Scheme, and in particular
|
||||
the ability to define EDSLs, would allow it to fulfill the role of the
|
||||
Nix language.
|
||||
It provides [[http://www.gnu.org/software/guile/][Guile]] Scheme APIs, including a high-level embedded
|
||||
domain-specific languages (EDSLs) to describe how packages are to be
|
||||
built and composed.
|
||||
|
||||
[0] http://nixos.org/nix/
|
||||
[1] http://gnu.org/software/guile/
|
||||
A user-land free software distribution for GNU/Linux comes as part of
|
||||
Guix.
|
||||
|
||||
Guix is based on the [[http://nixos.org/nix/][Nix]] package manager.
|
||||
|
||||
|
||||
* Hacking
|
||||
* Requirements
|
||||
|
||||
Guix currently depends on the following packages:
|
||||
GNU Guix currently depends on the following packages:
|
||||
|
||||
- [[http://gnu.org/software/guile/][GNU Guile 2.0.x]]
|
||||
- [[http://nixos.org/nix/][Nix]]
|
||||
- [[http://gnupg.org/][GNU libgcrypt]], or [[http://nongnu.org/libchop/][libchop]]
|
||||
- [[http://gnupg.org/][GNU libgcrypt]]
|
||||
|
||||
For bootstrapping purposes, it is useful to reuse packages from Nixpkgs.
|
||||
For this to work, you need to have a checkout of the Nixpkgs repository,
|
||||
with the `NIXPKGS' environment variable pointing to it.
|
||||
Unless `--disable-daemon' was passed, the following packages are needed:
|
||||
|
||||
- [[http://sqlite.org/][SQLite 3]]
|
||||
- [[http://www.bzip.org][libbz2]]
|
||||
- [[http://gcc.gnu.org][GCC's g++]]
|
||||
|
||||
When `--disable-daemon' was passed, you instead need the following:
|
||||
|
||||
- [[http://nixos.org/nix/][Nix]]
|
||||
|
||||
Optionally, packages from Nixpkgs may be transparently reused from Guix.
|
||||
For this to work, you need to have a checkout of the Nixpkgs repository;
|
||||
the `--with-nixpkgs' option allows you to let `configure' know where the
|
||||
Nixpkgs checkout is.
|
||||
|
||||
- [[http://nixos.org/nixpkgs/][Nixpkgs]]
|
||||
|
||||
When building Guix from a checkout, the following packages are also
|
||||
required:
|
||||
|
||||
- [[http://www.gnu.org/software/autoconf/][GNU Autoconf]]
|
||||
- [[http://www.gnu.org/software/automake/][GNU Automake]]
|
||||
- [[http://www.gnu.org/software/gettext/][GNU Gettext]]
|
||||
|
||||
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.
|
||||
|
||||
* How It Works
|
||||
|
||||
Guix does the high-level preparation of a /derivation/. A derivation is
|
||||
@@ -33,14 +59,81 @@ the promise of a build; it is stored as a text file under
|
||||
`derivation' primitive, as well as higher-level wrappers such as
|
||||
`build-expression->derivation'.
|
||||
|
||||
Guix does remote procedure calls (RPCs) to the Nix daemon (the
|
||||
=nix-worker --daemon= command), which in turn performs builds and
|
||||
accesses to the Nix store on its behalf. The RPCs are implemented in
|
||||
the (guix store) module.
|
||||
Guix does remote procedure calls (RPCs) to the Guix or Nix daemon (the
|
||||
=guix-daemon= or =nix-daemon= command), which in turn performs builds
|
||||
and accesses to the Nix store on its behalf. The RPCs are implemented
|
||||
in the (guix store) module.
|
||||
|
||||
* Installing Guix as non-root
|
||||
|
||||
The Guix daemon allows software builds to be performed under alternate
|
||||
user accounts, which are normally created specifically for this
|
||||
purpose. For instance, you may have a pool of accounts in the
|
||||
=guixbuild= group, and then you can instruct =guix-daemon= to use them
|
||||
like this:
|
||||
|
||||
$ guix-daemon --build-users-group=guixbuild
|
||||
|
||||
However, unless it is run as root, =guix-daemon= cannot switch users.
|
||||
In that case, it falls back to using a setuid-root helper program call
|
||||
=nix-setuid-helper=. That program is not setuid-root by default when
|
||||
you install it; instead you should run a command along these lines
|
||||
(assuming Guix is installed under /usr/local):
|
||||
|
||||
# chown root.root /usr/local/libexec/nix-setuid-helper
|
||||
# chmod 4755 /usr/local/libexec/nix-setuid-helper
|
||||
|
||||
* Contact
|
||||
|
||||
The repository is at <https://gitorious.org/guix/>.
|
||||
GNU Guix is hosted at https://savannah.gnu.org/projects/guix/.
|
||||
|
||||
Please email <ludo@gnu.org> or <nix-dev@lists.science.uu.nl>, or
|
||||
join #guile or #nixos on irc.freenode.net or `civodul'.
|
||||
Please email <bug-guix@gnu.org> for bug reports or questions regarding
|
||||
Guix and its distribution; email <gnu-system-discuss@gnu.org> for
|
||||
general issues regarding the GNU system.
|
||||
|
||||
Join #guix on irc.freenode.net.
|
||||
|
||||
* Guix & Nix
|
||||
|
||||
GNU Guix is based on [[http://nixos.org/nix/][the Nix package manager]]. It implements the same
|
||||
package deployment paradigm, and in fact it reuses some of its code.
|
||||
Yet, different engineering decisions were made for Guix, as described
|
||||
below.
|
||||
|
||||
Nix is really two things: a package build tool, implemented by a library
|
||||
and daemon, and a special-purpose programming language. GNU Guix relies
|
||||
on the former, but uses Scheme as a replacement for the latter.
|
||||
|
||||
Using Scheme instead of a specific language allows us to get all the
|
||||
features and tooling that come with Guile (compiler, debugger, REPL,
|
||||
Unicode, libraries, etc.) And it means that we have a general-purpose
|
||||
language, on top of which we can have embedded domain-specific languages
|
||||
(EDSLs), such as the one used to define packages. This broadens what
|
||||
can be done in package recipes themselves, and what can be done around them.
|
||||
|
||||
Technically, Guix makes remote procedure calls to the ‘nix-worker’
|
||||
daemon to perform operations on the store. At the lowest level, Nix
|
||||
“derivations” represent promises of a build, stored in ‘.drv’ files in
|
||||
the store. Guix produces such derivations, which are then interpreted
|
||||
by the daemon to perform the build. Thus, Guix derivations can use
|
||||
derivations produced by Nix (and vice versa).
|
||||
|
||||
With Nix and the [[http://nixos.org/nixpkgs][Nixpkgs]] distribution, package composition happens at
|
||||
the Nix language level, but builders are usually written in Bash.
|
||||
Conversely, Guix encourages the use of Scheme for both package
|
||||
composition and builders. Likewise, the core functionality of Nix is
|
||||
written in C++ and Perl; Guix relies on some of the original C++ code,
|
||||
but exposes all the API as Scheme.
|
||||
|
||||
* Related software
|
||||
|
||||
- [[http://nixos.org][Nix, Nixpkgs, and NixOS]], functional package manager and associated
|
||||
software distribution, are the inspiration of Guix
|
||||
- [[http://www.gnu.org/software/stow/][GNU Stow]] builds around the idea of one directory per prefix, and a
|
||||
symlink tree to create user environments
|
||||
- [[http://www.pvv.ntnu.no/~arnej/store/storedoc_6.html][STORE]] shares the same idea
|
||||
- [[https://live.gnome.org/OSTree/][GNOME's OSTree]] allows bootable system images to be built from a
|
||||
specified set of packages
|
||||
- The [[http://www.gnu.org/s/gsrc/][GNU Source Release Collection]] (GSRC) is a user-land software
|
||||
distribution; unlike Guix, it relies on core tools available on the
|
||||
host system
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
-*- mode: org; coding: utf-8; -*-
|
||||
|
||||
#+TITLE: Tentative GNU Guix Road Map
|
||||
|
||||
Copyright © 2012 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.
|
||||
|
||||
The goals of the GNU Guix project are two-fold:
|
||||
|
||||
- to build a purely functional package manager, based on Nix and
|
||||
Guile;
|
||||
|
||||
- to use it to build a practical 100% free software distribution of
|
||||
GNU/Linux and possibly other GNU variants, with a focus on the
|
||||
promotion and tight integration of GNU components.
|
||||
|
||||
This documents lists tentative milestones toward these goals.
|
||||
|
||||
|
||||
* GNU Guix 0.1: Dec. 2012
|
||||
|
||||
** basic package management facilities
|
||||
|
||||
Including install, upgrade, remove, roll-back, and search.
|
||||
|
||||
** self-contained user-land distribution
|
||||
|
||||
- GNU/Linux-only, i686 and x86_64; optionally mipsel64
|
||||
- ~100 non-X11 packages
|
||||
|
||||
** maybe integrated Nix code
|
||||
|
||||
* GNU Guix 0.2: Feb./Mar. 2013
|
||||
|
||||
** improved package management features
|
||||
|
||||
- user-environment hooks
|
||||
- sophisticated handling of collisions when building a union (package
|
||||
priorities, etc.)
|
||||
|
||||
** auto-update facility available for GNU packages
|
||||
|
||||
** more packages
|
||||
|
||||
- Xorg
|
||||
- Emacs
|
||||
|
||||
* GNU Guix 0.9: June 2013
|
||||
|
||||
** bootable GNU/Linux-Libre distro
|
||||
** high-level OS configuration descriptive EDSL, à la NixOS
|
||||
|
||||
* GNU Guix 1.0: September 2013 (GNU anniversary release)
|
||||
|
||||
** bootable GNU/Linux-Libre distro with non-GUI installer
|
||||
** usable for a range of hacker-style uses
|
||||
@@ -1,3 +1,8 @@
|
||||
A big thanks to Eelco Dolstra, who designed and implemented Nix.
|
||||
Transposing functional programming discipline to package management
|
||||
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>
|
||||
|
||||
@@ -0,0 +1,165 @@
|
||||
-*- mode: org; coding: utf-8; -*-
|
||||
|
||||
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
|
||||
notice and this notice are preserved.
|
||||
|
||||
* 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
|
||||
to be exported, and to check such signatures. The signing keys are
|
||||
usually in /etc/nix/signing-key.{pub,sec}. They are a PKCS#8-encoded
|
||||
X.509 SubjectPublicKeyInfo. These can be decoded with the [[http://lists.gnu.org/archive/html/help-gnutls/2012-12/msg00012.html][C API of
|
||||
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.
|
||||
|
||||
** MAYBE Add a substituter that uses the GNUnet DHT
|
||||
|
||||
Would be neat if binaries could be pushed to and pulled from the GNUnet
|
||||
DHT. Guix users would sign their binaries, and define which binaries
|
||||
they trust.
|
||||
|
||||
** Add a remote build hook
|
||||
|
||||
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
|
||||
|
||||
Unfortunately package.el is monolithic, so most likely we’d have to
|
||||
write a new one based on it, as opposed to actually using it.
|
||||
|
||||
* extend <origin>
|
||||
** add OpenPGP signatures:
|
||||
|
||||
(origin
|
||||
(method http-fetch)
|
||||
(uri "http://.../foo.tgz")
|
||||
(signature-uri (string-append uri ".sig"))
|
||||
(signer-openpgp-fingerprint "..."))
|
||||
|
||||
** allow <origin> to be a derivation/package or a file
|
||||
|
||||
* 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
|
||||
environment with ‘guix-package’. For instance, Texinfo’s hook would
|
||||
create a new ‘dir’.
|
||||
|
||||
** add ‘patches’ there
|
||||
|
||||
** extend ‘propagated-build-inputs’ with support for multiple outputs
|
||||
|
||||
#+BEGIN_SRC scheme
|
||||
(outputs '("out" "include"))
|
||||
(propagated-build-inputs
|
||||
`(((("i1" ,p1 "o1")
|
||||
("i2" ,p2))
|
||||
=> "include")
|
||||
("i3" ,p3)))
|
||||
#+END_SRC
|
||||
|
||||
* support cross-compilation
|
||||
|
||||
Implement ‘package-cross-derivation’, and add the corresponding code in
|
||||
‘gnu-build-system’. Then, actually bootstrap a cross-compilation
|
||||
environment–e.g., a cross-GNU environment.
|
||||
|
||||
* add a guildhall build system
|
||||
|
||||
The Guildhall is Guile’s packaging system. It should be easy to add a
|
||||
‘guildhall-build-system’ that does the right thing based on guildhall
|
||||
recipes.
|
||||
|
||||
* gnu-build-system: produce a ‘debug’ derivation
|
||||
|
||||
Set a .gnu_debuglink in the main derivations to point to the sibling
|
||||
file name (only the basename, to not retain a dependency on the ‘debug’
|
||||
derivation.)
|
||||
|
||||
For /nix/store/xyz-foobar/bin/foo, we should have
|
||||
/nix/store/abc-foobar-debug/lib/nix/store/xyz-foobar/bin/foo.debug (info
|
||||
"(gdb) Separate Debug Files").
|
||||
|
||||
Users should have a default GDB setting with ~/.guix-profile/lib/debug
|
||||
as their ‘debug-file-directory’.
|
||||
|
||||
* build-expression->derivation: define `%system' in the builder
|
||||
|
||||
Would allow build expressions to have system-dependent code, like
|
||||
`glibc-dynamic-linker'.
|
||||
|
||||
* add ‘allowed-references’ in <package>
|
||||
|
||||
[[file:~/src/nix/src/libstore/build.cc::if%20(drv.env.find("allowedReferences")%20!%3D%20drv.env.end())%20{][See how Nix implements that internally]].
|
||||
|
||||
* union
|
||||
|
||||
Support sophisticated collision handling when building a union: check
|
||||
whether the colliding files are identical, honor per-package priorities,
|
||||
etc.
|
||||
|
||||
* 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]]
|
||||
|
||||
** 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’
|
||||
|
||||
Problems include that current glibc releases do not build on GNU/Hurd.
|
||||
In addition, there haven’t been stable releases of GNU Mach, MiG, and
|
||||
Hurd, which would be a pre-condition.
|
||||
|
||||
** make a bootable GNU/Linux-Libre distro, with OS configuration EDSL
|
||||
|
||||
Similar in spirit to /etc/nixos/configuration.nix.
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Import missing source files and create the build system.
|
||||
|
||||
set -e -x
|
||||
|
||||
top_srcdir="$PWD"
|
||||
export top_srcdir
|
||||
|
||||
git submodule init
|
||||
git submodule update
|
||||
|
||||
./nix/sync-with-upstream
|
||||
|
||||
exec autoreconf -vfi
|
||||
@@ -0,0 +1,62 @@
|
||||
;;; 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/>.
|
||||
|
||||
;;;
|
||||
;;; Download a binary file from an external source.
|
||||
;;;
|
||||
|
||||
(use-modules (ice-9 match)
|
||||
(web uri)
|
||||
(web client)
|
||||
(rnrs io ports)
|
||||
(srfi srfi-11)
|
||||
(guix utils))
|
||||
|
||||
(define %url-base
|
||||
"http://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
|
||||
;; Alternately:
|
||||
;;"http://www.fdn.fr/~lcourtes/software/guix/packages"
|
||||
)
|
||||
|
||||
(define (file-name->uri file)
|
||||
"Return the URI for FILE."
|
||||
(match (string-tokenize file (char-set-complement (char-set #\/)))
|
||||
((_ ... system basename)
|
||||
(string->uri (string-append %url-base "/" system
|
||||
"/20130105/" basename)))))
|
||||
|
||||
(match (command-line)
|
||||
((_ file expected-hash)
|
||||
(let ((uri (file-name->uri file)))
|
||||
(format #t "downloading file `~a' from `~a'...~%"
|
||||
file (uri->string uri))
|
||||
(let*-values (((resp data) (http-get uri #:decode-body? #f))
|
||||
((hash) (bytevector->base16-string (sha256 data)))
|
||||
((part) (string-append file ".part")))
|
||||
(if (string=? expected-hash hash)
|
||||
(begin
|
||||
(call-with-output-file part
|
||||
(lambda (port)
|
||||
(put-bytevector port data)))
|
||||
(rename-file part file))
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"file at `~a' has SHA256 ~a; expected ~a~%"
|
||||
(uri->string uri) hash expected-hash)
|
||||
(exit 1)))))))
|
||||
@@ -0,0 +1,100 @@
|
||||
dnl -*- Autoconf -*- fragment for the C++ daemon.
|
||||
|
||||
AC_MSG_CHECKING([whether to build daemon])
|
||||
AC_MSG_RESULT([$guix_build_daemon])
|
||||
|
||||
dnl C++ environment. This macro must be used unconditionnaly.
|
||||
AC_PROG_CXX
|
||||
|
||||
if test "x$guix_build_daemon" = "xyes"; then
|
||||
|
||||
AC_PROG_RANLIB
|
||||
AC_CONFIG_HEADER([nix/config.h])
|
||||
|
||||
dnl Use 64-bit file system calls so that we can support files > 2 GiB.
|
||||
AC_SYS_LARGEFILE
|
||||
|
||||
dnl Look for libbz2, a required dependency.
|
||||
AC_CHECK_LIB([bz2], [BZ2_bzWriteOpen], [true],
|
||||
[AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2. See http://www.bzip.org/.])])
|
||||
AC_CHECK_HEADERS([bzlib.h], [true],
|
||||
[AC_MSG_ERROR([Guix requires libbz2, which is part of bzip2. See http://www.bzip.org/.])])
|
||||
|
||||
dnl Look for SQLite, a required dependency.
|
||||
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19])
|
||||
|
||||
AC_DEFINE([NIX_VERSION], ["0.0.0"], [Fake Nix version number.])
|
||||
AC_DEFINE_UNQUOTED([SYSTEM], ["$guix_system"],
|
||||
[Guix host system type--i.e., platform and OS kernel tuple.])
|
||||
|
||||
case "$LIBGCRYPT_PREFIX" in
|
||||
no)
|
||||
LIBGCRYPT_CFLAGS=""
|
||||
LIBGCRYPT_LIBS=""
|
||||
;;
|
||||
*)
|
||||
LIBGCRYPT_CFLAGS="-I$LIBGCRYPT_PREFIX/include"
|
||||
LIBGCRYPT_LIBS="-L$LIBGCRYPT_PREFIX/lib -lgcrypt"
|
||||
;;
|
||||
esac
|
||||
AC_SUBST([LIBGCRYPT_CFLAGS])
|
||||
AC_SUBST([LIBGCRYPT_LIBS])
|
||||
|
||||
save_CFLAGS="$CFLAGS"
|
||||
save_LDFLAGS="$LDFLAGS"
|
||||
CFLAGS="$CFLAGS $LIBGCRYPT_CFLAGS"
|
||||
LDFLAGS="$LDFLAGS $LIBGCRYPT_LDFLAGS"
|
||||
|
||||
have_gcrypt=yes
|
||||
AC_CHECK_LIB([gcrypt], [gcry_md_open], [:], [have_gcrypt=no])
|
||||
AC_CHECK_HEADER([gcrypt.h], [:], [have_gcrypt=no])
|
||||
if test "x$have_gcrypt" != "xyes"; then
|
||||
AC_MSG_ERROR([GNU libgcrypt not found; please install it.])
|
||||
fi
|
||||
|
||||
CFLAGS="$save_CFLAGS"
|
||||
LDFLAGS="$save_LDFLAGS"
|
||||
|
||||
dnl Chroot support.
|
||||
AC_CHECK_FUNCS([chroot unshare])
|
||||
AC_CHECK_HEADERS([sched.h sys/param.h sys/mount.h])
|
||||
|
||||
dnl Check for lutimes, optionally used for changing the mtime of
|
||||
dnl symlinks.
|
||||
AC_CHECK_FUNCS([lutimes])
|
||||
|
||||
dnl Check whether the store optimiser can optimise symlinks.
|
||||
AC_MSG_CHECKING([whether it is possible to create a link to a symlink])
|
||||
ln -s bla tmp_link
|
||||
if ln tmp_link tmp_link2 2> /dev/null; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(CAN_LINK_SYMLINK, 1, [Whether link() works on symlinks.])
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
rm -f tmp_link tmp_link2
|
||||
|
||||
dnl Check for <locale>.
|
||||
AC_LANG_PUSH(C++)
|
||||
AC_CHECK_HEADERS([locale])
|
||||
AC_LANG_POP(C++)
|
||||
|
||||
|
||||
dnl Check whether we have the `personality' syscall, which allows us
|
||||
dnl to do i686-linux builds on x86_64-linux machines.
|
||||
AC_CHECK_HEADERS([sys/personality.h])
|
||||
|
||||
dnl Check for <linux/fs.h> (for immutable file support).
|
||||
AC_CHECK_HEADERS([linux/fs.h])
|
||||
|
||||
dnl Temporary directory used to store the daemon's data.
|
||||
AC_MSG_CHECKING([for unit test root])
|
||||
GUIX_TEST_ROOT="`pwd`/test-tmp"
|
||||
AC_MSG_RESULT([$GUIX_TEST_ROOT])
|
||||
AC_SUBST([GUIX_TEST_ROOT])
|
||||
|
||||
AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
|
||||
[chmod +x nix/scripts/list-runtime-roots])
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([BUILD_DAEMON], [test "x$guix_build_daemon" = "xyes"])
|
||||
+71
-9
@@ -2,7 +2,8 @@
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
|
||||
AC_PREREQ(2.68)
|
||||
AC_INIT([Guix], [0.0], [guile-user@gnu.org])
|
||||
AC_INIT([GNU Guix], [0.1], [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 \
|
||||
@@ -11,29 +12,56 @@ AM_INIT_AUTOMAKE([1.11 gnu silent-rules subdir-objects \
|
||||
AC_CONFIG_SRCDIR([guix.scm])
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
|
||||
dnl For the C++ code. This must be used early.
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([0.18.1])
|
||||
|
||||
guilemoduledir="${datarootdir}/guile/site/2.0"
|
||||
AC_SUBST([guilemoduledir])
|
||||
|
||||
AC_CANONICAL_HOST
|
||||
GUIX_SYSTEM_TYPE
|
||||
|
||||
AC_ARG_WITH(store-dir,
|
||||
AC_HELP_STRING([--with-store-dir=PATH],
|
||||
[path of the store (defaults to /nix/store)]),
|
||||
[storedir="$withval"],
|
||||
[storedir="/nix/store"])
|
||||
AC_SUBST(storedir)
|
||||
|
||||
AC_ARG_ENABLE([daemon],
|
||||
[AS_HELP_STRING([--disable-daemon], [build the Nix daemon (C++)])],
|
||||
[guix_build_daemon="$enableval"],
|
||||
[guix_build_daemon="yes"])
|
||||
|
||||
# Prepare a version of $localstatedir that does not contain references
|
||||
# to shell variables.
|
||||
guix_localstatedir="`eval echo $localstatedir | sed -e "s|NONE|/usr/local|g"`"
|
||||
AC_SUBST([guix_localstatedir])
|
||||
|
||||
PKG_CHECK_MODULES([GUILE], [guile-2.0])
|
||||
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
|
||||
|
||||
AC_ARG_WITH([nix-prefix],
|
||||
[AS_HELP_STRING([--with-nix-prefix=DIR], [search for Nix in DIR])],
|
||||
[case "$withval" in
|
||||
yes|no) ;;
|
||||
*) PATH="$withval/bin:$PATH"; export PATH;;
|
||||
*)
|
||||
NIX_PREFIX="$withval"
|
||||
PATH="$NIX_PREFIX/bin:$PATH"; export PATH
|
||||
AC_SUBST([NIX_PREFIX])
|
||||
;;
|
||||
esac],
|
||||
[])
|
||||
|
||||
AC_PATH_PROG([NIX_INSTANTIATE], [nix-instantiate])
|
||||
AC_PATH_PROG([NIX_HASH], [nix-hash])
|
||||
if test "x$NIX_INSTANTIATE$NIX_HASH" = "x"; then
|
||||
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
|
||||
|
||||
@@ -45,19 +73,53 @@ AC_ARG_WITH([nixpkgs],
|
||||
esac],
|
||||
[])
|
||||
|
||||
AC_MSG_CHECKING([for Nixpkgs source tree])
|
||||
if test -f "$NIXPKGS/default.nix"; then
|
||||
AC_MSG_CHECKING([for Nixpkgs source tree])
|
||||
AC_MSG_RESULT([$NIXPKGS])
|
||||
AC_SUBST([NIXPKGS])
|
||||
else
|
||||
AC_MSG_WARN([Nixpkgs not found; this will prevent most tests from running.])
|
||||
AC_MSG_WARN([Please use `--with-nixpkgs'.])
|
||||
AC_MSG_RESULT([not found])
|
||||
fi
|
||||
|
||||
AC_ARG_WITH([libgcrypt-prefix],
|
||||
[AS_HELP_STRING([--with-libgcrypt-prefix=DIR], [search for GNU libgcrypt in DIR])],
|
||||
[case "$withval" in
|
||||
yes|no)
|
||||
LIBGCRYPT="libgcrypt"
|
||||
LIBGCRYPT_PREFIX="no"
|
||||
;;
|
||||
*)
|
||||
LIBGCRYPT="$withval/lib/libgcrypt"
|
||||
LIBGCRYPT_PREFIX="$withval"
|
||||
;;
|
||||
esac],
|
||||
[LIBGCRYPT="libgcrypt"])
|
||||
|
||||
dnl Library name suitable for `dynamic-link'.
|
||||
AC_MSG_CHECKING([for libgcrypt shared library name])
|
||||
AC_MSG_RESULT([$LIBGCRYPT])
|
||||
AC_SUBST([LIBGCRYPT])
|
||||
AC_SUBST([LIBGCRYPT_PREFIX])
|
||||
|
||||
GUIX_ASSERT_LIBGCRYPT_USABLE
|
||||
|
||||
AC_CACHE_SAVE
|
||||
|
||||
m4_include([config-daemon.ac])
|
||||
|
||||
AC_CONFIG_FILES([Makefile
|
||||
po/Makefile.in
|
||||
guix-build])
|
||||
guix/config.scm
|
||||
guix-build
|
||||
guix-download
|
||||
guix-import
|
||||
guix-package
|
||||
guix-gc
|
||||
pre-inst-env
|
||||
test-env])
|
||||
|
||||
AC_CONFIG_COMMANDS([commands-exec], [chmod +x guix-build])
|
||||
AC_CONFIG_COMMANDS([commands-exec],
|
||||
[chmod +x guix-build guix-download guix-import guix-package guix-gc \
|
||||
pre-inst-env test-env])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
# 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/>.
|
||||
|
||||
#
|
||||
# Integration of the `guix-daemon' code taken from upstream Nix.
|
||||
#
|
||||
|
||||
BUILT_SOURCES = nix/libstore/schema.sql.hh
|
||||
CLEANFILES += $(BUILT_SOURCES)
|
||||
|
||||
noinst_LIBRARIES = libformat.a libutil.a libstore.a
|
||||
|
||||
libformat_a_SOURCES = \
|
||||
nix/boost/format/free_funcs.cc \
|
||||
nix/boost/format/parsing.cc \
|
||||
nix/boost/format/format_implementation.cc
|
||||
|
||||
libformat_headers = \
|
||||
nix/boost/weak_ptr.hpp \
|
||||
nix/boost/throw_exception.hpp \
|
||||
nix/boost/checked_delete.hpp \
|
||||
nix/boost/shared_ptr.hpp \
|
||||
nix/boost/format.hpp \
|
||||
nix/boost/assert.hpp \
|
||||
nix/boost/format/macros_default.hpp \
|
||||
nix/boost/format/format_fwd.hpp \
|
||||
nix/boost/format/format_class.hpp \
|
||||
nix/boost/format/exceptions.hpp \
|
||||
nix/boost/format/group.hpp \
|
||||
nix/boost/format/feed_args.hpp \
|
||||
nix/boost/format/internals_fwd.hpp \
|
||||
nix/boost/format/internals.hpp \
|
||||
nix/boost/detail/workaround.hpp \
|
||||
nix/boost/detail/shared_count.hpp \
|
||||
nix/boost/enable_shared_from_this.hpp
|
||||
|
||||
libformat_a_CPPFLAGS = \
|
||||
-I$(top_srcdir)/nix
|
||||
|
||||
libutil_a_SOURCES = \
|
||||
nix/libutil/archive.cc \
|
||||
nix/libutil/serialise.cc \
|
||||
nix/libutil/util.cc \
|
||||
nix/libutil/xml-writer.cc \
|
||||
nix/libutil/hash.cc \
|
||||
nix/libutil/gcrypt-hash.cc
|
||||
|
||||
libutil_headers = \
|
||||
nix/libutil/hash.hh \
|
||||
nix/libutil/serialise.hh \
|
||||
nix/libutil/xml-writer.hh \
|
||||
nix/libutil/util.hh \
|
||||
nix/libutil/archive.hh \
|
||||
nix/libutil/types.hh \
|
||||
nix/libutil/gcrypt-hash.hh \
|
||||
nix/libutil/md5.h \
|
||||
nix/libutil/sha1.h \
|
||||
nix/libutil/sha256.h
|
||||
|
||||
libutil_a_CPPFLAGS = \
|
||||
-I$(top_builddir)/nix \
|
||||
-I$(top_srcdir)/nix/libutil \
|
||||
$(libformat_a_CPPFLAGS)
|
||||
|
||||
libstore_a_SOURCES = \
|
||||
nix/libstore/gc.cc \
|
||||
nix/libstore/globals.cc \
|
||||
nix/libstore/misc.cc \
|
||||
nix/libstore/references.cc \
|
||||
nix/libstore/store-api.cc \
|
||||
nix/libstore/optimise-store.cc \
|
||||
nix/libstore/local-store.cc \
|
||||
nix/libstore/remote-store.cc \
|
||||
nix/libstore/build.cc \
|
||||
nix/libstore/pathlocks.cc \
|
||||
nix/libstore/derivations.cc
|
||||
|
||||
libstore_headers = \
|
||||
nix/libstore/references.hh \
|
||||
nix/libstore/pathlocks.hh \
|
||||
nix/libstore/globals.hh \
|
||||
nix/libstore/schema.sql.hh \
|
||||
nix/libstore/worker-protocol.hh \
|
||||
nix/libstore/remote-store.hh \
|
||||
nix/libstore/derivations.hh \
|
||||
nix/libstore/misc.hh \
|
||||
nix/libstore/local-store.hh \
|
||||
nix/libstore/store-api.hh
|
||||
|
||||
libstore_a_CPPFLAGS = \
|
||||
$(libutil_a_CPPFLAGS) \
|
||||
-I$(top_srcdir)/nix/libstore \
|
||||
-DNIX_STORE_DIR=\"$(storedir)\" \
|
||||
-DNIX_DATA_DIR=\"$(datadir)\" \
|
||||
-DNIX_STATE_DIR=\"$(localstatedir)/nix\" \
|
||||
-DNIX_LOG_DIR=\"$(localstatedir)/log/nix\" \
|
||||
-DNIX_CONF_DIR=\"$(sysconfdir)/nix\" \
|
||||
-DNIX_LIBEXEC_DIR=\"$(libexecdir)\" \
|
||||
-DNIX_BIN_DIR=\"$(bindir)\" \
|
||||
-DOPENSSL_PATH="\"openssl\""
|
||||
|
||||
libstore_a_CFLAGS = \
|
||||
$(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS)
|
||||
|
||||
bin_PROGRAMS = guix-daemon
|
||||
|
||||
guix_daemon_SOURCES = \
|
||||
nix/nix-daemon/nix-daemon.cc \
|
||||
nix/nix-daemon/guix-daemon.cc
|
||||
|
||||
guix_daemon_CPPFLAGS = \
|
||||
$(libutil_a_CPPFLAGS) \
|
||||
-I$(top_srcdir)/nix/libstore
|
||||
|
||||
guix_daemon_LDADD = \
|
||||
libstore.a libutil.a libformat.a -lbz2 \
|
||||
$(SQLITE3_LIBS) $(LIBGCRYPT_LIBS)
|
||||
|
||||
guix_daemon_headers = \
|
||||
nix/nix-daemon/shared.hh
|
||||
|
||||
libexec_PROGRAMS = nix-setuid-helper
|
||||
nix_setuid_helper_SOURCES = \
|
||||
nix/nix-setuid-helper/nix-setuid-helper.cc
|
||||
|
||||
nix_setuid_helper_CPPFLAGS = \
|
||||
$(libutil_a_CPPFLAGS)
|
||||
|
||||
nix_setuid_helper_LDADD = \
|
||||
libutil.a libformat.a
|
||||
|
||||
noinst_HEADERS = \
|
||||
$(libformat_headers) $(libutil_headers) $(libstore_headers) \
|
||||
$(guix_daemon_headers)
|
||||
|
||||
nix/libstore/schema.sql.hh: nix/libstore/schema.sql
|
||||
$(GUILE) --no-auto-compile -c \
|
||||
"(use-modules (rnrs io ports)) \
|
||||
(call-with-output-file \"$@\" \
|
||||
(lambda (out) \
|
||||
(call-with-input-file \"$^\" \
|
||||
(lambda (in) \
|
||||
(write (get-string-all in) out)))))"
|
||||
|
||||
nodist_pkglibexec_SCRIPTS = \
|
||||
nix/scripts/list-runtime-roots
|
||||
|
||||
EXTRA_DIST += \
|
||||
nix/sync-with-upstream \
|
||||
nix/libstore/schema.sql \
|
||||
nix/AUTHORS \
|
||||
nix/COPYING
|
||||
|
||||
AM_TESTS_ENVIRONMENT += \
|
||||
top_builddir="$(abs_top_builddir)"
|
||||
|
||||
TESTS += \
|
||||
tests/guix-daemon.sh
|
||||
|
||||
clean-local:
|
||||
-if test -d "$(GUIX_TEST_ROOT)"; then \
|
||||
find "$(GUIX_TEST_ROOT)" | xargs chmod +w; \
|
||||
fi
|
||||
-rm -rf "$(GUIX_TEST_ROOT)"
|
||||
-94
@@ -1,94 +0,0 @@
|
||||
;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
|
||||
;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of Guix.
|
||||
;;;
|
||||
;;; 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.
|
||||
;;;
|
||||
;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (distro)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (find-packages-by-name))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; General utilities for the software distribution---i.e., the modules under
|
||||
;;; (distro ...).
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define _ (cut gettext <> "guix"))
|
||||
|
||||
(define %distro-module-directory
|
||||
;; Absolute path of the (distro ...) module root.
|
||||
(string-append (dirname (search-path %load-path "distro.scm"))
|
||||
"/distro"))
|
||||
|
||||
(define (package-files)
|
||||
"Return the list of files that implement distro modules."
|
||||
(define prefix-len
|
||||
(string-length (dirname %distro-module-directory)))
|
||||
|
||||
(file-system-fold (const #t) ; enter?
|
||||
(lambda (path stat result) ; leaf
|
||||
(if (string-suffix? ".scm" path)
|
||||
(cons (substring path prefix-len) result)
|
||||
result))
|
||||
(lambda (path stat result) ; down
|
||||
result)
|
||||
(lambda (path stat result) ; up
|
||||
result)
|
||||
(const #f) ; skip
|
||||
(lambda (path stat errno result)
|
||||
(format (current-error-port)
|
||||
(_ "warning: cannot access `~a': ~a")
|
||||
path (strerror errno))
|
||||
result)
|
||||
'()
|
||||
%distro-module-directory
|
||||
stat))
|
||||
|
||||
(define (package-modules)
|
||||
"Return the list of modules that provide packages for the distribution."
|
||||
(define not-slash
|
||||
(char-set-complement (char-set #\/)))
|
||||
|
||||
(filter-map (lambda (path)
|
||||
(let ((name (map string->symbol
|
||||
(string-tokenize (string-drop-right path 4)
|
||||
not-slash))))
|
||||
(false-if-exception (resolve-interface name))))
|
||||
(package-files)))
|
||||
|
||||
(define* (find-packages-by-name name #:optional version)
|
||||
"Return the list of packages with the given NAME. If VERSION is not #f,
|
||||
then only return packages whose version is equal to VERSION."
|
||||
(define right-package?
|
||||
(if version
|
||||
(lambda (p)
|
||||
(and (package? p)
|
||||
(string=? (package-name p) name)
|
||||
(string=? (package-version p) version)))
|
||||
(lambda (p)
|
||||
(and (package? p)
|
||||
(string=? (package-name p) name)))))
|
||||
|
||||
(append-map (lambda (module)
|
||||
(filter right-package?
|
||||
(module-map (lambda (sym var)
|
||||
(variable-ref var))
|
||||
module)))
|
||||
(package-modules)))
|
||||
-358
@@ -1,358 +0,0 @@
|
||||
;;; Guix --- Nix package management from Guile. -*- coding: utf-8 -*-
|
||||
;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of Guix.
|
||||
;;;
|
||||
;;; 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.
|
||||
;;;
|
||||
;;; 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 Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (distro base)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix utils))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; A Guix-based distribution.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define-public libsigsegv
|
||||
(package
|
||||
(name "libsigsegv")
|
||||
(version "2.10")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://ftp.gnu.org/gnu/libsigsegv/libsigsegv-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "16hrs8k3nmc7a8jam5j1fpspd6sdpkamskvsdpcw6m29vnis8q44"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "lib")) ; separate libdir from the rest
|
||||
(home-page "http://www.gnu.org/software/libsigsegv/")
|
||||
(description "GNU libsigsegv, a library to handle page faults in user mode")
|
||||
(long-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
|
||||
currently not available. Catching and handling a page fault is a useful
|
||||
technique for implementing pageable virtual memory, memory-mapped access to
|
||||
persistent databases, generational garbage collectors, stack overflow
|
||||
handlers, distributed shared memory, and more.")
|
||||
(license "GPLv2+")))
|
||||
|
||||
(define-public gawk
|
||||
(package
|
||||
(name "gawk")
|
||||
(version "4.0.0")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/gawk/gawk-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments (case-lambda
|
||||
((system)
|
||||
(if (string=? system "i686-cygwin")
|
||||
'(#:tests? #f) ; work around test failure on Cygwin
|
||||
'(#:parallel-tests? #f))) ; test suite fails in parallel
|
||||
((system cross-system)
|
||||
'(#:parallel-tests? #f))))
|
||||
(inputs `(("libsigsegv" ,libsigsegv) ; headers
|
||||
("libsigsegv/lib" ,libsigsegv "lib"))) ; library
|
||||
(home-page "http://www.gnu.org/software/gawk/")
|
||||
(description "GNU implementation of the Awk programming language")
|
||||
(long-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
|
||||
changes in various text files wherever certain patterns appear, and so on.
|
||||
To write a program to do these things in a language such as C or Pascal is a
|
||||
time-consuming inconvenience that may take many lines of code. The job is
|
||||
easy with awk, especially the GNU implementation: Gawk.
|
||||
|
||||
The awk utility interprets a special-purpose programming language that makes
|
||||
it possible to handle many data-reformatting jobs with just a few lines of
|
||||
code.")
|
||||
(license "GPLv3+")))
|
||||
|
||||
(define-public hello
|
||||
(package
|
||||
(name "hello")
|
||||
(version "2.8")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/hello/hello-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags
|
||||
`("--disable-dependency-tracking"
|
||||
,(string-append "--with-gawk=" ; for illustration purposes
|
||||
(assoc-ref %build-inputs "gawk")))))
|
||||
(inputs `(("gawk" ,gawk)))
|
||||
(description "GNU Hello")
|
||||
(long-description "Yeah...")
|
||||
(home-page "http://www.gnu.org/software/hello/")
|
||||
(license "GPLv3+")))
|
||||
|
||||
(define-public guile-1.8
|
||||
(package
|
||||
(name "guile")
|
||||
(version "1.8.8")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/guile/guile-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("--disable-error-on-warning")
|
||||
#:patches (list (assoc-ref %build-inputs "patch/snarf"))
|
||||
|
||||
;; Insert a phase before `configure' to patch things up.
|
||||
#:phases (alist-cons-before
|
||||
'configure
|
||||
'patch-loader-search-path
|
||||
(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")))))
|
||||
%standard-phases)))
|
||||
(inputs `(("patch/snarf"
|
||||
,(search-path %load-path "distro/guile-1.8-cpp-4.5.patch"))
|
||||
("gawk" ,gawk)
|
||||
("readline" ,(nixpkgs-derivation "readline"))))
|
||||
|
||||
;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be
|
||||
;; propagated.
|
||||
(propagated-inputs `(("gmp" ,(nixpkgs-derivation "gmp"))
|
||||
("libtool" ,(nixpkgs-derivation "libtool"))))
|
||||
|
||||
;; When cross-compiling, a native version of Guile itself is needed.
|
||||
(self-native-input? #t)
|
||||
|
||||
(description "GNU Guile 1.8, an embeddable Scheme interpreter")
|
||||
(long-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
|
||||
extensible. It supports many SRFIs.")
|
||||
(home-page "http://www.gnu.org/software/guile/")
|
||||
(license "LGPLv2+")))
|
||||
|
||||
(define-public guile-2.0
|
||||
(package
|
||||
(name "guile")
|
||||
(version "2.0.6")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/guile/guile-" version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"000ng5qsq3cl1k35jvzvhwxj92wx4q87745n2fppkd4irh58vv5l"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("xz" ,(nixpkgs-derivation "xz"))
|
||||
("pkgconfig" ,(nixpkgs-derivation "pkgconfig"))))
|
||||
(inputs `(("libffi" ,(nixpkgs-derivation "libffi"))
|
||||
("readline" ,(nixpkgs-derivation "readline"))))
|
||||
|
||||
(propagated-inputs
|
||||
`( ;; These ones aren't normally needed here, but since `libguile-2.0.la'
|
||||
;; reads `-lltdl -lunistring', adding them here will add the needed
|
||||
;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see
|
||||
;; <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903>.
|
||||
("libunistring" ,(nixpkgs-derivation "libunistring"))
|
||||
("libtool" ,(nixpkgs-derivation "libtool"))
|
||||
|
||||
;; The headers and/or `guile-2.0.pc' refer to these packages, so they
|
||||
;; must be propagated.
|
||||
("bdw-gc" ,(nixpkgs-derivation "boehmgc"))
|
||||
("gmp" ,(nixpkgs-derivation "gmp"))))
|
||||
|
||||
(self-native-input? #t)
|
||||
|
||||
(description "GNU Guile 2.0, an embeddable Scheme implementation")
|
||||
(long-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.
|
||||
In addition to implementing the R5RS Scheme standard and a large subset of
|
||||
R6RS, Guile includes a module system, full access to POSIX system calls,
|
||||
networking support, multiple threads, dynamic linking, a foreign function
|
||||
call interface, and powerful string processing.")
|
||||
(home-page "http://www.gnu.org/software/guile/")
|
||||
(license "LGPLv3+")))
|
||||
|
||||
(define (guile-reader guile)
|
||||
"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)))
|
||||
(version "0.6")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://download-mirror.savannah.gnu.org/releases/guile-reader/guile-reader-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkgconfig" ,(nixpkgs-derivation "pkgconfig"))
|
||||
("gperf" ,(nixpkgs-derivation "gperf"))))
|
||||
(inputs `(("guile" ,guile)))
|
||||
(description "Guile-Reader, a simple framework for building readers for
|
||||
GNU Guile")
|
||||
(long-description
|
||||
"Guile-Reader is a simple framework for building readers for GNU Guile.
|
||||
|
||||
The idea is to make it easy to build procedures that extend Guile’s read
|
||||
procedure. Readers supporting various syntax variants can easily be written,
|
||||
possibly by re-using existing “token readers” of a standard Scheme
|
||||
readers. For example, it is used to implement Skribilo’s R5RS-derived
|
||||
document syntax.
|
||||
|
||||
Guile-Reader’s approach is similar to Common Lisp’s “read table”, but
|
||||
hopefully more powerful and flexible (for instance, one may instantiate as
|
||||
many readers as needed).")
|
||||
(home-page "http://www.nongnu.org/guile-reader/")
|
||||
(license "GPLv3+")))
|
||||
|
||||
(define-public guile-reader/guile-1.8
|
||||
;; Guile-Reader built against Guile 1.8.
|
||||
(guile-reader guile-1.8))
|
||||
|
||||
(define-public guile-reader/guile-2.0
|
||||
;; Guile-Reader built against Guile 2.0.
|
||||
(guile-reader guile-2.0))
|
||||
|
||||
(define-public lout
|
||||
;; This one is a bit tricky, because it doesn't follow the GNU Build System
|
||||
;; rules. Instead, it has a makefile that has to be patched to set the
|
||||
;; prefix, etc., and it has no makefile rules to build its doc.
|
||||
(let ((configure-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc")))
|
||||
(substitute* "makefile"
|
||||
(("^PREFIX[[:blank:]]*=.*$")
|
||||
(string-append "PREFIX = " out "\n"))
|
||||
(("^LOUTLIBDIR[[:blank:]]*=.*$")
|
||||
(string-append "LOUTLIBDIR = " out "/lib/lout\n"))
|
||||
(("^LOUTDOCDIR[[:blank:]]*=.*$")
|
||||
(string-append "LOUTDOCDIR = " doc "/doc/lout\n"))
|
||||
(("^MANDIR[[:blank:]]*=.*$")
|
||||
(string-append "MANDIR = " out "/man\n")))
|
||||
(mkdir out)
|
||||
(mkdir (string-append out "/bin")) ; TODO: use `mkdir-p'
|
||||
(mkdir (string-append out "/lib"))
|
||||
(mkdir (string-append out "/man"))
|
||||
(mkdir doc)
|
||||
(mkdir (string-append doc "/doc"))
|
||||
(mkdir (string-append doc "/doc/lout")))))
|
||||
(install-man-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero? (system* "make" "installman"))))
|
||||
(doc-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(define out
|
||||
(assoc-ref outputs "doc"))
|
||||
|
||||
(setenv "PATH"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/bin:" (getenv "PATH")))
|
||||
(chdir "doc")
|
||||
(every (lambda (doc)
|
||||
(format #t "doc: building `~a'...~%" doc)
|
||||
(with-directory-excursion doc
|
||||
(let ((file (string-append out "/doc/lout/"
|
||||
doc ".ps")))
|
||||
(and (or (file-exists? "outfile.ps")
|
||||
(zero? (system* "lout" "-r4" "-o"
|
||||
"outfile.ps" "all")))
|
||||
(begin
|
||||
(copy-file "outfile.ps" file)
|
||||
#t)
|
||||
(zero? (system* "ps2pdf"
|
||||
"-dPDFSETTINGS=/prepress"
|
||||
"-sPAPERSIZE=a4"
|
||||
file
|
||||
(string-append out "/doc/lout/"
|
||||
doc ".pdf")))))))
|
||||
'("design" "expert" "slides" "user")))))
|
||||
(package
|
||||
(name "lout")
|
||||
(version "3.39")
|
||||
(source (origin
|
||||
(method http-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"))
|
||||
(sha256
|
||||
(base32
|
||||
"12gkyqrn0kaa8xq7sc7v3wm407pz2fxg9ngc75aybhi5z825b9vq"))))
|
||||
(build-system gnu-build-system) ; actually, just a makefile
|
||||
(outputs '("out" "doc"))
|
||||
(inputs `(("ghostscript" ,(nixpkgs-derivation "ghostscript"))))
|
||||
(arguments `(#:modules ((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(srfi srfi-1)) ; we need SRFI-1
|
||||
#:tests? #f ; no "check" target
|
||||
|
||||
;; Customize the build phases.
|
||||
#:phases (alist-replace
|
||||
'configure ,configure-phase
|
||||
|
||||
(alist-cons-after
|
||||
'install 'install-man-pages
|
||||
,install-man-phase
|
||||
|
||||
(alist-cons-after
|
||||
'install 'install-doc
|
||||
,doc-phase
|
||||
%standard-phases)))))
|
||||
(description "Lout, a document layout system similar in style to LaTeX")
|
||||
(long-description
|
||||
"The Lout document formatting system is now reads a high-level description of
|
||||
a document similar in style to LaTeX and produces a PostScript or plain text
|
||||
output file.
|
||||
|
||||
Lout offers an unprecedented range of advanced features, including optimal
|
||||
paragraph and page breaking, automatic hyphenation, PostScript EPS file
|
||||
inclusion and generation, equation formatting, tables, diagrams, rotation and
|
||||
scaling, sorted indexes, bibliographic databases, running headers and
|
||||
odd-even pages, automatic cross referencing, multilingual documents including
|
||||
hyphenation (most European languages are supported), formatting of computer
|
||||
programs, and much more, all ready to use. Furthermore, Lout is easily
|
||||
extended with definitions which are very much easier to write than troff of
|
||||
TeX macros because Lout is a high-level, purely functional language, the
|
||||
outcome of an eight-year research project that went back to the
|
||||
beginning.")
|
||||
(license "GPLv3+")
|
||||
(home-page "http://savannah.nongnu.org/projects/lout/"))))
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'lambda* 'scheme-indent-function 1)
|
||||
;;; eval: (put 'substitute* 'scheme-indent-function 1)
|
||||
;;; eval: (put 'with-directory-excursion 'scheme-indent-function 1)
|
||||
;;; End:
|
||||
@@ -0,0 +1,505 @@
|
||||
@c The GNU Free Documentation License.
|
||||
@center Version 1.3, 3 November 2008
|
||||
|
||||
@c This file is intended to be included within another document,
|
||||
@c hence no sectioning command or @node.
|
||||
|
||||
@display
|
||||
Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||||
@uref{http://fsf.org/}
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
@end display
|
||||
|
||||
@enumerate 0
|
||||
@item
|
||||
PREAMBLE
|
||||
|
||||
The purpose of this License is to make a manual, textbook, or other
|
||||
functional and useful document @dfn{free} in the sense of freedom: to
|
||||
assure everyone the effective freedom to copy and redistribute it,
|
||||
with or without modifying it, either commercially or noncommercially.
|
||||
Secondarily, this License preserves for the author and publisher a way
|
||||
to get credit for their work, while not being considered responsible
|
||||
for modifications made by others.
|
||||
|
||||
This License is a kind of ``copyleft'', which means that derivative
|
||||
works of the document must themselves be free in the same sense. It
|
||||
complements the GNU General Public License, which is a copyleft
|
||||
license designed for free software.
|
||||
|
||||
We have designed this License in order to use it for manuals for free
|
||||
software, because free software needs free documentation: a free
|
||||
program should come with manuals providing the same freedoms that the
|
||||
software does. But this License is not limited to software manuals;
|
||||
it can be used for any textual work, regardless of subject matter or
|
||||
whether it is published as a printed book. We recommend this License
|
||||
principally for works whose purpose is instruction or reference.
|
||||
|
||||
@item
|
||||
APPLICABILITY AND DEFINITIONS
|
||||
|
||||
This License applies to any manual or other work, in any medium, that
|
||||
contains a notice placed by the copyright holder saying it can be
|
||||
distributed under the terms of this License. Such a notice grants a
|
||||
world-wide, royalty-free license, unlimited in duration, to use that
|
||||
work under the conditions stated herein. The ``Document'', below,
|
||||
refers to any such manual or work. Any member of the public is a
|
||||
licensee, and is addressed as ``you''. You accept the license if you
|
||||
copy, modify or distribute the work in a way requiring permission
|
||||
under copyright law.
|
||||
|
||||
A ``Modified Version'' of the Document means any work containing the
|
||||
Document or a portion of it, either copied verbatim, or with
|
||||
modifications and/or translated into another language.
|
||||
|
||||
A ``Secondary Section'' is a named appendix or a front-matter section
|
||||
of the Document that deals exclusively with the relationship of the
|
||||
publishers or authors of the Document to the Document's overall
|
||||
subject (or to related matters) and contains nothing that could fall
|
||||
directly within that overall subject. (Thus, if the Document is in
|
||||
part a textbook of mathematics, a Secondary Section may not explain
|
||||
any mathematics.) The relationship could be a matter of historical
|
||||
connection with the subject or with related matters, or of legal,
|
||||
commercial, philosophical, ethical or political position regarding
|
||||
them.
|
||||
|
||||
The ``Invariant Sections'' are certain Secondary Sections whose titles
|
||||
are designated, as being those of Invariant Sections, in the notice
|
||||
that says that the Document is released under this License. If a
|
||||
section does not fit the above definition of Secondary then it is not
|
||||
allowed to be designated as Invariant. The Document may contain zero
|
||||
Invariant Sections. If the Document does not identify any Invariant
|
||||
Sections then there are none.
|
||||
|
||||
The ``Cover Texts'' are certain short passages of text that are listed,
|
||||
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
|
||||
the Document is released under this License. A Front-Cover Text may
|
||||
be at most 5 words, and a Back-Cover Text may be at most 25 words.
|
||||
|
||||
A ``Transparent'' copy of the Document means a machine-readable copy,
|
||||
represented in a format whose specification is available to the
|
||||
general public, that is suitable for revising the document
|
||||
straightforwardly with generic text editors or (for images composed of
|
||||
pixels) generic paint programs or (for drawings) some widely available
|
||||
drawing editor, and that is suitable for input to text formatters or
|
||||
for automatic translation to a variety of formats suitable for input
|
||||
to text formatters. A copy made in an otherwise Transparent file
|
||||
format whose markup, or absence of markup, has been arranged to thwart
|
||||
or discourage subsequent modification by readers is not Transparent.
|
||||
An image format is not Transparent if used for any substantial amount
|
||||
of text. A copy that is not ``Transparent'' is called ``Opaque''.
|
||||
|
||||
Examples of suitable formats for Transparent copies include plain
|
||||
ASCII without markup, Texinfo input format, La@TeX{} input
|
||||
format, SGML or XML using a publicly available
|
||||
DTD, and standard-conforming simple HTML,
|
||||
PostScript or PDF designed for human modification. Examples
|
||||
of transparent image formats include PNG, XCF and
|
||||
JPG. Opaque formats include proprietary formats that can be
|
||||
read and edited only by proprietary word processors, SGML or
|
||||
XML for which the DTD and/or processing tools are
|
||||
not generally available, and the machine-generated HTML,
|
||||
PostScript or PDF produced by some word processors for
|
||||
output purposes only.
|
||||
|
||||
The ``Title Page'' means, for a printed book, the title page itself,
|
||||
plus such following pages as are needed to hold, legibly, the material
|
||||
this License requires to appear in the title page. For works in
|
||||
formats which do not have any title page as such, ``Title Page'' means
|
||||
the text near the most prominent appearance of the work's title,
|
||||
preceding the beginning of the body of the text.
|
||||
|
||||
The ``publisher'' means any person or entity that distributes copies
|
||||
of the Document to the public.
|
||||
|
||||
A section ``Entitled XYZ'' means a named subunit of the Document whose
|
||||
title either is precisely XYZ or contains XYZ in parentheses following
|
||||
text that translates XYZ in another language. (Here XYZ stands for a
|
||||
specific section name mentioned below, such as ``Acknowledgements'',
|
||||
``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title''
|
||||
of such a section when you modify the Document means that it remains a
|
||||
section ``Entitled XYZ'' according to this definition.
|
||||
|
||||
The Document may include Warranty Disclaimers next to the notice which
|
||||
states that this License applies to the Document. These Warranty
|
||||
Disclaimers are considered to be included by reference in this
|
||||
License, but only as regards disclaiming warranties: any other
|
||||
implication that these Warranty Disclaimers may have is void and has
|
||||
no effect on the meaning of this License.
|
||||
|
||||
@item
|
||||
VERBATIM COPYING
|
||||
|
||||
You may copy and distribute the Document in any medium, either
|
||||
commercially or noncommercially, provided that this License, the
|
||||
copyright notices, and the license notice saying this License applies
|
||||
to the Document are reproduced in all copies, and that you add no other
|
||||
conditions whatsoever to those of this License. You may not use
|
||||
technical measures to obstruct or control the reading or further
|
||||
copying of the copies you make or distribute. However, you may accept
|
||||
compensation in exchange for copies. If you distribute a large enough
|
||||
number of copies you must also follow the conditions in section 3.
|
||||
|
||||
You may also lend copies, under the same conditions stated above, and
|
||||
you may publicly display copies.
|
||||
|
||||
@item
|
||||
COPYING IN QUANTITY
|
||||
|
||||
If you publish printed copies (or copies in media that commonly have
|
||||
printed covers) of the Document, numbering more than 100, and the
|
||||
Document's license notice requires Cover Texts, you must enclose the
|
||||
copies in covers that carry, clearly and legibly, all these Cover
|
||||
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
|
||||
the back cover. Both covers must also clearly and legibly identify
|
||||
you as the publisher of these copies. The front cover must present
|
||||
the full title with all words of the title equally prominent and
|
||||
visible. You may add other material on the covers in addition.
|
||||
Copying with changes limited to the covers, as long as they preserve
|
||||
the title of the Document and satisfy these conditions, can be treated
|
||||
as verbatim copying in other respects.
|
||||
|
||||
If the required texts for either cover are too voluminous to fit
|
||||
legibly, you should put the first ones listed (as many as fit
|
||||
reasonably) on the actual cover, and continue the rest onto adjacent
|
||||
pages.
|
||||
|
||||
If you publish or distribute Opaque copies of the Document numbering
|
||||
more than 100, you must either include a machine-readable Transparent
|
||||
copy along with each Opaque copy, or state in or with each Opaque copy
|
||||
a computer-network location from which the general network-using
|
||||
public has access to download using public-standard network protocols
|
||||
a complete Transparent copy of the Document, free of added material.
|
||||
If you use the latter option, you must take reasonably prudent steps,
|
||||
when you begin distribution of Opaque copies in quantity, to ensure
|
||||
that this Transparent copy will remain thus accessible at the stated
|
||||
location until at least one year after the last time you distribute an
|
||||
Opaque copy (directly or through your agents or retailers) of that
|
||||
edition to the public.
|
||||
|
||||
It is requested, but not required, that you contact the authors of the
|
||||
Document well before redistributing any large number of copies, to give
|
||||
them a chance to provide you with an updated version of the Document.
|
||||
|
||||
@item
|
||||
MODIFICATIONS
|
||||
|
||||
You may copy and distribute a Modified Version of the Document under
|
||||
the conditions of sections 2 and 3 above, provided that you release
|
||||
the Modified Version under precisely this License, with the Modified
|
||||
Version filling the role of the Document, thus licensing distribution
|
||||
and modification of the Modified Version to whoever possesses a copy
|
||||
of it. In addition, you must do these things in the Modified Version:
|
||||
|
||||
@enumerate A
|
||||
@item
|
||||
Use in the Title Page (and on the covers, if any) a title distinct
|
||||
from that of the Document, and from those of previous versions
|
||||
(which should, if there were any, be listed in the History section
|
||||
of the Document). You may use the same title as a previous version
|
||||
if the original publisher of that version gives permission.
|
||||
|
||||
@item
|
||||
List on the Title Page, as authors, one or more persons or entities
|
||||
responsible for authorship of the modifications in the Modified
|
||||
Version, together with at least five of the principal authors of the
|
||||
Document (all of its principal authors, if it has fewer than five),
|
||||
unless they release you from this requirement.
|
||||
|
||||
@item
|
||||
State on the Title page the name of the publisher of the
|
||||
Modified Version, as the publisher.
|
||||
|
||||
@item
|
||||
Preserve all the copyright notices of the Document.
|
||||
|
||||
@item
|
||||
Add an appropriate copyright notice for your modifications
|
||||
adjacent to the other copyright notices.
|
||||
|
||||
@item
|
||||
Include, immediately after the copyright notices, a license notice
|
||||
giving the public permission to use the Modified Version under the
|
||||
terms of this License, in the form shown in the Addendum below.
|
||||
|
||||
@item
|
||||
Preserve in that license notice the full lists of Invariant Sections
|
||||
and required Cover Texts given in the Document's license notice.
|
||||
|
||||
@item
|
||||
Include an unaltered copy of this License.
|
||||
|
||||
@item
|
||||
Preserve the section Entitled ``History'', Preserve its Title, and add
|
||||
to it an item stating at least the title, year, new authors, and
|
||||
publisher of the Modified Version as given on the Title Page. If
|
||||
there is no section Entitled ``History'' in the Document, create one
|
||||
stating the title, year, authors, and publisher of the Document as
|
||||
given on its Title Page, then add an item describing the Modified
|
||||
Version as stated in the previous sentence.
|
||||
|
||||
@item
|
||||
Preserve the network location, if any, given in the Document for
|
||||
public access to a Transparent copy of the Document, and likewise
|
||||
the network locations given in the Document for previous versions
|
||||
it was based on. These may be placed in the ``History'' section.
|
||||
You may omit a network location for a work that was published at
|
||||
least four years before the Document itself, or if the original
|
||||
publisher of the version it refers to gives permission.
|
||||
|
||||
@item
|
||||
For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve
|
||||
the Title of the section, and preserve in the section all the
|
||||
substance and tone of each of the contributor acknowledgements and/or
|
||||
dedications given therein.
|
||||
|
||||
@item
|
||||
Preserve all the Invariant Sections of the Document,
|
||||
unaltered in their text and in their titles. Section numbers
|
||||
or the equivalent are not considered part of the section titles.
|
||||
|
||||
@item
|
||||
Delete any section Entitled ``Endorsements''. Such a section
|
||||
may not be included in the Modified Version.
|
||||
|
||||
@item
|
||||
Do not retitle any existing section to be Entitled ``Endorsements'' or
|
||||
to conflict in title with any Invariant Section.
|
||||
|
||||
@item
|
||||
Preserve any Warranty Disclaimers.
|
||||
@end enumerate
|
||||
|
||||
If the Modified Version includes new front-matter sections or
|
||||
appendices that qualify as Secondary Sections and contain no material
|
||||
copied from the Document, you may at your option designate some or all
|
||||
of these sections as invariant. To do this, add their titles to the
|
||||
list of Invariant Sections in the Modified Version's license notice.
|
||||
These titles must be distinct from any other section titles.
|
||||
|
||||
You may add a section Entitled ``Endorsements'', provided it contains
|
||||
nothing but endorsements of your Modified Version by various
|
||||
parties---for example, statements of peer review or that the text has
|
||||
been approved by an organization as the authoritative definition of a
|
||||
standard.
|
||||
|
||||
You may add a passage of up to five words as a Front-Cover Text, and a
|
||||
passage of up to 25 words as a Back-Cover Text, to the end of the list
|
||||
of Cover Texts in the Modified Version. Only one passage of
|
||||
Front-Cover Text and one of Back-Cover Text may be added by (or
|
||||
through arrangements made by) any one entity. If the Document already
|
||||
includes a cover text for the same cover, previously added by you or
|
||||
by arrangement made by the same entity you are acting on behalf of,
|
||||
you may not add another; but you may replace the old one, on explicit
|
||||
permission from the previous publisher that added the old one.
|
||||
|
||||
The author(s) and publisher(s) of the Document do not by this License
|
||||
give permission to use their names for publicity for or to assert or
|
||||
imply endorsement of any Modified Version.
|
||||
|
||||
@item
|
||||
COMBINING DOCUMENTS
|
||||
|
||||
You may combine the Document with other documents released under this
|
||||
License, under the terms defined in section 4 above for modified
|
||||
versions, provided that you include in the combination all of the
|
||||
Invariant Sections of all of the original documents, unmodified, and
|
||||
list them all as Invariant Sections of your combined work in its
|
||||
license notice, and that you preserve all their Warranty Disclaimers.
|
||||
|
||||
The combined work need only contain one copy of this License, and
|
||||
multiple identical Invariant Sections may be replaced with a single
|
||||
copy. If there are multiple Invariant Sections with the same name but
|
||||
different contents, make the title of each such section unique by
|
||||
adding at the end of it, in parentheses, the name of the original
|
||||
author or publisher of that section if known, or else a unique number.
|
||||
Make the same adjustment to the section titles in the list of
|
||||
Invariant Sections in the license notice of the combined work.
|
||||
|
||||
In the combination, you must combine any sections Entitled ``History''
|
||||
in the various original documents, forming one section Entitled
|
||||
``History''; likewise combine any sections Entitled ``Acknowledgements'',
|
||||
and any sections Entitled ``Dedications''. You must delete all
|
||||
sections Entitled ``Endorsements.''
|
||||
|
||||
@item
|
||||
COLLECTIONS OF DOCUMENTS
|
||||
|
||||
You may make a collection consisting of the Document and other documents
|
||||
released under this License, and replace the individual copies of this
|
||||
License in the various documents with a single copy that is included in
|
||||
the collection, provided that you follow the rules of this License for
|
||||
verbatim copying of each of the documents in all other respects.
|
||||
|
||||
You may extract a single document from such a collection, and distribute
|
||||
it individually under this License, provided you insert a copy of this
|
||||
License into the extracted document, and follow this License in all
|
||||
other respects regarding verbatim copying of that document.
|
||||
|
||||
@item
|
||||
AGGREGATION WITH INDEPENDENT WORKS
|
||||
|
||||
A compilation of the Document or its derivatives with other separate
|
||||
and independent documents or works, in or on a volume of a storage or
|
||||
distribution medium, is called an ``aggregate'' if the copyright
|
||||
resulting from the compilation is not used to limit the legal rights
|
||||
of the compilation's users beyond what the individual works permit.
|
||||
When the Document is included in an aggregate, this License does not
|
||||
apply to the other works in the aggregate which are not themselves
|
||||
derivative works of the Document.
|
||||
|
||||
If the Cover Text requirement of section 3 is applicable to these
|
||||
copies of the Document, then if the Document is less than one half of
|
||||
the entire aggregate, the Document's Cover Texts may be placed on
|
||||
covers that bracket the Document within the aggregate, or the
|
||||
electronic equivalent of covers if the Document is in electronic form.
|
||||
Otherwise they must appear on printed covers that bracket the whole
|
||||
aggregate.
|
||||
|
||||
@item
|
||||
TRANSLATION
|
||||
|
||||
Translation is considered a kind of modification, so you may
|
||||
distribute translations of the Document under the terms of section 4.
|
||||
Replacing Invariant Sections with translations requires special
|
||||
permission from their copyright holders, but you may include
|
||||
translations of some or all Invariant Sections in addition to the
|
||||
original versions of these Invariant Sections. You may include a
|
||||
translation of this License, and all the license notices in the
|
||||
Document, and any Warranty Disclaimers, provided that you also include
|
||||
the original English version of this License and the original versions
|
||||
of those notices and disclaimers. In case of a disagreement between
|
||||
the translation and the original version of this License or a notice
|
||||
or disclaimer, the original version will prevail.
|
||||
|
||||
If a section in the Document is Entitled ``Acknowledgements'',
|
||||
``Dedications'', or ``History'', the requirement (section 4) to Preserve
|
||||
its Title (section 1) will typically require changing the actual
|
||||
title.
|
||||
|
||||
@item
|
||||
TERMINATION
|
||||
|
||||
You may not copy, modify, sublicense, or distribute the Document
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense, or distribute it is void, and
|
||||
will automatically terminate your rights under this License.
|
||||
|
||||
However, if you cease all violation of this License, then your license
|
||||
from a particular copyright holder is reinstated (a) provisionally,
|
||||
unless and until the copyright holder explicitly and finally
|
||||
terminates your license, and (b) permanently, if the copyright holder
|
||||
fails to notify you of the violation by some reasonable means prior to
|
||||
60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, receipt of a copy of some or all of the same material does
|
||||
not give you any rights to use it.
|
||||
|
||||
@item
|
||||
FUTURE REVISIONS OF THIS LICENSE
|
||||
|
||||
The Free Software Foundation may publish new, revised versions
|
||||
of the GNU Free Documentation License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns. See
|
||||
@uref{http://www.gnu.org/copyleft/}.
|
||||
|
||||
Each version of the License is given a distinguishing version number.
|
||||
If the Document specifies that a particular numbered version of this
|
||||
License ``or any later version'' applies to it, you have the option of
|
||||
following the terms and conditions either of that specified version or
|
||||
of any later version that has been published (not as a draft) by the
|
||||
Free Software Foundation. If the Document does not specify a version
|
||||
number of this License, you may choose any version ever published (not
|
||||
as a draft) by the Free Software Foundation. If the Document
|
||||
specifies that a proxy can decide which future versions of this
|
||||
License can be used, that proxy's public statement of acceptance of a
|
||||
version permanently authorizes you to choose that version for the
|
||||
Document.
|
||||
|
||||
@item
|
||||
RELICENSING
|
||||
|
||||
``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any
|
||||
World Wide Web server that publishes copyrightable works and also
|
||||
provides prominent facilities for anybody to edit those works. A
|
||||
public wiki that anybody can edit is an example of such a server. A
|
||||
``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the
|
||||
site means any set of copyrightable works thus published on the MMC
|
||||
site.
|
||||
|
||||
``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0
|
||||
license published by Creative Commons Corporation, a not-for-profit
|
||||
corporation with a principal place of business in San Francisco,
|
||||
California, as well as future copyleft versions of that license
|
||||
published by that same organization.
|
||||
|
||||
``Incorporate'' means to publish or republish a Document, in whole or
|
||||
in part, as part of another Document.
|
||||
|
||||
An MMC is ``eligible for relicensing'' if it is licensed under this
|
||||
License, and if all works that were first published under this License
|
||||
somewhere other than this MMC, and subsequently incorporated in whole
|
||||
or in part into the MMC, (1) had no cover texts or invariant sections,
|
||||
and (2) were thus incorporated prior to November 1, 2008.
|
||||
|
||||
The operator of an MMC Site may republish an MMC contained in the site
|
||||
under CC-BY-SA on the same site at any time before August 1, 2009,
|
||||
provided the MMC is eligible for relicensing.
|
||||
|
||||
@end enumerate
|
||||
|
||||
@page
|
||||
@heading ADDENDUM: How to use this License for your documents
|
||||
|
||||
To use this License in a document you have written, include a copy of
|
||||
the License in the document and put the following copyright and
|
||||
license notices just after the title page:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
Copyright (C) @var{year} @var{your name}.
|
||||
Permission is granted to copy, distribute and/or modify this document
|
||||
under the terms of the GNU Free Documentation License, Version 1.3
|
||||
or any later version published by the Free Software Foundation;
|
||||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||||
Texts. A copy of the license is included in the section entitled ``GNU
|
||||
Free Documentation License''.
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
|
||||
replace the ``with@dots{}Texts.''@: line with this:
|
||||
|
||||
@smallexample
|
||||
@group
|
||||
with the Invariant Sections being @var{list their titles}, with
|
||||
the Front-Cover Texts being @var{list}, and with the Back-Cover Texts
|
||||
being @var{list}.
|
||||
@end group
|
||||
@end smallexample
|
||||
|
||||
If you have Invariant Sections without Cover Texts, or some other
|
||||
combination of the three, merge those two alternatives to suit the
|
||||
situation.
|
||||
|
||||
If your document contains nontrivial examples of program code, we
|
||||
recommend releasing these examples in parallel under your choice of
|
||||
free software license, such as the GNU General Public License,
|
||||
to permit their use in free software.
|
||||
|
||||
@c Local Variables:
|
||||
@c ispell-local-pdict: "ispell-dict"
|
||||
@c End:
|
||||
+1141
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,139 @@
|
||||
;;; 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)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-39)
|
||||
#:export (search-patch
|
||||
search-bootstrap-binary
|
||||
%patch-directory
|
||||
%bootstrap-binaries-path
|
||||
fold-packages
|
||||
find-packages-by-name))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; General utilities for the software distribution---i.e., the modules under
|
||||
;;; (gnu packages ...).
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define _ (cut gettext <> "guix"))
|
||||
|
||||
;; By default, we store patches and bootstrap binaries alongside Guile
|
||||
;; modules. This is so that these extra files can be found without
|
||||
;; requiring a special setup, such as a specific installation directory
|
||||
;; and an extra environment variable. One advantage of this setup is
|
||||
;; that everything just works in an auto-compilation setting.
|
||||
|
||||
(define %patch-path
|
||||
(make-parameter
|
||||
(map (cut string-append <> "/gnu/packages/patches")
|
||||
%load-path)))
|
||||
|
||||
(define %bootstrap-binaries-path
|
||||
(make-parameter
|
||||
(map (cut string-append <> "/gnu/packages/bootstrap")
|
||||
%load-path)))
|
||||
|
||||
(define (search-patch file-name)
|
||||
"Search the patch FILE-NAME."
|
||||
(search-path (%patch-path) file-name))
|
||||
|
||||
(define (search-bootstrap-binary file-name system)
|
||||
"Search the bootstrap binary FILE-NAME for SYSTEM."
|
||||
(search-path (%bootstrap-binaries-path)
|
||||
(string-append system "/" file-name)))
|
||||
|
||||
(define %distro-module-directory
|
||||
;; Absolute path of the (gnu packages ...) module root.
|
||||
(string-append (dirname (search-path %load-path "gnu/packages.scm"))
|
||||
"/packages"))
|
||||
|
||||
(define (package-files)
|
||||
"Return the list of files that implement distro modules."
|
||||
(define prefix-len
|
||||
(string-length
|
||||
(dirname (dirname (search-path %load-path "gnu/packages.scm")))))
|
||||
|
||||
(file-system-fold (const #t) ; enter?
|
||||
(lambda (path stat result) ; leaf
|
||||
(if (string-suffix? ".scm" path)
|
||||
(cons (substring path prefix-len) result)
|
||||
result))
|
||||
(lambda (path stat result) ; down
|
||||
result)
|
||||
(lambda (path stat result) ; up
|
||||
result)
|
||||
(const #f) ; skip
|
||||
(lambda (path stat errno result)
|
||||
(format (current-error-port)
|
||||
(_ "warning: cannot access `~a': ~a~%")
|
||||
path (strerror errno))
|
||||
result)
|
||||
'()
|
||||
%distro-module-directory
|
||||
stat))
|
||||
|
||||
(define (package-modules)
|
||||
"Return the list of modules that provide packages for the distribution."
|
||||
(define not-slash
|
||||
(char-set-complement (char-set #\/)))
|
||||
|
||||
(filter-map (lambda (path)
|
||||
(let ((name (map string->symbol
|
||||
(string-tokenize (string-drop-right path 4)
|
||||
not-slash))))
|
||||
(false-if-exception (resolve-interface name))))
|
||||
(package-files)))
|
||||
|
||||
(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)))
|
||||
|
||||
(define* (find-packages-by-name name #:optional version)
|
||||
"Return the list of packages with the given NAME. If VERSION is not #f,
|
||||
then only return packages whose version is equal to VERSION."
|
||||
(define right-package?
|
||||
(if version
|
||||
(lambda (p)
|
||||
(and (string=? (package-name p) name)
|
||||
(string=? (package-version p) version)))
|
||||
(lambda (p)
|
||||
(string=? (package-name p) name))))
|
||||
|
||||
(fold-packages (lambda (package result)
|
||||
(if (right-package? package)
|
||||
(cons package result)
|
||||
result))
|
||||
'()))
|
||||
@@ -0,0 +1,66 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 acl)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages attr)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module ((gnu packages gettext)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public acl
|
||||
(package
|
||||
(name "acl")
|
||||
(version "2.2.51")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/acl/acl-"
|
||||
version ".src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09aj30m49ivycl3irram8c3givc0crivjm3ymw0nhfaxrwhlb186"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-cons-after
|
||||
'configure 'patch-makefile-SHELL
|
||||
(lambda _
|
||||
(patch-makefile-SHELL "include/buildmacros"))
|
||||
(alist-replace
|
||||
'check
|
||||
(lambda _
|
||||
(system* "make" "tests" "-C" "test")
|
||||
|
||||
;; XXX: Ignore the test result since this is
|
||||
;; dependent on the underlying file system.
|
||||
#t)
|
||||
%standard-phases))))
|
||||
(inputs `(("attr" ,attr)
|
||||
("gettext" ,guix:gettext)
|
||||
("perl" ,perl)))
|
||||
(home-page
|
||||
"http://savannah.nongnu.org/projects/acl")
|
||||
(synopsis
|
||||
"Library and tools for manipulating access control lists")
|
||||
(description
|
||||
"Library and tools for manipulating access control lists.")
|
||||
(license '(gpl2+ lgpl2.1+))))
|
||||
@@ -0,0 +1,193 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 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 algebra)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
|
||||
(define-public mpfrcx
|
||||
(package
|
||||
(name "mpfrcx")
|
||||
(version "0.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.multiprecision.org/mpfrcx/download/mpfrcx-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rrc75chxyicqjgg5mfhgbz7p9mx1fgh0qlx14a82m25vfhifnd1"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)
|
||||
("mpc" ,mpc)))
|
||||
(synopsis "mpfrcx, a library for the arithmetic of univariate polynomials
|
||||
over arbitrary precision real or complex numbers")
|
||||
(description
|
||||
"mpfrcx is a library for the arithmetic of univariate polynomials over
|
||||
arbitrary precision real (mpfr) or complex (mpc) numbers, without control
|
||||
on the rounding. For the time being, only the few functions needed to
|
||||
implement the floating point approach to complex multiplication are
|
||||
implemented. On the other hand, these comprise asymptotically fast
|
||||
multiplication routines such as Toom–Cook and the FFT. ")
|
||||
(license lgpl2.1+)
|
||||
(home-page "http://mpfrcx.multiprecision.org/")))
|
||||
|
||||
(define-public fplll
|
||||
(package
|
||||
(name "fplll")
|
||||
(version "4.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://perso.ens-lyon.fr/damien.stehle/fplll/libfplll-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"122bpqdlikshhd7nmq0l5qfc0agyk7x21gvplv1l9hb77l8cy9rw"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)))
|
||||
(synopsis "fplll, a library for LLL-reduction of euclidean lattices")
|
||||
(description
|
||||
"fplll LLL-reduces euclidean lattices. Since version 3, it can also
|
||||
solve the shortest vector problem.")
|
||||
(license lgpl2.1+)
|
||||
(home-page "http://perso.ens-lyon.fr/damien.stehle/fplll/")))
|
||||
|
||||
(define-public gsl
|
||||
(package
|
||||
(name "gsl")
|
||||
(version "1.15")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gsl/gsl-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18qf6jzz1r3mzb5qynywv4xx3z9g61hgkbpkdrhbgqh2g7jhgfc5"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/gsl/")
|
||||
(synopsis "The GNU Scientific Library, a large numerical library")
|
||||
(description
|
||||
"The GNU Scientific Library (GSL) is a numerical library for C
|
||||
and C++ programmers. It is free software under the GNU General
|
||||
Public License.
|
||||
|
||||
The library provides a wide range of mathematical routines such
|
||||
as random number generators, special functions and least-squares
|
||||
fitting. There are over 1000 functions in total with an
|
||||
extensive test suite.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public pari-gp
|
||||
(package
|
||||
(name "pari-gp")
|
||||
(version "2.5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0zsjccnnv00kwj2gk3ww2v530kjin1rgj8p8hbl4pwcnwc7m68gl"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("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))))
|
||||
(synopsis "PARI/GP, a computer algebra system for number theory")
|
||||
(description
|
||||
"PARI/GP is a widely used computer algebra system designed for fast
|
||||
computations in number theory (factorisations, algebraic number theory,
|
||||
elliptic curves...), but it also contains a large number of other useful
|
||||
functions to compute with mathematical entities such as matrices,
|
||||
polynomials, power series, algebraic numbers, etc., and a lot of
|
||||
transcendental functions.
|
||||
PARI is also available as a C library to allow for faster computations.")
|
||||
(license gpl2+)
|
||||
(home-page "http://pari.math.u-bordeaux.fr/")))
|
||||
|
||||
(define-public bc
|
||||
(package
|
||||
(name "bc")
|
||||
(version "1.06")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/bc/bc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cqf5jkwx6awgd2xc2a0mkpxilzcfmhncdcfg7c9439wgkqxkxjf"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("readline" ,readline)
|
||||
("flex" ,flex)))
|
||||
(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.gnu.org/software/bc/")
|
||||
(synopsis "GNU software calculator")
|
||||
(description
|
||||
"bc is an arbitrary precision numeric processing language. Syntax
|
||||
is similar to C, but differs in many substantial areas. It supports
|
||||
interactive execution of statements. bc is a utility included in the
|
||||
POSIX P1003.2/D11 draft standard.
|
||||
|
||||
Since the POSIX document does not specify how bc must be implemented,
|
||||
this version does not use the historical method of having bc be a
|
||||
compiler for the dc calculator. This version has a single executable
|
||||
that both compiles the language and runs the resulting `byte code'. The
|
||||
byte code is not the dc language.")
|
||||
(license gpl2+)))
|
||||
@@ -0,0 +1,54 @@
|
||||
;;; 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 aspell)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages perl))
|
||||
|
||||
(define-public aspell
|
||||
(package
|
||||
(name "aspell")
|
||||
(version "0.60.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/aspell/aspell-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qgn5psfyhbrnap275xjfrzppf5a83fb67gpql0kfqv37al869gm"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(home-page "http://aspell.net/")
|
||||
(synopsis
|
||||
"GNU Aspell, A spell checker for many languages")
|
||||
(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
|
||||
checker. Its main feature is that it does a superior job of suggesting
|
||||
possible replacements for a misspelled word than just about any other
|
||||
spell checker out there for the English language. Unlike Ispell, Aspell
|
||||
can also easily check documents in UTF-8 without having to use a special
|
||||
dictionary. Aspell will also do its best to respect the current locale
|
||||
setting. Other advantages over Ispell include support for using
|
||||
multiple dictionaries at once and intelligently handling personal
|
||||
dictionaries when more than one Aspell process is open at once.")
|
||||
(license lgpl2.1+)))
|
||||
@@ -0,0 +1,77 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; Copyright © 2012 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 attr)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module ((gnu packages gettext)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public attr
|
||||
(package
|
||||
(name "attr")
|
||||
(version "2.4.46")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/attr/attr-"
|
||||
version ".src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07qf6kb2zk512az481bbnsk9jycn477xpva1a726n5pzlzf9pmnw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-cons-after
|
||||
'configure 'patch-makefile-SHELL
|
||||
(lambda _
|
||||
(patch-makefile-SHELL "include/buildmacros"))
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda _
|
||||
(zero? (system* "make"
|
||||
"install"
|
||||
"install-lib"
|
||||
"install-dev")))
|
||||
(alist-replace
|
||||
'check
|
||||
(lambda _
|
||||
;; Use the right shell.
|
||||
(substitute* "test/run"
|
||||
(("/bin/sh")
|
||||
(which "bash")))
|
||||
|
||||
(system* "make" "tests" "-C" "test")
|
||||
|
||||
;; XXX: Ignore the test result since this is dependent on the
|
||||
;; underlying file system.
|
||||
#t)
|
||||
%standard-phases)))))
|
||||
(inputs `(("perl" ,perl)
|
||||
("gettext" ,guix:gettext)))
|
||||
(home-page
|
||||
"http://savannah.nongnu.org/projects/attr/")
|
||||
(synopsis
|
||||
"Library and tools for manipulating extended attributes")
|
||||
(description
|
||||
"Portable library and tools for manipulating extended attributes.")
|
||||
(license '(gpl2+ lgpl2.1+))))
|
||||
@@ -0,0 +1,144 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
;;; 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 autotools)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public autoconf
|
||||
(package
|
||||
(name "autoconf")
|
||||
(version "2.69")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/autoconf/autoconf-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"113nlmidxy9kjr45kg9x3ngar4951mvag1js2a3j8nxcz34wxsv4"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("perl" ,perl)
|
||||
("m4" ,m4)))
|
||||
;; XXX: testsuite: 209 and 279 failed. The latter is an impurity. It
|
||||
;; should use our own "cpp" instead of "/lib/cpp".
|
||||
(arguments `(#:tests? #f))
|
||||
(home-page
|
||||
"http://www.gnu.org/software/autoconf/")
|
||||
(synopsis
|
||||
"GNU Autoconf, a part of the GNU Build System")
|
||||
(description
|
||||
"GNU Autoconf is an extensible package of M4 macros that produce
|
||||
shell scripts to automatically configure software source code
|
||||
packages. These scripts can adapt the packages to many kinds of
|
||||
UNIX-like systems without manual user intervention. Autoconf
|
||||
creates a configuration script for a package from a template
|
||||
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 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"))))
|
||||
(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")
|
||||
(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+
|
||||
|
||||
(define-public libtool
|
||||
(package
|
||||
(name "libtool")
|
||||
(version "2.4.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libtool/libtool-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("m4" ,m4)
|
||||
("perl" ,perl)))
|
||||
|
||||
;; Separate binaries from the rest. During bootstrap, only ltdl is
|
||||
;; used; not depending on the binaries allows us to avoid retaining
|
||||
;; a reference to the bootstrap bash.
|
||||
(outputs '("bin" ; libtoolize, libtool, etc.
|
||||
"out")) ; libltdl.so, ltdl.h, etc.
|
||||
|
||||
(arguments
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/skip-tests"))
|
||||
#:phases (alist-cons-before
|
||||
'check 'pre-check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Run the test suite in parallel, if possible.
|
||||
(let ((ncores
|
||||
(cond
|
||||
((getenv "NIX_BUILD_CORES")
|
||||
=>
|
||||
(lambda (n)
|
||||
(if (zero? (string->number n))
|
||||
(number->string (current-processor-count))
|
||||
n)))
|
||||
(else "1"))))
|
||||
(setenv "TESTSUITEFLAGS"
|
||||
(string-append "-j" ncores)))
|
||||
|
||||
;; Path references to /bin/sh.
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "tests/testsuite"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/bash")))))
|
||||
%standard-phases)))
|
||||
(inputs `(("patch/skip-tests"
|
||||
,(search-patch "libtool-skip-tests.patch"))))
|
||||
(synopsis "GNU Libtool, a generic library support script")
|
||||
(description
|
||||
"GNU libtool is a generic library support script. Libtool hides the
|
||||
complexity of using shared libraries behind a consistent, portable interface.
|
||||
|
||||
To use libtool, add the new generic library building commands to your
|
||||
Makefile, Makefile.in, or Makefile.am. See the documentation for
|
||||
details.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/libtool/")))
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,110 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 bash)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public bash
|
||||
(let ((cppflags (string-join '("-DSYS_BASHRC='\"/etc/bashrc\"'"
|
||||
"-DSYS_BASH_LOGOUT='\"/etc/bash_logout\"'"
|
||||
"-DDEFAULT_PATH_VALUE='\"/no-such-path\"'"
|
||||
"-DSTANDARD_UTILS_PATH='\"/no-such-path\"'"
|
||||
"-DNON_INTERACTIVE_LOGIN_SHELLS"
|
||||
"-DSSH_SOURCE_BASHRC")
|
||||
" "))
|
||||
(post-install-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Add a `bash' -> `sh' link.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(with-directory-excursion (string-append out "/bin")
|
||||
(symlink "bash" "sh"))))))
|
||||
(package
|
||||
(name "bash")
|
||||
(version "4.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/bash/bash-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n5kbblp5ykbz5q8aq88lsif2z0gnvddg9babk33024wxiwi2ym2"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("readline" ,readline)
|
||||
("ncurses" ,ncurses))) ; TODO: add texinfo
|
||||
(arguments
|
||||
`(#:configure-flags `("--with-installed-readline"
|
||||
,,(string-append "CPPFLAGS=" cppflags)
|
||||
,(string-append
|
||||
"LDFLAGS=-Wl,-rpath -Wl,"
|
||||
(assoc-ref %build-inputs "readline")
|
||||
"/lib"
|
||||
" -Wl,-rpath -Wl,"
|
||||
(assoc-ref %build-inputs "ncurses")
|
||||
"/lib"))
|
||||
|
||||
;; Bash is reportedly not parallel-safe. See, for instance,
|
||||
;; <http://patches.openembedded.org/patch/32745/> and
|
||||
;; <http://git.buildroot.net/buildroot/commit/?h=79e2d802ae7e376a413c02097790493e1f65c3a4>.
|
||||
#:parallel-build? #f
|
||||
#:parallel-tests? #f
|
||||
|
||||
;; XXX: The tests have a lot of hard-coded paths, so disable them
|
||||
;; for now.
|
||||
#:tests? #f
|
||||
|
||||
#:phases (alist-cons-after 'install 'post-install
|
||||
,post-install-phase
|
||||
%standard-phases)))
|
||||
(synopsis "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
|
||||
useful features from the Korn shell (ksh) and C shell (csh). It is intended
|
||||
to conform to the IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools standard. It
|
||||
offers functional improvements over sh for both programming and interactive
|
||||
use. In addition, most sh scripts can be run by Bash without
|
||||
modification.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/bash/"))))
|
||||
|
||||
(define-public bash-light
|
||||
;; A stripped-down Bash for non-interactive use.
|
||||
(package (inherit bash)
|
||||
(name "bash-light")
|
||||
(inputs '()) ; no readline, no curses
|
||||
(arguments
|
||||
(let ((args `(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26))
|
||||
,@(package-arguments bash))))
|
||||
(substitute-keyword-arguments args
|
||||
((#:configure-flags flags)
|
||||
`(list "--without-bash-malloc"
|
||||
"--disable-readline"
|
||||
"--disable-history"
|
||||
"--disable-help-builtin"
|
||||
"--disable-progcomp"
|
||||
"--disable-net-redirections"
|
||||
"--disable-nls")))))))
|
||||
@@ -0,0 +1,57 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 bdb)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public bdb
|
||||
(package
|
||||
(name "bdb")
|
||||
(version "5.3.21")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.oracle.com/berkeley-db/db-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"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))))
|
||||
(synopsis "db, the Berkeley database")
|
||||
(description
|
||||
"Berkeley DB is an embeddable database allowing developers the choice of
|
||||
SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
|
||||
(license (bsd-style "file://LICENSE"
|
||||
"See LICENSE in the distribution."))
|
||||
(home-page "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html")))
|
||||
@@ -0,0 +1,60 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 bdw-gc)
|
||||
#: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
|
||||
(package
|
||||
(name "libgc")
|
||||
(version "7.2alpha6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05jwadjbrv8pr7z9cb4miskicxqpxm0pca4h2rg5cgbpajr2bx7b"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "The Boehm-Demers-Weiser conservative garbage collector
|
||||
for C and C++")
|
||||
(description
|
||||
"The Boehm-Demers-Weiser conservative garbage collector can be used
|
||||
as a garbage collecting replacement for C malloc or C++ new. It allows
|
||||
you to allocate memory basically as you normally would, without
|
||||
explicitly deallocating memory that is no longer useful. The collector
|
||||
automatically recycles memory when it determines that it can no longer
|
||||
be otherwise accessed.
|
||||
|
||||
The collector is also used by a number of programming language
|
||||
implementations that either use C as intermediate code, want to
|
||||
facilitate easier interoperation with C libraries, or just prefer the
|
||||
simple collector interface.
|
||||
|
||||
Alternatively, the garbage collector may be used as a leak detector for
|
||||
C or C++ programs, though that is not its primary goal.")
|
||||
(home-page "http://www.hpl.hp.com/personal/Hans_Boehm/gc/")
|
||||
|
||||
;; permissive X11-style license:
|
||||
;; http://www.hpl.hp.com/personal/Hans_Boehm/gc/license.txt
|
||||
(license x11)))
|
||||
@@ -0,0 +1,57 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 bison)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages perl))
|
||||
|
||||
(define-public bison
|
||||
(package
|
||||
(name "bison")
|
||||
(version "2.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/bison/bison-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y9svfkbw8jc8yv280hqzilpvlwg60gayck83jj98djmzaxr1w86"))))
|
||||
(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")
|
||||
(description
|
||||
"Bison is a general-purpose parser generator that converts an
|
||||
annotated context-free grammar into an LALR(1) or GLR parser for
|
||||
that grammar. Once you are proficient with Bison, you can use
|
||||
it to develop a wide range of language parsers, from those used
|
||||
in simple desk calculators to complex programming languages.
|
||||
|
||||
Bison is upward compatible with Yacc: all properly-written Yacc
|
||||
grammars ought to work with Bison with no change. Anyone
|
||||
familiar with Yacc should be able to use Bison with little
|
||||
trouble. You need to be fluent in C or C++ programming in order
|
||||
to use Bison.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,378 @@
|
||||
;;; 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 bootstrap)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module ((guix store) #:select (add-to-store add-text-to-store))
|
||||
#:use-module ((guix derivations) #:select (derivation))
|
||||
#:use-module (guix utils)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (bootstrap-origin
|
||||
package-with-bootstrap-guile
|
||||
glibc-dynamic-linker
|
||||
|
||||
%bootstrap-guile
|
||||
%bootstrap-coreutils&co
|
||||
%bootstrap-binutils
|
||||
%bootstrap-gcc
|
||||
%bootstrap-glibc
|
||||
%bootstrap-inputs))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; Pre-built packages that are used to bootstrap the
|
||||
;;; distribution--i.e., to build all the core packages from scratch.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
|
||||
|
||||
;;;
|
||||
;;; Helper procedures.
|
||||
;;;
|
||||
|
||||
(define (bootstrap-origin source)
|
||||
"Return a variant of SOURCE, an <origin> instance, whose method uses
|
||||
%BOOTSTRAP-GUILE to do its job."
|
||||
(define (boot fetch)
|
||||
(lambda* (store url hash-algo hash
|
||||
#:optional name #:key system)
|
||||
(fetch store url hash-algo hash
|
||||
#:guile %bootstrap-guile
|
||||
#:system system)))
|
||||
|
||||
(let ((orig-method (origin-method source)))
|
||||
(origin (inherit source)
|
||||
(method (cond ((eq? orig-method url-fetch)
|
||||
(boot url-fetch))
|
||||
(else orig-method))))))
|
||||
|
||||
(define (package-from-tarball name* source* program-to-test description*)
|
||||
"Return a package that correspond to the extraction of SOURCE*.
|
||||
PROGRAM-TO-TEST is a program to run after extraction of SOURCE*, to
|
||||
check whether everything is alright."
|
||||
(package
|
||||
(name name*)
|
||||
(version "0")
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#: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"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(system* xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(and (zero? (system* tar "xvf"
|
||||
(string-append builddir "/binaries.tar")))
|
||||
(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))))))
|
||||
(synopsis description*)
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
|
||||
(define package-with-bootstrap-guile
|
||||
(memoize
|
||||
(lambda (p)
|
||||
"Return a variant of P such that all its origins are fetched with
|
||||
%BOOTSTRAP-GUILE."
|
||||
(define rewritten-input
|
||||
(match-lambda
|
||||
((name (? origin? o))
|
||||
`(,name ,(bootstrap-origin o)))
|
||||
((name (? package? p) sub-drvs ...)
|
||||
`(,name ,(package-with-bootstrap-guile p) ,@sub-drvs))
|
||||
(x x)))
|
||||
|
||||
(package (inherit p)
|
||||
(source (match (package-source p)
|
||||
((? origin? o) (bootstrap-origin o))
|
||||
(s s)))
|
||||
(inputs (map rewritten-input
|
||||
(package-inputs p)))
|
||||
(native-inputs (map rewritten-input
|
||||
(package-native-inputs p)))
|
||||
(propagated-inputs (map rewritten-input
|
||||
(package-propagated-inputs p)))))))
|
||||
|
||||
(define (glibc-dynamic-linker 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")
|
||||
(else (error "dynamic linker name not known for this system"
|
||||
system))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Bootstrap packages.
|
||||
;;;
|
||||
|
||||
(define %bootstrap-guile
|
||||
;; The Guile used to run the build scripts of the initial derivations.
|
||||
;; It is just unpacked from a tarball containing a pre-built binary.
|
||||
;; This is typically built using %GUILE-BOOTSTRAP-TARBALL below.
|
||||
;;
|
||||
;; XXX: Would need libc's `libnss_files2.so' for proper `getaddrinfo'
|
||||
;; support (for /etc/services).
|
||||
(let ((raw (build-system
|
||||
(name "raw")
|
||||
(description "Raw build system with direct store access")
|
||||
(build (lambda* (store name source inputs #:key outputs system)
|
||||
(define (->store file)
|
||||
(add-to-store store file #t #t "sha256"
|
||||
(or (search-bootstrap-binary file
|
||||
system)
|
||||
(error "bootstrap binary not found"
|
||||
file system))))
|
||||
|
||||
(let* ((tar (->store "tar"))
|
||||
(xz (->store "xz"))
|
||||
(mkdir (->store "mkdir"))
|
||||
(bash (->store "bash"))
|
||||
(guile (->store "guile-2.0.7.tar.xz"))
|
||||
(builder
|
||||
(add-text-to-store store
|
||||
"build-bootstrap-guile.sh"
|
||||
(format #f "
|
||||
echo \"unpacking bootstrap Guile to '$out'...\"
|
||||
~a $out
|
||||
cd $out
|
||||
~a -dc < ~a | ~a xv
|
||||
|
||||
# Sanity check.
|
||||
$out/bin/guile --version~%"
|
||||
mkdir xz guile tar)
|
||||
(list mkdir xz guile tar))))
|
||||
(derivation store name system
|
||||
bash `(,builder) '()
|
||||
`((,bash) (,builder)))))))))
|
||||
(package
|
||||
(name "guile-bootstrap")
|
||||
(version "2.0")
|
||||
(source #f)
|
||||
(build-system raw)
|
||||
(synopsis "Bootstrap Guile")
|
||||
(description "Pre-built Guile for bootstrapping purposes.")
|
||||
(home-page #f)
|
||||
(license lgpl3+))))
|
||||
|
||||
(define %bootstrap-base-urls
|
||||
;; This is where the initial binaries come from.
|
||||
'("http://alpha.gnu.org/gnu/guix/bootstrap"
|
||||
"http://www.fdn.fr/~lcourtes/software/guix/packages"))
|
||||
|
||||
(define %bootstrap-coreutils&co
|
||||
(package-from-tarball "bootstrap-binaries"
|
||||
(lambda (system)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
"/20130105/static-binaries.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"0md23alzy6nc5f16pric7mkagczdzr8xbh074sb3rjzrls06j1ls"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"0nzj1lmm9b94g7k737cr4w1dv282w5nmhb53238ikax9r6pkc0yb"))))))
|
||||
"true" ; the program to test
|
||||
"Bootstrap binaries of Coreutils, Awk, etc."))
|
||||
|
||||
(define %bootstrap-binutils
|
||||
(package-from-tarball "binutils-bootstrap"
|
||||
(lambda (system)
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (map (cut string-append <> "/" system
|
||||
"/20130105/binutils-2.22.tar.xz")
|
||||
%bootstrap-base-urls))
|
||||
(sha256
|
||||
(match system
|
||||
("x86_64-linux"
|
||||
(base32
|
||||
"1ffmk2yy2pxvkqgzrkzp3s4jpn4qaaksyk3b5nsc5cjwfm7qkgzh"))
|
||||
("i686-linux"
|
||||
(base32
|
||||
"1rafk6aq4sayvv3r3d2khn93nkyzf002xzh0xadlyci4mznr6b0a"))))))
|
||||
"ld" ; the program to test
|
||||
"Bootstrap binaries of the GNU Binutils"))
|
||||
|
||||
(define %bootstrap-glibc
|
||||
;; The initial libc.
|
||||
(package
|
||||
(name "glibc-bootstrap")
|
||||
(version "0")
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#: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"))
|
||||
(tarball (assoc-ref %build-inputs "tarball")))
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(mkdir out)
|
||||
(copy-file tarball "binaries.tar.xz")
|
||||
(system* xz "-d" "binaries.tar.xz")
|
||||
(let ((builddir (getcwd)))
|
||||
(with-directory-excursion out
|
||||
(system* tar "xvf"
|
||||
(string-append builddir
|
||||
"/binaries.tar"))
|
||||
(chmod "lib" #o755)
|
||||
|
||||
;; Patch libc.so so it refers to the right path.
|
||||
(substitute* "lib/libc.so"
|
||||
(("/[^ ]+/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"))))))))))
|
||||
(synopsis "Bootstrap binaries and headers of the GNU C Library")
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
|
||||
(define %bootstrap-gcc
|
||||
;; The initial GCC. Uses binaries from a tarball typically built by
|
||||
;; %GCC-BOOTSTRAP-TARBALL.
|
||||
(package
|
||||
(name "gcc-bootstrap")
|
||||
(version "0")
|
||||
(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))
|
||||
|
||||
(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
|
||||
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))))
|
||||
|
||||
(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)))
|
||||
("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"))))))))))
|
||||
(synopsis "Bootstrap binaries of the GNU Compiler Collection")
|
||||
(description #f)
|
||||
(home-page #f)))
|
||||
|
||||
(define %bootstrap-inputs
|
||||
;; The initial, pre-built inputs. From now on, we can start building our
|
||||
;; own packages.
|
||||
`(("libc" ,%bootstrap-glibc)
|
||||
("gcc" ,%bootstrap-gcc)
|
||||
("binutils" ,%bootstrap-binutils)
|
||||
("coreutils&co" ,%bootstrap-coreutils&co)
|
||||
|
||||
;; In gnu-build-system.scm, we rely on the availability of Bash.
|
||||
("bash" ,%bootstrap-coreutils&co)))
|
||||
|
||||
;;; bootstrap.scm ends here
|
||||
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -0,0 +1,48 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 check)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public check
|
||||
(package
|
||||
(name "check")
|
||||
(version "0.9.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/check/check/"
|
||||
version "/check-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jcahzrvxcnp5chdn2x46l0y4aba8d8yd70lljfin7h5knxrlyhs"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://check.sourceforge.net/")
|
||||
(synopsis "Check, a unit testing framework for C")
|
||||
(description
|
||||
"Check is a unit testing framework for C. It features a simple
|
||||
interface for defining unit tests, putting little in the way of the
|
||||
developer. Tests are run in a separate address space, so Check can
|
||||
catch both assertion failures and code errors that cause segmentation
|
||||
faults or other signals. The output from unit tests can be used within
|
||||
source code editors and IDEs.")
|
||||
(license lgpl2.1+)))
|
||||
@@ -0,0 +1,200 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 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 zlib
|
||||
(package
|
||||
(name "zlib")
|
||||
(version "1.2.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://zlib.net/zlib-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1i96gsdvxqb6skp9a58bacf1wxamwi9m9pg4yn7cpf7g7239r77s"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Zlib's home-made `configure' doesn't fails when passed
|
||||
;; extra flags like `--enable-fast-install', so we need to
|
||||
;; invoke it with just what it understand.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero? (system* "./configure"
|
||||
(string-append "--prefix=" out)))))
|
||||
%standard-phases)))
|
||||
(home-page "http://zlib.net/")
|
||||
(synopsis "The zlib compression library")
|
||||
(description
|
||||
"zlib is designed to be a free, general-purpose, legally unencumbered --
|
||||
that is, not covered by any patents -- lossless data-compression library for
|
||||
use on virtually any computer hardware and operating system. The zlib data
|
||||
format is itself portable across platforms. Unlike the LZW compression method
|
||||
used in Unix compress(1) and in the GIF image format, the compression method
|
||||
currently used in zlib essentially never expands the data. (LZW can double or
|
||||
triple the file size in extreme cases.) zlib's memory footprint is also
|
||||
independent of the input data and can be reduced, if necessary, at some cost
|
||||
in compression.")
|
||||
(license license:zlib)))
|
||||
|
||||
(define-public gzip
|
||||
(package
|
||||
(name "gzip")
|
||||
(version "1.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gzip/gzip-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18rm80kar7n016g8bsyy1a3zk50i2826xdgs874yh64rzj7nxmdm"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Gzip, the GNU zip compression program")
|
||||
(arguments
|
||||
;; FIXME: The test suite wants `less', and optionally Perl.
|
||||
'(#:tests? #f))
|
||||
(description
|
||||
"gzip (GNU zip) is a popular data compression program written by Jean-loup
|
||||
Gailly for the GNU project. Mark Adler wrote the decompression part.
|
||||
|
||||
We developed this program as a replacement for compress because of the Unisys
|
||||
and IBM patents covering the LZW algorithm used by compress. These patents
|
||||
made it impossible for us to use compress, and we needed a replacement. The
|
||||
superior compression ratio of gzip is just a bonus.")
|
||||
(license license:gpl3+)
|
||||
(home-page "http://www.gnu.org/software/gzip/")))
|
||||
|
||||
(define-public bzip2
|
||||
(let ((fix-man-dir
|
||||
;; Move man pages to $out/share/.
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(with-directory-excursion (assoc-ref outputs "out")
|
||||
(mkdir "share")
|
||||
(rename-file "man" "share"))))
|
||||
(build-shared-lib
|
||||
;; Build a shared library.
|
||||
'(lambda* (#:key inputs #:allow-other-keys)
|
||||
(patch-makefile-SHELL "Makefile-libbz2_so")
|
||||
(zero? (system* "make" "-f" "Makefile-libbz2_so"))))
|
||||
(install-shared-lib
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(libdir (string-append out "/lib")))
|
||||
(for-each (lambda (file)
|
||||
(let ((base (basename file)))
|
||||
(format #t "installing `~a' to `~a'~%"
|
||||
base libdir)
|
||||
(copy-file file
|
||||
(string-append libdir "/" base))))
|
||||
(find-files "." "^libbz2\\.so"))))))
|
||||
(package
|
||||
(name "bzip2")
|
||||
(version "1.0.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.bzip.org/" version "/bzip2-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kfrc7f0ja9fdn6j1y6yir6li818npy6217hvr3wzmnmzhs8z152"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1))
|
||||
#:phases
|
||||
(alist-cons-before
|
||||
'build 'build-shared-lib ,build-shared-lib
|
||||
(alist-cons-after
|
||||
'install 'fix-man-dir ,fix-man-dir
|
||||
(alist-cons-after
|
||||
'install 'install-shared-lib ,install-shared-lib
|
||||
(alist-delete 'configure %standard-phases))))
|
||||
#:make-flags (list (string-append "PREFIX="
|
||||
(assoc-ref %outputs "out")))))
|
||||
(synopsis "high-quality data compression program")
|
||||
(description
|
||||
"bzip2 is a freely available, patent free (see below), high-quality data
|
||||
compressor. It typically compresses files to within 10% to 15% of the best
|
||||
available techniques (the PPM family of statistical compressors), whilst
|
||||
being around twice as fast at compression and six times faster at
|
||||
decompression.")
|
||||
(license (license:bsd-style "file://LICENSE"
|
||||
"See LICENSE in the distribution."))
|
||||
(home-page "http://www.bzip.org/"))))
|
||||
|
||||
(define-public xz
|
||||
(package
|
||||
(name "xz")
|
||||
(version "5.0.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://tukaani.org/xz/xz-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1dl35ca8fdss9z2d6y234gxh24ixq904xksizrjmjr5dimwhax6n"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis
|
||||
"XZ, general-purpose data compression software, successor of LZMA")
|
||||
(description
|
||||
"XZ Utils is free general-purpose data compression software with high
|
||||
compression ratio. XZ Utils were written for POSIX-like systems, but also
|
||||
work on some not-so-POSIX systems. XZ Utils are the successor to LZMA Utils.
|
||||
|
||||
The core of the XZ Utils compression code is based on LZMA SDK, but it has
|
||||
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
|
||||
(home-page "http://tukaani.org/xz/")))
|
||||
|
||||
(define-public lzo
|
||||
(package
|
||||
(name "lzo")
|
||||
(version "2.06")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.oberhumer.com/opensource/lzo/download/lzo-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wryshs446s7cclrbjykyj766znhcpnr7s3cxy33ybfn6vwfcygz"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.oberhumer.com/opensource/lzo")
|
||||
(synopsis
|
||||
"A data compresion library suitable for real-time data de-/compression")
|
||||
(description
|
||||
"LZO is a data compression library which is suitable for data
|
||||
de-/compression in real-time. This means it favours speed over
|
||||
compression ratio.
|
||||
|
||||
LZO is written in ANSI C. Both the source code and the compressed data
|
||||
format are designed to be portable across platforms.")
|
||||
(license license:gpl2+)))
|
||||
@@ -0,0 +1,58 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 cpio)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public cpio
|
||||
(package
|
||||
(name "cpio")
|
||||
(version "2.11")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/cpio/cpio-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gavgpzqwgkpagjxw72xgxz52y1ifgz0ckqh8g7cckz7jvyhp0mv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:patches (list (assoc-ref %build-inputs
|
||||
"patch/gets"))))
|
||||
(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")
|
||||
(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.
|
||||
|
||||
GNU Cpio supports the following archive formats: binary, old ASCII, new
|
||||
ASCII, crc, HPUX binary, HPUX old ASCII, old tar, and POSIX.1 tar. The
|
||||
tar format is provided for compatability with the tar program. By
|
||||
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+)))
|
||||
@@ -0,0 +1,57 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; 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 cyrus-sasl)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages gdbm)
|
||||
#:use-module (gnu packages mit-krb5)
|
||||
#:use-module (gnu packages openssl)
|
||||
#: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 cyrus-sasl
|
||||
(package
|
||||
(name "cyrus-sasl")
|
||||
(version "2.1.26")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"1hvvbcsg21nlncbgs0cgn3iwlnb3vannzwsp6rwvnn9ba4v53g4g"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gdbm" ,gdbm)
|
||||
("mit-krb5" ,mit-krb5)
|
||||
("openssl" ,openssl)))
|
||||
(arguments
|
||||
'(#:configure-flags (list (string-append "--with-plugindir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/sasl2"))))
|
||||
(synopsis "Cyrus SASL, an implementation of the Simple Authentication Security Layer framework")
|
||||
(description
|
||||
"SASL (Simple Authentication Security Layer) is an Internet
|
||||
standards-track method for remote computers to authenticate. The Cyrus SASL
|
||||
library makes supporting various SASL mechanisms easy for both client and
|
||||
server writers.")
|
||||
(license (license:bsd-style "file://COPYING"
|
||||
"See COPYING in the distribution."))
|
||||
(home-page "http://cyrusimap.web.cmu.edu/index.php")))
|
||||
@@ -0,0 +1,60 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 ddrescue)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public ddrescue
|
||||
(package
|
||||
(name "ddrescue")
|
||||
(version "1.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ddrescue/ddrescue-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rixya7p8c4jrn4p0flf6h5dqwybrilf3hrj4r7x41h3zgjz5cvn"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page
|
||||
"http://www.gnu.org/software/ddrescue/ddrescue.html")
|
||||
(synopsis "GNU ddrescue, a data recovery tool")
|
||||
(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
|
||||
rescue data in case of read errors.
|
||||
|
||||
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
|
||||
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.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,88 @@
|
||||
;;; 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 dejagnu)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages tcl))
|
||||
|
||||
(define-public dejagnu
|
||||
(package
|
||||
(name "dejagnu")
|
||||
(version "1.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/dejagnu/dejagnu-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nx3x3h96a82q92q108q71giv2nz9xmbbn2nrlr3wvvs6l45id68"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("expect" ,expect)))
|
||||
(arguments
|
||||
'(#:phases (alist-replace
|
||||
'check
|
||||
(lambda _
|
||||
;; Note: The test-suite *requires* /dev/pts among the
|
||||
;; `build-chroot-dirs' of the build daemon when
|
||||
;; building in a chroot. See
|
||||
;; <http://thread.gmane.org/gmane.linux.distributions.nixos/1036>
|
||||
;; for details.
|
||||
(if (and (directory-exists? "/dev/pts")
|
||||
(directory-exists? "/proc"))
|
||||
(begin
|
||||
;; Provide `runtest' with a log name, otherwise
|
||||
;; it tries to run `whoami', which fails when in
|
||||
;; a chroot.
|
||||
(setenv "LOGNAME" "guix-builder")
|
||||
|
||||
;; The test-suite needs to have a non-empty stdin:
|
||||
;; <http://lists.gnu.org/archive/html/bug-dejagnu/2003-06/msg00002.html>.
|
||||
(zero?
|
||||
(system "make check < /dev/zero")))
|
||||
(begin
|
||||
(display "test suite cannot be run, skipping\n")
|
||||
#t)))
|
||||
(alist-cons-after
|
||||
'install 'post-install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Use the right `expect' binary.
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(expect (assoc-ref inputs "expect")))
|
||||
(substitute* (string-append out "/bin/runtest")
|
||||
(("^mypath.*$" all)
|
||||
(string-append all
|
||||
"export PATH="
|
||||
expect "/bin:$PATH\n")))))
|
||||
%standard-phases))))
|
||||
(home-page
|
||||
"http://www.gnu.org/software/dejagnu/")
|
||||
(synopsis "The DejaGNU 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
|
||||
custom library of Tcl procedures crafted to support writing a
|
||||
test harness. A test harness is the testing infrastructure that
|
||||
is created to support a specific program or tool. Each program
|
||||
can have multiple testsuites, all supported by a single test
|
||||
harness. DejaGnu is written in Expect, which in turn uses Tcl --
|
||||
Tool command language.")
|
||||
(license gpl2+)))
|
||||
@@ -0,0 +1,53 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 ed)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("CC=gcc")))
|
||||
(home-page "http://www.gnu.org/software/ed/")
|
||||
(synopsis
|
||||
"GNU ed, an implementation of the standard Unix editor")
|
||||
(description
|
||||
"GNU ed is a line-oriented text editor. It is used to create,
|
||||
display, modify and otherwise manipulate text files, both
|
||||
interactively and via shell scripts. A restricted version of ed,
|
||||
red, can only edit files in the current directory and cannot
|
||||
execute shell commands. Ed is the \"standard\" text editor in the
|
||||
sense that it is the original editor for Unix, and thus widely
|
||||
available. For most purposes, however, it is superseded by
|
||||
full-screen editors such as GNU Emacs or GNU Moe.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,93 @@
|
||||
;;; 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 emacs)
|
||||
#: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 ncurses)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages gnutls)
|
||||
#:use-module (gnu packages pkg-config))
|
||||
|
||||
(define-public emacs
|
||||
(package
|
||||
(name "emacs")
|
||||
(version "24.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/emacs/emacs-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"13wbjfjmz13qpjwssy44nw2230lllmkkgjsy0rqfm6am2cf87n3k"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list (string-append "--with-crt-dir=" (assoc-ref %build-inputs "libc")
|
||||
"/lib"))
|
||||
#:patches (list (assoc-ref %build-inputs "patch/epaths"))
|
||||
#:phases (alist-cons-before
|
||||
'configure 'fix-/bin/pwd
|
||||
(lambda _
|
||||
;; Use `pwd', not `/bin/pwd'.
|
||||
(substitute* (find-files "." "^Makefile\\.in$")
|
||||
(("/bin/pwd")
|
||||
"pwd")))
|
||||
%standard-phases)))
|
||||
(inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("gnutls" ,gnutls)
|
||||
("texinfo" ,texinfo)
|
||||
("ncurses" ,ncurses)
|
||||
|
||||
;; TODO: Add the optional dependencies.
|
||||
;; ("xlibs" ,xlibs)
|
||||
;; ("gtk+" ,gtk+)
|
||||
;; ("libXft" ,libXft)
|
||||
;; ("libtiff" ,libtiff)
|
||||
;; ("libungif" ,libungif)
|
||||
;; ("libjpeg" ,libjpeg)
|
||||
;; ("libpng" ,libpng)
|
||||
;; ("libXpm" ,libXpm)
|
||||
;; ("libxml2" ,libxml2)
|
||||
;; ("dbus-library" ,dbus-library)
|
||||
|
||||
("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")
|
||||
(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
|
||||
programming language with extensions to support text editing.
|
||||
|
||||
The features of GNU Emacs include: content-sensitive editing modes,
|
||||
including syntax coloring, for a wide variety of file types including
|
||||
plain text, source code, and HTML; complete built-in documentation,
|
||||
including a tutorial for new users; full Unicode support for nearly all
|
||||
human languages and their scripts; highly customizable, using Emacs
|
||||
Lisp code or a graphical interface; a large number of extensions that
|
||||
add other functionality, including a project planner, mail and news
|
||||
reader, debugger interface, calendar, and more. Many of these
|
||||
extensions are distributed with GNU Emacs; others are available
|
||||
separately.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,44 @@
|
||||
;;; 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 file)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public file
|
||||
(package
|
||||
(name "file")
|
||||
(version "5.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp.astron.com/pub/file/file-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"08ix4xrvan0k80n0l5lqfmc4azjv5lyhvhwdxny4r09j5smhv78r"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "file, a file type guesser")
|
||||
(description
|
||||
"The file command is a file type guesser, a command-line tool that tells
|
||||
you in words what kind of data a file contains. It does not rely on filename
|
||||
extentions to tell you the type of a file, but looks at the actual contents
|
||||
of the file.")
|
||||
(license bsd-2)
|
||||
(home-page "http://www.darwinsys.com/file/")))
|
||||
@@ -0,0 +1,63 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 flex)
|
||||
#: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 m4)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages indent))
|
||||
|
||||
(define-public flex
|
||||
(package
|
||||
(name "flex")
|
||||
(version "2.5.37")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/flex/flex-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ah5mi4j62b85a9rllv1004mzjb5cd0mn4glvz13p88rpx77pahp"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/bison-tests"))))
|
||||
(inputs `(("patch/bison-tests" ,(search-patch "flex-bison-tests.patch"))
|
||||
("bison" ,bison)
|
||||
("indent" ,indent)))
|
||||
(propagated-inputs `(("m4" ,m4)))
|
||||
(home-page "http://flex.sourceforge.net/")
|
||||
(synopsis "A fast lexical analyser generator")
|
||||
(description
|
||||
"Flex is a tool for generating scanners. A scanner, sometimes
|
||||
called a tokenizer, is a program which recognizes lexical patterns in
|
||||
text. The flex program reads user-specified input files, or its standard
|
||||
input if no file names are given, for a description of a scanner to
|
||||
generate. The description is in the form of pairs of regular expressions
|
||||
and C code, called rules. Flex generates a C source file named,
|
||||
\"lex.yy.c\", which defines the function yylex(). The file \"lex.yy.c\"
|
||||
can be compiled and linked to produce an executable. When the executable
|
||||
is run, it analyzes its input for occurrences of text matching the
|
||||
regular expressions for each rule. Whenever it finds a match, it
|
||||
executes the corresponding C code.")
|
||||
(license (bsd-style "file://COPYING"
|
||||
"See COPYING in the distribution."))))
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
;;; 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 gawk)
|
||||
#:use-module (guix licenses)
|
||||
#: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")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gawk/gawk-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32 "0sss7rhpvizi2a88h6giv0i7w5h07s2fxkw3s6n1hqvcnhrfgbb0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(case-lambda
|
||||
((system)
|
||||
`(#:parallel-tests? #f ; test suite fails in parallel
|
||||
|
||||
;; Work around test failure on Cygwin.
|
||||
#:tests? ,(not (string=? 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))))
|
||||
(inputs `(("libsigsegv" ,libsigsegv)))
|
||||
(home-page "http://www.gnu.org/software/gawk/")
|
||||
(synopsis "GNU implementation of the Awk programming 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
|
||||
changes in various text files wherever certain patterns appear, and so on.
|
||||
To write a program to do these things in a language such as C or Pascal is a
|
||||
time-consuming inconvenience that may take many lines of code. The job is
|
||||
easy with awk, especially the GNU implementation: Gawk.
|
||||
|
||||
The awk utility interprets a special-purpose programming language that makes
|
||||
it possible to handle many data-reformatting jobs with just a few lines of
|
||||
code.")
|
||||
(license gpl3+)))
|
||||
@@ -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 gdb)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages dejagnu)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module ((guix licenses) #:select (gpl3+))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gdb
|
||||
(package
|
||||
(name "gdb")
|
||||
(version "7.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gdb/gdb-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0chrws5ga90b50kp06yll6zy42fhnx9yr87r4i7swsc369fc8y6i"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-cons-after
|
||||
'configure 'post-configure
|
||||
(lambda _
|
||||
(patch-makefile-SHELL "gdb/gdbserver/Makefile.in"))
|
||||
%standard-phases)))
|
||||
(inputs
|
||||
`(("expat" ,expat)
|
||||
("mpfr" ,mpfr)
|
||||
("gmp" ,gmp)
|
||||
("readline" ,readline)
|
||||
("ncurses" ,ncurses)
|
||||
("python" ,python)
|
||||
("texinfo" ,texinfo)
|
||||
("dejagnu" ,dejagnu)))
|
||||
(home-page "http://www.gnu.org/software/gdb/")
|
||||
(synopsis "GDB, the GNU Project debugger")
|
||||
(description
|
||||
"GDB, the GNU Project debugger, allows you to see what is going
|
||||
on `inside' another program while it executes -- or what another
|
||||
program was doing at the moment it crashed.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,56 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 gdbm)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gdbm
|
||||
(package
|
||||
(name "gdbm")
|
||||
(version "1.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gdbm/gdbm-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0h9lfzdjc2yl849y0byg51h6xfjg0y7vg9jnsw3gpfwlbd617y13"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/gdbm/")
|
||||
(synopsis "GNU dbm key/value database library")
|
||||
(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.
|
||||
These routines are provided to a programmer needing to create and
|
||||
manipulate a hashed database.
|
||||
|
||||
The basic use of GDBM is to store key/data pairs in a data file. Each
|
||||
key must be unique and each key is paired with only one data item.
|
||||
|
||||
The library provides primitives for storing key/data pairs, searching
|
||||
and retrieving the data by its key and deleting a key along with its
|
||||
data. It also support sequential iteration over all key/data pairs in a
|
||||
database.
|
||||
|
||||
For compatibility with programs using old UNIX dbm function, the package
|
||||
also provides traditional dbm and ndbm interfaces.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,78 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 gettext)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gettext
|
||||
(package
|
||||
(name "gettext")
|
||||
(version "0.18.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gettext/gettext-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1sa3ch12qxa4h3ya6hkz119yclcccmincl9j20dhrdx5mykp3b4k"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/gets"))
|
||||
#:phases (alist-cons-before
|
||||
'check 'patch-tests
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* (find-files "gettext-tools/tests"
|
||||
"^msgexec-[0-9]")
|
||||
(("#![[:blank:]]/bin/sh")
|
||||
(format #f "#!~a/bin/sh" bash)))
|
||||
(substitute* (find-files "gettext-tools/gnulib-tests"
|
||||
"posix_spawn")
|
||||
(("/bin/sh")
|
||||
(format #f "~a/bin/bash" bash)))))
|
||||
%standard-phases)))
|
||||
(inputs
|
||||
`(("patch/gets"
|
||||
,(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")
|
||||
(description
|
||||
"Usually, programs are written and documented in English, and use
|
||||
English at execution time for interacting with users. Using a common
|
||||
language is quite handy for communication between developers,
|
||||
maintainers and users from all countries. On the other hand, most
|
||||
people are less comfortable with English than with their own native
|
||||
language, and would rather be using their mother tongue for day to
|
||||
day's work, as far as possible. Many would simply love seeing their
|
||||
computer screen showing a lot less of English, and far more of their
|
||||
own language.
|
||||
|
||||
GNU `gettext' is an important step for the GNU Translation Project, as
|
||||
bit is an asset on which we may build many other steps. This package
|
||||
offers to programmers, translators, and even users, a well integrated
|
||||
set of tools and documentation. Specifically, the GNU `gettext'
|
||||
utilities are a set of tools that provides a framework to help other
|
||||
GNU packages produce multi-lingual messages.")
|
||||
(license gpl3))) ; some files are under GPLv2+
|
||||
@@ -0,0 +1,58 @@
|
||||
;;; 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 global)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)
|
||||
("libtool" ,libtool)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(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")
|
||||
(description
|
||||
"GNU GLOBAL is a source code tagging system that works the same way
|
||||
across diverse environments (Emacs, vi, less, Bash, web browser, etc).
|
||||
You can locate specified objects in source files and move there easily.
|
||||
It is useful for hacking a large project containing many
|
||||
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+")))
|
||||
@@ -0,0 +1,168 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 gnupg)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages pth)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module ((gnu packages compression)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libgpg-error
|
||||
(package
|
||||
(name "libgpg-error")
|
||||
(version "1.10")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/libgpg-error/libgpg-error-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cal3jdnzdailr13qcy74grfbplbghkgr3qwk6qjjp4bass2j1jj"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://gnupg.org")
|
||||
(synopsis
|
||||
"Libgpg-error, a small library that defines common error values for all GnuPG components")
|
||||
(description
|
||||
"Libgpg-error is a small library that defines common error values
|
||||
for all GnuPG components. Among these are GPG, GPGSM, GPGME,
|
||||
GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard
|
||||
Daemon and possibly more in the future.")
|
||||
(license lgpl2.0+)))
|
||||
|
||||
(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"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgpg-error" ,libgpg-error)))
|
||||
(home-page "http://gnupg.org/")
|
||||
(synopsis
|
||||
"GNU Libgcrypt, a general-pupose cryptographic library")
|
||||
(description
|
||||
"GNU Libgcrypt is a general purpose cryptographic library based on
|
||||
the code from GnuPG. It provides functions for all
|
||||
cryptographic building blocks: symmetric ciphers, hash
|
||||
algorithms, MACs, public key algorithms, large integer
|
||||
functions, random numbers and a lot of supporting functions.")
|
||||
(license lgpl2.0+)))
|
||||
|
||||
(define-public libassuan
|
||||
(package
|
||||
(name "libassuan")
|
||||
(version "2.0.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/libassuan/libassuan-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"06xckkvxxlx7cj77803m8x58gxksap4k8yhspc5cqsy7fhinimds"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgpg-error" ,libgpg-error) ("pth" ,pth)))
|
||||
(home-page "http://gnupg.org")
|
||||
(synopsis
|
||||
"Libassuan, the IPC library used by GnuPG and related software")
|
||||
(description
|
||||
"Libassuan is a small library implementing the so-called Assuan
|
||||
protocol. This protocol is used for IPC between most newer
|
||||
GnuPG components. Both, server and client side functions are
|
||||
provided.")
|
||||
(license lgpl2.0+)))
|
||||
|
||||
(define-public libksba
|
||||
(package
|
||||
(name "libksba")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnupg/libksba/libksba-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jwk7hm3x3g4hd7l12z3d79dy7359x7lc88dq6z7q0ixn1jwxbq9"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgpg-error" ,libgpg-error)))
|
||||
(home-page "http://www.gnupg.org")
|
||||
(synopsis
|
||||
"Libksba is a CMS and X.509 access library under development")
|
||||
(description
|
||||
"KSBA (pronounced Kasbah) is a library to make X.509 certificates
|
||||
as well as the CMS easily accessible by other applications. Both
|
||||
specifications are building blocks of S/MIME and TLS.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public gnupg
|
||||
(package
|
||||
(name "gnupg")
|
||||
(version "2.0.19")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"08n636sfffs5qvg9ppiprvsh00q0dmdw425psg3m3nssja53m8pg"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(;; TODO: Add missing optional deps.
|
||||
;; ("curl" ,curl)
|
||||
;; ("libusb" ,libusb)
|
||||
;; ("openldap" ,openldap)
|
||||
|
||||
("bzip2" ,guix:bzip2)
|
||||
("libassuan" ,libassuan)
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("libksba" ,libksba)
|
||||
("pth" ,pth)
|
||||
("libgpg-error" ,libgpg-error)
|
||||
("zlib" ,guix:zlib)
|
||||
("readline" ,readline)))
|
||||
(home-page "http://gnupg.org/")
|
||||
(synopsis
|
||||
"GNU Privacy Guard (GnuPG), GNU Project's implementation of the OpenPGP standard")
|
||||
(description
|
||||
"GnuPG is the GNU project's complete and free implementation of
|
||||
the OpenPGP standard as defined by RFC4880. GnuPG allows to
|
||||
encrypt and sign your data and communication, features a
|
||||
versatile key managment system as well as access modules for all
|
||||
kind of public key directories. GnuPG, also known as GPG, is a
|
||||
command line tool with features for easy integration with other
|
||||
applications. A wealth of frontend applications and libraries
|
||||
are available. Version 2 of GnuPG also provides support for
|
||||
S/MIME.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,98 @@
|
||||
;;; 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 gnutls)
|
||||
#:use-module (guix licenses)
|
||||
#: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)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages which))
|
||||
|
||||
(define-public libtasn1
|
||||
(package
|
||||
(name "libtasn1")
|
||||
(version "3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libtasn1/libtasn1-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gvgndypwicchf7m660zh7jdgmkfj9g9xavpcc08pyd0120y0bk7"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/libtasn1/")
|
||||
(synopsis "GNU Libtasn1, an 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
|
||||
portable, and only require an ANSI C89 platform.")
|
||||
(license lgpl2.0+)))
|
||||
|
||||
(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"))))
|
||||
(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
|
||||
`(("libtasn1" ,libtasn1)
|
||||
("nettle" ,nettle)
|
||||
("which" ,which)))
|
||||
(home-page "http://www.gnu.org/software/gnutls/")
|
||||
(synopsis
|
||||
"The GNU 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
|
||||
library implements the proposed standards by the IETF's TLS working
|
||||
group.
|
||||
|
||||
Quoting from the TLS protocol specification:
|
||||
|
||||
\"The TLS protocol provides communications privacy over the
|
||||
Internet. The protocol allows client/server applications to communicate
|
||||
in a way that is designed to prevent eavesdropping, tampering, or
|
||||
message forgery.\"")
|
||||
(license lgpl2.1+)))
|
||||
@@ -0,0 +1,55 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 gperf)
|
||||
#: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
|
||||
(package
|
||||
(name "gperf")
|
||||
(version "3.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gperf/gperf-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gnnm8iqcl52m8iha3sxrzrl9mcyhg7lfrhhqgdn4zj00ji14wbn"))))
|
||||
(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")
|
||||
(description
|
||||
"GNU gperf is a perfect hash function generator. For a given
|
||||
list of strings, it produces a hash function and hash table, in
|
||||
form of C or C++ code, for looking up a value depending on the
|
||||
input string. The hash function is perfect, which means that
|
||||
the hash table has no collisions, and the hash table lookup
|
||||
needs a single string comparison only.
|
||||
|
||||
GNU gperf is highly customizable. There are options for
|
||||
generating C or C++ code, for emitting switch statements or
|
||||
nested ifs instead of a hash table, and for tuning the algorithm
|
||||
employed by gperf.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,113 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 gsasl)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module ((gnu packages compression)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (gnu packages gnutls)
|
||||
#:use-module (gnu packages libidn)
|
||||
#:use-module (gnu packages nettle)
|
||||
#:use-module (gnu packages shishi)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libntlm
|
||||
(package
|
||||
(name "libntlm")
|
||||
(version "1.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.nongnu.org/libntlm/releases/libntlm-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"101pr110ardcj2di940g6vaqifsaxc44h6hjn81l63dvmkj5a6ga"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Libntlm, a library that implements NTLM authentication")
|
||||
(description
|
||||
"Libntlm is a library that implements NTLM authentication")
|
||||
(license lgpl2.1+)
|
||||
(home-page "http://www.nongnu.org/libntlm/")))
|
||||
|
||||
(define-public gss
|
||||
(package
|
||||
(name "gss")
|
||||
(version "1.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gss/gss-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"1qa8lbkzi6ilfggx7mchfzjnchvhwi68rck3jf9j4425ncz7zsd9"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("nettle" ,nettle)
|
||||
("shishi" ,shishi)
|
||||
("zlib" ,guix:zlib)
|
||||
))
|
||||
(synopsis "GNU GSS (Generic Security Service), a free implementatio of RFC 2743/2744")
|
||||
(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
|
||||
security services, e.g., to authenticate SMTP/IMAP clients against
|
||||
SMTP/IMAP servers. GSS consists of a library and a manual.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/gss/")))
|
||||
|
||||
(define-public gsasl
|
||||
(package
|
||||
(name "gsasl")
|
||||
(version "1.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gsasl/gsasl-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii"))))
|
||||
(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")
|
||||
(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
|
||||
servers (e.g., IMAP, SMTP) to request authentication from clients, and in
|
||||
clients to authenticate against servers.
|
||||
|
||||
GNU SASL consists of a library (libgsasl), a command line utility (gsasl)
|
||||
to access the library from the shell, and a manual. The library includes
|
||||
support for the framework (with authentication functions and application
|
||||
data privacy and integrity functions) and at least partial support for the
|
||||
CRAM-MD5, EXTERNAL, GSSAPI, ANONYMOUS, PLAIN, SECURID, DIGEST-MD5,
|
||||
SCRAM-SHA-1, SCRAM-SHA-1-PLUS, LOGIN, and NTLM mechanisms.
|
||||
|
||||
The library is portable because it does not do network communication by
|
||||
itself, but rather leaves it up to the calling application. The library is
|
||||
flexible with regards to the authorization infrastructure used, as it
|
||||
utilises callbacks into the application to decide whether an user is
|
||||
authorised or not.
|
||||
|
||||
The gsasl package distribution includes the library part as well,
|
||||
so there is no need to install two packages.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/gsasl/")))
|
||||
@@ -0,0 +1,197 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 guile)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages bdw-gc)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages libunistring)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; GNU Guile, and modules and extensions.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define-public guile-1.8
|
||||
(package
|
||||
(name "guile")
|
||||
(version "1.8.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/guile/guile-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("--disable-error-on-warning")
|
||||
#:patches (list (assoc-ref %build-inputs "patch/snarf"))
|
||||
|
||||
;; Insert a phase before `configure' to patch things up.
|
||||
#:phases (alist-cons-before
|
||||
'configure
|
||||
'patch-loader-search-path
|
||||
(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")))))
|
||||
%standard-phases)))
|
||||
(inputs `(("patch/snarf" ,(search-patch "guile-1.8-cpp-4.5.patch"))
|
||||
("gawk" ,gawk)
|
||||
("readline" ,readline)))
|
||||
|
||||
;; Since `guile-1.8.pc' has "Libs: ... -lgmp -lltdl", these must be
|
||||
;; propagated.
|
||||
(propagated-inputs `(("gmp" ,gmp)
|
||||
("libtool" ,libtool)))
|
||||
|
||||
;; When cross-compiling, a native version of Guile itself is needed.
|
||||
(self-native-input? #t)
|
||||
|
||||
(synopsis "GNU Guile 1.8, an embeddable Scheme interpreter")
|
||||
(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
|
||||
extensible. It supports many SRFIs.")
|
||||
(home-page "http://www.gnu.org/software/guile/")
|
||||
(license lgpl2.0+)))
|
||||
|
||||
(define-public guile-2.0
|
||||
(package
|
||||
(name "guile")
|
||||
(version "2.0.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/guile/guile-" version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f53pxkia4v17n0avwqlcjpy0n89hkazm2xsa6p84lv8k6k8y9vg"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkgconfig" ,pkg-config)))
|
||||
(inputs `(("libffi" ,libffi)
|
||||
("readline" ,readline)))
|
||||
|
||||
(propagated-inputs
|
||||
`( ;; These ones aren't normally needed here, but since `libguile-2.0.la'
|
||||
;; reads `-lltdl -lunistring', adding them here will add the needed
|
||||
;; `-L' flags. As for why the `.la' file lacks the `-L' flags, see
|
||||
;; <http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/18903>.
|
||||
("libunistring" ,libunistring)
|
||||
("libtool" ,libtool)
|
||||
|
||||
;; The headers and/or `guile-2.0.pc' refer to these packages, so they
|
||||
;; must be propagated.
|
||||
("bdw-gc" ,libgc)
|
||||
("gmp" ,gmp)))
|
||||
|
||||
(self-native-input? #t)
|
||||
|
||||
(arguments
|
||||
'(#:phases (alist-cons-before
|
||||
'configure 'pre-configure
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* "module/ice-9/popen.scm"
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/bash")))))
|
||||
%standard-phases)))
|
||||
|
||||
(synopsis "GNU Guile 2.0, an embeddable Scheme implementation")
|
||||
(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.
|
||||
In addition to implementing the R5RS Scheme standard and a large subset of
|
||||
R6RS, Guile includes a module system, full access to POSIX system calls,
|
||||
networking support, multiple threads, dynamic linking, a foreign function
|
||||
call interface, and powerful string processing.")
|
||||
(home-page "http://www.gnu.org/software/guile/")
|
||||
(license lgpl3+)))
|
||||
|
||||
(define-public guile-2.0/fixed
|
||||
;; A package of Guile 2.0 that's rarely changed. It is the one used
|
||||
;; in the `base' module, and thus changing it entails a full rebuild.
|
||||
guile-2.0)
|
||||
|
||||
|
||||
;;;
|
||||
;;; Extensions.
|
||||
;;;
|
||||
|
||||
(define (guile-reader guile)
|
||||
"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)))
|
||||
(version "0.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://download-mirror.savannah.gnu.org/releases/guile-reader/guile-reader-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkgconfig" ,pkg-config)
|
||||
("gperf" ,gperf)))
|
||||
(inputs `(("guile" ,guile)))
|
||||
(synopsis "Guile-Reader, a simple framework for building readers for
|
||||
GNU Guile")
|
||||
(description
|
||||
"Guile-Reader is a simple framework for building readers for GNU Guile.
|
||||
|
||||
The idea is to make it easy to build procedures that extend Guile’s read
|
||||
procedure. Readers supporting various syntax variants can easily be written,
|
||||
possibly by re-using existing “token readers” of a standard Scheme
|
||||
readers. For example, it is used to implement Skribilo’s R5RS-derived
|
||||
document syntax.
|
||||
|
||||
Guile-Reader’s approach is similar to Common Lisp’s “read table”, but
|
||||
hopefully more powerful and flexible (for instance, one may instantiate as
|
||||
many readers as needed).")
|
||||
(home-page "http://www.nongnu.org/guile-reader/")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public guile-reader/guile-1.8
|
||||
;; Guile-Reader built against Guile 1.8.
|
||||
(guile-reader guile-1.8))
|
||||
|
||||
(define-public guile-reader/guile-2.0
|
||||
;; Guile-Reader built against Guile 2.0.
|
||||
(guile-reader guile-2.0))
|
||||
|
||||
;;; guile.scm ends here
|
||||
@@ -0,0 +1,52 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 help2man)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages perl))
|
||||
|
||||
(define-public help2man
|
||||
(package
|
||||
(name "help2man")
|
||||
(version "1.40.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/help2man/help2man-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0s6phazn8jgvpbsby8kj2m58rj1zjghi1aipvamh8af226ssqfzj"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(;; There's no `check' target.
|
||||
#:tests? #f))
|
||||
(inputs
|
||||
`(("perl" ,perl)
|
||||
;; TODO: Add these optional dependencies.
|
||||
;; ("perl-LocaleGettext" ,perl-LocaleGettext)
|
||||
;; ("gettext" ,gettext)
|
||||
))
|
||||
(home-page "http://www.gnu.org/software/help2man/")
|
||||
(synopsis "GNU help2man generates man pages from `--help' output")
|
||||
(description
|
||||
"help2man produces simple manual pages from the ‘--help’ and
|
||||
‘--version’ output of other commands.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,66 @@
|
||||
;;; 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 icu4c)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public icu4c
|
||||
(package
|
||||
(name "icu4c")
|
||||
(version "50.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.icu-project.org/files/icu4c/"
|
||||
version
|
||||
"/icu4c-"
|
||||
(string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
|
||||
"-src.tgz"))
|
||||
(sha256 (base32
|
||||
"13yz0kk6zsgj94idnlr3vbg8iph5z4ly4b4xrd5wfja7q3ijdx56"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(alist-replace
|
||||
'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(and (zero? (system* "tar" "xvf" source))
|
||||
(chdir "icu/source")))
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
;; patch out two occurrences of /bin/sh from configure script
|
||||
;; that might have disappeared in a release later than 50.1.1
|
||||
(substitute* "configure"
|
||||
(("`/bin/sh")
|
||||
(string-append "`" (which "bash"))))
|
||||
(apply configure args)))
|
||||
%standard-phases))))
|
||||
(synopsis "ICU, International Components for Unicode")
|
||||
(description
|
||||
"ICU is a set of C/C++ and Java libraries providing Unicode and
|
||||
globalisation support for software applications. This package contains the
|
||||
C/C++ part.")
|
||||
(license x11)
|
||||
(home-page "http://site.icu-project.org/")))
|
||||
@@ -0,0 +1,65 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 idutils)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages))
|
||||
|
||||
(define-public idutils
|
||||
(package
|
||||
(name "idutils")
|
||||
(version "4.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/idutils/idutils-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(;; TODO: Add Emacs as an input for byte-compilation.
|
||||
;; ("emacs" ,emacs)
|
||||
("patch/gets"
|
||||
,(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")
|
||||
(description
|
||||
"An \"ID database\" is a binary file containing a list of file
|
||||
names, a list of tokens, and a sparse matrix indicating which
|
||||
tokens appear in which files.
|
||||
|
||||
With this database and some tools to query it, many
|
||||
text-searching tasks become simpler and faster. For example,
|
||||
you can list all files that reference a particular `\\#include'
|
||||
file throughout a huge source hierarchy, search for all the
|
||||
memos containing references to a project, or automatically
|
||||
invoke an editor on all files containing references to some
|
||||
function or variable. Anyone with a large software project to
|
||||
maintain, or a large set of text files to organize, can benefit
|
||||
from the ID utilities.
|
||||
|
||||
Although the name `ID' is short for `identifier', the ID
|
||||
utilities handle more than just identifiers; they also treat
|
||||
other kinds of tokens, most notably numeric constants, and the
|
||||
contents of certain character strings.")
|
||||
(license gpl3+)))
|
||||
@@ -0,0 +1,44 @@
|
||||
;;; 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 indent)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public indent
|
||||
(package
|
||||
(name "indent")
|
||||
(version "2.2.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/indent/indent-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "GNU Indent, a program for code indentation and formatting")
|
||||
(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
|
||||
amount about the syntax of C, but it also attempts to cope with incomplete
|
||||
and misformed syntax. The GNU style of indenting is the default.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/indent/")))
|
||||
@@ -0,0 +1,147 @@
|
||||
#!@BASH@
|
||||
# -*- mode: scheme; coding: utf-8; -*-
|
||||
|
||||
# XXX: We have to go through Bash because there's no command-line switch to
|
||||
# augment %load-compiled-path, and because of the silly 127-byte limit for
|
||||
# the shebang line in Linux.
|
||||
# Use `load-compiled' because `load' (and `-l') doesn't otherwise load our
|
||||
# .go file (see <http://bugs.gnu.org/12519>).
|
||||
|
||||
main="(@ (gnu build-support ld-wrapper) ld-wrapper)"
|
||||
exec @GUILE@ -c "(load-compiled \"$0.go\") (apply $main (cdr (command-line)))" "$@"
|
||||
!#
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 build-support ld-wrapper)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (ld-wrapper))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This is a wrapper for the linker. Its purpose is to inspect the -L and
|
||||
;;; -l switches passed to the linker, add corresponding -rpath arguments, and
|
||||
;;; invoke the actual linker with this new set of arguments.
|
||||
;;;
|
||||
;;; The alternatives to this hack would be:
|
||||
;;;
|
||||
;;; 1. Using $LD_RUN_PATH. However, that would tend to include more than
|
||||
;;; needed in the RPATH; for instance, given a package with `libfoo' as
|
||||
;;; an input, all its binaries would have libfoo in their RPATH,
|
||||
;;; regardless of whether they actually NEED it.
|
||||
;;;
|
||||
;;; 2. Use a GCC "lib" spec string such as `%{L*:-rpath %*}', which adds a
|
||||
;;; `-rpath LIBDIR' argument for each occurrence of `-L LIBDIR'.
|
||||
;;; However, this doesn't work when $LIBRARY_PATH is used, because the
|
||||
;;; additional `-L' switches are not matched by the above rule, because
|
||||
;;; the rule only matches explicit user-provided switches. See
|
||||
;;; <http://gcc.gnu.org/ml/gcc-help/2012-09/msg00110.html> for details.
|
||||
;;;
|
||||
;;; As a bonus, this wrapper checks for "impurities"--i.e., references to
|
||||
;;; libraries outside the store.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define %real-ld
|
||||
;; Name of the linker that we wrap.
|
||||
"@LD@")
|
||||
|
||||
(define %store-directory
|
||||
;; File name of the store.
|
||||
(or (getenv "NIX_STORE") "/nix/store"))
|
||||
|
||||
(define %temporary-directory
|
||||
;; Temporary directory.
|
||||
(or (getenv "TMPDIR") "/tmp"))
|
||||
|
||||
(define %build-directory
|
||||
;; Top build directory when run from a builder.
|
||||
(getenv "NIX_BUILD_TOP"))
|
||||
|
||||
(define %allow-impurities?
|
||||
;; Whether to allow references to libraries outside the store.
|
||||
(getenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES"))
|
||||
|
||||
(define %debug?
|
||||
;; Whether to emit debugging output.
|
||||
(getenv "GUIX_LD_WRAPPER_DEBUG"))
|
||||
|
||||
(define (pure-file-name? file)
|
||||
;; Return #t when FILE is the name of a file either within the store or
|
||||
;; within the build directory.
|
||||
(or (not (string-prefix? "/" file))
|
||||
(string-prefix? %store-directory file)
|
||||
(string-prefix? %temporary-directory file)
|
||||
(and %build-directory
|
||||
(string-prefix? %build-directory file))))
|
||||
|
||||
(define (switch-arguments switch args)
|
||||
;; Return the arguments passed for the occurrences of SWITCH--e.g.,
|
||||
;; "-L"--in ARGS.
|
||||
(let ((prefix-len (string-length switch)))
|
||||
(fold-right (lambda (arg path)
|
||||
(if (string-prefix? switch arg)
|
||||
(cons (substring arg prefix-len) path)
|
||||
path))
|
||||
'()
|
||||
args)))
|
||||
|
||||
(define (library-path args)
|
||||
;; Return the library search path extracted from `-L' switches in ARGS.
|
||||
;; Note: allow references to out-of-store directories. When this leads to
|
||||
;; actual impurities, this is caught later.
|
||||
(switch-arguments "-L" args))
|
||||
|
||||
(define (library-files-linked args)
|
||||
;; Return the file names of shared libraries explicitly linked against via
|
||||
;; `-l' in ARGS.
|
||||
(map (lambda (lib)
|
||||
(string-append "lib" lib ".so"))
|
||||
(switch-arguments "-l" args)))
|
||||
|
||||
(define (rpath-arguments lib-path library-files)
|
||||
;; Return the `-rpath' argument list for each of LIBRARY-FILES found in
|
||||
;; LIB-PATH.
|
||||
(fold-right (lambda (file args)
|
||||
(let ((absolute (search-path lib-path file)))
|
||||
(if absolute
|
||||
(if (or %allow-impurities?
|
||||
(pure-file-name? absolute))
|
||||
(cons* "-rpath" (dirname absolute)
|
||||
args)
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: error: attempt to use impure library ~s~%"
|
||||
absolute)
|
||||
(exit 1)))
|
||||
args)))
|
||||
'()
|
||||
library-files))
|
||||
|
||||
(define (ld-wrapper . args)
|
||||
;; Invoke the real `ld' with ARGS, augmented with `-rpath' switches.
|
||||
(let* ((lib-path (library-path args))
|
||||
(libs (library-files-linked args))
|
||||
(args (append args (rpath-arguments lib-path libs))))
|
||||
(if %debug?
|
||||
(format (current-error-port)
|
||||
"ld-wrapper: invoking `~a' with ~s~%"
|
||||
%real-ld args))
|
||||
(apply execl %real-ld (basename %real-ld) args)))
|
||||
|
||||
;;; ld-wrapper.scm ends here
|
||||
@@ -0,0 +1,51 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 less)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public less
|
||||
(package
|
||||
(name "less")
|
||||
(version "451")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/less/less-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mszdd9m1dsbg59pav62swg9f87xmjpfspcw2jsazzksciy2is4z"))))
|
||||
(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")
|
||||
(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
|
||||
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+
|
||||
@@ -0,0 +1,73 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 libffi)
|
||||
#: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
|
||||
(let ((post-install-phase
|
||||
;; Install headers in the right place.
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(define out (assoc-ref outputs "out"))
|
||||
(mkdir (string-append out "/include"))
|
||||
(with-directory-excursion
|
||||
(string-append out "/lib/libffi-3.0.9/include")
|
||||
(for-each (lambda (h)
|
||||
(format #t "moving `~a' to includedir~%" h)
|
||||
(rename-file h (string-append out "/include/" h)))
|
||||
(scandir "."
|
||||
(lambda (x)
|
||||
(not (member x '("." ".."))))))))))
|
||||
(package
|
||||
(name "libffi")
|
||||
(version "3.0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "ftp://sourceware.org/pub/libffi/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ln4jbpb6clcsdpb9niqk0frgx4k0xki96wiv067ig0q4cajb7aq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:modules ((guix build utils) (guix build gnu-build-system)
|
||||
(ice-9 ftw) (srfi srfi-26))
|
||||
#:phases (alist-cons-after 'install 'post-install
|
||||
,post-install-phase
|
||||
%standard-phases)))
|
||||
(synopsis "libffi, a foreign function call interface library")
|
||||
(description
|
||||
"The libffi library provides a portable, high level programming interface
|
||||
to various calling conventions. This allows a programmer to call any
|
||||
function specified by a call interface description at run-time.
|
||||
|
||||
FFI stands for Foreign Function Interface. A foreign function interface is
|
||||
the popular name for the interface that allows code written in one language
|
||||
to call code written in another language. The libffi library really only
|
||||
provides the lowest, machine dependent layer of a fully featured foreign
|
||||
function interface. A layer must exist above libffi that handles type
|
||||
conversions for values passed between the two languages.")
|
||||
(home-page "http://sources.redhat.com/libffi/")
|
||||
|
||||
;; See <http://github.com/atgreen/libffi/blob/master/LICENSE>.
|
||||
(license expat))))
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 libidn)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libidn
|
||||
(package
|
||||
(name "libidn")
|
||||
(version "1.26")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libidn/libidn-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"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")
|
||||
(description
|
||||
"GNU Libidn is a fully documented implementation of the Stringprep,
|
||||
Punycode and IDNA specifications. Libidn's purpose is to encode and decode
|
||||
internationalised domain names.
|
||||
|
||||
The library contains a generic Stringprep implementation. Profiles for
|
||||
Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and
|
||||
ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to
|
||||
define Top-Level Domain (TLD) specific validation tables, and to compare
|
||||
strings against those tables, is included.
|
||||
Default tables for some TLDs are also included.")
|
||||
(license lgpl2.1+)
|
||||
(home-page "http://www.gnu.org/software/libidn/")))
|
||||
@@ -0,0 +1,57 @@
|
||||
;;; 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 libjpeg)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libjpeg
|
||||
(package
|
||||
(name "libjpeg")
|
||||
(version "9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.ijg.org/files/jpegsrc.v"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0dg5wxcx3cw0hal9gvivj97vid9z0s5sb1yvg55hpxmafn9rxqn4"))))
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "Libjpeg, a library for handling JPEG files")
|
||||
(description
|
||||
"Libjpeg implements JPEG image encoding, decoding, and transcoding.
|
||||
JPEG is a standardized compression method for full-color and gray-scale
|
||||
images.
|
||||
The included programs provide conversion between the JPEG format and
|
||||
image files in PBMPLUS PPM/PGM, GIF, BMP, and Targa file formats.")
|
||||
(license ijg)
|
||||
(home-page "http://www.ijg.org/")))
|
||||
|
||||
(define-public libjpeg-8
|
||||
(package (inherit libjpeg)
|
||||
(name "libjpeg-8")
|
||||
(version "8d")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.ijg.org/files/jpegsrc.v"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0"))))))
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
;;; 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 libsigsegv)
|
||||
#: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
|
||||
(package
|
||||
(name "libsigsegv")
|
||||
(version "2.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/libsigsegv/libsigsegv-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(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")
|
||||
(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
|
||||
currently not available. Catching and handling a page fault is a useful
|
||||
technique for implementing pageable virtual memory, memory-mapped access to
|
||||
persistent databases, generational garbage collectors, stack overflow
|
||||
handlers, distributed shared memory, and more.")
|
||||
(license gpl2+)))
|
||||
@@ -0,0 +1,65 @@
|
||||
;;; 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 libtiff)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages libjpeg)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libtiff
|
||||
(package
|
||||
(name "libtiff")
|
||||
(version "4.0.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp.remotesensing.org/pub/libtiff/tiff-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0wj8d1iwk9vnpax2h29xqc2hwknxg3s0ay2d5pxkg59ihbifn6pa"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("file" ,file)
|
||||
("libjpeg-8" ,libjpeg-8)))
|
||||
;; currently does not compile with libjpeg version 9
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-jpeg-include-dir="
|
||||
(assoc-ref %build-inputs "libjpeg-8")
|
||||
"/include"))
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key #:allow-other-keys #:rest args)
|
||||
(let ((configure (assoc-ref %standard-phases 'configure)))
|
||||
(substitute* "configure"
|
||||
(("`/usr/bin/file")
|
||||
(string-append "`" (which "file"))))
|
||||
(apply configure args)))
|
||||
%standard-phases)))
|
||||
(synopsis "Libtiff, a library for handling TIFF files")
|
||||
(description
|
||||
"Libtiff provides support for the Tag Image File Format (TIFF), a format
|
||||
used for storing image data.
|
||||
Included are a library, libtiff, for reading and writing TIFF and a small
|
||||
collection of tools for doing simple manipulations of TIFF images.")
|
||||
(license (bsd-style "file://COPYRIGHT"
|
||||
"See COPYRIGHT in the distribution."))
|
||||
(home-page "http://www.libtiff.org/")))
|
||||
@@ -0,0 +1,58 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 libunistring)
|
||||
#: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
|
||||
(package
|
||||
(name "libunistring")
|
||||
(version "0.9.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/libunistring/libunistring-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18q620269xzpw39dwvr9zpilnl2dkw5z5kz3mxaadnpv4k3kw3b1"))))
|
||||
(propagated-inputs '()) ; FIXME: add libiconv when !glibc
|
||||
(build-system gnu-build-system)
|
||||
(synopsis "GNU Libunistring, a Unicode string library")
|
||||
(description
|
||||
"This library provides functions for manipulating Unicode strings and for
|
||||
manipulating C strings according to the Unicode standard.
|
||||
|
||||
GNU libunistring is for you if your application involves non-trivial text
|
||||
processing, such as upper/lower case conversions, line breaking, operations
|
||||
on words, or more advanced analysis of text. Text provided by the user can,
|
||||
in general, contain characters of all kinds of scripts. The text processing
|
||||
functions provided by this library handle all scripts and all languages.
|
||||
|
||||
libunistring is for you if your application already uses the ISO C / POSIX
|
||||
<ctype.h>, <wctype.h> functions and the text it operates on is provided by
|
||||
the user and can be in any language.
|
||||
|
||||
libunistring is also for you if your application uses Unicode strings as
|
||||
internal in-memory representation.")
|
||||
(home-page "http://www.gnu.org/software/libunistring/")
|
||||
(license lgpl3+)))
|
||||
@@ -0,0 +1,44 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 libusb)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libusb
|
||||
(package
|
||||
(name "libusb")
|
||||
(version "1.0.9")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/libusb/libusb-1.0/"
|
||||
"libusb-" version "/libusb-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"16sz34ix6hw2wwl3kqx6rf26fg210iryr68wc439dc065pffw879"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.libusb.org")
|
||||
(synopsis "Libusb, a user-space USB library")
|
||||
(description
|
||||
"Libusb is a library that gives applications easy access to USB
|
||||
devices on various operating systems.")
|
||||
(license lgpl2.1+)))
|
||||
@@ -0,0 +1,259 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012 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 linux)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module ((gnu packages compression)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(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")))
|
||||
|
||||
(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")))
|
||||
(and (zero? (system* "make"
|
||||
(string-append "INSTALL_HDR_PATH=" out)
|
||||
"headers_install"))
|
||||
(mkdir (string-append out "/include/config"))
|
||||
(call-with-output-file
|
||||
(string-append out
|
||||
"/include/config/kernel.release")
|
||||
(lambda (p)
|
||||
(format p "~a-default~%" ,version*))))))))
|
||||
(package
|
||||
(name "linux-libre-headers")
|
||||
(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)))
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(srfi srfi-1))
|
||||
#:phases (alist-replace
|
||||
'build ,build-phase
|
||||
(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")
|
||||
(home-page "http://www.gnu.org/software/linux-libre/"))))
|
||||
|
||||
(define-public linux-pam
|
||||
(package
|
||||
(name "linux-pam")
|
||||
(version "1.1.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "http://www.linux-pam.org/library/Linux-PAM-"
|
||||
version ".tar.bz2")
|
||||
(string-append "mirror://kernel.org/linux/libs/pam/library/Linux-PAM-"
|
||||
version ".tar.bz2")))
|
||||
(sha256
|
||||
(base32
|
||||
"1hlz2kqvbjisvwyicdincq7nz897b9rrafyzccwzqiqg53b8gf5s"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("flex" ,flex)
|
||||
|
||||
;; TODO: optional dependencies
|
||||
;; ("libxcrypt" ,libxcrypt)
|
||||
;; ("cracklib" ,cracklib)
|
||||
))
|
||||
(arguments
|
||||
;; XXX: Tests won't run in chroot, presumably because /etc/pam.d
|
||||
;; isn't available.
|
||||
'(#:tests? #f))
|
||||
(home-page "http://www.linux-pam.org/")
|
||||
(synopsis "Pluggable authentication modules for Linux")
|
||||
(description
|
||||
"A *Free* project to implement OSF's RFC 86.0.
|
||||
Pluggable authentication modules are small shared object files that can
|
||||
be used through the PAM API to perform tasks, like authenticating a user
|
||||
at login. Local and dynamic reconfiguration are its key features")
|
||||
(license bsd-3)))
|
||||
|
||||
(define-public psmisc
|
||||
(package
|
||||
(name "psmisc")
|
||||
(version "22.20")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"052mfraykmxnavpi8s78aljx8w87hyvpx8mvzsgpjsjz73i28wmi"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)))
|
||||
(home-page "http://psmisc.sourceforge.net/")
|
||||
(synopsis
|
||||
"set of utilities that use the proc filesystem, such as fuser, killall, and pstree")
|
||||
(description
|
||||
"This PSmisc package is a set of some small useful utilities that
|
||||
use the proc filesystem. We're not about changing the world, but
|
||||
providing the system administrator with some help in common tasks.")
|
||||
(license gpl2+)))
|
||||
|
||||
(define-public util-linux
|
||||
(package
|
||||
(name "util-linux")
|
||||
(version "2.21")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/linux/utils/"
|
||||
name "/v" version "/"
|
||||
name "-" version ".2" ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-use-tty-group")
|
||||
#:phases (alist-cons-after
|
||||
'install 'patch-chkdupexe
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* (string-append out "/bin/chkdupexe")
|
||||
;; Allow 'patch-shebang' to do its work.
|
||||
(("@PERL@") "/bin/perl"))))
|
||||
%standard-phases)))
|
||||
(inputs `(("zlib" ,guix:zlib)
|
||||
("ncurses" ,ncurses)
|
||||
("perl" ,perl)))
|
||||
(home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
|
||||
(synopsis
|
||||
"util-linux is a random collection of utilities for the Linux kernel")
|
||||
(description
|
||||
"util-linux is a random collection of utilities for the Linux kernel.")
|
||||
|
||||
;; Note that util-linux doesn't use the same license for all the
|
||||
;; code. GPLv2+ is the default license for a code without an
|
||||
;; explicitly defined license.
|
||||
(license (list gpl3+ gpl2+ gpl2 lgpl2.0+
|
||||
bsd-4 public-domain))))
|
||||
|
||||
(define-public procps
|
||||
(package
|
||||
(name "procps")
|
||||
(version "3.2.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://procps.sourceforge.net/procps-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d8mki0q4yamnkk4533kx8mc0jd879573srxhg6r2fs3lkc6iv8i"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)
|
||||
("patch/make-3.82" ,(search-patch "procps-make-3.82.patch"))))
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/make-3.82"))
|
||||
#:phases (alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; No `configure', just a single Makefile.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "Makefile"
|
||||
(("/usr/") "/")
|
||||
(("--(owner|group) 0") "")
|
||||
(("ldconfig") "true")
|
||||
(("^LDFLAGS[[:blank:]]*:=(.*)$" _ value)
|
||||
;; Add libproc to the RPATH.
|
||||
(string-append "LDFLAGS := -Wl,-rpath="
|
||||
out "/lib" value))))
|
||||
(setenv "CC" "gcc"))
|
||||
(alist-replace
|
||||
'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(and (zero?
|
||||
(system* "make" "install"
|
||||
(string-append "DESTDIR=" out)))
|
||||
|
||||
;; Sanity check.
|
||||
(zero?
|
||||
(system* (string-append out "/bin/ps")
|
||||
"--version")))))
|
||||
%standard-phases))
|
||||
|
||||
;; What did you expect? Tests?
|
||||
#:tests? #f))
|
||||
(home-page "http://procps.sourceforge.net/")
|
||||
(synopsis
|
||||
"Utilities that give information about processes using the /proc filesystem")
|
||||
(description
|
||||
"procps is the package that has a bunch of small useful utilities
|
||||
that give information about processes using the Linux /proc file system.
|
||||
The package includes the programs ps, top, vmstat, w, kill, free,
|
||||
slabtop, and skill.")
|
||||
(license gpl2)))
|
||||
|
||||
(define-public usbutils
|
||||
(package
|
||||
(name "usbutils")
|
||||
(version "006")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/linux/utils/usb/usbutils/"
|
||||
"usbutils-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03pd57vv8c6x0hgjqcbrxnzi14h8hcghmapg89p8k5zpwpkvbdfr"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libusb" ,libusb) ("pkg-config" ,pkg-config)))
|
||||
(home-page "http://www.linux-usb.org/")
|
||||
(synopsis
|
||||
"Tools for working with USB devices, such as lsusb")
|
||||
(description
|
||||
"Tools for working with USB devices, such as lsusb.")
|
||||
(license gpl2+)))
|
||||
@@ -0,0 +1,132 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 lout)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public lout
|
||||
;; This one is a bit tricky, because it doesn't follow the GNU Build System
|
||||
;; rules. Instead, it has a makefile that has to be patched to set the
|
||||
;; prefix, etc., and it has no makefile rules to build its doc.
|
||||
(let ((configure-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(doc (assoc-ref outputs "doc")))
|
||||
(substitute* "makefile"
|
||||
(("^PREFIX[[:blank:]]*=.*$")
|
||||
(string-append "PREFIX = " out "\n"))
|
||||
(("^LOUTLIBDIR[[:blank:]]*=.*$")
|
||||
(string-append "LOUTLIBDIR = " out "/lib/lout\n"))
|
||||
(("^LOUTDOCDIR[[:blank:]]*=.*$")
|
||||
(string-append "LOUTDOCDIR = " doc "/doc/lout\n"))
|
||||
(("^MANDIR[[:blank:]]*=.*$")
|
||||
(string-append "MANDIR = " out "/man\n")))
|
||||
(mkdir out)
|
||||
(mkdir (string-append out "/bin"))
|
||||
(mkdir (string-append out "/lib"))
|
||||
(mkdir (string-append out "/man"))
|
||||
(mkdir-p (string-append doc "/doc/lout")))))
|
||||
(install-man-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero? (system* "make" "installman"))))
|
||||
(doc-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(define out
|
||||
(assoc-ref outputs "doc"))
|
||||
|
||||
(setenv "PATH"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/bin:" (getenv "PATH")))
|
||||
(chdir "doc")
|
||||
(every (lambda (doc)
|
||||
(format #t "doc: building `~a'...~%" doc)
|
||||
(with-directory-excursion doc
|
||||
(let ((file (string-append out "/doc/lout/"
|
||||
doc ".ps")))
|
||||
(and (or (file-exists? "outfile.ps")
|
||||
(zero? (system* "lout" "-r4" "-o"
|
||||
"outfile.ps" "all")))
|
||||
(begin
|
||||
(copy-file "outfile.ps" file)
|
||||
#t)
|
||||
(zero? (system* "ps2pdf"
|
||||
"-dPDFSETTINGS=/prepress"
|
||||
"-sPAPERSIZE=a4"
|
||||
file
|
||||
(string-append out "/doc/lout/"
|
||||
doc ".pdf")))))))
|
||||
'("design" "expert" "slides" "user")))))
|
||||
(package
|
||||
(name "lout")
|
||||
(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"))
|
||||
(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")))
|
||||
))
|
||||
(arguments `(#:modules ((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(srfi srfi-1)) ; we need SRFI-1
|
||||
#:tests? #f ; no "check" target
|
||||
|
||||
;; Customize the build phases.
|
||||
#:phases (alist-replace
|
||||
'configure ,configure-phase
|
||||
|
||||
(alist-cons-after
|
||||
'install 'install-man-pages
|
||||
,install-man-phase
|
||||
|
||||
(alist-cons-after
|
||||
'install 'install-doc
|
||||
,doc-phase
|
||||
%standard-phases)))))
|
||||
(synopsis "Lout, a document layout system similar in style to LaTeX")
|
||||
(description
|
||||
"The Lout document formatting system is now reads a high-level description of
|
||||
a document similar in style to LaTeX and produces a PostScript or plain text
|
||||
output file.
|
||||
|
||||
Lout offers an unprecedented range of advanced features, including optimal
|
||||
paragraph and page breaking, automatic hyphenation, PostScript EPS file
|
||||
inclusion and generation, equation formatting, tables, diagrams, rotation and
|
||||
scaling, sorted indexes, bibliographic databases, running headers and
|
||||
odd-even pages, automatic cross referencing, multilingual documents including
|
||||
hyphenation (most European languages are supported), formatting of computer
|
||||
programs, and much more, all ready to use. Furthermore, Lout is easily
|
||||
extended with definitions which are very much easier to write than troff of
|
||||
TeX macros because Lout is a high-level, purely functional language, the
|
||||
outcome of an eight-year research project that went back to the
|
||||
beginning.")
|
||||
(license gpl3+)
|
||||
(home-page "http://savannah.nongnu.org/projects/lout/"))))
|
||||
@@ -0,0 +1,126 @@
|
||||
;;; 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 lsh)
|
||||
#: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 m4)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module ((gnu packages compression)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages gperf)
|
||||
#:use-module (gnu packages base))
|
||||
|
||||
(define-public liboop
|
||||
(package
|
||||
(name "liboop")
|
||||
(version "1.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.ofb.net/liboop/liboop-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://liboop.ofb.net/")
|
||||
(synopsis "`liboop', an event loop library")
|
||||
(description "liboop is an event loop library.")
|
||||
(license lgpl2.1+)))
|
||||
|
||||
(define-public lsh
|
||||
(package
|
||||
(name "lsh")
|
||||
(version "2.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/lsh/lsh-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"149hf49xcj99wwvi7hcb59igq4vpyv8har1br1if3lrsw5irsjv1"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("linux-pam" ,linux-pam)
|
||||
("m4" ,m4)
|
||||
("readline" ,readline)
|
||||
("liboop" ,liboop)
|
||||
("zlib" ,guix:zlib)
|
||||
("gmp" ,gmp)
|
||||
("guile" ,guile-final)
|
||||
("gperf" ,gperf)
|
||||
("psmisc" ,psmisc) ; for `killall'
|
||||
|
||||
("patch/no-root-login" ,(search-patch "lsh-no-root-login.patch"))
|
||||
("patch/guile-compat" ,(search-patch "lsh-guile-compat.patch"))
|
||||
("patch/pam-service-name"
|
||||
,(search-patch "lsh-pam-service-name.patch"))))
|
||||
(arguments
|
||||
'(#:patches (list (assoc-ref %build-inputs "patch/no-root-login")
|
||||
(assoc-ref %build-inputs "patch/pam-service-name")
|
||||
(assoc-ref %build-inputs "patch/guile-compat"))
|
||||
|
||||
;; Skip the `configure' test that checks whether /dev/ptmx &
|
||||
;; co. work as expected, because it relies on impurities (for
|
||||
;; instance, /dev/pts may be unavailable in chroots.)
|
||||
#:configure-flags '("lsh_cv_sys_unix98_ptys=yes")
|
||||
|
||||
;; FIXME: Tests won't run in a chroot, presumably because
|
||||
;; /etc/profile is missing, and thus clients get an empty $PATH
|
||||
;; and nothing works.
|
||||
#:tests? #f
|
||||
|
||||
#:phases
|
||||
(alist-cons-before
|
||||
'configure 'fix-test-suite
|
||||
(lambda _
|
||||
;; Tests rely on $USER being set.
|
||||
(setenv "USER" "guix")
|
||||
|
||||
(substitute* "src/testsuite/functions.sh"
|
||||
(("localhost")
|
||||
;; Avoid host name lookups since they don't work in chroot
|
||||
;; builds.
|
||||
"127.0.0.1")
|
||||
(("set -e")
|
||||
;; Make tests more verbose.
|
||||
"set -e\nset -x"))
|
||||
|
||||
(substitute* (find-files "src/testsuite" "-test$")
|
||||
(("localhost") "127.0.0.1"))
|
||||
|
||||
(substitute* "src/testsuite/login-auth-test"
|
||||
(("/bin/cat")
|
||||
;; Use the right path to `cat'.
|
||||
(which "cat"))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.lysator.liu.se/~nisse/lsh/")
|
||||
(synopsis
|
||||
"GNU lsh, a GPL'd implementation of the SSH protocol")
|
||||
(description
|
||||
"lsh is a free implementation (in the GNU sense) of the ssh
|
||||
version 2 protocol, currently being standardised by the IETF
|
||||
SECSH working group.")
|
||||
(license gpl2+)))
|
||||
@@ -0,0 +1,87 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 m4)
|
||||
#:use-module (guix licenses)
|
||||
#: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
|
||||
(package
|
||||
(name "m4")
|
||||
(version "1.4.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/m4/m4-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(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"))))))
|
||||
(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")
|
||||
(description
|
||||
"GNU M4 is an implementation of the traditional Unix macro processor. It
|
||||
is mostly SVR4 compatible although it has some extensions (for example,
|
||||
handling more than 9 positional parameters to macros). GNU M4 also has
|
||||
built-in functions for including files, running shell commands, doing
|
||||
arithmetic, etc.
|
||||
|
||||
GNU M4 is a macro processor in the sense that it copies its input to the
|
||||
output expanding macros as it goes. Macros are either builtin or
|
||||
user-defined and can take any number of arguments. Besides just doing macro
|
||||
expansion, m4 has builtin functions for including named files, running UNIX
|
||||
commands, doing integer arithmetic, manipulating text in various ways,
|
||||
recursion etc... m4 can be used either as a front-end to a compiler or as a
|
||||
macro processor in its own right.")
|
||||
(license gpl3+)
|
||||
(home-page "http://www.gnu.org/software/m4/")))
|
||||
@@ -0,0 +1,106 @@
|
||||
;;; 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 mailutils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages gnutls)
|
||||
#:use-module (gnu packages gdbm)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages dejagnu)
|
||||
#:use-module (gnu packages m4)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages mysql)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public mailutils
|
||||
(package
|
||||
(name "mailutils")
|
||||
(version "2.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mailutils/mailutils-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; TODO: Add `--with-sql'.
|
||||
#:patches (list (assoc-ref %build-inputs
|
||||
"patch/gets-undeclared"))
|
||||
#:phases (alist-cons-before
|
||||
'build 'pre-build
|
||||
(lambda _
|
||||
;; Use Guile 2.0's public API.
|
||||
(substitute* "libmu_scm/mu_message.c"
|
||||
(("scm_i_string_length")
|
||||
"scm_c_string_length"))
|
||||
|
||||
;; This file should be generated to use the right
|
||||
;; value of $(libdir) et al.
|
||||
(delete-file "libmu_scm/mailutils.scm")
|
||||
|
||||
;; Use the right file name for `cat'.
|
||||
(substitute* "testsuite/lib/mailutils.exp"
|
||||
(("/bin/cat")
|
||||
(which "cat"))))
|
||||
%standard-phases)
|
||||
#:parallel-tests? #f))
|
||||
(inputs
|
||||
`(("dejagnu" ,dejagnu)
|
||||
("m4" ,m4)
|
||||
("texinfo" ,texinfo)
|
||||
("guile" ,guile-2.0)
|
||||
("gnutls" ,gnutls)
|
||||
("ncurses" ,ncurses)
|
||||
("readline" ,readline)
|
||||
("linux-pam" ,linux-pam)
|
||||
("libtool" ,libtool)
|
||||
("gdbm" ,gdbm)
|
||||
("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")
|
||||
(description
|
||||
"GNU Mailutils is a rich and powerful protocol-independent mail
|
||||
framework. It contains a series of useful mail libraries, clients, and
|
||||
servers. These are the primary mail utilities for the GNU system. The
|
||||
central library is capable of handling electronic mail in various
|
||||
mailbox formats and protocols, both local and remote. Specifically,
|
||||
this project contains a POP3 server, an IMAP4 server, and a Sieve mail
|
||||
filter. It also provides a POSIX `mailx' client, and a collection of
|
||||
other handy tools.
|
||||
|
||||
The GNU Mailutils libraries supply an ample set of primitives for
|
||||
handling electronic mail in programs written in C, C++, Python or
|
||||
Scheme.
|
||||
|
||||
The utilities provided by Mailutils include imap4d and pop3d mail
|
||||
servers, mail reporting utility comsatd, general-purpose mail delivery
|
||||
agent maidag, mail filtering program sieve, and an implementation of MH
|
||||
message handling system.")
|
||||
(license
|
||||
;; Libraries are under LGPLv3+, and programs under GPLv3+.
|
||||
(list gpl3+ lgpl3+))))
|
||||
@@ -0,0 +1,562 @@
|
||||
;;; 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 make-bootstrap)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((gnu packages) #:select (search-patch))
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (%bootstrap-binaries-tarball
|
||||
%binutils-bootstrap-tarball
|
||||
%glibc-bootstrap-tarball
|
||||
%gcc-bootstrap-tarball
|
||||
%guile-bootstrap-tarball
|
||||
%bootstrap-tarballs))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This modules provides tools to build tarballs of the "bootstrap binaries"
|
||||
;;; used in (gnu packages bootstrap). These statically-linked binaries are
|
||||
;;; taken for granted and used as the root of the whole bootstrap procedure.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define %glibc-for-bootstrap
|
||||
;; A libc whose `system' and `popen' functions looks for `sh' in $PATH,
|
||||
;; 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)))))
|
||||
(inputs
|
||||
`(("patch/system" ,(search-patch "glibc-bootstrap-system.patch"))
|
||||
,@(package-inputs glibc-final)))))
|
||||
|
||||
(define %standard-inputs-with-relocatable-glibc
|
||||
;; Standard inputs with the above libc and corresponding GCC.
|
||||
`(("libc", %glibc-for-bootstrap)
|
||||
("gcc" ,(package-with-explicit-inputs
|
||||
gcc-4.7
|
||||
`(("libc",%glibc-for-bootstrap)
|
||||
,@(alist-delete "libc" %final-inputs))
|
||||
(current-source-location)))
|
||||
,@(fold alist-delete %final-inputs '("libc" "gcc"))))
|
||||
|
||||
(define %bash-static
|
||||
(static-package bash-light))
|
||||
|
||||
(define %static-inputs
|
||||
;; Packages that are to be used as %BOOTSTRAP-INPUTS.
|
||||
(let ((coreutils (package (inherit coreutils)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("--disable-nls"
|
||||
"--disable-silent-rules"
|
||||
"--enable-no-install-program=stdbuf,libstdbuf.so"
|
||||
"CFLAGS=-Os -g0" ; smaller, please
|
||||
"LDFLAGS=-static -pthread")
|
||||
#:tests? #f ; signal-related Gnulib tests fail
|
||||
,@(package-arguments coreutils)))
|
||||
|
||||
;; Remove optional dependencies such as GMP.
|
||||
(inputs `(,(assoc "perl" (package-inputs coreutils))))))
|
||||
(bzip2 (package (inherit bzip2)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments bzip2)
|
||||
((#:phases phases)
|
||||
`(alist-cons-before
|
||||
'build 'dash-static
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("^LDFLAGS[[:blank:]]*=.*$")
|
||||
"LDFLAGS = -static")))
|
||||
,phases))))))
|
||||
(xz (package (inherit xz)
|
||||
(arguments
|
||||
`(#:strip-flags '("--strip-all")
|
||||
#:phases (alist-cons-before
|
||||
'configure 'static-executable
|
||||
(lambda _
|
||||
;; Ask Libtool for a static executable.
|
||||
(substitute* "src/xz/Makefile.in"
|
||||
(("^xz_LDADD =")
|
||||
"xz_LDADD = -all-static")))
|
||||
%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))))))
|
||||
(inputs `(("patch/sh" ,(search-patch "gawk-shell.patch"))))))
|
||||
(finalize (lambda (p)
|
||||
(static-package (package-with-explicit-inputs
|
||||
p
|
||||
%standard-inputs-with-relocatable-glibc)
|
||||
(current-source-location)))))
|
||||
`(,@(map (match-lambda
|
||||
((name package)
|
||||
(list name (finalize package))))
|
||||
`(("tar" ,tar)
|
||||
("gzip" ,gzip)
|
||||
("bzip2" ,bzip2)
|
||||
("xz" ,xz)
|
||||
("patch" ,patch)
|
||||
("coreutils" ,coreutils)
|
||||
("sed" ,sed)
|
||||
("grep" ,grep)
|
||||
("gawk" ,gawk)))
|
||||
("bash" ,%bash-static)
|
||||
;; ("ld-wrapper" ,ld-wrapper)
|
||||
;; ("binutils" ,binutils-final)
|
||||
;; ("gcc" ,gcc-final)
|
||||
;; ("libc" ,glibc-final)
|
||||
)))
|
||||
|
||||
(define %static-binaries
|
||||
(package
|
||||
(name "static-binaries")
|
||||
(version "0")
|
||||
(build-system trivial-build-system)
|
||||
(source #f)
|
||||
(inputs %static-inputs)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (ice-9 ftw)
|
||||
(ice-9 match)
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(guix build utils))
|
||||
|
||||
(let ()
|
||||
(define (directory-contents dir)
|
||||
(map (cut string-append dir "/" <>)
|
||||
(scandir dir (negate (cut member <> '("." ".."))))))
|
||||
|
||||
(define (copy-directory source destination)
|
||||
(for-each (lambda (file)
|
||||
(format #t "copying ~s...~%" file)
|
||||
(copy-file file
|
||||
(string-append destination "/"
|
||||
(basename file))))
|
||||
(directory-contents source)))
|
||||
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(mkdir-p bin)
|
||||
|
||||
;; Copy Coreutils binaries.
|
||||
(let* ((coreutils (assoc-ref %build-inputs "coreutils"))
|
||||
(source (string-append coreutils "/bin")))
|
||||
(copy-directory source bin))
|
||||
|
||||
;; For the other inputs, copy just one binary, which has the
|
||||
;; same name as the input.
|
||||
(for-each (match-lambda
|
||||
((name . dir)
|
||||
(let ((source (string-append dir "/bin/" name)))
|
||||
(format #t "copying ~s...~%" source)
|
||||
(copy-file source
|
||||
(string-append bin "/" name)))))
|
||||
(alist-delete "coreutils" %build-inputs))
|
||||
|
||||
;; But of course, there are exceptions to this rule.
|
||||
(let ((grep (assoc-ref %build-inputs "grep")))
|
||||
(copy-file (string-append grep "/bin/fgrep")
|
||||
(string-append bin "/fgrep"))
|
||||
(copy-file (string-append grep "/bin/egrep")
|
||||
(string-append bin "/egrep")))
|
||||
|
||||
;; Clear references to the store path.
|
||||
(for-each remove-store-references
|
||||
(directory-contents bin))
|
||||
|
||||
(with-directory-excursion bin
|
||||
;; Programs such as Perl's build system want these aliases.
|
||||
(symlink "bash" "sh")
|
||||
(symlink "gawk" "awk"))
|
||||
|
||||
#t)))))
|
||||
(synopsis "Statically-linked bootstrap binaries")
|
||||
(description
|
||||
"Binaries used to bootstrap the distribution.")
|
||||
(license #f)
|
||||
(home-page #f)))
|
||||
|
||||
(define %binutils-static
|
||||
;; Statically-linked Binutils.
|
||||
(package (inherit binutils)
|
||||
(name "binutils-static")
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-gold" "--with-lib-path=/no-ld-lib-path")
|
||||
#:strip-flags '("--strip-all")
|
||||
#:phases (alist-cons-before
|
||||
'configure 'all-static
|
||||
(lambda _
|
||||
;; The `-all-static' libtool flag can only be passed
|
||||
;; after `configure', since configure tests don't use
|
||||
;; libtool, and only for executables built with libtool.
|
||||
(substitute* '("binutils/Makefile.in"
|
||||
"gas/Makefile.in"
|
||||
"ld/Makefile.in")
|
||||
(("^LDFLAGS =(.*)$" line)
|
||||
(string-append line
|
||||
"\nAM_LDFLAGS = -static -all-static\n"))))
|
||||
%standard-phases)))))
|
||||
|
||||
(define %binutils-static-stripped
|
||||
;; The subset of Binutils that we need.
|
||||
(package (inherit %binutils-static)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(let* ((in (assoc-ref %build-inputs "binutils"))
|
||||
(out (assoc-ref %outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(mkdir-p bin)
|
||||
(for-each (lambda (file)
|
||||
(let ((target (string-append bin "/" file)))
|
||||
(format #t "copying `~a'...~%" file)
|
||||
(copy-file (string-append in "/bin/" file)
|
||||
target)
|
||||
(remove-store-references target)))
|
||||
'("ar" "as" "ld" "nm" "objcopy" "objdump"
|
||||
"ranlib" "readelf" "size" "strings" "strip"))
|
||||
#t))))
|
||||
(inputs `(("binutils" ,%binutils-static)))))
|
||||
|
||||
(define %glibc-stripped
|
||||
;; GNU libc's essential shared libraries, dynamic linker, and headers,
|
||||
;; with all references to store directories stripped. As a result,
|
||||
;; libc.so is unusable and need to be patched for proper relocation.
|
||||
(let ((glibc %glibc-for-bootstrap))
|
||||
(package (inherit glibc)
|
||||
(name "glibc-stripped")
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(libdir (string-append out "/lib"))
|
||||
(incdir (string-append out "/include"))
|
||||
(libc (assoc-ref %build-inputs "libc"))
|
||||
(linux (assoc-ref %build-inputs "linux-headers")))
|
||||
(mkdir-p libdir)
|
||||
(for-each (lambda (file)
|
||||
(let ((target (string-append libdir "/"
|
||||
(basename file))))
|
||||
(copy-file file target)
|
||||
(remove-store-references target)))
|
||||
(find-files (string-append libc "/lib")
|
||||
"^(crt.*|ld.*|lib(c|m|dl|rt|pthread|nsl|util).*\\.so(\\..*)?|libc_nonshared\\.a)$"))
|
||||
|
||||
(copy-recursively (string-append libc "/include") incdir)
|
||||
|
||||
;; Copy some of the Linux-Libre headers that glibc headers
|
||||
;; refer to.
|
||||
(mkdir (string-append incdir "/linux"))
|
||||
(for-each (lambda (file)
|
||||
(copy-file (string-append linux "/include/linux/" file)
|
||||
(string-append incdir "/linux/"
|
||||
(basename file))))
|
||||
'("limits.h" "errno.h" "socket.h" "kernel.h"
|
||||
"sysctl.h" "param.h" "ioctl.h" "types.h"
|
||||
"posix_types.h" "stddef.h"))
|
||||
|
||||
(copy-recursively (string-append linux "/include/asm")
|
||||
(string-append incdir "/asm"))
|
||||
(copy-recursively (string-append linux "/include/asm-generic")
|
||||
(string-append incdir "/asm-generic"))
|
||||
#t))))
|
||||
(inputs `(("libc" ,glibc)
|
||||
("linux-headers" ,linux-libre-headers))))))
|
||||
|
||||
(define %gcc-static
|
||||
;; A statically-linked GCC, with stripped-down functionality.
|
||||
(package-with-explicit-inputs
|
||||
(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))))))
|
||||
(inputs `(("gmp-source" ,(package-source gmp))
|
||||
("mpfr-source" ,(package-source mpfr))
|
||||
("mpc-source" ,(package-source mpc))
|
||||
("binutils" ,binutils-final)
|
||||
,@(package-inputs gcc-4.7))))
|
||||
%standard-inputs-with-relocatable-glibc))
|
||||
|
||||
(define %gcc-stripped
|
||||
;; The subset of GCC files needed for bootstrap.
|
||||
(package (inherit gcc-4.7)
|
||||
(name "gcc-stripped")
|
||||
(build-system trivial-build-system)
|
||||
(source #f)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(guix build utils))
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(bindir (string-append out "/bin"))
|
||||
(libdir (string-append out "/lib"))
|
||||
(libexecdir (string-append out "/libexec"))
|
||||
(gcc (assoc-ref %build-inputs "gcc")))
|
||||
(copy-recursively (string-append gcc "/bin") bindir)
|
||||
(for-each remove-store-references
|
||||
(find-files bindir ".*"))
|
||||
|
||||
(copy-recursively (string-append gcc "/lib") libdir)
|
||||
(for-each remove-store-references
|
||||
(remove (cut string-suffix? ".h" <>)
|
||||
(find-files libdir ".*")))
|
||||
|
||||
(copy-recursively (string-append gcc "/libexec")
|
||||
libexecdir)
|
||||
(for-each remove-store-references
|
||||
(find-files libexecdir ".*"))
|
||||
#t))))
|
||||
(inputs `(("gcc" ,%gcc-static)))))
|
||||
|
||||
(define %guile-static
|
||||
;; 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")
|
||||
|
||||
#: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)
|
||||
|
||||
;; Allow Guile to be relocated, as is needed during
|
||||
;; bootstrap.
|
||||
#:patches
|
||||
(list (assoc-ref %build-inputs "patch/relocatable")
|
||||
(assoc-ref %build-inputs "patch/utf8"))
|
||||
|
||||
;; 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))))
|
||||
|
||||
(define %guile-static-stripped
|
||||
;; A stripped static Guile binary, for use during bootstrap.
|
||||
(package (inherit %guile-static)
|
||||
(name "guile-static-stripped")
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ()
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(let ((in (assoc-ref %build-inputs "guile"))
|
||||
(out (assoc-ref %outputs "out")))
|
||||
(mkdir-p (string-append out "/share/guile/2.0"))
|
||||
(copy-recursively (string-append in "/share/guile/2.0")
|
||||
(string-append out "/share/guile/2.0"))
|
||||
|
||||
(mkdir-p (string-append out "/lib/guile/2.0/ccache"))
|
||||
(copy-recursively (string-append in "/lib/guile/2.0/ccache")
|
||||
(string-append out "/lib/guile/2.0/ccache"))
|
||||
|
||||
(mkdir (string-append out "/bin"))
|
||||
(copy-file (string-append in "/bin/guile")
|
||||
(string-append out "/bin/guile"))
|
||||
(remove-store-references (string-append out "/bin/guile"))
|
||||
#t))))
|
||||
(inputs `(("guile" ,%guile-static)))))
|
||||
|
||||
(define (tarball-package pkg)
|
||||
"Return a package containing a tarball of PKG."
|
||||
(package (inherit pkg)
|
||||
(location (source-properties->location (current-source-location)))
|
||||
(name (string-append (package-name pkg) "-tarball"))
|
||||
(build-system trivial-build-system)
|
||||
(inputs `(("tar" ,tar)
|
||||
("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")
|
||||
".")))))))))))
|
||||
|
||||
(define %bootstrap-binaries-tarball
|
||||
;; A tarball with the statically-linked bootstrap binaries.
|
||||
(tarball-package %static-binaries))
|
||||
|
||||
(define %binutils-bootstrap-tarball
|
||||
;; A tarball with the statically-linked Binutils programs.
|
||||
(tarball-package %binutils-static-stripped))
|
||||
|
||||
(define %glibc-bootstrap-tarball
|
||||
;; A tarball with GNU libc's shared libraries, dynamic linker, and headers.
|
||||
(tarball-package %glibc-stripped))
|
||||
|
||||
(define %gcc-bootstrap-tarball
|
||||
;; A tarball with a dynamic-linked GCC and its headers.
|
||||
(tarball-package %gcc-stripped))
|
||||
|
||||
(define %guile-bootstrap-tarball
|
||||
;; A tarball with the statically-linked, relocatable Guile.
|
||||
(tarball-package %guile-static-stripped))
|
||||
|
||||
(define %bootstrap-tarballs
|
||||
;; A single derivation containing all the bootstrap tarballs, for
|
||||
;; convenience.
|
||||
(package
|
||||
(name "bootstrap-tarballs")
|
||||
(version "0")
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(let ((out (assoc-ref %outputs "out")))
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 match)
|
||||
(srfi srfi-26))
|
||||
|
||||
(setvbuf (current-output-port) _IOLBF)
|
||||
(mkdir out)
|
||||
(chdir out)
|
||||
(for-each (match-lambda
|
||||
((name . directory)
|
||||
(for-each (lambda (file)
|
||||
(format #t "~a -> ~a~%" file out)
|
||||
(symlink file (basename file)))
|
||||
(find-files directory "\\.tar\\."))))
|
||||
%build-inputs)
|
||||
#t)))
|
||||
(inputs `(("guile-tarball" ,%guile-bootstrap-tarball)
|
||||
("gcc-tarball" ,%gcc-bootstrap-tarball)
|
||||
("binutils-tarball" ,%binutils-bootstrap-tarball)
|
||||
("glibc-tarball" ,%glibc-bootstrap-tarball)
|
||||
("coreutils&co-tarball" ,%bootstrap-binaries-tarball)))
|
||||
(synopsis #f)
|
||||
(description #f)
|
||||
(home-page #f)
|
||||
(license gpl3+)))
|
||||
|
||||
;;; make-bootstrap.scm ends here
|
||||
@@ -0,0 +1,69 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 mit-krb5)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public mit-krb5
|
||||
(package
|
||||
(name "mit-krb5")
|
||||
(version "1.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://web.mit.edu/kerberos/www/dist/krb5/"
|
||||
version
|
||||
"/krb5-" version
|
||||
"-signed.tar"))
|
||||
(sha256 (base32
|
||||
"0lc6lxb98qzg4x01lppq700vkr1ax9rld09znahrinwqnf9zndzy"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("bison" ,bison)
|
||||
("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)
|
||||
(and (zero? (system* "tar" "xvf" source))
|
||||
(zero? (system* "tar" "xvf" (string-append inner ".tar.gz")))
|
||||
(chdir inner)
|
||||
(chdir "src"))))
|
||||
%standard-phases))))
|
||||
(synopsis "MIT Kerberos 5")
|
||||
(description
|
||||
"Massachusetts Institute of Technology implementation of Kerberos.
|
||||
Kerberos is a network authentication protocol designed to provide strong
|
||||
authentication for client/server applications by using secret-key cryptography.")
|
||||
(license (bsd-style "file://NOTICE"
|
||||
"See NOTICE in the distribution."))
|
||||
(home-page "http://web.mit.edu/kerberos/")))
|
||||
@@ -0,0 +1,124 @@
|
||||
;;; 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 multiprecision)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#: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")
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"15n7xxgasbxdch8ii8z9ic6fxc2ysk3q8iavf55abjp5iylspnfz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("m4" ,m4)))
|
||||
(arguments `(#:configure-flags
|
||||
'(;; Build a "fat binary", with routines for several
|
||||
;; sub-architectures.
|
||||
"--enable-fat"
|
||||
"--enable-cxx")))
|
||||
(synopsis "GMP, the GNU 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
|
||||
practical limit to the precision except the ones implied by the available
|
||||
memory in the machine GMP runs on. GMP has a rich set of functions, and the
|
||||
functions have a regular interface.
|
||||
|
||||
The main target applications for GMP are cryptography applications and
|
||||
research, Internet security applications, algebra systems, computational
|
||||
algebra research, etc.
|
||||
|
||||
GMP is carefully designed to be as fast as possible, both for small operands
|
||||
and for huge operands. The speed is achieved by using fullwords as the basic
|
||||
arithmetic type, by using fast algorithms, with highly optimised assembly
|
||||
code for the most common inner loops for a lot of CPUs, and by a general
|
||||
emphasis on speed.
|
||||
|
||||
GMP is faster than any other bignum library. The advantage for GMP increases
|
||||
with the operand sizes for many operations, since GMP uses asymptotically
|
||||
faster algorithms.")
|
||||
(license lgpl3+)
|
||||
(home-page "http://gmplib.org/")))
|
||||
|
||||
(define-public mpfr
|
||||
(package
|
||||
(name "mpfr")
|
||||
(version "3.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/mpfr/mpfr-" version
|
||||
".tar.xz"))
|
||||
(sha256 (base32
|
||||
"0ym1ylcq803n52qrggxqmkz66gbn8ncc3ybawal31v5y5p1srma9"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("gmp" ,gmp)))
|
||||
(synopsis "GNU MPFR, a library for multiple-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
|
||||
multiple-precision library.
|
||||
|
||||
The main goal of MPFR is to provide a library for multiple-precision
|
||||
floating-point computation which is both efficient and has a well-defined
|
||||
semantics. It copies the good ideas from the ANSI/IEEE-754 standard for
|
||||
double-precision floating-point arithmetic (53-bit mantissa).")
|
||||
(license lgpl3+)
|
||||
(home-page "http://www.mpfr.org/")))
|
||||
|
||||
(define-public mpc
|
||||
(package
|
||||
(name "mpc")
|
||||
(version "1.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://gnu/mpc/mpc-" version ".tar.gz"))
|
||||
(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")
|
||||
(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
|
||||
the principles of the IEEE-754 standard for fixed precision real floating
|
||||
point numbers to complex numbers, providing well-defined semantics for
|
||||
every operation. At the same time, speed of operation at high precision
|
||||
is a major design goal. The library is built upon and follows the same
|
||||
principles as GNU MPFR.")
|
||||
(license lgpl3+)
|
||||
(home-page "http://mpc.multiprecision.org/")))
|
||||
@@ -0,0 +1,87 @@
|
||||
;;; 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 mysql)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages openssl)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module ((guix licenses) #:select (gpl2))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public mysql
|
||||
(package
|
||||
(name "mysql")
|
||||
(version "5.1.54")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://downloads.mysql.com/archives/mysql-5.1/mysql-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07xbnwk7h1xya8s6dw34nrv7ampzag8l0l1szd2pc9zyqkzhydw4"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("procps" ,procps)
|
||||
("openssl" ,openssl)
|
||||
("perl" ,perl)
|
||||
("zlib" ,zlib)
|
||||
("ncurses" ,ncurses)))
|
||||
(arguments
|
||||
'(#:modules ((guix build gnu-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 ftw)) ; for "rm -rf"
|
||||
#:phases (alist-cons-after
|
||||
'install 'clean-up
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Remove the 112 MiB of tests that get installed.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(define (rm-rf dir)
|
||||
(file-system-fold (const #t) ; enter?
|
||||
(lambda (file stat result) ; leaf
|
||||
(delete-file file))
|
||||
(const #t) ; down
|
||||
(lambda (dir stat result) ; up
|
||||
(rmdir dir))
|
||||
(const #t)
|
||||
(lambda (file stat errno result)
|
||||
(format (current-error-port)
|
||||
"error: ~a: ~a~%"
|
||||
file (strerror errno)))
|
||||
#t
|
||||
(string-append out "/" dir)))
|
||||
(rm-rf "mysql-test")
|
||||
(rm-rf "sql-bench")
|
||||
|
||||
;; Compress the 14 MiB Info file.
|
||||
(zero?
|
||||
(system* "gzip" "--best"
|
||||
(string-append out "/share/info/mysql.info")))))
|
||||
%standard-phases)))
|
||||
(home-page "http://www.mysql.com/")
|
||||
(synopsis "A fast, easy to use, and popular database")
|
||||
(description
|
||||
"MySQL is a fast, reliable, and easy to use relational database
|
||||
management system that supports the standardized Structured Query
|
||||
Language.")
|
||||
(license gpl2)))
|
||||
@@ -0,0 +1,52 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012 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 nano)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module ((gnu packages gettext)
|
||||
#:renamer (symbol-prefix-proc 'guix:))
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public nano
|
||||
(package
|
||||
(name "nano")
|
||||
(version "2.2.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/nano/nano-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0yp6pid67k8h7394spzw0067fl2r7rxm2b6kfccg87g8nlry2s5y"))))
|
||||
(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")
|
||||
(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+
|
||||
@@ -0,0 +1,128 @@
|
||||
;;; 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 ncurses)
|
||||
#: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
|
||||
(let ((patch-makefile-phase
|
||||
'(lambda _
|
||||
(for-each patch-makefile-SHELL
|
||||
(find-files "." "Makefile.in"))))
|
||||
(configure-phase
|
||||
'(lambda* (#:key inputs outputs configure-flags
|
||||
#:allow-other-keys)
|
||||
;; The `ncursesw5-config' has a #!/bin/sh. We want to patch
|
||||
;; it to point to libc's embedded Bash, to avoid retaining a
|
||||
;; reference to the bootstrap Bash.
|
||||
(let* ((libc (assoc-ref inputs "libc"))
|
||||
(bash (string-append libc "/bin/bash"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(format #t "configure flags: ~s~%" configure-flags)
|
||||
(zero? (apply system* bash "./configure"
|
||||
(string-append "SHELL=" bash)
|
||||
(string-append "CONFIG_SHELL=" bash)
|
||||
(string-append "--prefix=" out)
|
||||
configure-flags)))))
|
||||
(post-install-phase
|
||||
'(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; When building a wide-character (Unicode) build, create backward
|
||||
;; compatibility links from the the "normal" libraries to the
|
||||
;; wide-character libraries (e.g. libncurses.so to libncursesw.so).
|
||||
(with-directory-excursion (string-append out "/lib")
|
||||
(for-each (lambda (lib)
|
||||
(define libw.a
|
||||
(string-append "lib" lib "w.a"))
|
||||
(define lib.a
|
||||
(string-append "lib" lib ".a"))
|
||||
(define libw.so.x
|
||||
(string-append "lib" lib "w.so.5"))
|
||||
(define lib.so.x
|
||||
(string-append "lib" lib ".so.5"))
|
||||
(define lib.so
|
||||
(string-append "lib" lib ".so"))
|
||||
|
||||
(when (file-exists? libw.a)
|
||||
(format #t "creating symlinks for `lib~a'~%" lib)
|
||||
(symlink libw.a lib.a)
|
||||
(symlink libw.so.x lib.so.x)
|
||||
(false-if-exception (delete-file lib.so))
|
||||
(call-with-output-file lib.so
|
||||
(lambda (p)
|
||||
(format p "INPUT (-l~aw)~%" lib)))))
|
||||
'("curses" "ncurses" "form" "panel" "menu")))))))
|
||||
(package
|
||||
(name "ncurses")
|
||||
(version "5.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/ncurses/ncurses-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(case-lambda
|
||||
((system)
|
||||
`(#: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")
|
||||
|
||||
;; 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))))
|
||||
(self-native-input? #t)
|
||||
(synopsis
|
||||
"GNU Ncurses, a free software emulation of curses in SVR4 and more")
|
||||
(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
|
||||
and color and multiple highlights and forms characters and function-key
|
||||
mapping, and has all the other SYSV-curses enhancements over BSD Curses.
|
||||
|
||||
The ncurses code was developed under GNU/Linux. It has been in use for some
|
||||
time with OpenBSD as the system curses library, and on FreeBSD and NetBSD as
|
||||
an external package. It should port easily to any ANSI/POSIX-conforming
|
||||
UNIX. It has even been ported to OS/2 Warp!")
|
||||
(license x11)
|
||||
(home-page "http://www.gnu.org/software/ncurses/"))))
|
||||
@@ -0,0 +1,60 @@
|
||||
;;; 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 nettle)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages m4))
|
||||
|
||||
(define-public nettle
|
||||
(package
|
||||
(name "nettle")
|
||||
(version "2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/nettle/nettle-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mminj3fg0vba8qx4q6dbf0xz6fskamli7z2r8rci5xrcd7n5pv0"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("m4" ,m4)))
|
||||
(propagated-inputs `(("gmp" ,gmp)))
|
||||
(home-page "http://www.lysator.liu.se/~nisse/nettle/")
|
||||
(synopsis "GNU Nettle, a cryptographic library")
|
||||
(description
|
||||
"Nettle is a cryptographic library that is designed to fit easily
|
||||
in more or less any context: In crypto toolkits for object-oriented
|
||||
languages (C++, Python, Pike, ...), in applications like LSH or GNUPG,
|
||||
or even in kernel space. In most contexts, you need more than the basic
|
||||
cryptographic algorithms, you also need some way to keep track of
|
||||
available algorithms, their properties and variants. You often have
|
||||
some algorithm selection process, often dictated by a protocol you want
|
||||
to implement.
|
||||
|
||||
And as the requirements of applications differ in subtle and not so
|
||||
subtle ways, an API that fits one application well can be a pain to use
|
||||
in a different context. And that is why there are so many different
|
||||
cryptographic libraries around. \nNettle tries to avoid this problem by
|
||||
doing one thing, the low-level crypto stuff, and providing a simple but
|
||||
general interface to it. In particular, Nettle doesn't do algorithm
|
||||
selection. It doesn't do memory allocation. It doesn't do any I/O.")
|
||||
(license gpl2+)))
|
||||
@@ -0,0 +1,68 @@
|
||||
;;; 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 openssl)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages perl)
|
||||
#: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 openssl
|
||||
(package
|
||||
(name "openssl")
|
||||
(version "1.0.1c")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "ftp://ftp.openssl.org/source/openssl-" version
|
||||
".tar.gz"))
|
||||
(sha256 (base32
|
||||
"1gjy6a7d8nszi9wq8jdzx3cffn0nss23h3cw2ywlw4cb9v6v77ia"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:parallel-build? #f
|
||||
#:parallel-tests? #f
|
||||
#:test-target "test"
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(zero?
|
||||
(system* "./config"
|
||||
"shared" ; build shared libraries
|
||||
"--libdir=lib"
|
||||
(string-append "--prefix=" out)))))
|
||||
(alist-cons-before
|
||||
'patch-source-shebangs 'patch-tests
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((bash (assoc-ref inputs "bash")))
|
||||
(substitute* (find-files "test" ".*")
|
||||
(("/bin/sh")
|
||||
(string-append bash "/bin/bash"))
|
||||
(("/bin/rm")
|
||||
"rm"))))
|
||||
%standard-phases)))))
|
||||
(synopsis "OpenSSL, an SSL/TLS implementation")
|
||||
(description
|
||||
"OpenSSL is an implementation of SSL/TLS")
|
||||
(license license:openssl)
|
||||
(home-page "http://www.openssl.org/")))
|
||||
@@ -0,0 +1,17 @@
|
||||
Patch shebangs in source that gets unpacked by `configure'.
|
||||
|
||||
--- bigloo3.9a/gc/install-gc-7.2d 2013-01-14 15:24:01.000000000 +0100
|
||||
+++ bigloo3.9a/gc/install-gc-7.2d 2013-01-14 15:23:51.000000000 +0100
|
||||
@@ -29,9 +29,11 @@ fi
|
||||
# untar the two versions of the GC
|
||||
$tar xfz $src -C ../gc || (echo "$tar xfz $src failed"; exit 1)
|
||||
/bin/rm -rf "../gc/$gc"_fth
|
||||
+find ../gc/gc-7.2 -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P bash`|g"
|
||||
mv ../gc/gc-7.2 "../gc/$gc"_fth || (echo "mv gc-7.2 failed"; exit 1)
|
||||
|
||||
$tar xfz $src -C ../gc || (echo "$tar xfz $src failed"; exit 1)
|
||||
+find ../gc/gc-7.2 -perm /111 -type f | xargs sed -i -e"s|/bin/sh|`type -P bash`|g"
|
||||
mv ../gc/gc-7.2 "../gc/$gc"
|
||||
|
||||
# general Bigloo patch
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
Turn on --enable-new-dtags by default to make the linker set RUNPATH
|
||||
instead of RPATH on binaries. This is important because RUNPATH can
|
||||
be overriden using LD_LIBRARY_PATH at runtime.
|
||||
|
||||
Patch from Nixpkgs by Eelco Dolstra <eelco.dolstra@logicblox.com>.
|
||||
|
||||
--- binutils/ld/ldmain.c
|
||||
+++ binutils/ld/ldmain.c
|
||||
@@ -296,6 +296,7 @@ main (int argc, char **argv)
|
||||
|
||||
link_info.allow_undefined_version = TRUE;
|
||||
link_info.keep_memory = TRUE;
|
||||
+ link_info.new_dtags = TRUE;
|
||||
link_info.combreloc = TRUE;
|
||||
link_info.strip_discarded = TRUE;
|
||||
link_info.callbacks = &link_callbacks;
|
||||
@@ -0,0 +1,45 @@
|
||||
This patch is needed to allow builds with newer versions of
|
||||
the GNU libc (2.16+).
|
||||
|
||||
The upstream fix was:
|
||||
|
||||
commit 66712c23388e93e5c518ebc8515140fa0c807348
|
||||
Author: Eric Blake <eblake@redhat.com>
|
||||
Date: Thu Mar 29 13:30:41 2012 -0600
|
||||
|
||||
stdio: don't assume gets any more
|
||||
|
||||
Gnulib intentionally does not have a gets module, and now that C11
|
||||
and glibc have dropped it, we should be more proactive about warning
|
||||
any user on a platform that still has a declaration of this dangerous
|
||||
interface.
|
||||
|
||||
* m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
|
||||
support.
|
||||
* modules/stdio (Makefile.am): Likewise.
|
||||
* lib/stdio-read.c (gets): Likewise.
|
||||
* tests/test-stdio-c++.cc: Likewise.
|
||||
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
|
||||
* lib/stdio.in.h (gets): Make warning occur in more places.
|
||||
* doc/posix-functions/gets.texi (gets): Update documentation.
|
||||
Reported by Christer Solskogen.
|
||||
|
||||
Signed-off-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
This patch just gets rid of the offending part.
|
||||
|
||||
--- cpio-2.11/gnu/stdio.in.h-orig 2012-11-25 22:17:06.000000000 +0400
|
||||
+++ cpio-2.11/gnu/stdio.in.h 2012-11-25 22:18:36.000000000 +0400
|
||||
@@ -135,12 +135,6 @@
|
||||
"use gnulib module fflush for portable POSIX compliance");
|
||||
#endif
|
||||
|
||||
-/* It is very rare that the developer ever has full control of stdin,
|
||||
- so any use of gets warrants an unconditional warning. Assume it is
|
||||
- always declared, since it is required by C89. */
|
||||
-#undef gets
|
||||
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
-
|
||||
#if @GNULIB_FOPEN@
|
||||
# if @REPLACE_FOPEN@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
@@ -0,0 +1,71 @@
|
||||
This patch is needed to allow builds with newer versions of
|
||||
the GNU libc (2.16+).
|
||||
|
||||
|
||||
commit 66712c23388e93e5c518ebc8515140fa0c807348
|
||||
Author: Eric Blake <eblake@redhat.com>
|
||||
Date: Thu Mar 29 13:30:41 2012 -0600
|
||||
|
||||
stdio: don't assume gets any more
|
||||
|
||||
Gnulib intentionally does not have a gets module, and now that C11
|
||||
and glibc have dropped it, we should be more proactive about warning
|
||||
any user on a platform that still has a declaration of this dangerous
|
||||
interface.
|
||||
|
||||
* m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
|
||||
support.
|
||||
* modules/stdio (Makefile.am): Likewise.
|
||||
* lib/stdio-read.c (gets): Likewise.
|
||||
* tests/test-stdio-c++.cc: Likewise.
|
||||
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
|
||||
* lib/stdio.in.h (gets): Make warning occur in more places.
|
||||
* doc/posix-functions/gets.texi (gets): Update documentation.
|
||||
Reported by Christer Solskogen.
|
||||
|
||||
Signed-off-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
diff --git a/lib/stdio.in.h b/lib/stdio.in.h
|
||||
index aa7b599..c377b6e 100644
|
||||
--- a/lib/stdio.in.h
|
||||
+++ b/lib/stdio.in.h
|
||||
@@ -698,22 +698,11 @@ _GL_WARN_ON_USE (getline, "getline is unportable - "
|
||||
# endif
|
||||
#endif
|
||||
|
||||
-#if @GNULIB_GETS@
|
||||
-# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
|
||||
-# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
-# undef gets
|
||||
-# define gets rpl_gets
|
||||
-# endif
|
||||
-_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
|
||||
-_GL_CXXALIAS_RPL (gets, char *, (char *s));
|
||||
-# else
|
||||
-_GL_CXXALIAS_SYS (gets, char *, (char *s));
|
||||
-# undef gets
|
||||
-# endif
|
||||
-_GL_CXXALIASWARN (gets);
|
||||
/* It is very rare that the developer ever has full control of stdin,
|
||||
- so any use of gets warrants an unconditional warning. Assume it is
|
||||
- always declared, since it is required by C89. */
|
||||
+ so any use of gets warrants an unconditional warning; besides, C11
|
||||
+ removed it. */
|
||||
+#undef gets
|
||||
+#if HAVE_RAW_DECL_GETS
|
||||
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
#endif
|
||||
|
||||
@@ -1053,9 +1042,9 @@ _GL_WARN_ON_USE (snprintf, "snprintf is unportable - "
|
||||
# endif
|
||||
#endif
|
||||
|
||||
-/* Some people would argue that sprintf should be handled like gets
|
||||
- (for example, OpenBSD issues a link warning for both functions),
|
||||
- since both can cause security holes due to buffer overruns.
|
||||
+/* Some people would argue that all sprintf uses should be warned about
|
||||
+ (for example, OpenBSD issues a link warning for it),
|
||||
+ since it can cause security holes due to buffer overruns.
|
||||
However, we believe that sprintf can be used safely, and is more
|
||||
efficient than snprintf in those safe cases; and as proof of our
|
||||
belief, we use sprintf in several gnulib modules. So this header
|
||||
@@ -0,0 +1,14 @@
|
||||
Make sure the right shell is used when creating src/epaths.h.
|
||||
|
||||
--- emacs-24.2/configure 2013-01-13 17:01:53.000000000 +0100
|
||||
+++ emacs-24.2/configure 2013-01-13 17:01:57.000000000 +0100
|
||||
@@ -24135,7 +24135,7 @@ done
|
||||
;;
|
||||
"epaths":C)
|
||||
echo creating src/epaths.h
|
||||
-${MAKE-make} epaths-force
|
||||
+${MAKE-make} epaths-force SHELL="$CONFIG_SHELL"
|
||||
;;
|
||||
"gdbinit":C)
|
||||
if test ! -f src/.gdbinit && test -f $srcdir/src/.gdbinit; then
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
Fix use of LFS-style absolute paths.
|
||||
|
||||
Patches from Nixpkgs by Armijn Hemel <armijn@gpl-violations.org>
|
||||
and Wouter den Breejen <uu@denbreejen.net>.
|
||||
|
||||
diff -ruN findutils-4.2.20/locate/updatedb.sh findutils-4.2.20.new/locate/updatedb.sh
|
||||
--- findutils-4.2.20/locate/updatedb.sh 2005-01-24 17:12:35.000000000 +0100
|
||||
+++ findutils-4.2.20.new/locate/updatedb.sh 2005-08-23 14:37:10.000000000 +0200
|
||||
@@ -141,7 +141,7 @@
|
||||
: ${code:=${LIBEXECDIR}/@code@}
|
||||
|
||||
|
||||
-PATH=/bin:/usr/bin:${BINDIR}; export PATH
|
||||
+PATH=/bin:/usr/bin:${BINDIR}:${PATH}; export PATH
|
||||
|
||||
: ${PRUNEFS="nfs NFS proc afs proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs sysfs shfs"}
|
||||
|
||||
diff -Naur findutils-4.2.30/xargs/xargs.c findutils-4.2.30_new/xargs/xargs.c
|
||||
--- findutils-4.2.30/xargs/xargs.c 2007-02-27 11:21:08.000000000 +0100
|
||||
+++ findutils-4.2.30_new/xargs/xargs.c 2007-07-17 19:02:05.000000000 +0200
|
||||
@@ -402,7 +402,7 @@
|
||||
int show_limits = 0; /* --show-limits */
|
||||
int always_run_command = 1;
|
||||
char *input_file = "-"; /* "-" is stdin */
|
||||
- char *default_cmd = "/bin/echo";
|
||||
+ char *default_cmd = "echo";
|
||||
int (*read_args) PARAMS ((void)) = read_line;
|
||||
void (*act_on_init_result)(void) = noop;
|
||||
int env_too_big = 0;
|
||||
@@ -0,0 +1,24 @@
|
||||
The `test-bison-yyl{loc,val}' tests fail with "conflicting types for
|
||||
'testparse'" because `YYPARSE_PARAM' is undefined; work around that.
|
||||
|
||||
--- flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:01.000000000 +0100
|
||||
+++ flex-2.5.37/tests/test-bison-yylloc/main.c 2012-11-22 18:17:07.000000000 +0100
|
||||
@@ -21,6 +21,7 @@
|
||||
* PURPOSE.
|
||||
*/
|
||||
|
||||
+#define YYPARSE_PARAM scanner
|
||||
#include "parser.h"
|
||||
#include "scanner.h"
|
||||
|
||||
|
||||
--- flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:42.000000000 +0100
|
||||
+++ flex-2.5.37/tests/test-bison-yylval/main.c 2012-11-22 18:17:49.000000000 +0100
|
||||
@@ -21,6 +21,7 @@
|
||||
* PURPOSE.
|
||||
*/
|
||||
|
||||
+#define YYPARSE_PARAM scanner
|
||||
#include "parser.h"
|
||||
#include "scanner.h"
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
As for libc's `system', change Awk to look for `sh' in $PATH. This patch is
|
||||
only meant to be used during bootstrapping, where we don't know in advance the
|
||||
absolute file name of `sh'.
|
||||
|
||||
--- gawk-4.0.0/io.c 2011-05-18 20:47:29.000000000 +0200
|
||||
+++ gawk-4.0.0/io.c 2012-12-18 15:56:06.000000000 +0100
|
||||
@@ -1759,7 +1759,7 @@ two_way_open(const char *str, struct red
|
||||
|
||||
signal(SIGPIPE, SIG_DFL);
|
||||
|
||||
- execl("/bin/sh", "sh", "-c", str, NULL);
|
||||
+ execlp("sh", "sh", "-c", str, NULL);
|
||||
_exit(errno == ENOENT ? 127 : 126);
|
||||
|
||||
case -1:
|
||||
@@ -1924,7 +1924,7 @@ use_pipes:
|
||||
|| close(ctop[0]) == -1 || close(ctop[1]) == -1)
|
||||
fatal(_("close of pipe failed (%s)"), strerror(errno));
|
||||
/* stderr does NOT get dup'ed onto child's stdout */
|
||||
- execl("/bin/sh", "sh", "-c", str, NULL);
|
||||
+ execlp("sh", "sh", "-c", str, NULL);
|
||||
_exit(errno == ENOENT ? 127 : 126);
|
||||
}
|
||||
#endif /* NOT __EMX__ */
|
||||
@@ -2074,7 +2074,7 @@ gawk_popen(const char *cmd, struct redir
|
||||
fatal(_("moving pipe to stdout in child failed (dup: %s)"), strerror(errno));
|
||||
if (close(p[0]) == -1 || close(p[1]) == -1)
|
||||
fatal(_("close of pipe failed (%s)"), strerror(errno));
|
||||
- execl("/bin/sh", "sh", "-c", cmd, NULL);
|
||||
+ execlp("sh", "sh", "-c", cmd, NULL);
|
||||
_exit(errno == ENOENT ? 127 : 126);
|
||||
}
|
||||
#endif /* NOT __EMX__ */
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
This patch is needed to allow builds with newer versions of
|
||||
the GNU libc (2.16+).
|
||||
|
||||
The upstream fix was:
|
||||
|
||||
commit 66712c23388e93e5c518ebc8515140fa0c807348
|
||||
Author: Eric Blake <eblake@redhat.com>
|
||||
Date: Thu Mar 29 13:30:41 2012 -0600
|
||||
|
||||
stdio: don't assume gets any more
|
||||
|
||||
Gnulib intentionally does not have a gets module, and now that C11
|
||||
and glibc have dropped it, we should be more proactive about warning
|
||||
any user on a platform that still has a declaration of this dangerous
|
||||
interface.
|
||||
|
||||
* m4/stdio_h.m4 (gl_STDIO_H, gl_STDIO_H_DEFAULTS): Drop gets
|
||||
support.
|
||||
* modules/stdio (Makefile.am): Likewise.
|
||||
* lib/stdio-read.c (gets): Likewise.
|
||||
* tests/test-stdio-c++.cc: Likewise.
|
||||
* m4/warn-on-use.m4 (gl_WARN_ON_USE_PREPARE): Fix comment.
|
||||
* lib/stdio.in.h (gets): Make warning occur in more places.
|
||||
* doc/posix-functions/gets.texi (gets): Update documentation.
|
||||
Reported by Christer Solskogen.
|
||||
|
||||
Signed-off-by: Eric Blake <eblake@redhat.com>
|
||||
|
||||
This patch just gets rid of the offending part.
|
||||
|
||||
--- gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h-orig 2012-11-24 01:13:14.000000000 +0400
|
||||
+++ gettext-0.18.1.1/gettext-tools/libgettextpo/stdio.in.h 2012-11-24 01:13:46.000000000 +0400
|
||||
@@ -137,12 +137,6 @@
|
||||
"use gnulib module fflush for portable POSIX compliance");
|
||||
#endif
|
||||
|
||||
-/* It is very rare that the developer ever has full control of stdin,
|
||||
- so any use of gets warrants an unconditional warning. Assume it is
|
||||
- always declared, since it is required by C89. */
|
||||
-#undef gets
|
||||
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
-
|
||||
#if @GNULIB_FOPEN@
|
||||
# if @REPLACE_FOPEN@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
|
||||
--- gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h-orig 2012-11-24 00:26:49.000000000 +0400
|
||||
+++ gettext-0.18.1.1/gettext-runtime/gnulib-lib/stdio.in.h 2012-11-24 00:45:54.000000000 +0400
|
||||
@@ -137,12 +137,6 @@
|
||||
"use gnulib module fflush for portable POSIX compliance");
|
||||
#endif
|
||||
|
||||
-/* It is very rare that the developer ever has full control of stdin,
|
||||
- so any use of gets warrants an unconditional warning. Assume it is
|
||||
- always declared, since it is required by C89. */
|
||||
-#undef gets
|
||||
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
-
|
||||
#if @GNULIB_FOPEN@
|
||||
# if @REPLACE_FOPEN@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
|
||||
--- gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h-orig 2012-11-24 01:00:26.000000000 +0400
|
||||
+++ gettext-0.18.1.1/gettext-tools/gnulib-lib/stdio.in.h 2012-11-24 01:00:53.000000000 +0400
|
||||
@@ -137,12 +137,6 @@
|
||||
"use gnulib module fflush for portable POSIX compliance");
|
||||
#endif
|
||||
|
||||
-/* It is very rare that the developer ever has full control of stdin,
|
||||
- so any use of gets warrants an unconditional warning. Assume it is
|
||||
- always declared, since it is required by C89. */
|
||||
-#undef gets
|
||||
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
|
||||
-
|
||||
#if @GNULIB_FOPEN@
|
||||
# if @REPLACE_FOPEN@
|
||||
# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
|
||||
@@ -0,0 +1,28 @@
|
||||
We want to allow builds in chroots that lack /bin/sh. Thus, system(3)
|
||||
and popen(3) need to be tweaked to use the right shell. For the bootstrap
|
||||
glibc, we just use whatever `sh' can be found in $PATH. The final glibc
|
||||
instead uses the hard-coded absolute file name of `bash'.
|
||||
|
||||
--- a/sysdeps/posix/system.c
|
||||
+++ b/sysdeps/posix/system.c
|
||||
@@ -134,7 +134,7 @@ do_system (const char *line)
|
||||
INIT_LOCK ();
|
||||
|
||||
/* Exec the shell. */
|
||||
- (void) __execve (SHELL_PATH, (char *const *) new_argv, __environ);
|
||||
+ (void) __execvpe (SHELL_NAME, (char *const *) new_argv, __environ);
|
||||
_exit (127);
|
||||
}
|
||||
else if (pid < (pid_t) 0)
|
||||
|
||||
--- b/libio/iopopen.c 2012-06-30 21:12:34.000000000 +0200
|
||||
+++ b/libio/iopopen.c 2012-12-19 12:52:29.000000000 +0100
|
||||
@@ -226,7 +226,7 @@ _IO_new_proc_open (fp, command, mode)
|
||||
_IO_close (fd);
|
||||
}
|
||||
|
||||
- _IO_execl ("/bin/sh", "sh", "-c", command, (char *) 0);
|
||||
+ execlp ("sh", "sh", "-c", command, (char *) 0);
|
||||
_IO__exit (127);
|
||||
}
|
||||
_IO_close (child_end);
|
||||
@@ -0,0 +1,53 @@
|
||||
Disable attempts to use the system-wide /etc/ld.so.cache. This is
|
||||
required on LFS distros to avoid loading the distro's libc.so instead
|
||||
of ours.
|
||||
|
||||
Patch from Nixpkgs. Idea by Eelco Dolstra, initial patch by Jack
|
||||
Cummings, minor fixups by Shea Levy.
|
||||
|
||||
diff -Naur glibc-2.13-orig/elf/ldconfig.c glibc-2.13/elf/ldconfig.c
|
||||
--- glibc-2.13-orig/elf/ldconfig.c 2011-01-17 23:34:07.000000000 -0500
|
||||
+++ glibc-2.13/elf/ldconfig.c 2012-04-10 23:28:45.957492340 -0400
|
||||
@@ -51,7 +51,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef LD_SO_CONF
|
||||
-# define LD_SO_CONF SYSCONFDIR "/ld.so.conf"
|
||||
+# define LD_SO_CONF PREFIX "/etc/ld.so.conf"
|
||||
#endif
|
||||
|
||||
/* Get libc version number. */
|
||||
|
||||
--- glibc-2.16.0/elf/Makefile 2012-06-30 21:12:34.000000000 +0200
|
||||
+++ glibc-2.16.0/elf/Makefile 2012-11-12 23:52:21.000000000 +0100
|
||||
@@ -415,12 +415,12 @@ $(objpfx)ldconfig: $(ldconfig-modules:%=
|
||||
|
||||
$(objpfx)pldd: $(pldd-modules:%=$(objpfx)%.o)
|
||||
|
||||
-SYSCONF-FLAGS := -D'SYSCONFDIR="$(sysconfdir)"'
|
||||
-CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'LIBDIR="$(libdir)"' \
|
||||
+PREFIX-FLAGS := -D'PREFIX="$(sysconfdir)"'
|
||||
+CFLAGS-ldconfig.c = $(PREFIX-FLAGS) -D'LIBDIR="$(libdir)"' \
|
||||
-D'SLIBDIR="$(slibdir)"' -DIS_IN_ldconfig=1
|
||||
-CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
|
||||
-CFLAGS-cache.c = $(SYSCONF-FLAGS)
|
||||
-CFLAGS-rtld.c = $(SYSCONF-FLAGS)
|
||||
+CFLAGS-dl-cache.c = $(PREFIX-FLAGS)
|
||||
+CFLAGS-cache.c = $(PREFIX-FLAGS)
|
||||
+CFLAGS-rtld.c = $(PREFIX-FLAGS)
|
||||
|
||||
CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
|
||||
-DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
|
||||
|
||||
diff -Naur glibc-2.13-orig/sysdeps/generic/dl-cache.h glibc-2.13/sysdeps/generic/dl-cache.h
|
||||
--- glibc-2.13-orig/sysdeps/generic/dl-cache.h 2011-01-17 23:34:07.000000000 -0500
|
||||
+++ glibc-2.13/sysdeps/generic/dl-cache.h 2012-04-10 23:28:20.077488815 -0400
|
||||
@@ -29,7 +29,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef LD_SO_CACHE
|
||||
-# define LD_SO_CACHE SYSCONFDIR "/ld.so.cache"
|
||||
+# define LD_SO_CACHE PREFIX "/etc/ld.so.cache"
|
||||
#endif
|
||||
|
||||
#ifndef add_system_dir
|
||||
@@ -0,0 +1,111 @@
|
||||
This hack makes Guile default to UTF-8. This avoids calls to
|
||||
`iconv_open'; `iconv_open' tries to open shared objects that aren't
|
||||
available during bootstrap, so using UTF-8 avoids that (and UTF-8 has
|
||||
built-in conversions in glibc, too.)
|
||||
|
||||
diff --git a/libguile/bytevectors.c b/libguile/bytevectors.c
|
||||
index cf41f2f..facfb91 100644
|
||||
--- a/libguile/bytevectors.c
|
||||
+++ b/libguile/bytevectors.c
|
||||
@@ -1887,7 +1887,7 @@ utf_encoding_name (char *name, size_t utf_width, SCM endianness)
|
||||
if (scm_i_is_narrow_string (str)) \
|
||||
{ \
|
||||
err = mem_iconveh (scm_i_string_chars (str), c_strlen, \
|
||||
- "ISO-8859-1", c_utf_name, \
|
||||
+ "UTF-8", c_utf_name, \
|
||||
iconveh_question_mark, NULL, \
|
||||
&c_utf, &c_utf_len); \
|
||||
if (SCM_UNLIKELY (err)) \
|
||||
diff --git a/libguile/ports.c b/libguile/ports.c
|
||||
index 301bc44..b0ea2e6 100644
|
||||
--- a/libguile/ports.c
|
||||
+++ b/libguile/ports.c
|
||||
@@ -1750,7 +1750,7 @@ scm_ungetc (scm_t_wchar c, SCM port)
|
||||
if (pt->encoding != NULL)
|
||||
encoding = pt->encoding;
|
||||
else
|
||||
- encoding = "ISO-8859-1";
|
||||
+ encoding = "UTF-8";
|
||||
|
||||
len = sizeof (result_buf);
|
||||
result = u32_conv_to_encoding (encoding,
|
||||
@@ -2212,7 +2212,7 @@ scm_i_set_port_encoding_x (SCM port, const char *encoding)
|
||||
pt = SCM_PTAB_ENTRY (port);
|
||||
|
||||
if (encoding == NULL)
|
||||
- encoding = "ISO-8859-1";
|
||||
+ encoding = "UTF-8";
|
||||
|
||||
if (pt->encoding != encoding)
|
||||
pt->encoding = scm_gc_strdup (encoding, "port");
|
||||
diff --git a/libguile/posix.c b/libguile/posix.c
|
||||
index 4f8b8ac..fea7f74 100644
|
||||
--- a/libguile/posix.c
|
||||
+++ b/libguile/posix.c
|
||||
@@ -1740,7 +1740,7 @@ SCM_DEFINE (scm_setlocale, "setlocale", 1, 1, 0,
|
||||
SCM_SYSERROR;
|
||||
}
|
||||
|
||||
- enc = locale_charset ();
|
||||
+ enc = "UTF-8";
|
||||
|
||||
/* Set the default encoding for new ports. */
|
||||
scm_i_set_default_port_encoding (enc);
|
||||
diff --git a/libguile/script.c b/libguile/script.c
|
||||
index 83daf8a..083891e 100644
|
||||
--- a/libguile/script.c
|
||||
+++ b/libguile/script.c
|
||||
@@ -387,7 +387,7 @@ locale_arguments_to_string_list (int argc, char **const argv)
|
||||
SCM lst;
|
||||
const char *encoding;
|
||||
|
||||
- encoding = environ_locale_charset ();
|
||||
+ encoding = "UTF-8";
|
||||
for (i = argc - 1, lst = SCM_EOL;
|
||||
i >= 0;
|
||||
i--)
|
||||
diff --git a/libguile/strings.c b/libguile/strings.c
|
||||
index 5d0db23..8266247 100644
|
||||
--- a/libguile/strings.c
|
||||
+++ b/libguile/strings.c
|
||||
@@ -1576,7 +1576,7 @@ scm_from_locale_string (const char *str)
|
||||
SCM
|
||||
scm_from_locale_stringn (const char *str, size_t len)
|
||||
{
|
||||
- return scm_from_stringn (str, len, locale_charset (),
|
||||
+ return scm_from_stringn (str, len, "UTF-8",
|
||||
scm_i_default_port_conversion_handler ());
|
||||
}
|
||||
|
||||
@@ -1803,7 +1803,7 @@ char *
|
||||
scm_to_locale_stringn (SCM str, size_t *lenp)
|
||||
{
|
||||
return scm_to_stringn (str, lenp,
|
||||
- locale_charset (),
|
||||
+ "UTF-8",
|
||||
scm_i_default_port_conversion_handler ());
|
||||
}
|
||||
|
||||
@@ -2054,7 +2054,7 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding,
|
||||
"string contains #\\nul character: ~S",
|
||||
scm_list_1 (str));
|
||||
|
||||
- if (scm_i_is_narrow_string (str) && (encoding == NULL))
|
||||
+ if (scm_i_is_narrow_string (str))
|
||||
{
|
||||
/* If using native Latin-1 encoding, just copy the string
|
||||
contents. */
|
||||
@@ -2079,11 +2079,11 @@ scm_to_stringn (SCM str, size_t *lenp, const char *encoding,
|
||||
len = 0;
|
||||
enc = encoding;
|
||||
if (enc == NULL)
|
||||
- enc = "ISO-8859-1";
|
||||
+ enc = "UTF-8";
|
||||
if (scm_i_is_narrow_string (str))
|
||||
{
|
||||
ret = mem_iconveh (scm_i_string_chars (str), ilen,
|
||||
- "ISO-8859-1", enc,
|
||||
+ "UTF-8", enc,
|
||||
(enum iconv_ilseq_handler) handler, NULL,
|
||||
&buf, &len);
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
This patch changes Guile to use a default search path relative to the
|
||||
location of the `guile' binary, allowing it to be relocated.
|
||||
|
||||
diff --git a/libguile/load.c b/libguile/load.c
|
||||
index af2ca45..19dd338 100644
|
||||
--- a/libguile/load.c
|
||||
+++ b/libguile/load.c
|
||||
@@ -26,6 +26,7 @@
|
||||
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
+#include <libgen.h>
|
||||
|
||||
#include "libguile/_scm.h"
|
||||
#include "libguile/private-gc.h" /* scm_getenv_int */
|
||||
@@ -255,6 +256,32 @@ scm_init_load_path ()
|
||||
SCM cpath = SCM_EOL;
|
||||
|
||||
#ifdef SCM_LIBRARY_DIR
|
||||
+ char *program, *bin_dir, *prefix, *module_dir, *ccache_dir;
|
||||
+
|
||||
+ /* Determine the source and compiled module directories at run-time,
|
||||
+ relative to the executable's location.
|
||||
+
|
||||
+ Note: Use /proc/self/exe instead of argv[0] because the latter is
|
||||
+ not necessarily an absolute, nor a valid file name. */
|
||||
+
|
||||
+ program = scm_gc_malloc_pointerless (256, "string");
|
||||
+ readlink ("/proc/self/exe", program, 256);
|
||||
+
|
||||
+ bin_dir = dirname (strdupa (program));
|
||||
+
|
||||
+ prefix = scm_gc_malloc_pointerless (strlen (bin_dir) + 4, "string");
|
||||
+ strcpy (prefix, bin_dir);
|
||||
+ strcat (prefix, "/..");
|
||||
+ prefix = canonicalize_file_name (prefix);
|
||||
+
|
||||
+ module_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string");
|
||||
+ strcpy (module_dir, prefix);
|
||||
+ strcat (module_dir, "/share/guile/2.0");
|
||||
+
|
||||
+ ccache_dir = scm_gc_malloc_pointerless (strlen (prefix) + 50, "string");
|
||||
+ strcpy (ccache_dir, prefix);
|
||||
+ strcat (ccache_dir, "/lib/guile/2.0/ccache");
|
||||
+
|
||||
env = getenv ("GUILE_SYSTEM_PATH");
|
||||
if (env && strcmp (env, "") == 0)
|
||||
/* special-case interpret system-path=="" as meaning no system path instead
|
||||
@@ -263,10 +290,7 @@ scm_init_load_path ()
|
||||
else if (env)
|
||||
path = scm_parse_path (scm_from_locale_string (env), path);
|
||||
else
|
||||
- path = scm_list_4 (scm_from_locale_string (SCM_LIBRARY_DIR),
|
||||
- scm_from_locale_string (SCM_SITE_DIR),
|
||||
- scm_from_locale_string (SCM_GLOBAL_SITE_DIR),
|
||||
- scm_from_locale_string (SCM_PKGDATA_DIR));
|
||||
+ path = scm_list_1 (scm_from_locale_string (module_dir));
|
||||
|
||||
env = getenv ("GUILE_SYSTEM_COMPILED_PATH");
|
||||
if (env && strcmp (env, "") == 0)
|
||||
@@ -276,8 +300,7 @@ scm_init_load_path ()
|
||||
cpath = scm_parse_path (scm_from_locale_string (env), cpath);
|
||||
else
|
||||
{
|
||||
- cpath = scm_list_2 (scm_from_locale_string (SCM_CCACHE_DIR),
|
||||
- scm_from_locale_string (SCM_SITE_CCACHE_DIR));
|
||||
+ cpath = scm_list_1 (scm_from_locale_string (ccache_dir));
|
||||
}
|
||||
|
||||
#endif /* SCM_LIBRARY_DIR */
|
||||
@@ -0,0 +1,37 @@
|
||||
Because our GCC `lib' spec automatically adds `-rpath' for each `-L'
|
||||
and a couple more `-rpath, there are two test failures:
|
||||
demo-hardcode.test, and destdir.at. Disable these.
|
||||
|
||||
--- libtool-2.4.2/Makefile.in 2011-10-17 12:18:55.000000000 +0200
|
||||
+++ libtool-2.4.2/Makefile.in 2012-09-13 23:50:37.000000000 +0200
|
||||
@@ -909,7 +908,7 @@ COMMON_TESTS = \
|
||||
# but they depend on the other tests being run beforehand.
|
||||
INTERACTIVE_TESTS = tests/demo-shared.test tests/demo-shared-make.test \
|
||||
tests/demo-shared-exec.test tests/demo-shared-inst.test \
|
||||
- tests/demo-hardcode.test tests/demo-relink.test \
|
||||
+ tests/demo-relink.test \
|
||||
tests/demo-noinst-link.test tests/demo-shared-unst.test \
|
||||
tests/depdemo-shared.test tests/depdemo-shared-make.test \
|
||||
tests/depdemo-shared-exec.test tests/depdemo-shared-inst.test \
|
||||
@@ -2580,8 +2579,7 @@ tests/cdemo-static-make.log: tests/cdemo
|
||||
|
||||
tests/demo-shared-unst.log: tests/demo-noinst-link.log
|
||||
tests/demo-noinst-link.log: tests/demo-relink.log
|
||||
-tests/demo-relink.log: tests/demo-hardcode.log
|
||||
-tests/demo-hardcode.log: tests/demo-shared-inst.log
|
||||
+tests/demo-relink.log: tests/demo-shared-inst.log
|
||||
tests/demo-shared-inst.log: tests/demo-shared-exec.log
|
||||
tests/demo-shared-exec.log: tests/demo-shared-make.log
|
||||
tests/demo-shared-make.log: tests/demo-shared.log
|
||||
|
||||
--- libtool-2.4.2/tests/testsuite 2011-10-17 12:19:52.000000000 +0200
|
||||
+++ libtool-2.4.2/tests/testsuite 2012-09-14 00:28:45.000000000 +0200
|
||||
@@ -14443,6 +14443,6 @@ read at_status <"$at_status_file"
|
||||
#AT_START_69
|
||||
at_fn_group_banner 69 'destdir.at:75' \
|
||||
"DESTDIR with in-package deplibs" " " 4
|
||||
-at_xfail=no
|
||||
+at_xfail=yes
|
||||
eval `$LIBTOOL --config | grep '^fast_install='`
|
||||
case $fast_install in no) :;; *) false;; esac && at_xfail=yes
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user