From af5cb60fec00a11318dde6210797892b76f791f4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 14 Jun 2013 14:50:33 +0200 Subject: gnu: make-bootstrap: Keep Perl as an input only when needed. * gnu/packages/make-bootstrap.scm (%static-inputs)[coreutils]: Keep Perl as an input only if it's an input of COREUTILS. --- gnu/packages/make-bootstrap.scm | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index de4e0dcbeb..491ea4ef8f 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -83,18 +83,22 @@ (define %bash-static (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) -- cgit v1.2.3 From 62751a5ddd6e15cf80800f3549cfe3224c84a097 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 14 Jun 2013 15:29:08 +0200 Subject: gnu: make-bootstrap: Abstract things with `package-with-relocatable-glibc'. * gnu/packages/make-bootstrap.scm (%glibc-for-bootstrap): Replace with... (glibc-for-bootstrap): ... this. New procedure. (%standard-inputs-with-relocatable-glibc): Replace with... (package-with-relocatable-glibc): ... this. New procedure. (%static-inputs, %gcc-static, %guile-static): Use it. --- gnu/packages/make-bootstrap.scm | 176 ++++++++++++++++++++-------------------- 1 file changed, 88 insertions(+), 88 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 491ea4ef8f..9b16f37031 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -49,33 +49,39 @@ (define-module (gnu packages make-bootstrap) ;;; ;;; 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)) @@ -135,11 +141,8 @@ (define %static-inputs (("-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)))) @@ -284,7 +287,7 @@ (define %glibc-stripped ;; GNU libc's essential shared libraries, dynamic linker, and headers, ;; with all references to store directories stripped. As a result, ;; libc.so is unusable and need to be patched for proper relocation. - (let ((glibc %glibc-for-bootstrap)) + (let ((glibc (glibc-for-bootstrap))) (package (inherit glibc) (name "glibc-stripped") (build-system trivial-build-system) @@ -335,7 +338,7 @@ (define %glibc-stripped (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 @@ -362,11 +365,10 @@ (define %gcc-static ((#: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. @@ -409,60 +411,58 @@ (define %guile-static ;; .scm and .go files relative to its installation directory, rather ;; than in hard-coded configure-time paths. (let* ((libgc (package (inherit libgc) - (arguments - ;; Make it so that we don't rely on /proc. This is - ;; especially useful in an initrd run before /proc is - ;; mounted. - '(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES"))))) - (guile (package (inherit guile-2.0) - (name (string-append (package-name guile-2.0) "-static")) - (inputs - `(("patch/relocatable" - ,(search-patch "guile-relocatable.patch")) - ("patch/utf8" - ,(search-patch "guile-default-utf8.patch")) - ("patch/syscalls" - ,(search-patch "guile-linux-syscalls.patch")) - ,@(package-inputs guile-2.0))) - (propagated-inputs - `(("bdw-gc" ,libgc) - ,@(alist-delete "bdw-gc" - (package-propagated-inputs guile-2.0)))) - (arguments - `(;; When `configure' checks for ltdl availability, it - ;; doesn't try to link using libtool, and thus fails - ;; because of a missing -ldl. Work around that. - #:configure-flags '("LDFLAGS=-ldl") - - #:phases (alist-cons-before - 'configure 'static-guile - (lambda _ - (substitute* "libguile/Makefile.in" - ;; Create a statically-linked `guile' - ;; executable. - (("^guile_LDFLAGS =") - "guile_LDFLAGS = -all-static") - - ;; 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)))) + (arguments + ;; Make it so that we don't rely on /proc. This is + ;; especially useful in an initrd run before /proc is + ;; mounted. + '(#:configure-flags '("CPPFLAGS=-DUSE_LIBC_PRIVATES"))))) + (guile (package (inherit guile-2.0) + (name (string-append (package-name guile-2.0) "-static")) + (inputs + `(("patch/relocatable" + ,(search-patch "guile-relocatable.patch")) + ("patch/utf8" + ,(search-patch "guile-default-utf8.patch")) + ("patch/syscalls" + ,(search-patch "guile-linux-syscalls.patch")) + ,@(package-inputs guile-2.0))) + (propagated-inputs + `(("bdw-gc" ,libgc) + ,@(alist-delete "bdw-gc" + (package-propagated-inputs guile-2.0)))) + (arguments + `(;; When `configure' checks for ltdl availability, it + ;; doesn't try to link using libtool, and thus fails + ;; because of a missing -ldl. Work around that. + #:configure-flags '("LDFLAGS=-ldl") + + #:phases (alist-cons-before + 'configure 'static-guile + (lambda _ + (substitute* "libguile/Makefile.in" + ;; Create a statically-linked `guile' + ;; executable. + (("^guile_LDFLAGS =") + "guile_LDFLAGS = -all-static") + + ;; 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. -- cgit v1.2.3 From 7cf2a2a1e2e73ea413eb82bec513348473f19d96 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sun, 5 May 2013 13:19:50 +0200 Subject: gnu: Add libspectre. * gnu/packages/ghostscript.scm (libspectre): New variable. --- gnu/packages/ghostscript.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages') 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 @@ (define-public gs-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"))) -- cgit v1.2.3 From 6131c43d45e2765345d51d355c4e9136f2603747 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 14 Jun 2013 20:57:43 +0200 Subject: gnu: Add cairo. * gnu/packages/gtk.scm (cairo): New variable. --- Makefile.am | 1 + gnu/packages/gtk.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 59 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/Makefile.am b/Makefile.am index 4a7e787c73..b67dd0bd09 100644 --- a/Makefile.am +++ b/Makefile.am @@ -107,6 +107,7 @@ MODULES = \ gnu/packages/gdbm.scm \ gnu/packages/gettext.scm \ gnu/packages/ghostscript.scm \ + gnu/packages/git.scm \ gnu/packages/glib.scm \ gnu/packages/global.scm \ gnu/packages/gnupg.scm \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5dfe20f523..7a0724fbf3 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -22,8 +22,15 @@ (define-module (gnu packages gtk) #: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 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 +53,53 @@ (define-public atk 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/"))) -- cgit v1.2.3 From a2609b41b9167a648d0c9c0a01320c7cb5ebe8e1 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 14 Jun 2013 23:28:58 +0200 Subject: gnu: Add harfbuzz. * gnu/packages/gtk.scm (harfbuzz): New variable. --- gnu/packages/gtk.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 7a0724fbf3..64f9512715 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -26,6 +26,7 @@ (define-module (gnu packages gtk) #:use-module (gnu packages fontutils) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) + #:use-module (gnu packages icu4c) #:use-module (gnu packages libpng) #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) @@ -103,3 +104,27 @@ (define-public cairo 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/"))) -- cgit v1.2.3 From 4b9adff901e6bb6ef9e631df305a38668e22bd27 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 14 Jun 2013 23:33:17 +0200 Subject: gnu: Add pango. * gnu/packages/gtk.scm (pango): New variable. --- gnu/packages/gtk.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 64f9512715..38ad05e074 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -128,3 +128,28 @@ (define-public harfbuzz (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/"))) -- cgit v1.2.3 From 82c865c41a9e61cc4915779e2d6c86305403ce75 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 15 Jun 2013 15:07:57 +0200 Subject: gnu: pkg-config: Export package definition. * gnu/packages/pkg-config.scm (%pkg-config): Make public. Reported by Andreas Enge . --- gnu/packages/pkg-config.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gnu/packages') 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 @@ (define-module (gnu packages pkg-config) #: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") -- cgit v1.2.3 From 934488ccd38437f23a5c2c36d4633d2cfc0740cc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 15 Jun 2013 23:33:56 +0200 Subject: gnu: linux-libre-headers: Allow cross-compilation. * gnu/packages/linux.scm (linux-libre-headers): Use (guix build gnu-cross-build) and %standard-cross-phases when cross-compiling. --- gnu/packages/linux.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0708b5cb81..9cd5de82c0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -78,12 +78,18 @@ (define-public linux-libre-headers (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.") -- cgit v1.2.3 From 30645251d16fae593c594d5c7e9b046f727bddde Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 16 Jun 2013 20:43:29 +0200 Subject: gnu: Add Racket. * gnu/packages/scheme.scm (racket): New variable. --- gnu/packages/scheme.scm | 73 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'gnu/packages') 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 @@ (define-module (gnu packages scheme) #: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 @@ (define-public scheme48 ;; 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+))) -- cgit v1.2.3 From d517142b8e4c85d161fcd98110adcfea21e56d95 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 16 Jun 2013 23:57:34 +0200 Subject: gnu: Add GD. * gnu/packages/gd.scm: New file. * Makefile.am (MODULES): Add it. --- Makefile.am | 1 + gnu/packages/gd.scm | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 gnu/packages/gd.scm (limited to 'gnu/packages') diff --git a/Makefile.am b/Makefile.am index b67dd0bd09..b7a3ac2a36 100644 --- a/Makefile.am +++ b/Makefile.am @@ -103,6 +103,7 @@ MODULES = \ gnu/packages/gawk.scm \ gnu/packages/gcal.scm \ gnu/packages/gcc.scm \ + gnu/packages/gd.scm \ gnu/packages/gdb.scm \ gnu/packages/gdbm.scm \ gnu/packages/gettext.scm \ 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 +;;; +;;; 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 . + +(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.")))) -- cgit v1.2.3 From 7997c4bf76e93ce4e916498847fffba46b859a0b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 17 Jun 2013 01:16:24 +0200 Subject: gnu: libpng: Propagate zlib. * gnu/packages/libpng.scm (libpng): Propagate zlib. --- gnu/packages/libpng.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gnu/packages') 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 @@ (define-public libpng (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 -- cgit v1.2.3 From b1b07d72c755ea314fb0c8333cd88293ee504ce4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 17 Jun 2013 01:15:55 +0200 Subject: gnu: Add Graphviz. * gnu/packages/graphviz.scm: New file. * Makefile.am (MODULES): Add it. --- Makefile.am | 1 + gnu/packages/graphviz.scm | 124 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 gnu/packages/graphviz.scm (limited to 'gnu/packages') diff --git a/Makefile.am b/Makefile.am index b7a3ac2a36..d7f6341b00 100644 --- a/Makefile.am +++ b/Makefile.am @@ -115,6 +115,7 @@ MODULES = \ gnu/packages/gnutls.scm \ gnu/packages/gperf.scm \ gnu/packages/gprolog.scm \ + gnu/packages/graphviz.scm \ gnu/packages/groff.scm \ gnu/packages/grub.scm \ gnu/packages/grue-hunter.scm \ diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm new file mode 100644 index 0000000000..a1ee104da9 --- /dev/null +++ b/gnu/packages/graphviz.scm @@ -0,0 +1,124 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2013 Ludovic Courtès +;;; +;;; 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 . + +(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 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 . + #: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+))) -- cgit v1.2.3 From cf3fe3b0710bf538c747068d6337db70522ce75d Mon Sep 17 00:00:00 2001 From: Cyril Roelandt Date: Sat, 15 Jun 2013 03:33:42 +0200 Subject: gnu: Move subversion with the other version control systems. * gnu/packages/subversion.scm: Remove file. * gnu/packages/version-control.scm (subversion): New variable. * Makefile.am (MODULES): remove subversion.scm. --- Makefile.am | 1 - gnu/packages/subversion.scm | 58 ---------------------------------------- gnu/packages/version-control.scm | 36 ++++++++++++++++++++++++- 3 files changed, 35 insertions(+), 60 deletions(-) delete mode 100644 gnu/packages/subversion.scm (limited to 'gnu/packages') diff --git a/Makefile.am b/Makefile.am index 8db02e7a2f..59b5bae68c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -188,7 +188,6 @@ MODULES = \ gnu/packages/smalltalk.scm \ gnu/packages/sqlite.scm \ gnu/packages/ssh.scm \ - gnu/packages/subversion.scm \ gnu/packages/system.scm \ gnu/packages/tcl.scm \ gnu/packages/tcsh.scm \ 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 -;;; -;;; 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 . - -(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 +;;; Copyright © 2013 Cyril Roelandt ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +18,7 @@ ;;; along with GNU Guix. If not, see . (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 @@ (define-module (gnu packages version-control) #: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 @@ (define-public bazaar 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") -- cgit v1.2.3 From 30ac136d6d718b22255b64b9d629d4cecaea1174 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 17 Jun 2013 12:25:19 +0200 Subject: gnu: graphviz: Fix typo. * gnu/packages/graphviz.scm (graphviz): Fix typo in description. --- gnu/packages/graphviz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index a1ee104da9..d49b3d07dc 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -80,7 +80,7 @@ (define-public graphviz (home-page "http://www.graphviz.org/") (synopsis "Graph visualization software") (description - "Graphviz is graph visualization tool suite. Graph visualization is a + "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 -- cgit v1.2.3 From 10afdf506166e028dfb48d56d1f3bff3155b90f8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 17 Jun 2013 22:33:35 +0200 Subject: gnu: Add iptables. * gnu/packages/linux.scm (iptables): New variable. --- gnu/packages/linux.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 9cd5de82c0..770dd6c5a7 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -455,3 +455,28 @@ (define-public alsa-lib "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+))) -- cgit v1.2.3 From 90a0048f5e1ac161fb7a32b361fe35564caabaf9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 17 Jun 2013 23:53:42 +0200 Subject: gnu: Add Linux iproute2. * gnu/packages/bdb.scm (bdb): Add `--enable-compat185'. * gnu/packages/linux.scm (iproute): New variable. --- gnu/packages/bdb.scm | 6 ++++- gnu/packages/linux.scm | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) (limited to 'gnu/packages') 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 @@ (define-public bdb (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/linux.scm b/gnu/packages/linux.scm index 770dd6c5a7..0bc9fbcb5e 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -23,8 +23,10 @@ (define-module (gnu packages linux) #: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) @@ -480,3 +482,63 @@ (define-public 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+))) -- cgit v1.2.3 From 7fa37abca0ef5261039f3daedf371a9639ff423b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 19 Jun 2013 19:27:23 +0200 Subject: gnu: Add ImageMagick. * gnu/packages/imagemagick.scm: New file. * Makefile.am (MODULES): Add it. * guix/download.scm (%mirrors): Add `imagemagick' entry. --- Makefile.am | 1 + gnu/packages/imagemagick.scm | 92 ++++++++++++++++++++++++++++++++++++++++++++ guix/download.scm | 9 ++++- 3 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/imagemagick.scm (limited to 'gnu/packages') diff --git a/Makefile.am b/Makefile.am index 59b5bae68c..9d7ebf85e9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -126,6 +126,7 @@ MODULES = \ gnu/packages/hugs.scm \ gnu/packages/icu4c.scm \ gnu/packages/idutils.scm \ + gnu/packages/imagemagick.scm \ gnu/packages/indent.scm \ gnu/packages/irssi.scm \ gnu/packages/ld-wrapper.scm \ 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 +;;; +;;; 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 . + +(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/guix/download.scm b/guix/download.scm index 99353be8b0..fc6c815792 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -148,7 +148,14 @@ (define %mirrors "ftp://ftp.osuosl.org/pub/CPAN/" "ftp://ftp.nara.wide.ad.jp/pub/CPAN/" "http://mirrors.163.com/cpan/" - "ftp://cpan.mirror.ac.za/")))) + "ftp://cpan.mirror.ac.za/") + (imagemagick ; from http://www.imagemagick.org/script/download.php + "http://mirror.checkdomain.de/imagemagick/" + "ftp://gd.tuwien.ac.at/pub/graphics/ImageMagick/" + "http://www.imagemagick.org/download" + "ftp://mirror.searchdaimon.com/ImageMagick" + "http://mirror.is.co.za/pub/imagemagick/" + "ftp://mirror.aarnet.edu.au/pub/imagemagick/")))) (define (gnutls-derivation store system) "Return the GnuTLS derivation for SYSTEM." -- cgit v1.2.3