aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/bdb.scm6
-rw-r--r--gnu/packages/gd.scm68
-rw-r--r--gnu/packages/ghostscript.scm20
-rw-r--r--gnu/packages/graphviz.scm124
-rw-r--r--gnu/packages/gtk.scm109
-rw-r--r--gnu/packages/imagemagick.scm92
-rw-r--r--gnu/packages/libpng.scm5
-rw-r--r--gnu/packages/linux.scm97
-rw-r--r--gnu/packages/make-bootstrap.scm192
-rw-r--r--gnu/packages/pkg-config.scm5
-rw-r--r--gnu/packages/scheme.scm73
-rw-r--r--gnu/packages/subversion.scm58
-rw-r--r--gnu/packages/version-control.scm36
13 files changed, 726 insertions, 159 deletions
diff --git a/gnu/packages/bdb.scm b/gnu/packages/bdb.scm
index 9a626b17d7..75a2b72b44 100644
--- a/gnu/packages/bdb.scm
+++ b/gnu/packages/bdb.scm
@@ -45,7 +45,11 @@
(system* "./dist/configure"
(string-append "--prefix=" out)
(string-append "CONFIG_SHELL=" (which "bash"))
- (string-append "SHELL=" (which "bash"))))))
+ (string-append "SHELL=" (which "bash"))
+
+ ;; The compatibility mode is needed by some packages,
+ ;; notably iproute2.
+ "--enable-compat185"))))
%standard-phases)))
(synopsis "db, the Berkeley database")
(description
diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm
new file mode 100644
index 0000000000..13bcd45f77
--- /dev/null
+++ b/gnu/packages/gd.scm
@@ -0,0 +1,68 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages gd)
+ #:use-module (guix packages)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module (gnu packages libpng)
+ #:use-module (gnu packages libjpeg)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages compression)
+ #:use-module ((guix licenses) #:select (bsd-style)))
+
+(define-public gd
+ (package
+ (name "gd")
+
+ ;; Note: With libgd.org now pointing to bitbucket.org, genuine old
+ ;; tarballs are no longer available. Notably, versions 2.0.34 and .35 are
+ ;; missing.
+ (version "2.0.33")
+
+ (source (origin
+ (method url-fetch)
+ (uri "https://bitbucket.org/libgd/gd-libgd/get/GD_2_0_33.tar.gz")
+ (sha256
+ (base32
+ "0yrbx8mj9pykyzm0zl1q86xlkdvkajcsf5jmg688vhw9yc5wmbbw"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-after
+ 'unpack 'chdir
+ (lambda _
+ (chdir "src"))
+ %standard-phases)))
+ (inputs
+ `(("freetype" ,freetype)
+ ("libpng" ,libpng)
+ ("zlib" ,zlib)))
+ (propagated-inputs
+ `(("fontconfig" ,fontconfig)
+ ("libjpeg" ,libjpeg)))
+ (home-page "http://www.libgd.org/")
+ (synopsis "Library for the dynamic creation of images by programmers")
+ (description
+ "GD is a library for the dynamic creation of images by programmers. GD
+is written in C, and \"wrappers\" are available for Perl, PHP and other
+languages. GD creates PNG, JPEG, GIF, WebP, XPM, BMP images, among other
+formats. GD is commonly used to generate charts, graphics, thumbnails, and
+most anything else, on the fly. While not restricted to use on the web, the
+most common applications of GD involve website development.")
+ (license (bsd-style "file://COPYING"
+ "See COPYING file in the distribution."))))
diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm
index 04aac9d94e..dd6c576cdf 100644
--- a/gnu/packages/ghostscript.scm
+++ b/gnu/packages/ghostscript.scm
@@ -214,3 +214,23 @@ Ghostscript. It currently includes the 35 standard PostScript fonts.")
(license license:gpl2)
(home-page "http://sourceforge.net/projects/gs-fonts/")))
+(define-public libspectre
+ (package
+ (name "libspectre")
+ (version "0.2.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://libspectre.freedesktop.org/releases/libspectre-"
+ version ".tar.gz"))
+ (sha256 (base32
+ "1v63lqc6bhhxwkpa43qmz8phqs8ci4dhzizyy16d3vkb20m846z8"))))
+ (build-system gnu-build-system)
+ (inputs `(("ghostscript" ,ghostscript)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "postscript rendering library")
+ (description
+ "libspectre is a small library for rendering Postscript documents.
+It provides a convenient easy to use API for handling and rendering
+Postscript documents.")
+ (license license:gpl2+)
+ (home-page "http://www.freedesktop.org/wiki/Software/libspectre")))
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
new file mode 100644
index 0000000000..d49b3d07dc
--- /dev/null
+++ b/gnu/packages/graphviz.scm
@@ -0,0 +1,124 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages graphviz)
+ #:use-module (guix packages)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages libpng)
+ #:use-module (gnu packages libjpeg)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages gd)
+ #:use-module ((guix licenses) #:select (lgpl2.0+ epl1.0)))
+
+(define-public graphviz
+ (package
+ (name "graphviz")
+ (version "2.28.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.graphviz.org/pub/graphviz/ARCHIVE/graphviz-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0xpwg99cd8sp0c6r8klsmc66h1pday64kmnr4v6f9jkqqmrpkank"))))
+ (build-system gnu-build-system)
+ (arguments
+ ;; FIXME: rtest/rtest.sh is a ksh script (!). Add ksh as an input.
+ '(#:tests? #f
+
+ #:phases (alist-cons-before
+ 'build 'pre-build
+ (lambda _
+ ;; Work around bogus makefile when using an external
+ ;; libltdl. Failing to do so, one hits this error:
+ ;; "No rule to make target `-lltdl', needed by `libgvc.la'."
+ (substitute* "lib/gvc/Makefile"
+ (("am__append_5 *=.*")
+ "am_append_5 =\n")))
+ %standard-phases)))
+ (inputs
+ `(("libXrender" ,libxrender)
+ ("libX11" ,libx11)
+ ("gts" ,gts)
+ ("gd" ,gd) ; FIXME: Our GD is too old
+ ("pango" ,pango)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("libltdl" ,libtool)
+ ("bison" ,bison)
+ ("libXaw" ,libxaw)
+ ("expat" ,expat)
+ ("libjpeg" ,libjpeg)
+ ("libpng" ,libpng)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://www.graphviz.org/")
+ (synopsis "Graph visualization software")
+ (description
+ "Graphviz is a graph visualization tool suite. Graph visualization is a
+way of representing structural information as diagrams of abstract graphs and
+networks. It has important applications in networking, bioinformatics,
+software engineering, database and web design, machine learning, and in visual
+interfaces for other technical domains.")
+ (license epl1.0)))
+
+(define-public gts
+ (package
+ (name "gts")
+ (version "0.7.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/gts/gts-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-cons-before
+ 'check 'pre-check
+ (lambda _
+ (chmod "test/boolean/test.sh" #o777))
+ %standard-phases)
+
+ ;; Some data files used by the test suite are missing.
+ ;; See <http://sourceforge.net/p/gts/bugs/41/>.
+ #:tests? #f))
+ (inputs
+ `(("pkg-config" ,pkg-config)))
+ (propagated-inputs
+ ;; The gts.pc file has glib-2.0 as required.
+ `(("glib" ,glib)))
+ (home-page "http://gts.sourceforge.net/")
+
+ ;; Note: Despite the name, this is not official GNU software.
+ (synopsis "Triangulated Surface Library")
+ (description
+ "Library intended to provide a set of useful functions to deal with
+3D surfaces meshed with interconnected triangles.")
+ (license lgpl2.0+)))
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5dfe20f523..38ad05e074 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -22,8 +22,16 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages libpng)
+ #:use-module (gnu packages pdf)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages xorg))
(define-public atk
(package
@@ -46,3 +54,102 @@ by other toolkits and applications. Using the ATK interfaces, accessibility
tools have full access to view and control running applications.")
(license license:lgpl2.0+)
(home-page "https://developer.gnome.org/atk/")))
+
+(define-public cairo
+ (package
+ (name "cairo")
+ (version "1.12.14")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://cairographics.org/releases/cairo-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "04xcykglff58ygs0dkrmmnqljmpjwp2qgwcz8sijqkdpz7ix3l4n"))))
+ (build-system gnu-build-system)
+ (propagated-inputs
+ `(("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("glib" ,glib)
+ ("libpng" ,libpng)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxrender" ,libxrender)
+ ("pixman" ,pixman)))
+ (inputs
+ `(("ghostscript" ,ghostscript)
+ ("libspectre" ,libspectre)
+ ("pkg-config" ,pkg-config)
+ ("poppler" ,poppler)
+ ("python" ,python)
+ ("xextproto" ,xextproto)
+ ("zlib" ,zlib)))
+ (arguments
+ `(#:tests? #f)) ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
+ (synopsis "2D graphics library")
+ (description
+ "Cairo is a 2D graphics library with support for multiple output devices.
+Currently supported output targets include the X Window System (via both
+Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
+output. Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
+
+Cairo is designed to produce consistent output on all output media while
+taking advantage of display hardware acceleration when available
+eg. through the X Render Extension).
+
+The cairo API provides operations similar to the drawing operators of
+PostScript and PDF. Operations in cairo including stroking and filling cubic
+Bézier splines, transforming and compositing translucent images, and
+antialiased text rendering. All drawing operations can be transformed by any
+affine transformation (scale, rotation, shear, etc.)")
+ (license license:lgpl2.1) ; or Mozilla Public License 1.1
+ (home-page "http://cairographics.org/")))
+
+(define-public harfbuzz
+ (package
+ (name "harfbuzz")
+ (version "0.9.18")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "026rlwspf1zn5akds9fwibpqpn47kmlnmqm5fi0cp4k4dnygpw7y"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("cairo" ,cairo)
+ ("icu4c" ,icu4c)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python)))
+ (synopsis "opentype text shaping engine")
+ (description
+ "HarfBuzz is an OpenType text shaping engine.")
+ (license (license:x11-style "file://COPYING"
+ "See 'COPYING' in the distribution."))
+ (home-page "http://www.freedesktop.org/wiki/Software/HarfBuzz/")))
+
+(define-public pango
+ (package
+ (name "pango")
+ (version "1.34.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/pango/1.34/pango-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0k7662qix7zzh7mf6ikdj594n8jpbfm25z8swz64zbm86kgk1shs"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("cairo" ,cairo)
+ ("harfbuzz" ,harfbuzz)
+ ("pkg-config" ,pkg-config)
+ ("zlib" ,zlib)))
+ (synopsis "GNOME text and font handling library")
+ (description
+ "Pango is the core text and font handling library used in GNOME
+applications. It has extensive support for the different writing systems
+used throughout the world.")
+ (license license:lgpl2.0+)
+ (home-page "https://developer.gnome.org/pango/")))
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
new file mode 100644
index 0000000000..e408b13fa3
--- /dev/null
+++ b/gnu/packages/imagemagick.scm
@@ -0,0 +1,92 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages imagemagick)
+ #:use-module (guix packages)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:select (fsf-free))
+ #:use-module (gnu packages libjpeg)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages graphviz)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages libpng)
+ #:use-module (gnu packages libtiff)
+ #:use-module (gnu packages libjpeg)
+ #:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages pkg-config))
+
+(define-public imagemagick
+ (package
+ (name "imagemagick")
+ (version "6.8.6-0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://imagemagick/ImageMagick-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1qmwpnq2mcxjnp0rjyb2g7v87lhmll19imx3iys6kplh8amrmqnv"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (alist-cons-before
+ 'build 'pre-build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ ;; Clear the `LIBRARY_PATH' setting, which otherwise
+ ;; interferes with our own use.
+ (("^LIBRARY_PATH[[:blank:]]*=.*$")
+ "")
+
+ ;; Since the Makefile overrides $docdir, modify it to
+ ;; refer to what we want.
+ (("^DOCUMENTATION_PATH[[:blank:]]*=.*$")
+ (let ((doc (assoc-ref outputs "doc")))
+ (string-append "DOCUMENTATION_PATH = "
+ doc "/share/doc/"
+ ,name "-" ,version "\n")))))
+ %standard-phases)))
+ ;; TODO: Add Jasper, LCMS, etc.
+ (inputs `(("graphviz" ,graphviz)
+ ("ghostscript" ,ghostscript)
+ ("libx11" ,libx11)
+ ("zlib" ,zlib)
+ ("libxml2" ,libxml2)
+ ("libtiff" ,libtiff)
+ ("libpng" ,libpng)
+ ("libjpeg" ,libjpeg-8)
+ ("pango" ,pango)
+ ("freetype" ,freetype)
+ ("bzip2" ,bzip2)
+ ("xz" ,xz)
+ ("pkg-config" ,pkg-config)))
+ (outputs '("out"
+ "doc")) ; 26 MiB of HTML documentation
+ (home-page "http://www.imagemagick.org/")
+ (synopsis "Create, edit, compose, or convert bitmap images")
+ (description
+ "ImageMagick® is a software suite to create, edit, compose, or convert
+bitmap images. It can read and write images in a variety of formats (over 100)
+including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG,
+and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and
+transform images, adjust image colors, apply various special effects, or draw
+text, lines, polygons, ellipses and Bézier curves.")
+ (license (fsf-free "http://www.imagemagick.org/script/license.php"))))
diff --git a/gnu/packages/libpng.scm b/gnu/packages/libpng.scm
index 06facc9a9a..32f38194e4 100644
--- a/gnu/packages/libpng.scm
+++ b/gnu/packages/libpng.scm
@@ -37,7 +37,10 @@
(sha256 (base32
"0m3vz3gig7s63zanq5b1dgb5ph12qm0cylw4g4fbxlsq3f74hn8l"))))
(build-system gnu-build-system)
- (inputs `(("zlib" ,zlib)))
+
+ ;; libpng.la says "-lz", so propagate it.
+ (propagated-inputs `(("zlib" ,zlib)))
+
(synopsis "Libpng, a library for handling PNG files")
(description
"Libpng is the official PNG (Portable Network Graphics) reference
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 0708b5cb81..0bc9fbcb5e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -23,8 +23,10 @@
#:use-module ((gnu packages compression)
#:renamer (symbol-prefix-proc 'guix:))
#:use-module (gnu packages flex)
+ #:use-module (gnu packages bison)
#:use-module (gnu packages libusb)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages bdb)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (guix packages)
@@ -78,12 +80,18 @@
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
- (srfi srfi-1))
+ (srfi srfi-1)
+ ,@(if (%current-target-system)
+ '((guix build gnu-cross-build))
+ '()))
#:phases (alist-replace
'build ,(build-phase (%current-system))
(alist-replace
'install ,install-phase
- (alist-delete 'configure %standard-phases)))
+ (alist-delete 'configure
+ ,(if (%current-target-system)
+ '%standard-cross-phases
+ '%standard-phases))))
#:tests? #f))
(synopsis "GNU Linux-Libre kernel headers")
(description "Headers of the Linux-Libre kernel.")
@@ -449,3 +457,88 @@ trace of all the system calls made by a another process/program.")
"The Advanced Linux Sound Architecture (ALSA) provides audio and
MIDI functionality to the Linux-based operating system.")
(license lgpl2.1+)))
+
+(define-public iptables
+ (package
+ (name "iptables")
+ (version "1.4.16.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://www.netfilter.org/projects/iptables/files/iptables-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0vkg5lzkn4l3i1sm6v3x96zzvnv9g7mi0qgj6279ld383mzcws24"))))
+ (build-system gnu-build-system)
+ (arguments '(#:tests? #f)) ; no test suite
+ (home-page "http://www.netfilter.org/projects/iptables/index.html")
+ (synopsis "Program to configure the Linux IP packet filtering rules")
+ (description
+ "iptables is the userspace command line program used to configure the
+Linux 2.4.x and later IPv4 packet filtering ruleset. It is targeted towards
+system administrators. Since Network Address Translation is also configured
+from the packet filter ruleset, iptables is used for this, too. The iptables
+package also includes ip6tables. ip6tables is used for configuring the IPv6
+packet filter.")
+ (license gpl2+)))
+
+(define-public iproute
+ (package
+ (name "iproute2")
+ (version "3.8.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://kernel.org/linux/utils/net/iproute2/iproute2-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0kqy30wz2krbg4y7750hjq5218hgy2vj9pm5qzkn1bqskxs4b4ap"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:make-flags (let ((out (assoc-ref %outputs "out")))
+ (list "DESTDIR="
+ (string-append "LIBDIR=" out "/lib")
+ (string-append "SBINDIR=" out "/sbin")
+ (string-append "CONFDIR=" out "/etc")
+ (string-append "DOCDIR=" out "/share/doc/"
+ ,name "-" ,version)
+ (string-append "MANDIR=" out "/share/man")))
+ #:phases (alist-cons-before
+ 'install 'pre-install
+ (lambda _
+ ;; Don't attempt to create /var/lib/arpd.
+ (substitute* "Makefile"
+ (("^.*ARPDDIR.*$") "")))
+ %standard-phases)))
+ (inputs
+ `(("iptables" ,iptables)
+ ("db4" ,bdb)
+ ("pkg-config" ,pkg-config)
+ ("flex" ,flex)
+ ("bison" ,bison)))
+ (home-page
+ "http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2")
+ (synopsis
+ "A collection of utilities for controlling TCP/IP networking and traffic control in Linux")
+ (description
+ "Iproute2 is a collection of utilities for controlling TCP/IP
+networking and traffic with the Linux kernel.
+
+Most network configuration manuals still refer to ifconfig and route as the
+primary network configuration tools, but ifconfig is known to behave
+inadequately in modern network environments. They should be deprecated, but
+most distros still include them. Most network configuration systems make use
+of ifconfig and thus provide a limited feature set. The /etc/net project aims
+to support most modern network technologies, as it doesn't use ifconfig and
+allows a system administrator to make use of all iproute2 features, including
+traffic control.
+
+iproute2 is usually shipped in a package called iproute or iproute2 and
+consists of several tools, of which the most important are ip and tc. ip
+controls IPv4 and IPv6 configuration and tc stands for traffic control. Both
+tools print detailed usage messages and are accompanied by a set of
+manpages.")
+ (license gpl2+)))
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index b927d5db25..c8de969b1a 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -49,33 +49,39 @@
;;;
;;; Code:
-(define %glibc-for-bootstrap
- ;; A libc whose `system' and `popen' functions looks for `sh' in $PATH,
- ;; without nscd, and with static NSS modules.
- (package (inherit glibc-final)
+(define* (glibc-for-bootstrap #:optional (base glibc-final))
+ "Return a libc deriving from BASE whose `system' and `popen' functions looks
+for `sh' in $PATH, and without nscd, and with static NSS modules."
+ (package (inherit base)
(arguments
- (substitute-keyword-arguments (package-arguments glibc-final)
+ (substitute-keyword-arguments (package-arguments base)
((#:patches patches)
- `(cons (assoc-ref %build-inputs "patch/system") ,patches))
+ `(cons (assoc-ref %build-inputs "patch/system") ,patches))
((#:configure-flags flags)
- ;; Arrange so that getaddrinfo & co. do not contact the nscd,
- ;; and can use statically-linked NSS modules.
- `(cons* "--disable-nscd" "--disable-build-nscd"
- "--enable-static-nss"
- ,flags))))
+ ;; Arrange so that getaddrinfo & co. do not contact the nscd,
+ ;; and can use statically-linked NSS modules.
+ `(cons* "--disable-nscd" "--disable-build-nscd"
+ "--enable-static-nss"
+ ,flags))))
(inputs
`(("patch/system" ,(search-patch "glibc-bootstrap-system.patch"))
- ,@(package-inputs glibc-final)))))
-
-(define %standard-inputs-with-relocatable-glibc
- ;; Standard inputs with the above libc and corresponding GCC.
- `(("libc", %glibc-for-bootstrap)
- ("gcc" ,(package-with-explicit-inputs
- gcc-4.7
- `(("libc",%glibc-for-bootstrap)
- ,@(alist-delete "libc" %final-inputs))
- (current-source-location)))
- ,@(fold alist-delete %final-inputs '("libc" "gcc"))))
+ ,@(package-inputs base)))))
+
+(define (package-with-relocatable-glibc p)
+ "Return a variant of P that uses the libc as defined by
+`glibc-for-bootstrap'."
+
+ (define inputs
+ `(("libc", (glibc-for-bootstrap))
+ ("gcc" ,(package-with-explicit-inputs
+ gcc-4.7
+ `(("libc",(glibc-for-bootstrap))
+ ,@(alist-delete "libc" %final-inputs))
+ (current-source-location)))
+ ,@(fold alist-delete %final-inputs '("libc" "gcc"))))
+
+ (package-with-explicit-inputs p inputs
+ (current-source-location)))
(define %bash-static
(static-package bash-light))
@@ -83,18 +89,22 @@
(define %static-inputs
;; Packages that are to be used as %BOOTSTRAP-INPUTS.
(let ((coreutils (package (inherit coreutils)
- (arguments
- `(#:configure-flags
- '("--disable-nls"
- "--disable-silent-rules"
- "--enable-no-install-program=stdbuf,libstdbuf.so"
- "CFLAGS=-Os -g0" ; smaller, please
- "LDFLAGS=-static -pthread")
- #:tests? #f ; signal-related Gnulib tests fail
- ,@(package-arguments coreutils)))
-
- ;; Remove optional dependencies such as GMP.
- (inputs `(,(assoc "perl" (package-inputs coreutils))))))
+ (arguments
+ `(#:configure-flags
+ '("--disable-nls"
+ "--disable-silent-rules"
+ "--enable-no-install-program=stdbuf,libstdbuf.so"
+ "CFLAGS=-Os -g0" ; smaller, please
+ "LDFLAGS=-static -pthread")
+ #:tests? #f ; signal-related Gnulib tests fail
+ ,@(package-arguments coreutils)))
+
+ ;; Remove optional dependencies such as GMP. Keep Perl
+ ;; except if it's missing (which is the case when
+ ;; cross-compiling).
+ (inputs (match (assoc "perl" (package-inputs coreutils))
+ (#f '())
+ (x (list x))))))
(bzip2 (package (inherit bzip2)
(arguments
(substitute-keyword-arguments (package-arguments bzip2)
@@ -131,11 +141,8 @@
(("-export-dynamic") "")))
,phases)))))
(inputs `(("patch/sh" ,(search-patch "gawk-shell.patch"))))))
- (finalize (lambda (p)
- (static-package (package-with-explicit-inputs
- p
- %standard-inputs-with-relocatable-glibc)
- (current-source-location)))))
+ (finalize (compose static-package
+ package-with-relocatable-glibc)))
`(,@(map (match-lambda
((name package)
(list name (finalize package))))
@@ -280,7 +287,7 @@
;; GNU libc's essential shared libraries, dynamic linker, and headers,
;; with all references to store directories stripped. As a result,
;; libc.so is unusable and need to be patched for proper relocation.
- (let ((glibc %glibc-for-bootstrap))
+ (let ((glibc (glibc-for-bootstrap)))
(package (inherit glibc)
(name "glibc-stripped")
(build-system trivial-build-system)
@@ -331,7 +338,7 @@
(define %gcc-static
;; A statically-linked GCC, with stripped-down functionality.
- (package-with-explicit-inputs
+ (package-with-relocatable-glibc
(package (inherit gcc-final)
(name "gcc-static")
(arguments
@@ -358,11 +365,10 @@
((#:make-flags flags)
`(cons "BOOT_LDFLAGS=-static" ,flags)))))
(inputs `(("gmp-source" ,(package-source gmp))
- ("mpfr-source" ,(package-source mpfr))
- ("mpc-source" ,(package-source mpc))
- ("binutils" ,binutils-final)
- ,@(package-inputs gcc-4.7))))
- %standard-inputs-with-relocatable-glibc))
+ ("mpfr-source" ,(package-source mpfr))
+ ("mpc-source" ,(package-source mpc))
+ ("binutils" ,binutils-final)
+ ,@(package-inputs gcc-4.7))))))
(define %gcc-stripped
;; The subset of GCC files needed for bootstrap.
@@ -405,54 +411,52 @@
;; .scm and .go files relative to its installation directory, rather
;; than in hard-coded configure-time paths.
(let* ((guile (package (inherit guile-2.0)
- (name (string-append (package-name guile-2.0) "-static"))
- (inputs
- `(("patch/relocatable"
- ,(search-patch "guile-relocatable.patch"))
- ("patch/utf8"
- ,(search-patch "guile-default-utf8.patch"))
- ("patch/syscalls"
- ,(search-patch "guile-linux-syscalls.patch"))
- ,@(package-inputs guile-2.0)))
- (propagated-inputs
- `(("bdw-gc" ,libgc)
- ,@(alist-delete "bdw-gc"
- (package-propagated-inputs guile-2.0))))
- (arguments
- `(;; When `configure' checks for ltdl availability, it
- ;; doesn't try to link using libtool, and thus fails
- ;; because of a missing -ldl. Work around that.
- #:configure-flags '("LDFLAGS=-ldl")
-
- #:phases (alist-cons-before
- 'configure 'static-guile
- (lambda _
- (substitute* "libguile/Makefile.in"
- ;; Create a statically-linked `guile'
- ;; executable.
- (("^guile_LDFLAGS =")
- "guile_LDFLAGS = -all-static")
-
- ;; Add `-ldl' *after* libguile-2.0.la.
- (("^guile_LDADD =(.*)$" _ ldadd)
- (string-append "guile_LDADD = "
- (string-trim-right ldadd)
- " -ldl\n"))))
- %standard-phases)
-
- ;; Allow Guile to be relocated, as is needed during
- ;; bootstrap.
- #:patches
- (list (assoc-ref %build-inputs "patch/relocatable")
- (assoc-ref %build-inputs "patch/utf8")
- (assoc-ref %build-inputs "patch/syscalls"))
-
- ;; There are uses of `dynamic-link' in
- ;; {foreign,coverage}.test that don't fly here.
- #:tests? #f)))))
- (package-with-explicit-inputs (static-package guile)
- %standard-inputs-with-relocatable-glibc
- (current-source-location))))
+ (name (string-append (package-name guile-2.0) "-static"))
+ (inputs
+ `(("patch/relocatable"
+ ,(search-patch "guile-relocatable.patch"))
+ ("patch/utf8"
+ ,(search-patch "guile-default-utf8.patch"))
+ ("patch/syscalls"
+ ,(search-patch "guile-linux-syscalls.patch"))
+ ,@(package-inputs guile-2.0)))
+ (propagated-inputs
+ `(("bdw-gc" ,libgc)
+ ,@(alist-delete "bdw-gc"
+ (package-propagated-inputs guile-2.0))))
+ (arguments
+ `(;; When `configure' checks for ltdl availability, it
+ ;; doesn't try to link using libtool, and thus fails
+ ;; because of a missing -ldl. Work around that.
+ #:configure-flags '("LDFLAGS=-ldl")
+
+ #:phases (alist-cons-before
+ 'configure 'static-guile
+ (lambda _
+ (substitute* "libguile/Makefile.in"
+ ;; Create a statically-linked `guile'
+ ;; executable.
+ (("^guile_LDFLAGS =")
+ "guile_LDFLAGS = -all-static")
+
+ ;; Add `-ldl' *after* libguile-2.0.la.
+ (("^guile_LDADD =(.*)$" _ ldadd)
+ (string-append "guile_LDADD = "
+ (string-trim-right ldadd)
+ " -ldl\n"))))
+ %standard-phases)
+
+ ;; Allow Guile to be relocated, as is needed during
+ ;; bootstrap.
+ #:patches
+ (list (assoc-ref %build-inputs "patch/relocatable")
+ (assoc-ref %build-inputs "patch/utf8")
+ (assoc-ref %build-inputs "patch/syscalls"))
+
+ ;; There are uses of `dynamic-link' in
+ ;; {foreign,coverage}.test that don't fly here.
+ #:tests? #f)))))
+ (package-with-relocatable-glibc (static-package guile))))
(define %guile-static-stripped
;; A stripped static Guile binary, for use during bootstrap.
diff --git a/gnu/packages/pkg-config.scm b/gnu/packages/pkg-config.scm
index 9f10440fec..eb5f748bda 100644
--- a/gnu/packages/pkg-config.scm
+++ b/gnu/packages/pkg-config.scm
@@ -24,7 +24,10 @@
#:use-module (guix build-system trivial)
#:export (pkg-config))
-(define %pkg-config
+;; This is the "primitive" pkg-config package. People should use `pkg-config'
+;; (see below) rather than `%pkg-config', but we export `%pkg-config' so that
+;; `fold-packages' finds it.
+(define-public %pkg-config
(package
(name "pkg-config")
(version "0.27.1")
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index c79a709ecd..1e66750b01 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -31,6 +31,10 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages avahi)
#:use-module (gnu packages libphidget)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages libjpeg)
+ #:use-module ((gnu packages gtk) #:select (cairo pango))
#:use-module (ice-9 match))
(define-public mit-scheme
@@ -319,3 +323,72 @@ implementation techniques and as an expository tool.")
;; Most files are BSD-3; see COPYING for the few exceptions.
(license bsd-3)))
+
+(define-public racket
+ (package
+ (name "racket")
+ (version "5.3.4")
+ (source (origin
+ (method url-fetch)
+ (uri (list (string-append "http://download.racket-lang.org/installers/"
+ version "/racket/racket-" version
+ "-src-unix.tgz")
+ (string-append
+ "http://mirror.informatik.uni-tuebingen.de/mirror/racket/"
+ version "/racket/racket-" version "-src-unix.tgz")))
+ (sha256
+ ;; XXX: Used to be 1xhnx3yd74zrvn6sfcqmk57kxj51cwvm660dwiaxr1qxnm5lq0v7.
+ (base32 "0yrdmpdvzf092869y6zjjjxl6j2kypgiv7qrfkv7lj8w01pbh7sd"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases
+ (let* ((gui-libs
+ (lambda (inputs)
+ ;; FIXME: Add GTK+ and GDK for DrRacket.
+ (let ((glib (string-append (assoc-ref inputs "glib") "/lib"))
+ (cairo (string-append (assoc-ref inputs "cairo") "/lib"))
+ (pango (string-append (assoc-ref inputs "pango") "/lib"))
+ (libjpeg (string-append (assoc-ref inputs "libjpeg") "/lib")))
+ (list glib cairo pango libjpeg)))))
+ (alist-cons-before
+ 'configure 'pre-configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (chdir "src")
+
+ ;; The GUI libs are dynamically opened through the FFI, so they
+ ;; must be in the loader's search path.
+ (setenv "LD_LIBRARY_PATH" (string-join (gui-libs inputs) ":")))
+ (alist-cons-after
+ 'unpack 'patch-/bin/sh
+ (lambda _
+ (substitute* "collects/racket/system.rkt"
+ (("/bin/sh") (which "sh"))))
+ (alist-cons-after
+ 'install 'wrap-programs
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (define (wrap prog)
+ (wrap-program prog
+ `("LD_LIBRARY_PATH" ":" prefix
+ ,(gui-libs inputs))))
+
+ (with-directory-excursion (string-append out "/bin")
+ (for-each wrap
+ (list "gracket" "drracket" "slideshow" "mred"))
+ #t)))
+ %standard-phases))))
+ #:tests? #f ; XXX: how to run them?
+ ))
+ (inputs `(("libffi" ,libffi)
+ ("glib" ,glib) ; for DrRacket
+ ("cairo" ,cairo)
+ ("pango" ,pango)
+ ("libjpeg" ,libjpeg-8)))
+ (home-page "http://racket-lang.org")
+ (synopsis "Implementation of Scheme and related languages")
+ (description
+ "Racket is an implementation of the Scheme programming language (R5RS and
+R6RS) and related languages, such as Typed Racket. It features a compiler and
+a virtual machine with just-in-time native compilation, as well as a large set
+of libraries.")
+ (license lgpl2.0+)))
diff --git a/gnu/packages/subversion.scm b/gnu/packages/subversion.scm
deleted file mode 100644
index 28ddc42e00..0000000000
--- a/gnu/packages/subversion.scm
+++ /dev/null
@@ -1,58 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages subversion)
- #:use-module ((guix licenses) #:select (asl2.0))
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system gnu)
- #:use-module (gnu packages)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages libapr)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages python)
- #:use-module (gnu packages sqlite))
-
-(define-public subversion
- (package
- (name "subversion")
- (version "1.7.8")
- (source (origin
- (method url-fetch)
- (uri (string-append "https://archive.apache.org/dist/subversion/subversion-"
- version ".tar.bz2"))
- (sha256
- (base32
- "11inl9n1riahfnbk1fax0dysm2swakzhzhpmm2zvga6fikcx90zw"))))
- (build-system gnu-build-system)
- (inputs
- `(("libapr" ,libapr)
- ("libaprutil" ,libaprutil)
- ("perl" ,perl)
- ("python" ,python)
- ("sqlite" ,sqlite)
- ("zlib" ,zlib)))
- (home-page "http://subversion.apache.org/")
- (synopsis "Subversion, a revision control system")
- (description
- "Subversion exists to be universally recognized and adopted as an
-open-source, centralized version control system characterized by its
-reliability as a safe haven for valuable data; the simplicity of its model and
-usage; and its ability to support the needs of a wide variety of users and
-projects, from individuals to large-scale enterprise operations.")
- (license asl2.0)))
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 6654be93b2..018cf1b9f8 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
+;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -17,7 +18,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages version-control)
- #:use-module ((guix licenses) #:select (gpl1+ gpl2+ gpl3+))
+ #:use-module ((guix licenses) #:select (asl2.0 gpl1+ gpl2+ gpl3+))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
@@ -25,7 +26,11 @@
#:use-module (guix build utils)
#:use-module ((gnu packages gettext)
#:renamer (symbol-prefix-proc 'guix:))
+ #:use-module (gnu packages libapr)
#:use-module (gnu packages nano)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages sqlite)
#:use-module (gnu packages compression))
(define-public bazaar
@@ -56,6 +61,35 @@ organize their workspace in whichever way they want. It is possible to work
from a command line or use a GUI application.")
(license gpl2+)))
+(define-public subversion
+ (package
+ (name "subversion")
+ (version "1.7.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://archive.apache.org/dist/subversion/subversion-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "11inl9n1riahfnbk1fax0dysm2swakzhzhpmm2zvga6fikcx90zw"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libapr" ,libapr)
+ ("libaprutil" ,libaprutil)
+ ("perl" ,perl)
+ ("python" ,python)
+ ("sqlite" ,sqlite)
+ ("zlib" ,zlib)))
+ (home-page "http://subversion.apache.org/")
+ (synopsis "Subversion, a revision control system")
+ (description
+ "Subversion exists to be universally recognized and adopted as an
+open-source, centralized version control system characterized by its
+reliability as a safe haven for valuable data; the simplicity of its model and
+usage; and its ability to support the needs of a wide variety of users and
+projects, from individuals to large-scale enterprise operations.")
+ (license asl2.0)))
+
(define-public rcs
(package
(name "rcs")