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.
This commit is contained in:
parent
18633d4f35
commit
c44899a28b
14
Makefile.am
14
Makefile.am
|
@ -43,12 +43,26 @@ MODULES = \
|
||||||
guix.scm \
|
guix.scm \
|
||||||
distro.scm \
|
distro.scm \
|
||||||
distro/packages/base.scm \
|
distro/packages/base.scm \
|
||||||
|
distro/packages/bash.scm \
|
||||||
|
distro/packages/bdw-gc.scm \
|
||||||
distro/packages/bootstrap.scm \
|
distro/packages/bootstrap.scm \
|
||||||
|
distro/packages/gawk.scm \
|
||||||
distro/packages/guile.scm \
|
distro/packages/guile.scm \
|
||||||
distro/packages/ld-wrapper.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/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
|
distro/packages/recutils.scm
|
||||||
|
|
||||||
|
|
||||||
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
|
GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go
|
||||||
|
|
||||||
nobase_dist_guilemodule_DATA = $(MODULES)
|
nobase_dist_guilemodule_DATA = $(MODULES)
|
||||||
|
|
|
@ -19,7 +19,12 @@
|
||||||
|
|
||||||
(define-module (distro packages base)
|
(define-module (distro packages base)
|
||||||
#:use-module (distro)
|
#:use-module (distro)
|
||||||
|
#:use-module (distro packages bash)
|
||||||
#:use-module (distro packages bootstrap)
|
#: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 packages)
|
||||||
#:use-module (guix ftp)
|
#:use-module (guix ftp)
|
||||||
#:use-module (guix http)
|
#:use-module (guix http)
|
||||||
|
@ -36,65 +41,6 @@
|
||||||
;;;
|
;;;
|
||||||
;;; Code:
|
;;; 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
|
(define-public hello
|
||||||
(package
|
(package
|
||||||
(name "hello")
|
(name "hello")
|
||||||
|
@ -188,56 +134,6 @@ files (as archives).")
|
||||||
(license "GPLv3+")
|
(license "GPLv3+")
|
||||||
(home-page "http://www.gnu.org/software/tar/")))
|
(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
|
(define-public gzip
|
||||||
(package
|
(package
|
||||||
(name "gzip")
|
(name "gzip")
|
||||||
|
@ -488,56 +384,6 @@ are expected to exist on every operating system.")
|
||||||
(license "GPLv3+")
|
(license "GPLv3+")
|
||||||
(home-page "http://www.gnu.org/software/coreutils/")))
|
(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
|
(define-public gnu-make
|
||||||
(package
|
(package
|
||||||
(name "make")
|
(name "make")
|
||||||
|
@ -567,97 +413,6 @@ that it is possible to use Make to build and install the program.")
|
||||||
(license "GPLv3+")
|
(license "GPLv3+")
|
||||||
(home-page "http://www.gnu.org/software/make/")))
|
(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
|
(define-public binutils
|
||||||
(package
|
(package
|
||||||
(name "binutils")
|
(name "binutils")
|
||||||
|
@ -798,456 +553,6 @@ used in the GNU system including the GNU/Linux variant.")
|
||||||
(license "GPLv3+")
|
(license "GPLv3+")
|
||||||
(home-page "http://gcc.gnu.org/"))))
|
(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
|
(define-public linux-libre-headers
|
||||||
(let* ((version* "3.3.8")
|
(let* ((version* "3.3.8")
|
||||||
(build-phase
|
(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/>.
|
;;; along with Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (distro packages guile)
|
(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 packages)
|
||||||
#:use-module (guix http)
|
#:use-module (guix http)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
|
@ -25,10 +34,107 @@
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;;
|
;;;
|
||||||
;;; Modules and extensions for GNU Guile.
|
;;; GNU Guile, and modules and extensions.
|
||||||
;;;
|
;;;
|
||||||
;;; Code:
|
;;; 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)
|
(define (guile-reader guile)
|
||||||
"Build Guile-Reader against GUILE, a package of some version of Guile 1.8
|
"Build Guile-Reader against GUILE, a package of some version of Guile 1.8
|
||||||
or 2.0."
|
or 2.0."
|
||||||
|
@ -45,7 +151,8 @@ or 2.0."
|
||||||
"1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n"))))
|
"1svlyk5pm4fsdp2g7n6qffdl6fdggxnlicj0jn9s4lxd63gzxy1n"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs `(("pkgconfig" ,pkg-config)
|
(native-inputs `(("pkgconfig" ,pkg-config)
|
||||||
("gperf" ,(nixpkgs-derivation "gperf"))))
|
("gperf" ,(false-if-exception ; FIXME
|
||||||
|
(nixpkgs-derivation "gperf")))))
|
||||||
(inputs `(("guile" ,guile)))
|
(inputs `(("guile" ,guile)))
|
||||||
(synopsis "Guile-Reader, a simple framework for building readers for
|
(synopsis "Guile-Reader, a simple framework for building readers for
|
||||||
GNU Guile")
|
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/")))
|
Loading…
Reference in New Issue