distro: Split (distro packages base) into several files.
* distro/packages/base.scm (libsigsegv, gawk, perl, m4, gmp, mpfr, mpc, ncurses, readline, bash, libtool, libunistring, libffi, pkg-config, libgc): Move to modules of their own. (guile-1.8, guile-2.0): Move to... * distro/packages/guile.scm: ... here. * distro/packages/bash.scm, distro/packages/bdw-gc.scm, distro/packages/gawk.scm, distro/packages/libffi.scm, distro/packages/libsigsegv.scm, distro/packages/libtool.scm, distro/packages/libunistring.scm, distro/packages/m4.scm, distro/packages/multiprecision.scm, distro/packages/ncurses.scm, distro/packages/perl.scm, distro/packages/pkg-config.scm, distro/packages/readline.scm: New files.master
parent
18633d4f35
commit
c44899a28b
14
Makefile.am
14
Makefile.am
|
@ -43,12 +43,26 @@ MODULES = \
|
|||
guix.scm \
|
||||
distro.scm \
|
||||
distro/packages/base.scm \
|
||||
distro/packages/bash.scm \
|
||||
distro/packages/bdw-gc.scm \
|
||||
distro/packages/bootstrap.scm \
|
||||
distro/packages/gawk.scm \
|
||||
distro/packages/guile.scm \
|
||||
distro/packages/ld-wrapper.scm \
|
||||
distro/packages/libffi.scm \
|
||||
distro/packages/libsigsegv.scm \
|
||||
distro/packages/libtool.scm \
|
||||
distro/packages/libunistring.scm \
|
||||
distro/packages/lout.scm \
|
||||
distro/packages/m4.scm \
|
||||
distro/packages/multiprecision.scm \
|
||||
distro/packages/ncurses.scm \
|
||||
distro/packages/perl.scm \
|
||||
distro/packages/pkg-config.scm \
|
||||
distro/packages/readline.scm \
|
||||
distro/packages/recutils.scm
|
||||
|
||||
|
||||
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
|
||||
|
||||
nobase_dist_guilemodule_DATA = $(MODULES)
|
||||
|
|
|
@ -19,7 +19,12 @@
|
|||
|
||||
(define-module (distro packages base)
|
||||
#:use-module (distro)
|
||||
#:use-module (distro packages bash)
|
||||
#:use-module (distro packages bootstrap)
|
||||
#:use-module (distro packages gawk)
|
||||
#:use-module (distro packages guile)
|
||||
#:use-module (distro packages multiprecision)
|
||||
#:use-module (distro packages perl)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix ftp)
|
||||
#:use-module (guix http)
|
||||
|
@ -36,65 +41,6 @@
|
|||
;;;
|
||||
;;; 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/")
|
||||
(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 "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/")
|
||||
(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 "GPLv3+")))
|
||||
|
||||
(define-public hello
|
||||
(package
|
||||
(name "hello")
|
||||
|
@ -188,56 +134,6 @@ files (as archives).")
|
|||
(license "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/tar/")))
|
||||
|
||||
(define-public perl
|
||||
;; Yeah, Perl... It is required early in the bootstrap process by Linux.
|
||||
(package
|
||||
(name "perl")
|
||||
(version "5.16.1")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://www.cpan.org/src/5.0/perl-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:tests? #f
|
||||
#:patches (list (assoc-ref %build-inputs "patch/no-sys-dirs"))
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(libc (assoc-ref inputs "libc"))
|
||||
(pwd (search-path (search-path-as-string->list
|
||||
(getenv "PATH"))
|
||||
"pwd")))
|
||||
;; Use the right path for `pwd'.
|
||||
(substitute* "dist/Cwd/Cwd.pm"
|
||||
(("/bin/pwd") pwd))
|
||||
|
||||
(zero?
|
||||
(system* "/bin/sh" "./Configure"
|
||||
(string-append "-Dprefix=" out)
|
||||
(string-append "-Dman1dir=" out "/share/man/man1")
|
||||
(string-append "-Dman3dir=" out "/share/man/man3")
|
||||
"-de" "-Dcc=gcc"
|
||||
"-Uinstallusrbinperl"
|
||||
"-Dinstallstyle=lib/perl5"
|
||||
"-Duseshrplib"
|
||||
(string-append "-Dlocincpth=" libc "/include")
|
||||
(string-append "-Dloclibpth=" libc "/lib")))))
|
||||
%standard-phases))))
|
||||
(inputs `(("patch/no-sys-dirs" ,(search-patch "perl-no-sys-dirs.patch"))))
|
||||
(synopsis "Implementation of the Perl programming language")
|
||||
(description
|
||||
"Perl 5 is a highly capable, feature-rich programming language with over
|
||||
24 years of development.")
|
||||
(home-page "http://www.perl.org/")
|
||||
(license "GPLv1+"))) ; or "Artistic"
|
||||
|
||||
(define-public gzip
|
||||
(package
|
||||
(name "gzip")
|
||||
|
@ -488,56 +384,6 @@ are expected to exist on every operating system.")
|
|||
(license "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/coreutils/")))
|
||||
|
||||
(define-public m4
|
||||
(package
|
||||
(name "m4")
|
||||
(version "1.4.16")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/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"))))
|
||||
((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 "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/m4/")))
|
||||
|
||||
(define-public gnu-make
|
||||
(package
|
||||
(name "make")
|
||||
|
@ -567,97 +413,6 @@ that it is possible to use Make to build and install the program.")
|
|||
(license "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/make/")))
|
||||
|
||||
(define-public gmp
|
||||
(package
|
||||
(name "gmp")
|
||||
(version "5.0.5")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/gmp/gmp-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jfymbr90mpn0zw5sg001llqnvf2462y77vgjknrmfs1rjn8ln0z"))))
|
||||
(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 "LGPLv3+")
|
||||
(home-page "http://gmplib.org/")))
|
||||
|
||||
(define-public mpfr
|
||||
(package
|
||||
(name "mpfr")
|
||||
(version "3.1.1")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/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 "LGPLv3+")
|
||||
(home-page "http://www.mpfr.org/")))
|
||||
|
||||
(define-public mpc
|
||||
(package
|
||||
(name "mpc")
|
||||
(version "1.0")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://www.multiprecision.org/mpc/download/mpc-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"00rxjmkpqnv6zzcyw9aa5w6rzaav32ys87km25zgfcv9i32km5cw"))))
|
||||
(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 is built
|
||||
upon and follows the same principles as GNU MPFR.")
|
||||
(license "LGPLv3+")
|
||||
(home-page "http://mpc.multiprecision.org/")))
|
||||
|
||||
(define-public binutils
|
||||
(package
|
||||
(name "binutils")
|
||||
|
@ -798,456 +553,6 @@ used in the GNU system including the GNU/Linux variant.")
|
|||
(license "GPLv3+")
|
||||
(home-page "http://gcc.gnu.org/"))))
|
||||
|
||||
(define-public ncurses
|
||||
(let ((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 http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/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
|
||||
%standard-phases)
|
||||
|
||||
;; The `ncursesw5-config' has a #!/bin/sh that we don't want to
|
||||
;; patch, to avoid retaining a reference to the build-time Bash.
|
||||
#:patch-shebangs? #f))
|
||||
((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/"))))
|
||||
|
||||
(define-public readline
|
||||
(package
|
||||
(name "readline")
|
||||
(version "6.2")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/readline/readline-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs `(("ncurses" ,ncurses)))
|
||||
(inputs `(("patch/link-ncurses"
|
||||
,(search-patch "readline-link-ncurses.patch"))))
|
||||
(arguments `(#:patches (list (assoc-ref %build-inputs
|
||||
"patch/link-ncurses"))
|
||||
#:patch-flags '("-p0")
|
||||
#:configure-flags
|
||||
(list (string-append "LDFLAGS=-Wl,-rpath -Wl,"
|
||||
(assoc-ref %build-inputs "ncurses")
|
||||
"/lib"))))
|
||||
(synopsis "GNU Readline, a library for interactive line editing")
|
||||
(description
|
||||
"The GNU Readline library provides a set of functions for use by
|
||||
applications that allow users to edit command lines as they are typed in.
|
||||
Both Emacs and vi editing modes are available. The Readline library includes
|
||||
additional functions to maintain a list of previously-entered command lines,
|
||||
to recall and perhaps reedit those lines, and perform csh-like history
|
||||
expansion on previous commands.
|
||||
|
||||
The history facilites are also placed into a separate library, the History
|
||||
library, as part of the build process. The History library may be used
|
||||
without Readline in applications which desire its capabilities.")
|
||||
(license "GPLv3+")
|
||||
(home-page "http://savannah.gnu.org/projects/readline/")))
|
||||
|
||||
(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")
|
||||
" ")))
|
||||
(package
|
||||
(name "bash")
|
||||
(version "4.2")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://ftp.gnu.org/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
|
||||
(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"))))
|
||||
%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 "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/bash/"))))
|
||||
|
||||
(define-public libtool
|
||||
(package
|
||||
(name "libtool")
|
||||
(version "2.4.2")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/libtool/libtool-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("m4" ,m4)
|
||||
("perl" ,perl)))
|
||||
(arguments
|
||||
;; TODO: Use `TESTSUITEFLAGS=-jN' for tests.
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/skip-tests"))))
|
||||
(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 "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/libtool/")))
|
||||
|
||||
(define-public libunistring
|
||||
(package
|
||||
(name "libunistring")
|
||||
(version "0.9.3")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://ftp.gnu.org/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 "LGPLv3+")))
|
||||
|
||||
(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-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 "LGPLv2+")))
|
||||
|
||||
(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 ftp-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 "free, non-copyleft"))))
|
||||
|
||||
(define-public pkg-config
|
||||
(package
|
||||
(name "pkg-config")
|
||||
(version "0.27.1")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://pkgconfig.freedesktop.org/releases/pkg-config-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05wc5nwkqz7saj2v33ydmz1y6jdg659dll4jjh91n41m63gx0qsg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:configure-flags '("--with-internal-glib")))
|
||||
(home-page "http://www.freedesktop.org/wiki/Software/pkg-config")
|
||||
(license "GPLv2+")
|
||||
(synopsis "a helper tool used when compiling applications and
|
||||
libraries")
|
||||
(description
|
||||
"pkg-config is a helper tool used when compiling applications and
|
||||
libraries. It helps you insert the correct compiler options on the
|
||||
command line so an application can use gcc -o test test.c `pkg-config
|
||||
--libs --cflags glib-2.0` for instance, rather than hard-coding values
|
||||
on where to find glib (or other libraries). It is language-agnostic, so
|
||||
it can be used for defining the location of documentation tools, for
|
||||
instance.")))
|
||||
|
||||
(define-public libgc
|
||||
(package
|
||||
(name "libgc")
|
||||
(version "7.2alpha6")
|
||||
(source (origin
|
||||
(method http-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")))
|
||||
|
||||
(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 `(("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)
|
||||
|
||||
(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 "LGPLv3+")))
|
||||
|
||||
(define-public linux-libre-headers
|
||||
(let* ((version* "3.3.8")
|
||||
(build-phase
|
||||
|
|
|
@ -0,0 +1,88 @@
|
|||
;;; 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 packages bash)
|
||||
#:use-module (distro packages ncurses)
|
||||
#:use-module (distro packages readline)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#: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")
|
||||
" ")))
|
||||
(package
|
||||
(name "bash")
|
||||
(version "4.2")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://ftp.gnu.org/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
|
||||
(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"))))
|
||||
%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 "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/bash/"))))
|
|
@ -0,0 +1,59 @@
|
|||
;;; 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 packages bdw-gc)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libgc
|
||||
(package
|
||||
(name "libgc")
|
||||
(version "7.2alpha6")
|
||||
(source (origin
|
||||
(method http-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,59 @@
|
|||
;;; 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 packages gawk)
|
||||
#:use-module (distro packages libsigsegv)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(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/")
|
||||
(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 "GPLv3+")))
|
|
@ -17,7 +17,16 @@
|
|||
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (distro packages guile)
|
||||
#:use-module (distro packages base)
|
||||
#:use-module (distro)
|
||||
#:use-module (distro packages bdw-gc)
|
||||
#:use-module (distro packages gawk)
|
||||
#:use-module (distro packages libffi)
|
||||
#:use-module (distro packages libtool)
|
||||
#:use-module (distro packages libunistring)
|
||||
#:use-module (distro packages m4)
|
||||
#:use-module (distro packages multiprecision)
|
||||
#:use-module (distro packages pkg-config)
|
||||
#:use-module (distro packages readline)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
|
@ -25,10 +34,107 @@
|
|||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; Modules and extensions for GNU Guile.
|
||||
;;; GNU Guile, and modules and extensions.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(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-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 "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 `(("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)
|
||||
|
||||
(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 "LGPLv3+")))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Extensions.
|
||||
;;;
|
||||
|
||||
(define (guile-reader guile)
|
||||
"Build Guile-Reader against GUILE, a package of some version of Guile 1.8
|
||||
or 2.0."
|
||||
|
@ -45,7 +151,8 @@ or 2.0."
|
|||
"1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkgconfig" ,pkg-config)
|
||||
("gperf" ,(nixpkgs-derivation "gperf"))))
|
||||
("gperf" ,(false-if-exception ; FIXME
|
||||
(nixpkgs-derivation "gperf")))))
|
||||
(inputs `(("guile" ,guile)))
|
||||
(synopsis "Guile-Reader, a simple framework for building readers for
|
||||
GNU Guile")
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
;;; 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 packages libffi)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix ftp)
|
||||
#: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 ftp-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 "free, non-copyleft"))))
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
;;; 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 packages libsigsegv)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(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/")
|
||||
(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 "GPLv2+")))
|
|
@ -0,0 +1,56 @@
|
|||
;;; 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 packages libtool)
|
||||
#:use-module (distro)
|
||||
#:use-module (distro packages m4)
|
||||
#:use-module (distro packages perl)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libtool
|
||||
(package
|
||||
(name "libtool")
|
||||
(version "2.4.2")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/libtool/libtool-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0649qfpzkswgcj9vqkkr9rn4nlcx80faxpyqscy2k1x9c94f93dk"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("m4" ,m4)
|
||||
("perl" ,perl)))
|
||||
(arguments
|
||||
;; TODO: Use `TESTSUITEFLAGS=-jN' for tests.
|
||||
`(#:patches (list (assoc-ref %build-inputs "patch/skip-tests"))))
|
||||
(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 "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/libtool/")))
|
|
@ -0,0 +1,57 @@
|
|||
;;; 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 packages libunistring)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public libunistring
|
||||
(package
|
||||
(name "libunistring")
|
||||
(version "0.9.3")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://ftp.gnu.org/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 "LGPLv3+")))
|
|
@ -0,0 +1,74 @@
|
|||
;;; 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 packages m4)
|
||||
#:use-module (distro)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public m4
|
||||
(package
|
||||
(name "m4")
|
||||
(version "1.4.16")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/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"))))
|
||||
((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 "GPLv3+")
|
||||
(home-page "http://www.gnu.org/software/m4/")))
|
|
@ -0,0 +1,116 @@
|
|||
;;; 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 packages multiprecision)
|
||||
#:use-module (distro)
|
||||
#:use-module (distro packages m4)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public gmp
|
||||
(package
|
||||
(name "gmp")
|
||||
(version "5.0.5")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/gmp/gmp-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jfymbr90mpn0zw5sg001llqnvf2462y77vgjknrmfs1rjn8ln0z"))))
|
||||
(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 "LGPLv3+")
|
||||
(home-page "http://gmplib.org/")))
|
||||
|
||||
(define-public mpfr
|
||||
(package
|
||||
(name "mpfr")
|
||||
(version "3.1.1")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/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 "LGPLv3+")
|
||||
(home-page "http://www.mpfr.org/")))
|
||||
|
||||
(define-public mpc
|
||||
(package
|
||||
(name "mpc")
|
||||
(version "1.0")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://www.multiprecision.org/mpc/download/mpc-"
|
||||
version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"00rxjmkpqnv6zzcyw9aa5w6rzaav32ys87km25zgfcv9i32km5cw"))))
|
||||
(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 is built
|
||||
upon and follows the same principles as GNU MPFR.")
|
||||
(license "LGPLv3+")
|
||||
(home-page "http://mpc.multiprecision.org/")))
|
|
@ -0,0 +1,106 @@
|
|||
;;; 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 packages ncurses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public ncurses
|
||||
(let ((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 http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/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
|
||||
%standard-phases)
|
||||
|
||||
;; The `ncursesw5-config' has a #!/bin/sh that we don't want to
|
||||
;; patch, to avoid retaining a reference to the build-time Bash.
|
||||
#:patch-shebangs? #f))
|
||||
((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,74 @@
|
|||
;;; 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 packages perl)
|
||||
#:use-module (distro)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public perl
|
||||
;; Yeah, Perl... It is required early in the bootstrap process by Linux.
|
||||
(package
|
||||
(name "perl")
|
||||
(version "5.16.1")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://www.cpan.org/src/5.0/perl-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15qxzba3a50c9nik5ydgyfp62x7h9vxxn12yd1jgl93hb1wj96km"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(lambda (system)
|
||||
`(#:tests? #f
|
||||
#:patches (list (assoc-ref %build-inputs "patch/no-sys-dirs"))
|
||||
#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(libc (assoc-ref inputs "libc"))
|
||||
(pwd (search-path (search-path-as-string->list
|
||||
(getenv "PATH"))
|
||||
"pwd")))
|
||||
;; Use the right path for `pwd'.
|
||||
(substitute* "dist/Cwd/Cwd.pm"
|
||||
(("/bin/pwd") pwd))
|
||||
|
||||
(zero?
|
||||
(system* "/bin/sh" "./Configure"
|
||||
(string-append "-Dprefix=" out)
|
||||
(string-append "-Dman1dir=" out "/share/man/man1")
|
||||
(string-append "-Dman3dir=" out "/share/man/man3")
|
||||
"-de" "-Dcc=gcc"
|
||||
"-Uinstallusrbinperl"
|
||||
"-Dinstallstyle=lib/perl5"
|
||||
"-Duseshrplib"
|
||||
(string-append "-Dlocincpth=" libc "/include")
|
||||
(string-append "-Dloclibpth=" libc "/lib")))))
|
||||
%standard-phases))))
|
||||
(inputs `(("patch/no-sys-dirs" ,(search-patch "perl-no-sys-dirs.patch"))))
|
||||
(synopsis "Implementation of the Perl programming language")
|
||||
(description
|
||||
"Perl 5 is a highly capable, feature-rich programming language with over
|
||||
24 years of development.")
|
||||
(home-page "http://www.perl.org/")
|
||||
(license "GPLv1+"))) ; or "Artistic"
|
|
@ -0,0 +1,50 @@
|
|||
;;; 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 packages pkg-config)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public pkg-config
|
||||
(package
|
||||
(name "pkg-config")
|
||||
(version "0.27.1")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append
|
||||
"http://pkgconfig.freedesktop.org/releases/pkg-config-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05wc5nwkqz7saj2v33ydmz1y6jdg659dll4jjh91n41m63gx0qsg"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:configure-flags '("--with-internal-glib")))
|
||||
(home-page "http://www.freedesktop.org/wiki/Software/pkg-config")
|
||||
(license "GPLv2+")
|
||||
(synopsis "a helper tool used when compiling applications and
|
||||
libraries")
|
||||
(description
|
||||
"pkg-config is a helper tool used when compiling applications and
|
||||
libraries. It helps you insert the correct compiler options on the
|
||||
command line so an application can use gcc -o test test.c `pkg-config
|
||||
--libs --cflags glib-2.0` for instance, rather than hard-coding values
|
||||
on where to find glib (or other libraries). It is language-agnostic, so
|
||||
it can be used for defining the location of documentation tools, for
|
||||
instance.")))
|
|
@ -0,0 +1,62 @@
|
|||
;;; 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 packages readline)
|
||||
#:use-module (distro)
|
||||
#:use-module (distro packages ncurses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix http)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu))
|
||||
|
||||
(define-public readline
|
||||
(package
|
||||
(name "readline")
|
||||
(version "6.2")
|
||||
(source (origin
|
||||
(method http-fetch)
|
||||
(uri (string-append "http://ftp.gnu.org/gnu/readline/readline-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10ckm2bd2rkxhvdmj7nmbsylmihw0abwcsnxf8y27305183rd9kr"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs `(("ncurses" ,ncurses)))
|
||||
(inputs `(("patch/link-ncurses"
|
||||
,(search-patch "readline-link-ncurses.patch"))))
|
||||
(arguments `(#:patches (list (assoc-ref %build-inputs
|
||||
"patch/link-ncurses"))
|
||||
#:patch-flags '("-p0")
|
||||
#:configure-flags
|
||||
(list (string-append "LDFLAGS=-Wl,-rpath -Wl,"
|
||||
(assoc-ref %build-inputs "ncurses")
|
||||
"/lib"))))
|
||||
(synopsis "GNU Readline, a library for interactive line editing")
|
||||
(description
|
||||
"The GNU Readline library provides a set of functions for use by
|
||||
applications that allow users to edit command lines as they are typed in.
|
||||
Both Emacs and vi editing modes are available. The Readline library includes
|
||||
additional functions to maintain a list of previously-entered command lines,
|
||||
to recall and perhaps reedit those lines, and perform csh-like history
|
||||
expansion on previous commands.
|
||||
|
||||
The history facilites are also placed into a separate library, the History
|
||||
library, as part of the build process. The History library may be used
|
||||
without Readline in applications which desire its capabilities.")
|
||||
(license "GPLv3+")
|
||||
(home-page "http://savannah.gnu.org/projects/readline/")))
|
Reference in New Issue