diff options
author | Mark H Weaver <mhw@netris.org> | 2014-09-11 18:26:28 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2014-09-11 18:26:28 -0400 |
commit | 66ea98e321e93b0806f6870d77dd4c00e7e720c0 (patch) | |
tree | 21778401485e3b8683bbc6a31769233c059683b1 /gnu | |
parent | da5538ef44bfa74d3e435f9f557374eabba5dc1e (diff) | |
parent | 5dae0186dea1e72e73bf223161620cfeddef5a63 (diff) | |
download | guix-66ea98e321e93b0806f6870d77dd4c00e7e720c0.tar.gz |
Merge branch 'master' into core-updates
Conflicts: gnu/packages/image.scm
Diffstat (limited to 'gnu')
53 files changed, 2951 insertions, 554 deletions
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm index 362669cbf9..04dd19f3e1 100644 --- a/gnu/build/activation.scm +++ b/gnu/build/activation.scm @@ -26,6 +26,7 @@ #:export (activate-users+groups activate-etc activate-setuid-programs + activate-/bin/sh activate-current-system)) ;;; Commentary: @@ -146,48 +147,64 @@ numeric gid or #f." ;; /etc is a mixture of static and dynamic settings. Here is where we ;; initialize it from the static part. + (define (rm-f file) + (false-if-exception (delete-file file))) + (format #t "populating /etc from ~a...~%" etc) - (let ((rm-f (lambda (f) - (false-if-exception (delete-file f))))) - (rm-f "/etc/static") - (symlink etc "/etc/static") - (for-each (lambda (file) - ;; TODO: Handle 'shadow' specially so that changed - ;; password aren't lost. - (let ((target (string-append "/etc/" file)) - (source (string-append "/etc/static/" file))) - (rm-f target) - (symlink source target))) - (scandir etc - (lambda (file) - (not (member file '("." "..")))) - - ;; The default is 'string-locale<?', but we don't have - ;; it when run from the initrd's statically-linked - ;; Guile. - string<?)) - - ;; Prevent ETC from being GC'd. - (rm-f "/var/guix/gcroots/etc-directory") - (symlink etc "/var/guix/gcroots/etc-directory"))) + + (rm-f "/etc/static") + (symlink etc "/etc/static") + (for-each (lambda (file) + (let ((target (string-append "/etc/" file)) + (source (string-append "/etc/static/" file))) + (rm-f target) + + ;; Things such as /etc/sudoers must be regular files, not + ;; symlinks; furthermore, they could be modified behind our + ;; back---e.g., with 'visudo'. Thus, make a copy instead of + ;; symlinking them. + (if (file-is-directory? source) + (symlink source target) + (copy-file source target)) + + ;; XXX: Dirty hack to meet sudo's expectations. + (when (string=? (basename target) "sudoers") + (chmod target #o440)))) + (scandir etc + (lambda (file) + (not (member file '("." "..")))) + + ;; The default is 'string-locale<?', but we don't have + ;; it when run from the initrd's statically-linked + ;; Guile. + string<?)) + + ;; Prevent ETC from being GC'd. + (rm-f "/var/guix/gcroots/etc-directory") + (symlink etc "/var/guix/gcroots/etc-directory")) (define %setuid-directory ;; Place where setuid programs are stored. "/run/setuid-programs") +(define (link-or-copy source target) + "Attempt to make TARGET a hard link to SOURCE; if it fails, fall back to +copy SOURCE to TARGET." + (catch 'system-error + (lambda () + (link source target)) + (lambda args + ;; Perhaps SOURCE and TARGET live in a different file system, so copy + ;; SOURCE. + (copy-file source target)))) + (define (activate-setuid-programs programs) "Turn PROGRAMS, a list of file names, into setuid programs stored under %SETUID-DIRECTORY." (define (make-setuid-program prog) (let ((target (string-append %setuid-directory "/" (basename prog)))) - (catch 'system-error - (lambda () - (link prog target)) - (lambda args - ;; Perhaps PROG and TARGET live in a different file system, so copy - ;; PROG. - (copy-file prog target))) + (link-or-copy prog target) (chown target 0 0) (chmod target #o6555))) @@ -204,6 +221,11 @@ numeric gid or #f." (for-each make-setuid-program programs)) +(define (activate-/bin/sh shell) + "Change /bin/sh to point to SHELL." + (symlink shell "/bin/sh.new") + (rename-file "/bin/sh.new" "/bin/sh")) + (define %current-system ;; The system that is current (a symlink.) This is not necessarily the same ;; as the system we booted (aka. /run/booted-system) because we can re-build diff --git a/gnu/build/install.scm b/gnu/build/install.scm index e16896f8b8..a472259a4a 100644 --- a/gnu/build/install.scm +++ b/gnu/build/install.scm @@ -56,18 +56,38 @@ MOUNT-POINT." "Evaluate DIRECTIVE, an sexp describing a file or directory to create under directory TARGET." (let loop ((directive directive)) - (match directive - (('directory name) - (mkdir-p (string-append target name))) - (('directory name uid gid) - (let ((dir (string-append target name))) - (mkdir-p dir) - (chown dir uid gid))) - (('directory name uid gid mode) - (loop `(directory ,name ,uid ,gid)) - (chmod (string-append target name) mode)) - ((new '-> old) - (symlink old (string-append target new)))))) + (catch 'system-error + (lambda () + (match directive + (('directory name) + (mkdir-p (string-append target name))) + (('directory name uid gid) + (let ((dir (string-append target name))) + (mkdir-p dir) + (chown dir uid gid))) + (('directory name uid gid mode) + (loop `(directory ,name ,uid ,gid)) + (chmod (string-append target name) mode)) + ((new '-> old) + (let try () + (catch 'system-error + (lambda () + (symlink old (string-append target new))) + (lambda args + ;; When doing 'guix system init' on the current '/', some + ;; symlinks may already exists. Override them. + (if (= EEXIST (system-error-errno args)) + (begin + (delete-file (string-append target new)) + (try)) + (apply throw args)))))))) + (lambda args + ;; Usually we can only get here when installing to an existing root, + ;; as with 'guix system init foo.scm /'. + (format (current-error-port) + "error: failed to evaluate directive: ~s~%" + directive) + (apply throw args))))) (define (directives store) "Return a list of directives to populate the root file system that will host @@ -93,7 +113,6 @@ STORE." ("/var/guix/gcroots/current-system" -> "/run/current-system") (directory "/bin") - ("/bin/sh" -> "/run/current-system/profile/bin/bash") (directory "/tmp" 0 0 #o1777) ; sticky bit (directory "/root" 0 0) ; an exception @@ -106,6 +125,7 @@ includes /etc, /var, /run, /bin/sh, etc., and all the symlinks to SYSTEM." (directives (%store-directory))) ;; Add system generation 1. + (false-if-exception (delete-file "/var/guix/profiles/system-1-link")) (symlink system (string-append target "/var/guix/profiles/system-1-link"))) diff --git a/gnu/build/linux-boot.scm b/gnu/build/linux-boot.scm index 21ee58ad50..fbc683c798 100644 --- a/gnu/build/linux-boot.scm +++ b/gnu/build/linux-boot.scm @@ -221,6 +221,7 @@ networking values.) Return #t if INTERFACE is up, #f otherwise." (define (load-linux-module* file) "Load Linux module from FILE, the name of a `.ko' file." (define (slurp module) + ;; TODO: Use 'mmap' to reduce memory usage. (call-with-input-file file get-bytevector-all)) (load-linux-module (slurp file))) @@ -342,10 +343,11 @@ bailing out.~%root contents: ~s~%" (scandir "/")) volatile-root? (mounts '())) "This procedure is meant to be called from an initrd. Boot a system by -first loading LINUX-MODULES, then setting up QEMU guest networking if -QEMU-GUEST-NETWORKING? is true, mounting the file systems specified in MOUNTS, -and finally booting into the new root if any. The initrd supports kernel -command-line options '--load', '--root', and '--repl'. +first loading LINUX-MODULES (a list of absolute file names of '.ko' files), +then setting up QEMU guest networking if QEMU-GUEST-NETWORKING? is true, +mounting the file systems specified in MOUNTS, and finally booting into the +new root if any. The initrd supports kernel command-line options '--load', +'--root', and '--repl'. Mount the root file system, specified by the '--root' command-line argument, if any. @@ -383,9 +385,7 @@ to it are lost." (start-repl)) (display "loading kernel modules...\n") - (for-each (compose load-linux-module* - (cut string-append "/modules/" <>)) - linux-modules) + (for-each load-linux-module* linux-modules) (when qemu-guest-networking? (unless (configure-qemu-networking) diff --git a/gnu/build/linux-initrd.scm b/gnu/build/linux-initrd.scm index bf60137e8f..54639bd319 100644 --- a/gnu/build/linux-initrd.scm +++ b/gnu/build/linux-initrd.scm @@ -17,9 +17,15 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu build linux-initrd) + #:use-module (guix build utils) + #:use-module (guix build store-copy) + #:use-module (system base compile) + #:use-module (rnrs bytevectors) + #:use-module ((system foreign) #:select (sizeof)) #:use-module (ice-9 popen) #:use-module (ice-9 ftw) - #:export (write-cpio-archive)) + #:export (write-cpio-archive + build-initrd)) ;;; Commentary: ;;; @@ -69,4 +75,68 @@ COMPRESS? is true, compress it using GZIP. On success, return OUTPUT." output)) output)))) +(define (cache-compiled-file-name file) + "Return the file name of the in-cache .go file for FILE, relative to the +current directory. + +This is similar to what 'compiled-file-name' in (system base compile) does." + (let loop ((file file)) + (let ((target (false-if-exception (readlink file)))) + (if target + (loop target) + (format #f ".cache/guile/ccache/~a-~a-~a-~a/~a" + (effective-version) + (if (eq? (native-endianness) (endianness little)) + "LE" + "BE") + (sizeof '*) + (effective-version) + file))))) + +(define (compile-to-cache file) + "Compile FILE to the cache." + (let ((compiled-file (cache-compiled-file-name file))) + (mkdir-p (dirname compiled-file)) + (compile-file file + #:opts %auto-compilation-options + #:output-file compiled-file))) + +(define* (build-initrd output + #:key + guile init + (references-graphs '()) + (cpio "cpio") + (gzip "gzip")) + "Write an initial RAM disk (initrd) to OUTPUT. The initrd starts the script +at INIT, running GUILE. It contains all the items referred to by +REFERENCES-GRAPHS." + (mkdir "contents") + + ;; Copy the closures of all the items referenced in REFERENCES-GRAPHS. + (populate-store references-graphs "contents") + + (with-directory-excursion "contents" + ;; Make '/init'. + (symlink init "init") + + ;; Compile it. + (compile-to-cache "init") + + ;; Allow Guile to find out where it is (XXX). See + ;; 'guile-relocatable.patch'. + (mkdir-p "proc/self") + (symlink (string-append guile "/bin/guile") "proc/self/exe") + (readlink "proc/self/exe") + + ;; Reset the timestamps of all the files that will make it in the initrd. + (for-each (lambda (file) + (unless (eq? 'symlink (stat:type (lstat file))) + (utime file 0 0 0 0))) + (find-files "." ".*")) + + (write-cpio-archive output "." + #:cpio cpio #:gzip gzip)) + + (delete-file-recursively "contents")) + ;;; linux-initrd.scm ends here diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm new file mode 100644 index 0000000000..82a289e712 --- /dev/null +++ b/gnu/packages/abiword.scm @@ -0,0 +1,107 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Marek Benc <merkur32@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 abiword) + #:use-module ((guix licenses) + #:renamer (symbol-prefix-proc 'license:)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages) + #:use-module (gnu packages boost) + #:use-module (gnu packages compression) + #:use-module (gnu packages enchant) + #:use-module (gnu packages fribidi) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gtk) + #:use-module (gnu packages image) + #:use-module (gnu packages ots) + #:use-module (gnu packages popt) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (gnu packages wv) + #:use-module (gnu packages xml)) + +(define-public abiword + (package + (name "abiword") + (version "2.8.6") + (source + (origin + (method url-fetch) + (uri + (string-append "http://abisource.org/downloads/" name "/" version + "/source/" name "-" version ".tar.gz")) + (sha256 + (base32 "059sd2apxdmcacc4pll880i7vm18h0kyjsq299m1mz3c7ak8k46r")) + (patches + (list + (search-patch "abiword-wmf-version-lookup-fix.patch") + (search-patch "abiword-no-include-glib-internal-headers.patch") + (search-patch "abiword-explictly-cast-bools.patch") + (search-patch "abiword-use-proper-png-api.patch") + (search-patch "abiword-pass-no-undefined-to-linker.patch") + (search-patch "abiword-link-plugins-against-backend.patch"))))) + + (build-system gnu-build-system) + (arguments ;; NOTE: rsvg is disabled, since Abiword + `(#:configure-flags ;; supports it directly, and its BS is broken. + (list + "--enable-clipart" ;; TODO: The following plugins have unresolved + "--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda, + (string-append ;; wordperfect, psion, mathview, goffice. + "--enable-plugins=" + "applix " "babelfish " "bmp " "clarisworks " "collab " "command " + "docbook " "eml " "freetranslation " "garble " "gdict " "gimp " + "google " "hancom " "hrtext " "iscii " "kword " "latex " + "loadbindings " "mht " "mif " "mswrite " "opendocument " + "openwriter " "openxml " "opml " "ots " "paint " "passepartout " + "pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict " + "wikipedia " "wmf " "wml " "xslfo")))) + (inputs + `(("boost" ,boost) + ("enchant" ,enchant) + ("fontconfig" ,fontconfig) + ("fribidi" ,fribidi) + ("glib" ,glib) + ("gtk+" ,gtk+-2) + ("libglade" ,libglade) + ("libgsf" ,libgsf) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("librsvg" ,librsvg) + ("libwmf" ,libwmf) + ("libxml2" ,libxml2) + ("ots" ,ots) + ("popt" ,popt) + ("readline" ,readline) + ("wv" ,wv) + ("zlib" ,zlib))) + (native-inputs + `(("intltool" ,intltool) + ("glib:bin" ,glib "bin") + ("pkg-config" ,pkg-config))) + (home-page "http://abisource.org/") + (synopsis "Word processing program") + (description + "AbiWord is a word processing program. It is rapidly becoming a state +of the art word processor, with lots of features useful for your daily work, +personal needs, or for just some good old typing fun.") + (license license:gpl2+))) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 4d60c17989..a255ff1b74 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -36,10 +36,8 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages perl) #:use-module (gnu packages tcl) - #:use-module ((gnu packages base) - #:select (tar)) #:use-module ((gnu packages compression) - #:select (gzip)) + #:renamer (symbol-prefix-proc 'c:)) #:use-module ((gnu packages openssl) #:renamer (symbol-prefix-proc 'o:)) #:use-module (gnu packages bison) @@ -52,6 +50,7 @@ #:use-module (gnu packages pciutils) #:use-module (gnu packages libusb) #:use-module (gnu packages libftdi) + #:use-module (gnu packages image) #:use-module (gnu packages xorg)) (define-public dmd @@ -309,7 +308,7 @@ allow automatic login and starting any app.") '("services" "protocols" "rpc"))) #t)))) (native-inputs `(("tar" ,tar) - ("gzip" ,gzip))) + ("gzip" ,c:gzip))) (synopsis "IANA protocol, port, and RPC number assignments") (description "This package provides the /etc/services, /etc/protocols, and /etc/rpc @@ -929,3 +928,68 @@ under Unix and related operating systems. Spaces and various other unsafe characters (such as \"$\") get replaced with \"_\". ISO 8859-1 (Latin-1) characters can be replaced as well, as can UTF-8 characters.") (license bsd-3))) + +(define-public testdisk + (package + (name "testdisk") + (version "6.14") + (source (origin + (method url-fetch) + (uri (string-append "http://www.cgsecurity.org/testdisk-" + version ".tar.bz2")) + (sha256 + (base32 + "0v1jap83f5h99zv01v3qmqm160d36n4ysi0gyq7xzb3mqgmw75x5")))) + (build-system gnu-build-system) + (inputs + `(;; ("ntfs" ,ntfs) + ("util-linux" ,util-linux) + ("openssl" ,o:openssl) + ("zlib" ,c:zlib) + ("e2fsprogs" ,e2fsprogs) + ("libjpeg" ,libjpeg) + ("ncurses" ,ncurses))) + (home-page "http://www.cgsecurity.org/wiki/TestDisk") + (synopsis "Data recovery tool") + (description + "TestDisk is a program for data recovery, primarily designed to help +recover lost partitions and/or make non-booting disks bootable again.") + (license gpl2+))) + +(define-public direvent + (package + (name "direvent") + (version "5.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/direvent/direvent-" + version ".tar.gz")) + (sha256 + (base32 + "1i14131y6m8wvirz6piw4zxz2q1kbpl0lniv5kl55rx4k372dg8z")) + (modules '((guix build utils))) + (snippet '(substitute* "tests/testsuite" + (("#![[:blank:]]?/bin/sh") + "#!$SHELL"))))) + (build-system gnu-build-system) + (arguments + '(#:phases (alist-cons-before + 'build 'patch-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + ;; Use the right shell when executing the watcher. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "src/direvent.c" + (("\"/bin/sh\"") + (string-append "\"" bash "/bin/sh\""))))) + %standard-phases))) + (home-page "http://www.gnu.org/software/direvent/") + (synopsis "Daemon to monitor directories for events such as file removal") + (description + "A daemon that monitors directories for events, such as creating, +deleting or modifying files. It can monitor different sets of directories for +different events. When an event is detected, direvent calls a specified +external program with information about the event, such as the location +within the file system where it occurred. Thus, \"direvent\" provides an easy +way to react immediately if given files undergo changes, for example, to +track changes in important system configuration files.") + (license gpl3+))) diff --git a/gnu/packages/apl.scm b/gnu/packages/apl.scm index a08886c252..7da3b5eb4a 100644 --- a/gnu/packages/apl.scm +++ b/gnu/packages/apl.scm @@ -24,7 +24,7 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages gettext) #:use-module (gnu packages maths) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (gnu packages readline)) (define-public apl diff --git a/gnu/packages/bdb.scm b/gnu/packages/bdb.scm deleted file mode 100644 index e82a683332..0000000000 --- a/gnu/packages/bdb.scm +++ /dev/null @@ -1,68 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (gnu packages bdb) - #:use-module (gnu packages) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public bdb - (package - (name "bdb") - (version "5.3.21") - (source (origin - (method url-fetch) - (uri (string-append "http://download.oracle.com/berkeley-db/db-" version - ".tar.gz")) - (sha256 (base32 - "1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx")))) - (build-system gnu-build-system) - (outputs '("out" ; programs, libraries, headers - "doc")) ; 94 MiB of HTML docs - (arguments - '(#:tests? #f ; no check target available - #:phases - (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (doc (assoc-ref outputs "doc"))) - ;; '--docdir' is not honored, so we need to patch. - (substitute* "dist/Makefile.in" - (("docdir[[:blank:]]*=.*") - (string-append "docdir = " doc "/share/doc/bdb"))) - - (zero? - (system* "./dist/configure" - (string-append "--prefix=" out) - (string-append "CONFIG_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 - "Berkeley DB is an embeddable database allowing developers the choice of -SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") - (license (bsd-style "file://LICENSE" - "See LICENSE in the distribution.")) - (home-page "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html"))) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 6887ba6167..11e8d2bc17 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; @@ -264,14 +264,14 @@ some compression ratio).") (define-public lzip (package (name "lzip") - (version "1.15") + (version "1.16") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/lzip/lzip-" version ".tar.gz")) (sha256 (base32 - "1dh5vmj5apizfawnsm50y7z064yx7cz3313przph16gwd3dgrlvw")))) + "0l9724rw1l3hg2ldr3n7ihqich4m9nc6y7l302bvdj4jmxdw530j")))) (build-system gnu-build-system) (home-page "http://www.nongnu.org/lzip/lzip.html") (synopsis "Lossless data compressor based on the LZMA algorithm") diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm new file mode 100644 index 0000000000..01d9cbdd62 --- /dev/null +++ b/gnu/packages/databases.scm @@ -0,0 +1,283 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> +;;; Copyright © 2014 David Thompson <davet@gnu.org> +;;; Copyright © 2014 Mark H Weaver <mhw@netris.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 databases) + #:use-module (gnu packages) + #:use-module (gnu packages perl) + #:use-module (gnu packages linux) + #:use-module (gnu packages openssl) + #:use-module (gnu packages compression) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages readline) + #:use-module (gnu packages emacs) + #:use-module (gnu packages check) + #:use-module (gnu packages algebra) + #:use-module (gnu packages curl) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages python) + #:use-module ((guix licenses) + #:select (gpl2 gpl3+ lgpl3+ x11-style bsd-style + public-domain)) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (srfi srfi-26) + #:use-module (ice-9 match)) + +(define-public bdb + (package + (name "bdb") + (version "5.3.21") + (source (origin + (method url-fetch) + (uri (string-append "http://download.oracle.com/berkeley-db/db-" version + ".tar.gz")) + (sha256 (base32 + "1f2g2612lf8djbwbwhxsvmffmf9d7693kh2l20195pqp0f9jmnfx")))) + (build-system gnu-build-system) + (outputs '("out" ; programs, libraries, headers + "doc")) ; 94 MiB of HTML docs + (arguments + '(#:tests? #f ; no check target available + #:phases + (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (doc (assoc-ref outputs "doc"))) + ;; '--docdir' is not honored, so we need to patch. + (substitute* "dist/Makefile.in" + (("docdir[[:blank:]]*=.*") + (string-append "docdir = " doc "/share/doc/bdb"))) + + (zero? + (system* "./dist/configure" + (string-append "--prefix=" out) + (string-append "CONFIG_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 + "Berkeley DB is an embeddable database allowing developers the choice of +SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") + (license (bsd-style "file://LICENSE" + "See LICENSE in the distribution.")) + (home-page + "http://www.oracle.com/us/products/database/berkeley-db/overview/index.html"))) + +(define-public mysql + (package + (name "mysql") + (version "5.1.73") + (source (origin + (method url-fetch) + (uri (string-append + "http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-" + version ".tar.gz")) + (sha256 + (base32 + "1dfwi4ck0vq6sdci6gz0031s7zz5lc3pddqlgm0292s00l9y5sq5")))) + (build-system gnu-build-system) + (inputs + `(("procps" ,procps) + ("openssl" ,openssl) + ("perl" ,perl) + ("zlib" ,zlib) + ("ncurses" ,ncurses))) + (arguments + '(#:modules ((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw)) ; for "rm -rf" + #:phases (alist-cons-after + 'install 'clean-up + (lambda* (#:key outputs #:allow-other-keys) + ;; Remove the 112 MiB of tests that get installed. + (let ((out (assoc-ref outputs "out"))) + (define (rm-rf dir) + (file-system-fold (const #t) ; enter? + (lambda (file stat result) ; leaf + (delete-file file)) + (const #t) ; down + (lambda (dir stat result) ; up + (rmdir dir)) + (const #t) + (lambda (file stat errno result) + (format (current-error-port) + "error: ~a: ~a~%" + file (strerror errno))) + #t + (string-append out "/" dir))) + (rm-rf "mysql-test") + (rm-rf "sql-bench") + + ;; Compress the 14 MiB Info file. + (zero? + (system* "gzip" "--best" + (string-append out "/share/info/mysql.info"))))) + %standard-phases))) + (home-page "http://www.mysql.com/") + (synopsis "A fast, easy to use, and popular database") + (description + "MySQL is a fast, reliable, and easy to use relational database +management system that supports the standardized Structured Query +Language.") + (license gpl2))) + +(define-public postgresql + (package + (name "postgresql") + (version "9.3.5") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.postgresql.org/pub/source/v" + version "/postgresql-" version ".tar.gz")) + (sha256 + (base32 + "08kga00izykgvnx7hn995wc4zjqslspapaa8z63045p1ya14mr4g")))) + (build-system gnu-build-system) + (inputs + `(("readline" ,readline) + ("zlib" ,zlib))) + (home-page "http://www.postgresql.org/") + (synopsis "Powerful object-relational database system") + (description + "PostgreSQL is a powerful object-relational database system. It is fully +ACID compliant, has full support for foreign keys, joins, views, triggers, and +stored procedures (in multiple languages). It includes most SQL:2008 data +types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and +TIMESTAMP. It also supports storage of binary large objects, including +pictures, sounds, or video.") + (license (x11-style "file://COPYRIGHT")))) + +(define-public recutils + (package + (name "recutils") + (version "1.7") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/recutils/recutils-" + version ".tar.gz")) + (sha256 + (base32 + "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93")))) + (build-system gnu-build-system) + + ;; Running tests in parallel leads to test failures and crashes in + ;; torture/utils. + (arguments '(#:parallel-tests? #f)) + + (native-inputs `(("emacs" ,emacs) + ("bc" ,bc))) + + ;; TODO: Add more optional inputs. + ;; FIXME: Our Bash doesn't have development headers (need for the 'readrec' + ;; built-in command), but it's not clear how to get them installed. + ;; See <https://lists.gnu.org/archive/html/bug-bash/2014-03/msg00125.html>. + (inputs `(("curl" ,curl) + ("libgcrypt" ,libgcrypt) + ("check" ,check))) + (synopsis "Manipulate plain text files as databases") + (description + "GNU Recutils is a set of tools and libraries for creating and +manipulating text-based, human-editable databases. Despite being text-based, +databases created with Recutils carry all of the expected features such as +unique fields, primary keys, time stamps and more. Many different field types +are supported, as is encryption.") + (license gpl3+) + (home-page "http://www.gnu.org/software/recutils/"))) + +(define-public sqlite + (package + (name "sqlite") + (version "3.8.4.3") + (source (origin + (method url-fetch) + ;; TODO: Download from sqlite.org once this bug : + ;; http://lists.gnu.org/archive/html/bug-guile/2013-01/msg00027.html + ;; has been fixed. + (uri (let ((numeric-version + (match (string-split version #\.) + ((first-digit other-digits ...) + (string-append first-digit + (string-pad-right + (string-concatenate + (map (cut string-pad <> 2 #\0) + other-digits)) + 6 #\0)))))) + (string-append + "mirror://sourceforge/sqlite.mirror/SQLite%20" version + "/sqlite-autoconf-" numeric-version ".tar.gz"))) + (sha256 + (base32 + "0rcdsk5sz34w8vy0g5yhfms4saiq81i872jxx5m5sjij7bi9bsg0")) + (patches + (list (search-patch "sqlite-large-page-size-fix.patch"))))) + (build-system gnu-build-system) + (home-page "http://www.sqlite.org/") + (synopsis "The SQLite database management system") + (description + "SQLite is a software library that implements a self-contained, serverless, +zero-configuration, transactional SQL database engine. SQLite is the most +widely deployed SQL database engine in the world. The source code for SQLite is +in the public domain.") + (license public-domain))) + +(define-public tdb + (package + (name "tdb") + (version "1.3.0") + (source (origin + (method url-fetch) + (uri (string-append "http://samba.org/ftp/tdb/tdb-" + version ".tar.gz")) + (sha256 + (base32 + "085sd2kii72fr0c4pdc7c7m0xk34nc66wnjp21c83dss826y9gh4")))) + (build-system gnu-build-system) + (arguments + '(#:phases (alist-replace + 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; The 'configure' script is a wrapper for Waf and + ;; doesn't recognize things like '--enable-fast-install'. + (zero? (system* "./configure" + (string-append "--prefix=" out))))) + %standard-phases))) + (native-inputs + `(;; TODO: Build the documentation. + ;; ("docbook-xsl" ,docbook-xsl) + ;; ("libxml2" ,libxml2) + ;; ("libxslt" ,libxslt) + ("python" ,python-2))) ;for the Waf build system + (home-page "http://tdb.samba.org/") + (synopsis "TDB, the trivial database") + (description + "TDB is a Trivial Database. In concept, it is very much like GDBM, +and BSD's DB except that it allows multiple simultaneous writers and uses +locking internally to keep writers from trampling on each other. TDB is also +extremely small.") + (license lgpl3+))) diff --git a/gnu/packages/dc.scm b/gnu/packages/dc.scm index 0cb7c5b4f0..0e65d886d0 100644 --- a/gnu/packages/dc.scm +++ b/gnu/packages/dc.scm @@ -23,7 +23,7 @@ #:use-module (gnu packages gnutls) #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm new file mode 100644 index 0000000000..c9e49d9551 --- /dev/null +++ b/gnu/packages/enchant.scm @@ -0,0 +1,61 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Marek Benc <merkur32@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 enchant) + #:use-module (gnu packages) + #:use-module (gnu packages aspell) + #:use-module (gnu packages glib) + #:use-module (gnu packages pkg-config) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses)) + +(define-public enchant + (package + (name "enchant") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri + (string-append "http://www.abisource.com/downloads/" name "/" version + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "0zq9yw1xzk8k9s6x83n1f9srzcwdavzazn3haln4nhp9wxxrxb1g")))) + + (build-system gnu-build-system) + (inputs + `(("aspell" ,aspell) ;; Currently, the only supported backend in Guix + ("glib" ,glib))) ;; is aspell. (This information might be old) + (native-inputs + `(("glib:bin" ,glib "bin") + ("pkg-config" ,pkg-config))) + + (synopsis "Multi-backend spell-checking library wrapper") + (description + "On the surface, Enchant appears to be a generic spell checking library. +Looking closer, you'll see the Enchant is more-or-less a fancy wrapper around +the dlopen() system call. + +Enchant steps in to provide uniformity and conformity on top of these libraries, +and implement certain features that may be lacking in any individual provider +library. Everything should \"just work\" for any and every definition of \"just +working.\"") + (home-page "http://www.abisource.com/projects/enchant") + (license lgpl2.1+))) diff --git a/gnu/packages/freeipmi.scm b/gnu/packages/freeipmi.scm index 46240123c1..5ce87ae842 100644 --- a/gnu/packages/freeipmi.scm +++ b/gnu/packages/freeipmi.scm @@ -27,14 +27,14 @@ (define-public freeipmi (package (name "freeipmi") - (version "1.4.1") + (version "1.4.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/freeipmi/freeipmi-" version ".tar.gz")) (sha256 (base32 - "1qpr4h46zmbk82w4fpijimzsdpgyr0fdnsinpsp5cvxy5pcikbd6")))) + "033zakrk3kvi4y41kslicr90b3yb2kj052cl6nbja7ybn70y9nkz")))) (build-system gnu-build-system) (inputs `(("readline" ,readline) ("libgcrypt" ,libgcrypt))) diff --git a/gnu/packages/fribidi.scm b/gnu/packages/fribidi.scm new file mode 100644 index 0000000000..eb13aa1c6d --- /dev/null +++ b/gnu/packages/fribidi.scm @@ -0,0 +1,45 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Marek Benc <merkur32@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 fribidi) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses)) + +(define-public fribidi + (package + (name "fribidi") + (version "0.19.6") + (source + (origin + (method url-fetch) + (uri + (string-append "http://fribidi.org/download/" name "-" version + ".tar.bz2")) + (sha256 + (base32 "0zg1hpaml34ny74fif97j7ngrshlkl3wk3nja3gmlzl17i1bga6b")))) + + (build-system gnu-build-system) + (synopsis "Implementation of the Unicode bidirectional algorithm") + (description + "GNU FriBidi is an implementation of the Unicode Bidirectional +Algorithm. This algorithm is used to properly display text in left-to-right +or right-to-left ordering as necessary.") + (home-page "http://fribidi.org/") + (license lgpl2.1+))) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 84e09aaee7..f3c88c92d4 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -38,7 +38,7 @@ #:use-module (gnu packages readline) #:use-module (gnu packages xorg) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (gnu packages sdl) #:use-module (gnu packages texinfo) #:use-module (guix build-system gnu)) diff --git a/gnu/packages/global.scm b/gnu/packages/global.scm index e50a57f2e6..d43caf4f54 100644 --- a/gnu/packages/global.scm +++ b/gnu/packages/global.scm @@ -28,14 +28,14 @@ (define-public global ; a global variable (package (name "global") - (version "6.3") + (version "6.3.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/global/global-" version ".tar.gz")) (sha256 (base32 - "1nzqqcry3mfha53n8j1grdg2dflp9gpg54qwlsrzq9sspwg78769")))) + "07iifpz00ch3drlscvk5v12j7bckwv6pk8040y81s1x14b0gf220")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) ("libtool" ,libtool))) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index e4ef3d4871..d5a1930bbe 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -38,7 +38,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (gnu packages video) #:use-module (gnu packages xiph) #:use-module ((guix licenses) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 06f62715c4..149720e5e8 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -19,6 +19,9 @@ (define-module (gnu packages image) #:use-module (gnu packages) #:use-module (gnu packages compression) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xml) #:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:)) #:use-module (guix packages) #:use-module (guix download) @@ -110,3 +113,36 @@ collection of tools for doing simple manipulations of TIFF images.") (license (license:bsd-style "file://COPYRIGHT" "See COPYRIGHT in the distribution.")) (home-page "http://www.libtiff.org/"))) + +(define-public libwmf + (package + (name "libwmf") + (version "0.2.8.4") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wvware/" + name "/" version + "/" name "-" version ".tar.gz")) + (sha256 + (base32 "1y3wba4q8pl7kr51212jwrsz1x6nslsx1gsjml1x0i8549lmqd2v")))) + + (build-system gnu-build-system) + (inputs + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg) + ("libpng",libpng) + ("libxml2" ,libxml2) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Library for reading images in the Microsoft WMF format") + (description + "libwmf is a library for reading vector images in Microsoft's native +Windows Metafile Format (WMF) and for either (a) displaying them in, e.g., an X +window; or (b) converting them to more standard/free file formats such as, e.g., +the W3C's XML-based Scaleable Vector Graphic (SVG) format.") + (home-page "http://wvware.sourceforge.net/libwmf.html") + + ;; 'COPYING' is the GPLv2, but file headers say LGPLv2.0+. + (license license:lgpl2.0+))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 442f80103a..7be0d076ec 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -30,7 +30,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages ncurses) #:use-module (gnu packages pciutils) - #:use-module (gnu packages bdb) + #:use-module (gnu packages databases) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -613,6 +613,9 @@ MIDI functionality to the Linux-based operating system.") (arguments ;; XXX: Disable man page creation until we have DocBook. '(#:configure-flags (list "--disable-xmlto" + + ;; The udev rule is responsible for restoring + ;; the volume. (string-append "--with-udev-rules-dir=" (assoc-ref %outputs "out") "/lib/udev/rules.d")) @@ -1397,7 +1400,13 @@ time.") (assoc-ref %outputs "out") "/etc/lvm") "--enable-udev_sync" - "--enable-udev_rules") + "--enable-udev_rules" + + ;; Make sure programs such as 'dmsetup' can + ;; find libdevmapper.so. + (string-append "LDFLAGS=-Wl,-rpath=" + (assoc-ref %outputs "out") + "/lib")) ;; The tests use 'mknod', which requires root access. #:tests? #f)) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index a85c120469..92ffc22c14 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -75,7 +75,8 @@ for configuration, scripting, and rapid prototyping.") (uri (string-append "http://www.lua.org/ftp/lua-" version ".tar.gz")) (sha256 - (base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16")))))) + (base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16")) + (patches (list (search-patch "lua51-liblua-so.patch"))))))) (define-public luajit (package diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a9e862ac88..2a742cdc56 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -31,7 +31,7 @@ #:use-module (gnu packages guile) #:use-module (gnu packages linux) #:use-module (gnu packages m4) - #:use-module (gnu packages mysql) + #:use-module (gnu packages databases) #:use-module (gnu packages ncurses) #:use-module (gnu packages openssl) #:use-module (gnu packages perl) @@ -43,7 +43,6 @@ #:use-module (gnu packages glib) #:use-module (gnu packages pkg-config) #:use-module (gnu packages flex) - #:use-module (gnu packages bdb) #:use-module (gnu packages gdb) #:use-module (gnu packages samba) #:use-module ((guix licenses) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 813480616e..774686310f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -123,7 +123,7 @@ numbers.") (define-public glpk (package (name "glpk") - (version "4.54") + (version "4.55") (source (origin (method url-fetch) @@ -131,7 +131,7 @@ numbers.") version ".tar.gz")) (sha256 (base32 - "18gr2anv8gyps6j9f22k7li6w07glvww666sdqblvlq2hh3whwmb")))) + "1rqx5fzj1mhkifilip5mkxybpj2wkniq5qcn8h1w2vkr2rzhs29p")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp))) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index a20103df4f..634bc7c6bd 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -35,7 +35,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (gnu packages video) #:use-module (gnu packages xiph) #:export (libmpdclient diff --git a/gnu/packages/mysql.scm b/gnu/packages/mysql.scm deleted file mode 100644 index e89770e907..0000000000 --- a/gnu/packages/mysql.scm +++ /dev/null @@ -1,87 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> -;;; -;;; This file is part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - -(define-module (gnu packages mysql) - #:use-module (gnu packages) - #:use-module (gnu packages perl) - #:use-module (gnu packages linux) - #:use-module (gnu packages openssl) - #:use-module (gnu packages compression) - #:use-module (gnu packages ncurses) - #:use-module ((guix licenses) #:select (gpl2)) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public mysql - (package - (name "mysql") - (version "5.1.73") - (source (origin - (method url-fetch) - (uri (string-append - "http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-" - version ".tar.gz")) - (sha256 - (base32 - "1dfwi4ck0vq6sdci6gz0031s7zz5lc3pddqlgm0292s00l9y5sq5")))) - (build-system gnu-build-system) - (inputs - `(("procps" ,procps) - ("openssl" ,openssl) - ("perl" ,perl) - ("zlib" ,zlib) - ("ncurses" ,ncurses))) - (arguments - '(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 ftw)) ; for "rm -rf" - #:phases (alist-cons-after - 'install 'clean-up - (lambda* (#:key outputs #:allow-other-keys) - ;; Remove the 112 MiB of tests that get installed. - (let ((out (assoc-ref outputs "out"))) - (define (rm-rf dir) - (file-system-fold (const #t) ; enter? - (lambda (file stat result) ; leaf - (delete-file file)) - (const #t) ; down - (lambda (dir stat result) ; up - (rmdir dir)) - (const #t) - (lambda (file stat errno result) - (format (current-error-port) - "error: ~a: ~a~%" - file (strerror errno))) - #t - (string-append out "/" dir))) - (rm-rf "mysql-test") - (rm-rf "sql-bench") - - ;; Compress the 14 MiB Info file. - (zero? - (system* "gzip" "--best" - (string-append out "/share/info/mysql.info"))))) - %standard-phases))) - (home-page "http://www.mysql.com/") - (synopsis "A fast, easy to use, and popular database") - (description - "MySQL is a fast, reliable, and easy to use relational database -management system that supports the standardized Structured Query -Language.") - (license gpl2))) diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm index 3037e5bafc..8fd736d180 100644 --- a/gnu/packages/nvi.scm +++ b/gnu/packages/nvi.scm @@ -18,7 +18,7 @@ (define-module (gnu packages nvi) #:use-module (gnu packages) - #:use-module (gnu packages bdb) + #:use-module (gnu packages databases) #:use-module (gnu packages ncurses) #:use-module (guix packages) #:use-module (guix download) diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index 574f11904a..23c32488e9 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> ;;; ;;; This file is part of GNU Guix. @@ -19,7 +19,7 @@ (define-module (gnu packages openldap) #:use-module (gnu packages autotools) - #:use-module (gnu packages bdb) + #:use-module (gnu packages databases) #:use-module (gnu packages compression) #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages gnupg) diff --git a/gnu/packages/ots.scm b/gnu/packages/ots.scm new file mode 100644 index 0000000000..cd2bf8585b --- /dev/null +++ b/gnu/packages/ots.scm @@ -0,0 +1,68 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Marek Benc <merkur32@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 ots) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages glib) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages popt) + #:use-module (gnu packages xml) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) + #:renamer (symbol-prefix-proc 'license:))) + +(define-public ots + (package + (name "ots") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/libots/libots/" + name "-" version "/" name "-" version + ".tar.gz")) + (sha256 + (base32 "0dz1ccd7ymzk4swz1aly4im0k3pascnshmgg1whd2rk14li8v47a")) + (patches + (list (search-patch "ots-no-include-missing-file.patch"))))) + + (build-system gnu-build-system) + (inputs + `(("glib" ,glib) + ("popt" ,popt) + ("libxml2" ,libxml2) + ("zlib" ,zlib))) + (native-inputs + `(("glib:bin" ,glib "bin") + ("pkg-config" ,pkg-config))) + (synopsis "Tool for summarizing texts") + (description + "The Open Text Summarizer is a library and command-line tool for +summarizing texts. The program reads a text and decides which sentences are +important and which are not. OTS will create a short summary or will +highlight the main ideas in the text. + +The program can either print the summarized text as plain text or HTML. If in +HTML, the important sentences are highlighted. + +The program is multi lingual and works with UTF-8 encoding.") + (home-page "http://libots.sourceforge.net/") + (license license:gpl2+))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 66e71df284..9f35de1819 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -27,7 +27,7 @@ #:use-module (gnu packages guile) #:use-module ((gnu packages compression) #:select (bzip2 gzip)) #:use-module (gnu packages gnupg) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (gnu packages graphviz) #:use-module (gnu packages pkg-config) #:use-module (gnu packages autotools) diff --git a/gnu/packages/patches/abiword-explictly-cast-bools.patch b/gnu/packages/patches/abiword-explictly-cast-bools.patch new file mode 100644 index 0000000000..7927a180ba --- /dev/null +++ b/gnu/packages/patches/abiword-explictly-cast-bools.patch @@ -0,0 +1,93 @@ +As of JPEG-9, the type 'boolean' is an enumeration, but since glib defines +TRUE and FALSE as numeric constants and this is C++, they need to be explicitly +casted. + +--- a/src/af/util/xp/ut_jpeg.cpp 2009-07-08 19:33:53.000000000 +0200 ++++ b/src/af/util/xp/ut_jpeg.cpp 2014-09-06 19:55:55.876997404 +0200 +@@ -102,7 +102,7 @@ + src->pub.next_input_byte = src->sourceBuf->getPointer (src->pos); + src->pub.bytes_in_buffer = src->sourceBuf->getLength (); + +- return TRUE; ++ return (boolean)TRUE; + } + + /* +@@ -161,7 +161,7 @@ + /* set the data source */ + _JPEG_ByteBufSrc (&cinfo, pBB); + +- jpeg_read_header(&cinfo, TRUE); ++ jpeg_read_header(&cinfo, (boolean)TRUE); + jpeg_start_decompress(&cinfo); + iImageWidth = cinfo.output_width; + iImageHeight = cinfo.output_height; +@@ -189,7 +189,7 @@ + /* set the data source */ + _JPEG_ByteBufSrc (&cinfo, pBB); + +- jpeg_read_header(&cinfo, TRUE); ++ jpeg_read_header(&cinfo, (boolean)TRUE); + jpeg_start_decompress(&cinfo); + + int row_stride = cinfo.output_width * cinfo.output_components; + + +In the following file, we also need to reverse header include order: JPEG needs +to be included before Glib, which is included by "abiword-garble.h" for this fix +to work. + +The JPEG header needs the types FILE and size_t, we can get them from cstdio. + +--- a/plugins/garble/xp/abiword-garble-jpeg.cpp 2009-09-05 17:49:53.000000000 +0200 ++++ b/plugins/garble/xp/abiword-garble-jpeg.cpp 2014-09-07 21:28:49.364008571 +0200 +@@ -20,12 +20,14 @@ + * 02111-1307, USA. + */ + +-#include "abiword-garble.h" ++#include <cstdio> + + extern "C" { + #include <jpeglib.h> + } + ++#include "abiword-garble.h" ++ + //----------------------------------------------------------------------------- + typedef struct { + struct jpeg_destination_mgr pub; +@@ -49,7 +51,7 @@ + mem_dest_ptr dest = (mem_dest_ptr) cinfo->dest; + dest->pub.next_output_byte = dest->buf; + dest->pub.free_in_buffer = dest->bufsize; +- return FALSE; ++ return (boolean)FALSE; + } + + //----------------------------------------------------------------------------- +@@ -96,7 +98,7 @@ + cinfo.image_width = (JDIMENSION) w; + cinfo.image_height = (JDIMENSION) h; + jpeg_set_defaults (&cinfo); +- jpeg_set_quality ( &cinfo, 50, TRUE ); ++ jpeg_set_quality ( &cinfo, 50, (boolean)TRUE ); + cinfo.dest = (struct jpeg_destination_mgr *) (*cinfo.mem->alloc_small)((j_common_ptr)&cinfo, JPOOL_PERMANENT, sizeof(mem_destination_mgr)); + dest = (mem_dest_ptr) cinfo.dest; + dest->pub.init_destination = _jpeg_init_destination; +@@ -105,7 +107,7 @@ + dest->buf = (JOCTET*)data; + dest->bufsize = length; + dest->jpegsize = 0; +- jpeg_start_compress (&cinfo, TRUE); ++ jpeg_start_compress (&cinfo, (boolean)TRUE); + + // write data + for (int i=0; i<h; ++i) +@@ -121,4 +123,4 @@ + free( dib[i] ); + free( dib ); + return true; +-} +\ No newline at end of file ++} diff --git a/gnu/packages/patches/abiword-link-plugins-against-backend.patch b/gnu/packages/patches/abiword-link-plugins-against-backend.patch new file mode 100644 index 0000000000..fb8fbfc98b --- /dev/null +++ b/gnu/packages/patches/abiword-link-plugins-against-backend.patch @@ -0,0 +1,639 @@ +Link plugins against libabiword. This is because --no-undefined is passed to +the linker when linking and without libabiword, it would fail. + +--- a/plugins/aiksaurus/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/aiksaurus/Makefile.in 2014-09-06 14:58:36.480413350 +0200 +@@ -422,7 +422,8 @@ + plugin_LTLIBRARIES = aiksaurus.la + aiksaurus_la_LIBADD = \ + $(platform_lib) \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + aiksaurus_la_LDFLAGS = \ + $(AIKSAURUS_LIBS) \ + +--- a/plugins/applix/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/applix/Makefile.in 2014-09-06 14:58:54.416413938 +0200 +@@ -425,7 +425,8 @@ + @APPLIX_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @APPLIX_BUILTIN_FALSE@plugin_LTLIBRARIES = applix.la + applix_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + applix_la_LDFLAGS = \ + $(APPLIX_LIBS) \ + +--- a/plugins/babelfish/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/babelfish/Makefile.in 2014-09-06 14:59:09.220414422 +0200 +@@ -425,7 +425,8 @@ + @BABELFISH_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @BABELFISH_BUILTIN_FALSE@plugin_LTLIBRARIES = babelfish.la + babelfish_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + babelfish_la_LDFLAGS = \ + $(BABELFISH_LIBS) \ + +--- a/plugins/bmp/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/bmp/Makefile.in 2014-09-06 14:59:53.928415886 +0200 +@@ -425,7 +425,8 @@ + @BMP_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @BMP_BUILTIN_FALSE@plugin_LTLIBRARIES = bmp.la + bmp_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + bmp_la_LDFLAGS = \ + $(BMP_LIBS) \ + +--- a/plugins/clarisworks/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/clarisworks/Makefile.in 2014-09-06 15:00:06.148416286 +0200 +@@ -427,7 +427,8 @@ + @CLARISWORKS_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @CLARISWORKS_BUILTIN_FALSE@plugin_LTLIBRARIES = clarisworks.la + clarisworks_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + clarisworks_la_LDFLAGS = \ + $(CLARISWORKS_LIBS) \ + +--- a/plugins/collab/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/collab/Makefile.in 2014-09-06 15:02:04.000420145 +0200 +@@ -428,7 +428,8 @@ + @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = collab.la + @TOOLKIT_COCOA_FALSE@collab_la_LIBADD = \ + @TOOLKIT_COCOA_FALSE@ backends/libbackends.la \ +-@TOOLKIT_COCOA_FALSE@ core/libcore.la ++@TOOLKIT_COCOA_FALSE@ core/libcore.la \ ++@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la + + @TOOLKIT_COCOA_FALSE@collab_la_LDFLAGS = \ + @TOOLKIT_COCOA_FALSE@ $(COLLAB_LIBS) \ + +--- a/plugins/command/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/command/Makefile.in 2014-09-06 15:02:41.208421363 +0200 +@@ -420,7 +420,8 @@ + @TOOLKIT_COCOA_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = command.la + @TOOLKIT_COCOA_FALSE@command_la_LIBADD = \ +-@TOOLKIT_COCOA_FALSE@ xp/libxp.la ++@TOOLKIT_COCOA_FALSE@ xp/libxp.la \ ++@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la + + @TOOLKIT_COCOA_FALSE@command_la_LDFLAGS = \ + @TOOLKIT_COCOA_FALSE@ $(COMMAND_LIBS) \ + +--- a/plugins/docbook/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/docbook/Makefile.in 2014-09-06 15:02:52.128421720 +0200 +@@ -425,7 +425,8 @@ + @DOCBOOK_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @DOCBOOK_BUILTIN_FALSE@plugin_LTLIBRARIES = docbook.la + docbook_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + docbook_la_LDFLAGS = \ + $(DOCBOOK_LIBS) \ + +--- a/plugins/eml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/eml/Makefile.in 2014-09-06 15:03:02.760422068 +0200 +@@ -425,7 +425,8 @@ + @EML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @EML_BUILTIN_FALSE@plugin_LTLIBRARIES = eml.la + eml_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + eml_la_LDFLAGS = \ + $(EML_LIBS) \ + +--- a/plugins/freetranslation/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/freetranslation/Makefile.in 2014-09-06 15:03:17.656422556 +0200 +@@ -427,7 +427,8 @@ + @FREETRANSLATION_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @FREETRANSLATION_BUILTIN_FALSE@plugin_LTLIBRARIES = freetranslation.la + freetranslation_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + freetranslation_la_LDFLAGS = \ + $(FREETRANSLATION_LIBS) \ + +--- a/plugins/garble/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/garble/Makefile.in 2014-09-06 15:03:48.192423556 +0200 +@@ -427,7 +427,8 @@ + @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = garble.la + @TOOLKIT_COCOA_FALSE@garble_la_LIBADD = \ + @TOOLKIT_COCOA_FALSE@ xp/libxp.la \ +-@TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) $(PNG_LIBS) -ljpeg ++@TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) $(PNG_LIBS) -ljpeg \ ++@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la + + @TOOLKIT_COCOA_FALSE@garble_la_LDFLAGS = \ + @TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) \ + +--- a/plugins/gda/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/gda/Makefile.in 2014-09-06 15:04:08.012424205 +0200 +@@ -419,7 +419,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = gda.la + gda_la_LIBADD = \ +- unix/libunix.la ++ unix/libunix.la \ ++ @top_builddir@/src/libabiword-2.8.la + + gda_la_LDFLAGS = \ + $(GDA_LIBS) \ + +--- a/plugins/gdict/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/gdict/Makefile.in 2014-09-06 15:04:37.888425183 +0200 +@@ -423,7 +423,8 @@ + @GDICT_BUILTIN_FALSE@@TOOLKIT_GTK_TRUE@plugindir = $(ABIWORD_PLUGINSDIR) + @GDICT_BUILTIN_FALSE@@TOOLKIT_GTK_TRUE@plugin_LTLIBRARIES = gdict.la + @TOOLKIT_GTK_TRUE@gdict_la_LIBADD = \ +-@TOOLKIT_GTK_TRUE@ unix/libunix.la ++@TOOLKIT_GTK_TRUE@ unix/libunix.la \ ++@TOOLKIT_GTK_TRUE@ @top_builddir@/src/libabiword-2.8.la + + @TOOLKIT_GTK_TRUE@gdict_la_LDFLAGS = \ + @TOOLKIT_GTK_TRUE@ $(GDICT_LIBS) \ + +--- a/plugins/gimp/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/gimp/Makefile.in 2014-09-06 15:04:47.380425494 +0200 +@@ -425,7 +425,8 @@ + @GIMP_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @GIMP_BUILTIN_FALSE@plugin_LTLIBRARIES = gimp.la + gimp_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + gimp_la_LDFLAGS = \ + $(GIMP_LIBS) \ + +--- a/plugins/goffice/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/goffice/Makefile.in 2014-09-06 15:04:57.660425830 +0200 +@@ -419,7 +419,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = goffice.la + goffice_la_LIBADD = \ +- unix/libunix.la ++ unix/libunix.la \ ++ @top_builddir@/src/libabiword-2.8.la + + goffice_la_LDFLAGS = \ + $(GOFFICE_LIBS) \ + +--- a/plugins/google/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/google/Makefile.in 2014-09-06 15:05:06.852426131 +0200 +@@ -425,7 +425,8 @@ + @GOOGLE_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @GOOGLE_BUILTIN_FALSE@plugin_LTLIBRARIES = google.la + google_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + google_la_LDFLAGS = \ + $(GOOGLE_LIBS) \ + +--- a/plugins/grammar/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/grammar/Makefile.in 2014-09-06 15:05:19.840426556 +0200 +@@ -424,7 +424,8 @@ + plugin_LTLIBRARIES = grammar.la + grammar_la_LIBADD = \ + linkgrammarwrap/liblinkgrammarwrap.la \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + grammar_la_LDFLAGS = \ + $(GRAMMAR_LIBS) \ + +--- a/plugins/hancom/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/hancom/Makefile.in 2014-09-06 15:05:29.684426879 +0200 +@@ -425,7 +425,8 @@ + @HANCOM_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @HANCOM_BUILTIN_FALSE@plugin_LTLIBRARIES = hancom.la + hancom_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + hancom_la_LDFLAGS = \ + $(HANCOM_LIBS) \ + +--- a/plugins/hrtext/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/hrtext/Makefile.in 2014-09-06 15:05:41.244427257 +0200 +@@ -425,7 +425,8 @@ + @HRTEXT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @HRTEXT_BUILTIN_FALSE@plugin_LTLIBRARIES = hrtext.la + hrtext_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + hrtext_la_LDFLAGS = \ + $(HRTEXT_LIBS) \ + +--- a/plugins/iscii/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/iscii/Makefile.in 2014-09-06 15:05:52.660427631 +0200 +@@ -425,7 +425,8 @@ + @ISCII_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @ISCII_BUILTIN_FALSE@plugin_LTLIBRARIES = iscii.la + iscii_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + iscii_la_LDFLAGS = \ + $(ISCII_LIBS) \ + +--- a/plugins/kword/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/kword/Makefile.in 2014-09-06 15:06:01.260427912 +0200 +@@ -425,7 +425,8 @@ + @KWORD_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @KWORD_BUILTIN_FALSE@plugin_LTLIBRARIES = kword.la + kword_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + kword_la_LDFLAGS = \ + $(KWORD_LIBS) \ + +--- a/plugins/latex/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/latex/Makefile.in 2014-09-06 15:06:13.212428304 +0200 +@@ -426,7 +426,8 @@ + @LATEX_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @LATEX_BUILTIN_FALSE@plugin_LTLIBRARIES = latex.la + latex_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + latex_la_LDFLAGS = \ + $(LATEX_LIBS) \ + +--- a/plugins/loadbindings/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/loadbindings/Makefile.in 2014-09-06 15:06:27.340428766 +0200 +@@ -427,7 +427,8 @@ + @LOADBINDINGS_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @LOADBINDINGS_BUILTIN_FALSE@plugin_LTLIBRARIES = loadbindings.la + loadbindings_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + loadbindings_la_LDFLAGS = \ + $(LOADBINDINGS_LIBS) \ + +--- a/plugins/mathview/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/mathview/Makefile.in 2014-09-06 15:06:35.428429031 +0200 +@@ -423,7 +423,8 @@ + plugin_LTLIBRARIES = mathview.la + mathview_la_LIBADD = \ + itex2mml/libitex2mml.la \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + mathview_la_LDFLAGS = \ + $(MATHVIEW_LIBS) \ + +--- a/plugins/mht/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/mht/Makefile.in 2014-09-06 15:06:47.516429427 +0200 +@@ -422,7 +422,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = mht.la + mht_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + mht_la_LDFLAGS = \ + $(MHT_LIBS) \ + +--- a/plugins/mif/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/mif/Makefile.in 2014-09-06 15:07:03.496429950 +0200 +@@ -425,7 +425,8 @@ + @MIF_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @MIF_BUILTIN_FALSE@plugin_LTLIBRARIES = mif.la + mif_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + mif_la_LDFLAGS = \ + $(MIF_LIBS) \ + +--- a/plugins/mswrite/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/mswrite/Makefile.in 2014-09-06 15:07:15.700430349 +0200 +@@ -425,7 +425,8 @@ + @MSWRITE_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @MSWRITE_BUILTIN_FALSE@plugin_LTLIBRARIES = mswrite.la + mswrite_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + mswrite_la_LDFLAGS = \ + $(MSWRITE_LIBS) \ + +--- a/plugins/opendocument/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/opendocument/Makefile.in 2014-09-06 15:07:26.668430709 +0200 +@@ -430,7 +430,8 @@ + opendocument_la_LIBADD = \ + common/libcommon.la \ + exp/libexp.la \ +- imp/libimp.la ++ imp/libimp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + opendocument_la_LDFLAGS = \ + $(OPENDOCUMENT_LIBS) \ + +--- a/plugins/openwriter/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/openwriter/Makefile.in 2014-09-06 15:07:40.272431154 +0200 +@@ -426,7 +426,8 @@ + @OPENWRITER_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @OPENWRITER_BUILTIN_FALSE@plugin_LTLIBRARIES = openwriter.la + openwriter_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + openwriter_la_LDFLAGS = \ + $(OPENWRITER_LIBS) \ + +--- a/plugins/openxml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/openxml/Makefile.in 2014-09-06 15:08:44.312433251 +0200 +@@ -428,7 +428,8 @@ + openxml_la_LIBADD = \ + common/libcommon.la \ + imp/libimp.la \ +- exp/libexp.la ++ exp/libexp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + openxml_la_LDFLAGS = \ + $(OPENXML_LIBS) \ + +--- a/plugins/opml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/opml/Makefile.in 2014-09-06 15:08:58.424433713 +0200 +@@ -425,7 +425,8 @@ + @OPML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @OPML_BUILTIN_FALSE@plugin_LTLIBRARIES = opml.la + opml_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + opml_la_LDFLAGS = \ + $(OPML_LIBS) \ + +--- a/plugins/ots/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/ots/Makefile.in 2014-09-06 15:09:08.164434031 +0200 +@@ -419,7 +419,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = ots.la + ots_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + ots_la_LDFLAGS = \ + $(OTS_LIBS) \ + +--- a/plugins/paint/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/paint/Makefile.in 2014-09-06 15:09:38.912435038 +0200 +@@ -426,7 +426,8 @@ + @PAINT_BUILTIN_FALSE@plugin_LTLIBRARIES = paint.la + paint_la_LIBADD = \ + @PLATFORM@/lib@PLATFORM@.la \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + paint_la_LDFLAGS = \ + $(PAINT_LIBS) \ + +--- a/plugins/passepartout/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/passepartout/Makefile.in 2014-09-06 15:09:46.744435295 +0200 +@@ -427,7 +427,8 @@ + @PASSEPARTOUT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @PASSEPARTOUT_BUILTIN_FALSE@plugin_LTLIBRARIES = passepartout.la + passepartout_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + passepartout_la_LDFLAGS = \ + $(PASSEPARTOUT_LIBS) \ + +--- a/plugins/pdb/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/pdb/Makefile.in 2014-09-06 15:09:54.484435548 +0200 +@@ -425,7 +425,8 @@ + @PDB_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @PDB_BUILTIN_FALSE@plugin_LTLIBRARIES = pdb.la + pdb_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + pdb_la_LDFLAGS = \ + $(PDB_LIBS) \ + +--- a/plugins/pdf/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/pdf/Makefile.in 2014-09-06 15:10:04.444435874 +0200 +@@ -425,7 +425,8 @@ + @PDF_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @PDF_BUILTIN_FALSE@plugin_LTLIBRARIES = pdf.la + pdf_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + pdf_la_LDFLAGS = \ + $(PDF_LIBS) \ + +--- a/plugins/presentation/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/presentation/Makefile.in 2014-09-06 15:10:13.112436158 +0200 +@@ -427,7 +427,8 @@ + @PRESENTATION_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @PRESENTATION_BUILTIN_FALSE@plugin_LTLIBRARIES = presentation.la + presentation_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + presentation_la_LDFLAGS = \ + $(PRESENTATION_LIBS) \ + +--- a/plugins/psion/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/psion/Makefile.in 2014-09-06 15:10:22.176436455 +0200 +@@ -421,7 +421,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = psion.la + psion_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + psion_la_LDFLAGS = \ + $(PSION_LIBS) \ + +--- a/plugins/rsvg/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/rsvg/Makefile.in 2014-09-06 15:10:37.632436961 +0200 +@@ -425,7 +425,8 @@ + plugin_LTLIBRARIES = rsvg.la + rsvg_la_LIBADD = \ + xp/libxp.la \ +- $(RSVG_LIBS) $(PNG_LIBS) ++ $(RSVG_LIBS) $(PNG_LIBS) \ ++ @top_builddir@/src/libabiword-2.8.la + + rsvg_la_LDFLAGS = \ + -avoid-version \ + +--- a/plugins/s5/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/s5/Makefile.in 2014-09-06 15:10:46.652437256 +0200 +@@ -425,7 +425,8 @@ + @S5_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @S5_BUILTIN_FALSE@plugin_LTLIBRARIES = s5.la + s5_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + s5_la_LDFLAGS = \ + $(S5_LIBS) \ + +--- a/plugins/sdw/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/sdw/Makefile.in 2014-09-06 15:10:58.072437630 +0200 +@@ -425,7 +425,8 @@ + @SDW_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @SDW_BUILTIN_FALSE@plugin_LTLIBRARIES = sdw.la + sdw_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + sdw_la_LDFLAGS = \ + $(SDW_LIBS) \ + +--- a/plugins/t602/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/t602/Makefile.in 2014-09-06 15:11:06.224437897 +0200 +@@ -425,7 +425,8 @@ + @T602_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @T602_BUILTIN_FALSE@plugin_LTLIBRARIES = t602.la + t602_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + t602_la_LDFLAGS = \ + $(T602_LIBS) \ + +--- a/plugins/urldict/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/urldict/Makefile.in 2014-09-06 15:11:14.404438165 +0200 +@@ -425,7 +425,8 @@ + @URLDICT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @URLDICT_BUILTIN_FALSE@plugin_LTLIBRARIES = urldict.la + urldict_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + urldict_la_LDFLAGS = \ + $(URLDICT_LIBS) \ + +--- a/plugins/wikipedia/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/wikipedia/Makefile.in 2014-09-06 15:11:22.064438415 +0200 +@@ -425,7 +425,8 @@ + @WIKIPEDIA_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @WIKIPEDIA_BUILTIN_FALSE@plugin_LTLIBRARIES = wikipedia.la + wikipedia_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + wikipedia_la_LDFLAGS = \ + $(WIKIPEDIA_LIBS) \ + +--- a/plugins/wmf/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/wmf/Makefile.in 2014-09-06 15:11:31.348438719 +0200 +@@ -422,7 +422,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = wmf.la + wmf_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + wmf_la_LDFLAGS = \ + $(WMF_LIBS) \ + +--- a/plugins/wml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/wml/Makefile.in 2014-09-06 15:11:40.168439008 +0200 +@@ -425,7 +425,8 @@ + @WML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @WML_BUILTIN_FALSE@plugin_LTLIBRARIES = wml.la + wml_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + wml_la_LDFLAGS = \ + $(WML_LIBS) \ + +--- a/plugins/wordperfect/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/wordperfect/Makefile.in 2014-09-06 15:11:50.336439341 +0200 +@@ -423,7 +423,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = wordperfect.la + wordperfect_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + wordperfect_la_LDFLAGS = \ + $(WORDPERFECT_LIBS) \ + +--- a/plugins/wpg/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/wpg/Makefile.in 2014-09-06 15:12:11.328440028 +0200 +@@ -422,7 +422,8 @@ + plugindir = $(ABIWORD_PLUGINSDIR) + plugin_LTLIBRARIES = wpg.la + wpg_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + wpg_la_LDFLAGS = \ + $(WPG_LIBS) \ + +--- a/plugins/xslfo/Makefile.in 2014-09-06 11:25:35.000000000 +0200 ++++ b/plugins/xslfo/Makefile.in 2014-09-06 15:12:44.984441130 +0200 +@@ -425,7 +425,8 @@ + @XSLFO_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) + @XSLFO_BUILTIN_FALSE@plugin_LTLIBRARIES = xslfo.la + xslfo_la_LIBADD = \ +- xp/libxp.la ++ xp/libxp.la \ ++ @top_builddir@/src/libabiword-2.8.la + + xslfo_la_LDFLAGS = \ + $(XSLFO_LIBS) \ diff --git a/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch b/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch new file mode 100644 index 0000000000..60a74920fb --- /dev/null +++ b/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch @@ -0,0 +1,13 @@ +Include glib.h instead of an internal header. + +--- a/goffice-bits/goffice/app/goffice-app.h 2007-01-17 00:17:27.000000000 +0100 ++++ b/goffice-bits/goffice/app/goffice-app.h 2014-09-05 19:02:59.402064713 +0200 +@@ -22,7 +22,7 @@ + #ifndef GOFFICE_APP_H + #define GOFFICE_APP_H + +-#include <glib/gmacros.h> ++#include <glib.h> + + G_BEGIN_DECLS + diff --git a/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch b/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch new file mode 100644 index 0000000000..a17d465edb --- /dev/null +++ b/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch @@ -0,0 +1,608 @@ +gcc/g++ chokes on --no-undefined, so instead pass it directly to the linker. + +--- a/plugins/loadbindings/Makefile.in 2010-06-13 23:17:48.000000000 +0200 ++++ b/plugins/loadbindings/Makefile.in 2014-09-06 11:03:21.151951221 +0200 +@@ -433,7 +433,7 @@ + $(LOADBINDINGS_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + loadbindings_la_SOURCES = + nodist_EXTRA_loadbindings_la_SOURCES = dummy.cpp + +--- a/plugins/pdf/Makefile.in 2010-06-13 23:17:53.000000000 +0200 ++++ b/plugins/pdf/Makefile.in 2014-09-06 11:03:21.207951223 +0200 +@@ -431,7 +431,7 @@ + $(PDF_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + pdf_la_SOURCES = + nodist_EXTRA_pdf_la_SOURCES = dummy.cpp + +--- a/plugins/xslfo/Makefile.in 2010-06-13 23:17:55.000000000 +0200 ++++ b/plugins/xslfo/Makefile.in 2014-09-06 11:03:21.227951224 +0200 +@@ -431,7 +431,7 @@ + $(XSLFO_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + xslfo_la_SOURCES = + nodist_EXTRA_xslfo_la_SOURCES = dummy.cpp + +--- a/plugins/gda/Makefile.in 2010-06-13 23:17:45.000000000 +0200 ++++ b/plugins/gda/Makefile.in 2014-09-06 11:03:21.251951225 +0200 +@@ -425,7 +425,7 @@ + $(GDA_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + gda_la_SOURCES = + EXTRA_DIST = \ + +--- a/plugins/wikipedia/Makefile.in 2010-06-13 23:17:54.000000000 +0200 ++++ b/plugins/wikipedia/Makefile.in 2014-09-06 11:03:21.271951225 +0200 +@@ -431,7 +431,7 @@ + $(WIKIPEDIA_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + wikipedia_la_SOURCES = + nodist_EXTRA_wikipedia_la_SOURCES = dummy.cpp + +--- a/plugins/collab/Makefile.in 2010-06-13 23:17:41.000000000 +0200 ++++ b/plugins/collab/Makefile.in 2014-09-06 11:03:21.291951226 +0200 +@@ -435,7 +435,7 @@ + @TOOLKIT_COCOA_FALSE@ $(SYSTEM_LIBS) \ + @TOOLKIT_COCOA_FALSE@ -avoid-version \ + @TOOLKIT_COCOA_FALSE@ -module \ +-@TOOLKIT_COCOA_FALSE@ -no-undefined ++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined + + @TOOLKIT_COCOA_FALSE@collab_la_SOURCES = + @TOOLKIT_COCOA_FALSE@nodist_EXTRA_collab_la_SOURCES = dummy.cpp + +--- a/plugins/paint/Makefile.in 2010-06-13 23:17:52.000000000 +0200 ++++ b/plugins/paint/Makefile.in 2014-09-06 11:03:21.315951227 +0200 +@@ -432,7 +432,7 @@ + $(PAINT_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + paint_la_SOURCES = + nodist_EXTRA_paint_la_SOURCES = dummy.cpp + +--- a/plugins/garble/Makefile.in 2010-06-13 23:17:45.000000000 +0200 ++++ b/plugins/garble/Makefile.in 2014-09-06 11:03:21.335951227 +0200 +@@ -433,7 +433,7 @@ + @TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) \ + @TOOLKIT_COCOA_FALSE@ -avoid-version \ + @TOOLKIT_COCOA_FALSE@ -module \ +-@TOOLKIT_COCOA_FALSE@ -no-undefined ++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined + + @TOOLKIT_COCOA_FALSE@garble_la_SOURCES = + @TOOLKIT_COCOA_FALSE@nodist_EXTRA_garble_la_SOURCES = dummy.cpp + +--- a/plugins/latex/Makefile.in 2010-06-13 23:17:48.000000000 +0200 ++++ b/plugins/latex/Makefile.in 2014-09-06 11:03:21.359951228 +0200 +@@ -432,7 +432,7 @@ + $(LATEX_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + latex_la_SOURCES = + nodist_EXTRA_latex_la_SOURCES = dummy.cpp + +--- a/plugins/mht/Makefile.in 2010-06-13 23:17:49.000000000 +0200 ++++ b/plugins/mht/Makefile.in 2014-09-06 11:03:21.379951229 +0200 +@@ -428,7 +428,7 @@ + $(MHT_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + mht_la_SOURCES = + nodist_EXTRA_mht_la_SOURCES = dummy.cpp + +--- a/plugins/google/Makefile.in 2010-06-13 23:17:46.000000000 +0200 ++++ b/plugins/google/Makefile.in 2014-09-06 11:03:21.399951230 +0200 +@@ -431,7 +431,7 @@ + $(GOOGLE_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + google_la_SOURCES = + nodist_EXTRA_google_la_SOURCES = dummy.cpp + +--- a/plugins/babelfish/Makefile.in 2010-06-13 23:17:40.000000000 +0200 ++++ b/plugins/babelfish/Makefile.in 2014-09-06 11:03:21.419951230 +0200 +@@ -431,7 +431,7 @@ + $(BABELFISH_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + babelfish_la_SOURCES = + nodist_EXTRA_babelfish_la_SOURCES = dummy.cpp + +--- a/plugins/opendocument/Makefile.in 2010-06-13 23:17:50.000000000 +0200 ++++ b/plugins/opendocument/Makefile.in 2014-09-06 11:03:21.443951231 +0200 +@@ -436,7 +436,7 @@ + $(OPENDOCUMENT_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + opendocument_la_SOURCES = + +--- a/plugins/opml/Makefile.in 2010-06-13 23:17:51.000000000 +0200 ++++ b/plugins/opml/Makefile.in 2014-09-06 11:03:21.463951232 +0200 +@@ -431,7 +431,7 @@ + $(OPML_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + opml_la_SOURCES = + nodist_EXTRA_opml_la_SOURCES = dummy.cpp + +--- a/plugins/gimp/Makefile.in 2010-06-13 23:17:46.000000000 +0200 ++++ b/plugins/gimp/Makefile.in 2014-09-06 11:03:21.483951232 +0200 +@@ -431,7 +431,7 @@ + $(GIMP_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + gimp_la_SOURCES = + nodist_EXTRA_gimp_la_SOURCES = dummy.cpp + +--- a/plugins/mswrite/Makefile.in 2010-06-13 23:17:49.000000000 +0200 ++++ b/plugins/mswrite/Makefile.in 2014-09-06 11:03:21.507951233 +0200 +@@ -431,7 +431,7 @@ + $(MSWRITE_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + mswrite_la_SOURCES = + nodist_EXTRA_mswrite_la_SOURCES = dummy.cpp + +--- a/plugins/wordperfect/Makefile.in 2010-06-13 23:17:55.000000000 +0200 ++++ b/plugins/wordperfect/Makefile.in 2014-09-06 11:03:21.527951234 +0200 +@@ -429,7 +429,7 @@ + $(WORDPERFECT_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + wordperfect_la_SOURCES = + nodist_EXTRA_wordperfect_la_SOURCES = dummy.cpp + +--- a/plugins/pdb/Makefile.in 2010-06-13 23:17:53.000000000 +0200 ++++ b/plugins/pdb/Makefile.in 2014-09-06 11:03:21.547951234 +0200 +@@ -431,7 +431,7 @@ + $(PDB_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + pdb_la_SOURCES = + nodist_EXTRA_pdb_la_SOURCES = dummy.cpp + +--- a/plugins/ots/Makefile.in 2010-06-13 23:17:52.000000000 +0200 ++++ b/plugins/ots/Makefile.in 2014-09-06 11:03:21.571951235 +0200 +@@ -425,7 +425,7 @@ + $(OTS_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + ots_la_SOURCES = + EXTRA_DIST = \ + +--- a/plugins/wml/Makefile.in 2010-06-13 23:17:55.000000000 +0200 ++++ b/plugins/wml/Makefile.in 2014-09-06 11:03:21.591951236 +0200 +@@ -431,7 +431,7 @@ + $(WML_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + wml_la_SOURCES = + nodist_EXTRA_wml_la_SOURCES = dummy.cpp + +--- a/plugins/bmp/Makefile.in 2010-06-13 23:17:40.000000000 +0200 ++++ b/plugins/bmp/Makefile.in 2014-09-06 11:03:21.615951237 +0200 +@@ -431,7 +431,7 @@ + $(BMP_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + bmp_la_SOURCES = + nodist_EXTRA_bmp_la_SOURCES = dummy.cpp + +--- a/plugins/applix/Makefile.in 2010-06-13 23:17:40.000000000 +0200 ++++ b/plugins/applix/Makefile.in 2014-09-06 11:03:21.635951237 +0200 +@@ -431,7 +431,7 @@ + $(APPLIX_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + applix_la_SOURCES = + +--- a/plugins/iscii/Makefile.in 2010-06-13 23:17:47.000000000 +0200 ++++ b/plugins/iscii/Makefile.in 2014-09-06 11:03:21.659951238 +0200 +@@ -431,7 +431,7 @@ + $(ISCII_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + iscii_la_SOURCES = + nodist_EXTRA_iscii_la_SOURCES = dummy.cpp + +--- a/plugins/gdict/Makefile.in 2010-06-13 23:17:46.000000000 +0200 ++++ b/plugins/gdict/Makefile.in 2014-09-06 11:03:21.679951239 +0200 +@@ -429,7 +429,7 @@ + @TOOLKIT_GTK_TRUE@ $(GDICT_LIBS) \ + @TOOLKIT_GTK_TRUE@ -avoid-version \ + @TOOLKIT_GTK_TRUE@ -module \ +-@TOOLKIT_GTK_TRUE@ -no-undefined ++@TOOLKIT_GTK_TRUE@ -Wl,--no-undefined + + @TOOLKIT_GTK_TRUE@gdict_la_SOURCES = + @TOOLKIT_GTK_TRUE@EXTRA_DIST = \ + +--- a/plugins/openwriter/Makefile.in 2010-06-13 23:17:50.000000000 +0200 ++++ b/plugins/openwriter/Makefile.in 2014-09-06 11:03:21.699951239 +0200 +@@ -432,7 +432,7 @@ + $(OPENWRITER_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + openwriter_la_SOURCES = + nodist_EXTRA_openwriter_la_SOURCES = dummy.cpp + +--- a/plugins/sdw/Makefile.in 2010-06-13 23:17:54.000000000 +0200 ++++ b/plugins/sdw/Makefile.in 2014-09-06 11:03:21.723951240 +0200 +@@ -431,7 +431,7 @@ + $(SDW_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + sdw_la_SOURCES = + nodist_EXTRA_sdw_la_SOURCES = dummy.cpp + +--- a/plugins/grammar/Makefile.in 2010-06-13 23:17:47.000000000 +0200 ++++ b/plugins/grammar/Makefile.in 2014-09-06 11:03:21.747951241 +0200 +@@ -430,7 +430,7 @@ + $(GRAMMAR_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + nodist_EXTRA_grammar_la_SOURCES = dummy.cpp + grammar_la_SOURCES = + +--- a/plugins/urldict/Makefile.in 2010-06-13 23:17:54.000000000 +0200 ++++ b/plugins/urldict/Makefile.in 2014-09-06 11:03:21.779951242 +0200 +@@ -431,7 +431,7 @@ + $(URLDICT_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + urldict_la_SOURCES = + nodist_EXTRA_urldict_la_SOURCES = dummy.cpp + +--- a/plugins/wmf/Makefile.in 2010-06-13 23:17:55.000000000 +0200 ++++ b/plugins/wmf/Makefile.in 2014-09-06 11:03:21.799951243 +0200 +@@ -428,7 +428,7 @@ + $(WMF_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + wmf_la_SOURCES = + nodist_EXTRA_wmf_la_SOURCES = dummy.cpp + +--- a/plugins/mif/Makefile.in 2010-06-13 23:17:49.000000000 +0200 ++++ b/plugins/mif/Makefile.in 2014-09-06 11:03:21.819951243 +0200 +@@ -431,7 +431,7 @@ + $(MIF_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + mif_la_SOURCES = + nodist_EXTRA_mif_la_SOURCES = dummy.cpp + +--- a/plugins/eml/Makefile.in 2010-06-13 23:17:45.000000000 +0200 ++++ b/plugins/eml/Makefile.in 2014-09-06 11:03:21.843951244 +0200 +@@ -431,7 +431,7 @@ + $(EML_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + eml_la_SOURCES = + nodist_EXTRA_eml_la_SOURCES = dummy.cpp + +--- a/plugins/openxml/Makefile.in 2010-06-13 23:17:51.000000000 +0200 ++++ b/plugins/openxml/Makefile.in 2014-09-06 11:03:21.863951245 +0200 +@@ -434,7 +434,7 @@ + $(OPENXML_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + openxml_la_SOURCES = + nodist_EXTRA_openxml_la_SOURCES = dummy.cpp + +--- a/plugins/goffice/Makefile.in 2010-06-13 23:17:46.000000000 +0200 ++++ b/plugins/goffice/Makefile.in 2014-09-06 11:03:21.883951245 +0200 +@@ -425,7 +425,7 @@ + $(GOFFICE_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + goffice_la_SOURCES = + EXTRA_DIST = \ + +--- a/plugins/passepartout/Makefile.in 2010-06-13 23:17:52.000000000 +0200 ++++ b/plugins/passepartout/Makefile.in 2014-09-06 11:03:21.907951246 +0200 +@@ -433,7 +433,7 @@ + $(PASSEPARTOUT_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + passepartout_la_SOURCES = + nodist_EXTRA_passepartout_la_SOURCES = dummy.cpp + +--- a/plugins/clarisworks/Makefile.in 2010-06-13 23:17:41.000000000 +0200 ++++ b/plugins/clarisworks/Makefile.in 2014-09-06 11:03:21.927951247 +0200 +@@ -433,7 +433,7 @@ + $(CLARISWORKS_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + clarisworks_la_SOURCES = + nodist_EXTRA_clarisworks_la_SOURCES = dummy.cpp + +--- a/plugins/command/Makefile.in 2010-06-13 23:17:44.000000000 +0200 ++++ b/plugins/command/Makefile.in 2014-09-06 11:03:21.947951247 +0200 +@@ -426,7 +426,7 @@ + @TOOLKIT_COCOA_FALSE@ $(COMMAND_LIBS) \ + @TOOLKIT_COCOA_FALSE@ -avoid-version \ + @TOOLKIT_COCOA_FALSE@ -module \ +-@TOOLKIT_COCOA_FALSE@ -no-undefined ++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined + + @TOOLKIT_COCOA_FALSE@command_la_SOURCES = + all: all-recursive + +--- a/plugins/presentation/Makefile.in 2010-06-13 23:17:53.000000000 +0200 ++++ b/plugins/presentation/Makefile.in 2014-09-06 11:03:21.971951248 +0200 +@@ -433,7 +433,7 @@ + $(PRESENTATION_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + presentation_la_SOURCES = + nodist_EXTRA_presentation_la_SOURCES = dummy.cpp + +--- a/plugins/psion/Makefile.in 2010-06-13 23:17:53.000000000 +0200 ++++ b/plugins/psion/Makefile.in 2014-09-06 11:03:21.991951249 +0200 +@@ -427,7 +427,7 @@ + $(PSION_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + psion_la_SOURCES = + EXTRA_DIST = \ + +--- a/plugins/rsvg/Makefile.in 2010-06-13 23:17:53.000000000 +0200 ++++ b/plugins/rsvg/Makefile.in 2014-09-06 11:03:22.011951250 +0200 +@@ -430,7 +430,7 @@ + rsvg_la_LDFLAGS = \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + rsvg_la_SOURCES = + nodist_EXTRA_rsvg_la_SOURCES = dummy.cpp + +--- a/plugins/wpg/Makefile.in 2010-06-13 23:17:55.000000000 +0200 ++++ b/plugins/wpg/Makefile.in 2014-09-06 11:03:22.035951250 +0200 +@@ -428,7 +428,7 @@ + $(WPG_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + wpg_la_SOURCES = + nodist_EXTRA_wpg_la_SOURCES = dummy.cpp + +--- a/plugins/t602/Makefile.in 2010-06-13 23:17:54.000000000 +0200 ++++ b/plugins/t602/Makefile.in 2014-09-06 11:03:22.055951251 +0200 +@@ -431,7 +431,7 @@ + $(T602_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + t602_la_SOURCES = + nodist_EXTRA_t602_la_SOURCES = dummy.cpp + +--- a/plugins/docbook/Makefile.in 2010-06-13 23:17:44.000000000 +0200 ++++ b/plugins/docbook/Makefile.in 2014-09-06 11:03:22.075951252 +0200 +@@ -431,7 +431,7 @@ + $(DOCBOOK_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + docbook_la_SOURCES = + nodist_EXTRA_docbook_la_SOURCES = dummy.cpp + +--- a/plugins/hrtext/Makefile.in 2010-06-13 23:17:47.000000000 +0200 ++++ b/plugins/hrtext/Makefile.in 2014-09-06 11:03:22.099951252 +0200 +@@ -431,7 +431,7 @@ + $(HRTEXT_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + hrtext_la_SOURCES = + nodist_EXTRA_hrtext_la_SOURCES = dummy.cpp + +--- a/plugins/s5/Makefile.in 2010-06-13 23:17:54.000000000 +0200 ++++ b/plugins/s5/Makefile.in 2014-09-06 11:03:22.119951253 +0200 +@@ -431,7 +431,7 @@ + $(S5_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + s5_la_SOURCES = + nodist_EXTRA_s5_la_SOURCES = dummy.cpp + +--- a/plugins/hancom/Makefile.in 2010-06-13 23:17:47.000000000 +0200 ++++ b/plugins/hancom/Makefile.in 2014-09-06 11:03:22.143951254 +0200 +@@ -431,7 +431,7 @@ + $(HANCOM_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + hancom_la_SOURCES = + nodist_EXTRA_hancom_la_SOURCES = dummy.cpp + +--- a/plugins/aiksaurus/Makefile.in 2010-06-13 23:17:40.000000000 +0200 ++++ b/plugins/aiksaurus/Makefile.in 2014-09-06 11:03:22.163951255 +0200 +@@ -428,7 +428,7 @@ + $(AIKSAURUS_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + aiksaurus_la_SOURCES = + all: all-recursive + +--- a/plugins/kword/Makefile.in 2010-06-13 23:17:48.000000000 +0200 ++++ b/plugins/kword/Makefile.in 2014-09-06 11:03:22.183951255 +0200 +@@ -431,7 +431,7 @@ + $(KWORD_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + kword_la_SOURCES = + nodist_EXTRA_kword_la_SOURCES = dummy.cpp + +--- a/plugins/freetranslation/Makefile.in 2010-06-13 23:17:45.000000000 +0200 ++++ b/plugins/freetranslation/Makefile.in 2014-09-06 11:03:22.207951256 +0200 +@@ -433,7 +433,7 @@ + $(FREETRANSLATION_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + freetranslation_la_SOURCES = + nodist_EXTRA_freetranslation_la_SOURCES = dummy.cpp + +--- a/plugins/mathview/Makefile.in 2010-06-13 23:17:48.000000000 +0200 ++++ b/plugins/mathview/Makefile.in 2014-09-06 11:03:22.227951257 +0200 +@@ -429,7 +429,7 @@ + $(MATHVIEW_LIBS) \ + -avoid-version \ + -module \ +- -no-undefined ++ -Wl,--no-undefined + + nodist_EXTRA_mathview_la_SOURCES = dummy.cpp + mathview_la_SOURCES = + +--- a/src/Makefile.in 2014-09-06 08:42:45.000000000 +0200 ++++ b/src/Makefile.in 2014-09-06 11:17:48.287979611 +0200 +@@ -538,7 +538,7 @@ + + @TOOLKIT_COCOA_TRUE@AbiWord_LDFLAGS = \ + @TOOLKIT_COCOA_TRUE@ $(DEPS_LIBS) \ +-@TOOLKIT_COCOA_TRUE@ --no-undefined \ ++@TOOLKIT_COCOA_TRUE@ -Wl,--no-undefined \ + @TOOLKIT_COCOA_TRUE@ -avoid-version \ + @TOOLKIT_COCOA_TRUE@ -export-dynamic \ + @TOOLKIT_COCOA_TRUE@ -headerpad_max_install_names +@@ -554,7 +554,7 @@ + + @TOOLKIT_COCOA_FALSE@abiword_LDFLAGS = \ + @TOOLKIT_COCOA_FALSE@ $(platform_ldflags) \ +-@TOOLKIT_COCOA_FALSE@ --no-undefined \ ++@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined \ + @TOOLKIT_COCOA_FALSE@ -avoid-version \ + @TOOLKIT_COCOA_FALSE@ -export-dynamic + diff --git a/gnu/packages/patches/abiword-use-proper-png-api.patch b/gnu/packages/patches/abiword-use-proper-png-api.patch new file mode 100644 index 0000000000..e8ce02899d --- /dev/null +++ b/gnu/packages/patches/abiword-use-proper-png-api.patch @@ -0,0 +1,175 @@ +Do not directly access the fields of png_struct and png_info. + +--- a/plugins/mswrite/xp/ie_imp_MSWrite.cpp 2010-05-30 21:20:53.000000000 +0200 ++++ b/plugins/mswrite/xp/ie_imp_MSWrite.cpp 2014-09-07 06:58:04.162298089 +0200 +@@ -891,7 +891,7 @@ + info_ptr = png_create_info_struct (png_ptr); + if (!info_ptr) goto err; + +- if (setjmp (png_ptr->jmpbuf) ) { ++ if (setjmp (png_jmpbuf(png_ptr)) ) { + png_destroy_write_struct (&png_ptr, &info_ptr); + goto err; + } + +--- a/src/af/gr/win/gr_Win32Image.cpp 2009-07-08 19:33:53.000000000 +0200 ++++ b/src/af/gr/win/gr_Win32Image.cpp 2014-09-07 06:58:04.198298090 +0200 +@@ -148,7 +148,7 @@ + info_ptr = png_create_info_struct(png_ptr); + + // libpng will longjmp back to here if a fatal error occurs +- if (setjmp(png_ptr->jmpbuf)) ++ if (setjmp(png_jmpbuf(png_ptr))) + { + /* If we get here, we had a problem reading the file */ + png_destroy_write_struct(&png_ptr, (png_infopp)NULL); +@@ -547,7 +547,7 @@ + * the normal method of doing things with libpng). REQUIRED unless you + * set up your own error handlers in the png_create_read_struct() earlier. + */ +- if (setjmp(png_ptr->jmpbuf)) ++ if (setjmp(png_jmpbuf(png_ptr))) + { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); + +--- a/src/af/util/xp/ut_png.cpp 2008-02-24 04:33:07.000000000 +0100 ++++ b/src/af/util/xp/ut_png.cpp 2014-09-07 06:58:04.230298091 +0200 +@@ -71,7 +71,7 @@ + * the normal method of doing things with libpng). REQUIRED unless you + * set up your own error handlers in the png_create_read_struct() earlier. + */ +- if (setjmp(png_ptr->jmpbuf)) ++ if (setjmp(png_jmpbuf(png_ptr))) + { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_read_struct(&png_ptr, &info_ptr, static_cast<png_infopp>(NULL)); + +--- a/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2009-06-25 06:02:06.000000000 +0200 ++++ b/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 06:59:08.814300205 +0200 +@@ -313,7 +313,7 @@ + * the normal method of doing things with libpng). REQUIRED unless you + * set up your own error handlers in the png_create_read_struct() earlier. + */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); +@@ -332,7 +332,7 @@ + UT_Error IE_ImpGraphic_BMP::Convert_BMP_Pallet(UT_ByteBuf* pBB) + { + /* Reset error handling for libpng */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); + return UT_ERROR; +@@ -372,7 +372,7 @@ + UT_Error IE_ImpGraphic_BMP::Convert_BMP(UT_ByteBuf* pBB) + { + /* Reset error handling for libpng */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); + return UT_ERROR; + +--- a/plugins/rsvg/xp/AbiRSVG.cpp 2009-06-25 06:02:06.000000000 +0200 ++++ b/plugins/rsvg/xp/AbiRSVG.cpp 2014-09-07 06:59:08.914300209 +0200 +@@ -145,7 +145,7 @@ + return error; + } + +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + g_object_unref(G_OBJECT(pixbuf)); + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); +@@ -234,7 +234,7 @@ + * the normal method of doing things with libpng). REQUIRED unless you + * set up your own error handlers in the png_create_read_struct() earlier. + */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); + +--- a/src/wp/impexp/win/ie_impGraphic_Win32Native.cpp 2009-07-07 18:50:18.000000000 +0200 ++++ b/src/wp/impexp/win/ie_impGraphic_Win32Native.cpp 2014-09-07 06:59:09.018300212 +0200 +@@ -501,7 +501,7 @@ + * the normal method of doing things with libpng). REQUIRED unless you + * set up your own error handlers in the png_create_read_struct() earlier. + */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); +@@ -520,7 +520,7 @@ + UT_Error IE_ImpGraphic_Win32Native::Convert_BMP_Palette(UT_ByteBuf* pBB) + { + /* Reset error handling for libpng */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); + return UT_ERROR; +@@ -560,7 +560,7 @@ + UT_Error IE_ImpGraphic_Win32Native::Convert_BMP(UT_ByteBuf* pBB) + { + /* Reset error handling for libpng */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); + return UT_ERROR; + +--- a/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp 2009-07-01 06:02:04.000000000 +0200 ++++ b/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp 2014-09-07 06:59:09.138300216 +0200 +@@ -185,7 +185,7 @@ + /** needed for the stejmp context */ + UT_Error IE_ImpGraphic_GdkPixbuf::_png_write(GdkPixbuf * pixbuf) + { +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + DELETEP(m_pPngBB); + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); +@@ -446,7 +446,7 @@ + * the normal method of doing things with libpng). REQUIRED unless you + * set up your own error handlers in the png_create_read_struct() earlier. + */ +- if (setjmp(m_pPNG->jmpbuf)) ++ if (setjmp(png_jmpbuf(m_pPNG))) + { + /* Free all of the memory associated with the png_ptr and info_ptr */ + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); + +--- a/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 07:03:02.000000000 +0200 ++++ b/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 12:35:33.306961036 +0200 +@@ -191,7 +191,11 @@ + + /* Clean Up Memory Used */ + +- FREEP(m_pPNGInfo->palette); ++ ++ png_colorp palette; ++ int ignored_placeholder; ++ png_get_PLTE(m_pPNG, m_pPNGInfo, &palette, &ignored_placeholder); ++ FREEP(palette); + DELETEP(pBB); + png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); + +--- a/plugins/garble/xp/abiword-garble-png.cpp 2009-09-05 17:34:44.000000000 +0200 ++++ b/plugins/garble/xp/abiword-garble-png.cpp 2014-09-08 00:15:04.508335153 +0200 +@@ -79,7 +79,7 @@ + png_set_strip_alpha( png_ptr ); + png_set_interlace_handling( png_ptr ); + png_set_bgr( png_ptr ); +- rowbytes = info_ptr->rowbytes; ++ rowbytes = png_get_rowbytes( png_ptr, info_ptr ); + png_destroy_read_struct( &png_ptr, &info_ptr, NULL ); + } + diff --git a/gnu/packages/patches/abiword-wmf-version-lookup-fix.patch b/gnu/packages/patches/abiword-wmf-version-lookup-fix.patch new file mode 100644 index 0000000000..f27f32f30b --- /dev/null +++ b/gnu/packages/patches/abiword-wmf-version-lookup-fix.patch @@ -0,0 +1,28 @@ +The way the configure script determines the version of libwmf is by temporarily +making dots separator characters, but since the file name of the program which +returns the version contains dots in Guix (the version in the store entry name), +doing it this way will always fail. + +This is a simple guix-specific fix for the problem. + +--- a/configure 2010-06-13 23:17:37.000000000 +0200 ++++ b/configure 2014-09-08 17:31:52.102371800 +0200 +@@ -21140,13 +21140,11 @@ + $as_echo "$as_me: WARNING: wmf plugin: program libwmf-config not found in path" >&2;} + fi + else +- IFS_old="$IFS" +- IFS='.' +- set -- `$libwmfconfig --version` +- libwmf_major_found="${1}" +- libwmf_minor_found="${2}" +- libwmf_micro_found="${3}" +- IFS="$IFS_old" ++ libwmf_fullver_found=`$libwmfconfig --version` ++ libwmf_major_found=$(echo $libwmf_fullver_found | cut -d . -f 1) ++ libwmf_minor_found=$(echo $libwmf_fullver_found | cut -d . -f 2) ++ libwmf_micro_found=$(echo $libwmf_fullver_found | cut -d . -f 3) ++ + if test "$libwmf_major_found" -gt "$libwmf_major_req"; then + wmf_deps="yes" + elif test "$libwmf_major_found" -eq "$libwmf_major_req" && diff --git a/gnu/packages/patches/lua51-liblua-so.patch b/gnu/packages/patches/lua51-liblua-so.patch new file mode 100644 index 0000000000..6795f10ac7 --- /dev/null +++ b/gnu/packages/patches/lua51-liblua-so.patch @@ -0,0 +1,65 @@ + +Patch the two Makefile to also create liblua.so +Original patch by Allan McRae <allan@archlinux.org> +for Archlinux + + +diff -ruN lua-5.1.5/Makefile lua-5.1.5-new/Makefile +--- lua-5.1.5/Makefile 2012-02-10 10:50:23.000000000 +0100 ++++ lua-5.1.5-new/Makefile 2014-09-10 20:17:28.913951433 +0200 +@@ -43,7 +43,7 @@ + # What to install. + TO_BIN= lua luac + TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp +-TO_LIB= liblua.a ++TO_LIB= liblua.a liblua.so liblua.so.${V} + TO_MAN= lua.1 luac.1 + + # Lua version and release. +@@ -53,7 +53,7 @@ + all: $(PLAT) + + $(PLATS) clean: +- cd src && $(MAKE) $@ ++ cd src && $(MAKE) $@ V=$(V) R=$(R) + + test: dummy + src/lua test/hello.lua +diff -ruN lua-5.1.5/src/Makefile lua-5.1.5-new/src/Makefile +--- lua-5.1.5/src/Makefile 2012-02-13 21:41:22.000000000 +0100 ++++ lua-5.1.5-new/src/Makefile 2014-09-10 20:16:09.982952152 +0200 +@@ -8,7 +8,7 @@ + PLAT= none + + CC= gcc +-CFLAGS= -O2 -Wall $(MYCFLAGS) ++CFLAGS= -O2 -Wall $(MYCFLAGS) -fPIC + AR= ar rcu + RANLIB= ranlib + RM= rm -f +@@ -34,9 +34,10 @@ + + LUAC_T= luac + LUAC_O= luac.o print.o ++LUA_SO= liblua.so + + ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O) +-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) ++ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) + ALL_A= $(LUA_A) + + default: $(PLAT) +@@ -57,6 +58,13 @@ + $(LUAC_T): $(LUAC_O) $(LUA_A) + $(CC) -o $@ $(MYLDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) + ++$(LUA_SO): $(CORE_O) $(LIB_O) ++ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V) ++ ln -sf $(LUA_SO).$(R) $(LUA_SO) ++ ++ ++ + clean: + $(RM) $(ALL_T) $(ALL_O) + diff --git a/gnu/packages/patches/ots-no-include-missing-file.patch b/gnu/packages/patches/ots-no-include-missing-file.patch new file mode 100644 index 0000000000..c23c7c36a1 --- /dev/null +++ b/gnu/packages/patches/ots-no-include-missing-file.patch @@ -0,0 +1,14 @@ +The file $(top_srcdir)/gtk-doc.make doesn't exist, so don't include it. + +--- a/doc/Makefile.in 2007-04-08 20:17:25.000000000 +0200 ++++ b/doc/Makefile.in 2014-09-06 23:19:41.413397662 +0200 +@@ -240,9 +240,6 @@ + distclean-generic clean-generic maintainer-clean-generic clean \ + mostlyclean distclean maintainer-clean + +- +-include $(top_srcdir)/gtk-doc.make +- + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: diff --git a/gnu/packages/postgresql.scm b/gnu/packages/postgresql.scm deleted file mode 100644 index d6b505f6a2..0000000000 --- a/gnu/packages/postgresql.scm +++ /dev/null @@ -1,52 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 David Thompson <davet@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 postgresql) - #:use-module ((guix licenses) #:select (x11-style)) - #: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 readline)) - -(define-public postgresql - (package - (name "postgresql") - (version "9.3.5") - (source (origin - (method url-fetch) - (uri (string-append "http://ftp.postgresql.org/pub/source/v" - version "/postgresql-" version ".tar.gz")) - (sha256 - (base32 - "08kga00izykgvnx7hn995wc4zjqslspapaa8z63045p1ya14mr4g")))) - (build-system gnu-build-system) - (inputs - `(("readline" ,readline) - ("zlib" ,zlib))) - (home-page "http://www.postgresql.org/") - (synopsis "Powerful object-relational database system") - (description - "PostgreSQL is a powerful object-relational database system. It is fully -ACID compliant, has full support for foreign keys, joins, views, triggers, and -stored procedures (in multiple languages). It includes most SQL:2008 data -types, including INTEGER, NUMERIC, BOOLEAN, CHAR, VARCHAR, DATE, INTERVAL, and -TIMESTAMP. It also supports storage of binary large objects, including -pictures, sounds, or video.") - (license (x11-style "file://COPYRIGHT")))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 81b6c956a9..3046c3b1e1 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -36,7 +36,7 @@ #:use-module (gnu packages openssl) #:use-module (gnu packages elf) #:use-module (gnu packages pkg-config) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (gnu packages zip) #:use-module (gnu packages multiprecision) #:use-module (guix packages) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 4d367d8ab7..ced7e90575 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -30,7 +30,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) - #:use-module (gnu packages mysql) + #:use-module (gnu packages databases) #:use-module (gnu packages openssl) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index 7634e48018..19a68be229 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -23,7 +23,7 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (gnu packages) - #:use-module (gnu packages bdb) + #:use-module (gnu packages databases) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages curl) diff --git a/gnu/packages/recutils.scm b/gnu/packages/recutils.scm deleted file mode 100644 index 7e78ac121d..0000000000 --- a/gnu/packages/recutils.scm +++ /dev/null @@ -1,66 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014 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 recutils) - #:use-module (guix licenses) - #:use-module (gnu packages) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (gnu packages emacs) - #:use-module (gnu packages check) - #:use-module (gnu packages algebra) - #:use-module (gnu packages curl) - #:use-module (gnu packages gnupg)) - -(define-public recutils - (package - (name "recutils") - (version "1.7") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/recutils/recutils-" - version ".tar.gz")) - (sha256 - (base32 - "0cdwa4094x3yx7vn98xykvnlp9rngvd58d19vs3vh5hrvggccg93")))) - (build-system gnu-build-system) - - ;; Running tests in parallel leads to test failures and crashes in - ;; torture/utils. - (arguments '(#:parallel-tests? #f)) - - (native-inputs `(("emacs" ,emacs) - ("bc" ,bc))) - - ;; TODO: Add more optional inputs. - ;; FIXME: Our Bash doesn't have development headers (need for the 'readrec' - ;; built-in command), but it's not clear how to get them installed. - ;; See <https://lists.gnu.org/archive/html/bug-bash/2014-03/msg00125.html>. - (inputs `(("curl" ,curl) - ("libgcrypt" ,libgcrypt) - ("check" ,check))) - (synopsis "Manipulate plain text files as databases") - (description - "GNU Recutils is a set of tools and libraries for creating and -manipulating text-based, human-editable databases. Despite being text-based, -databases created with Recutils carry all of the expected features such as -unique fields, primary keys, time stamps and more. Many different field types -are supported, as is encryption.") - (license gpl3+) - (home-page "http://www.gnu.org/software/recutils/"))) diff --git a/gnu/packages/sqlite.scm b/gnu/packages/sqlite.scm deleted file mode 100644 index e19160a864..0000000000 --- a/gnu/packages/sqlite.scm +++ /dev/null @@ -1,63 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> -;;; Copyright © 2014 Mark H Weaver <mhw@netris.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 sqlite) - #:use-module (guix licenses) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu) - #:use-module (gnu packages) - #:use-module (srfi srfi-26) - #:use-module (ice-9 match)) - -(define-public sqlite - (package - (name "sqlite") - (version "3.8.4.3") - (source (origin - (method url-fetch) - ;; TODO: Download from sqlite.org once this bug : - ;; http://lists.gnu.org/archive/html/bug-guile/2013-01/msg00027.html - ;; has been fixed. - (uri (let ((numeric-version - (match (string-split version #\.) - ((first-digit other-digits ...) - (string-append first-digit - (string-pad-right - (string-concatenate - (map (cut string-pad <> 2 #\0) - other-digits)) - 6 #\0)))))) - (string-append - "mirror://sourceforge/sqlite.mirror/SQLite%20" version - "/sqlite-autoconf-" numeric-version ".tar.gz"))) - (sha256 - (base32 - "0rcdsk5sz34w8vy0g5yhfms4saiq81i872jxx5m5sjij7bi9bsg0")) - (patches - (list (search-patch "sqlite-large-page-size-fix.patch"))))) - (build-system gnu-build-system) - (home-page "http://www.sqlite.org/") - (synopsis "The SQLite database management system") - (description - "SQLite is a software library that implements a self-contained, serverless, -zero-configuration, transactional SQL database engine. SQLite is the most -widely deployed SQL database engine in the world. The source code for SQLite is -in the public domain.") - (license public-domain))) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 83ad35fb77..89b26e69df 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -44,7 +44,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) - #:use-module (gnu packages sqlite) + #:use-module (gnu packages databases) #:use-module (gnu packages admin) #:use-module (gnu packages xml) #:use-module (gnu packages emacs) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 2873c49e3b..2fabf2679d 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -383,7 +383,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public youtube-dl (package (name "youtube-dl") - (version "2014.06.26") + (version "2014.09.06") (source (origin (method url-fetch) (uri (string-append "http://youtube-dl.org/downloads/" @@ -391,7 +391,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") version ".tar.gz")) (sha256 (base32 - "0jl90plg9mz4mwich219a58y4npwi33myx0cx44v8pymkqykv5cd")))) + "1a50vqgzp9wjh2763shald6dlmdd5qlqy83vg4yrihdrlh8sk6dd")))) (build-system python-build-system) (inputs `(("setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") diff --git a/gnu/packages/weechat.scm b/gnu/packages/weechat.scm new file mode 100644 index 0000000000..5555601d47 --- /dev/null +++ b/gnu/packages/weechat.scm @@ -0,0 +1,101 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net> +;;; +;;; 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/>. + +;; TODO: Add ruby + +(define-module (gnu packages weechat) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages base) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages file) + #:use-module (gnu packages compression) + #:use-module (gnu packages lua) + #:use-module (gnu packages python) + #:use-module (gnu packages perl) + #:use-module (gnu packages tcl) + #:use-module (gnu packages aspell) + #:use-module (gnu packages curl) + #:use-module (gnu packages gnutls) + #:use-module (gnu packages guile) + #:use-module (gnu packages openssl) + #:use-module (gnu packages cyrus-sasl) + #:use-module (gnu packages autogen) + #:use-module (gnu packages autotools) + #:use-module (gnu packages pkg-config) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:select (gpl3))) + +(define-public weechat + (package + (name "weechat") + (version "1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://weechat.org/files/src/weechat-" + version ".tar.gz")) + (sha256 + (base32 "1z17wyrl5fp697qp44srpmzk79w37f5hm1r0krffbmga6sbzdj3x")))) + (build-system gnu-build-system) + (native-inputs `(("autoconf" ,autoconf) + ("pkg-config" ,pkg-config) + ("file" ,file) + ("autogen" ,autogen) + ("automake" ,automake))) + (inputs `(("ncurses" ,ncurses) + ("diffutils" ,diffutils) + ("gettext" ,gnu-gettext) + ("libtool" ,libtool "bin") + ("libtool" ,libtool "out") + ("libgcrypt" ,libgcrypt "out") + ("zlib" ,zlib) + ("aspell" ,aspell) + ("curl" ,curl) + ("gnutls" ,gnutls) + ("guile" ,guile-2.0) + ("openssl" ,openssl) + ("cyrus-sasl" ,cyrus-sasl) + ("lua" ,lua-5.1) + ("python" ,python-2) + ("perl" ,perl) + ("tcl" ,tcl))) + (arguments `(#:configure-flags (list + (string-append + "--with-tclconfig=" + (assoc-ref %build-inputs "tcl") "/lib")) + #:phases (alist-cons-after + 'autogen 'fix-file + (lambda _ + (substitute* "configure" + (("/usr/bin/file") (which "file")))) + (alist-cons-before + 'configure 'autogen + (lambda _ + (zero? (system* "./autogen.sh"))) + %standard-phases)))) + (synopsis "Extensible chat client") + (description "WeeChat (Wee Enhanced Environment for Chat) is an +Internet Relay Chat client, which is designed to be light and fast. +The client uses a curses frontend, and there are remote interfaces +for Web, Qt, Android and Emacs. In WeeChat everything can be done +with a keyboard, though it also supports mouse. It is customizable +and extensible with plugins and scripts.") + (home-page "http://www.weechat.org/") + (license gpl3))) diff --git a/gnu/packages/wv.scm b/gnu/packages/wv.scm new file mode 100644 index 0000000000..af8412cbc4 --- /dev/null +++ b/gnu/packages/wv.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Marek Benc <merkur32@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 wv) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) + #:use-module (gnu packages image) + #:use-module (gnu packages pkg-config) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:renamer (symbol-prefix-proc 'license:))) + +(define-public wv + (package + (name "wv") + (version "1.2.4") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/wvware/wv/" version + "/wv-" version ".tar.gz")) + (sha256 + (base32 + "1mn2ax6qjy3pvixlnvbkn6ymy6y4l2wxrr4brjaczm121s8hjcb7")))) + + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--with-libwmf"))) + (inputs + `(("glib" ,glib) + ("libgsf" ,libgsf) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libwmf" ,libwmf) + ("zlib" ,zlib))) + (native-inputs + `(("glib" ,glib "bin") + ("pkg-config" ,pkg-config))) + (synopsis "Microsoft Word conversion library and utilities") + (description + "wv converts Word 2,6,7,8,9 files to HTML and LaTeX. The Word 2 +conversion is still incomplete (no formatting), but it will do a passable job +extracting the text, which is what you probably want anyway. + +libwv can be used as a library by third party programs, AbiWord uses it as its +word importer, and KWord may use it in the future.") + (home-page "http://wvware.sourceforge.net/") + (license license:gpl2+))) diff --git a/gnu/packages/zsh.scm b/gnu/packages/zsh.scm new file mode 100644 index 0000000000..778085c3c2 --- /dev/null +++ b/gnu/packages/zsh.scm @@ -0,0 +1,73 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net> +;;; +;;; 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 zsh) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #:use-module (gnu packages pcre) + #:use-module (gnu packages autotools) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix licenses)) + +(define-public zsh + (package + (name "zsh") + (version "5.0.6") + (source (origin + (method url-fetch) + (uri (string-append "http://www.zsh.org/pub/zsh-" version + ".tar.gz")) + (sha256 + (base32 "0f9y2lkv6xs5nxgj7ld7sbncy454sgamz21fm4109mxqlqa32fph")))) + (build-system gnu-build-system) + (arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre") + #:phases (alist-cons-before + 'configure 'fix-sh + (lambda _ + (substitute* + '("configure" + "configure.ac" + "Src/exec.c" + "Src/mkmakemod.sh" + "Config/installfns.sh" + "Config/defs.mk.in" + "Test/E01options.ztst" + "Test/A05execution.ztst" + "Test/A01grammar.ztst" + "Test/B02typeset.ztst" + "Completion/Unix/Command/_init_d" + "Util/preconfig") + (("/bin/sh") (which "sh")))) + %standard-phases))) + (native-inputs `(("autoconf", autoconf))) + (inputs `(("ncurses", ncurses) + ("pcre", pcre) + ("perl", perl))) + (synopsis "Powerful shell for interactive use and scripting") + (description "The Z shell (zsh) is a Unix shell that can be used +as an interactive login shell and as a powerful command interpreter +for shell scripting. Zsh can be thought of as an extended Bourne shell +with a large number of improvements, including some features of bash, +ksh, and tcsh.") + (home-page "http://www.zsh.org/") + + ;; The whole thing is under an MIT/X11-style license, but there's one + ;; command, 'Completion/Unix/Command/_darcs', which is under GPLv2+. + (license gpl2+))) diff --git a/gnu/services/base.scm b/gnu/services/base.scm index b5b49d1a01..014eef053b 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -25,7 +25,7 @@ #:use-module (gnu system linux) ; 'pam-service', etc. #:use-module (gnu packages admin) #:use-module ((gnu packages linux) - #:select (udev kbd e2fsprogs)) + #:select (udev kbd e2fsprogs lvm2)) #:use-module ((gnu packages base) #:select (canonical-package glibc)) #:use-module (gnu packages package-management) @@ -38,6 +38,7 @@ #:use-module (ice-9 format) #:export (root-file-system-service file-system-service + device-mapping-service user-processes-service host-name-service console-font-service @@ -99,18 +100,20 @@ This service must be the root of the service dependency graph so that its (define* (file-system-service device target type #:key (flags '()) (check? #t) - create-mount-point? options (title 'any)) + create-mount-point? options (title 'any) + (requirements '())) "Return a service that mounts DEVICE on TARGET as a file system TYPE with OPTIONS. TITLE is a symbol specifying what kind of name DEVICE is: 'label for a partition label, 'device for a device file name, or 'any. When CHECK? is true, check the file system before mounting it. When CREATE-MOUNT-POINT? is true, create TARGET if it does not exist yet. FLAGS is a list of symbols, -such as 'read-only' etc." +such as 'read-only' etc. Optionally, REQUIREMENTS may be a list of service +names such as device-mapping services." (with-monad %store-monad (return (service (provision (list (symbol-append 'file-system- (string->symbol target)))) - (requirement '(root-file-system)) + (requirement `(root-file-system ,@requirements)) (documentation "Check, mount, and unmount the given file system.") (start #~(lambda args (let ((device (canonicalize-device-spec #$device '#$title))) @@ -479,9 +482,41 @@ passed to @command{guix-daemon}." (id 30000)))) (activate activate))))) -(define* (udev-service #:key (udev udev)) - "Run @var{udev}, which populates the @file{/dev} directory dynamically." - (with-monad %store-monad +(define (udev-rules-union packages) + "Return the union of the @code{lib/udev/rules.d} directories found in each +item of @var{packages}." + (define build + #~(begin + (use-modules (guix build union) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26)) + + (define %standard-locations + '("/lib/udev/rules.d" "/libexec/udev/rules.d")) + + (define (rules-sub-directory directory) + ;; Return the sub-directory of DIRECTORY containing udev rules, or + ;; #f if none was found. + (find directory-exists? + (map (cut string-append directory <>) %standard-locations))) + + (mkdir-p (string-append #$output "/lib/udev")) + (union-build (string-append #$output "/lib/udev/rules.d") + (filter-map rules-sub-directory '#$packages)))) + + (gexp->derivation "udev-rules" build + #:modules '((guix build union) + (guix build utils)) + #:local-build? #t)) + +(define* (udev-service #:key (udev udev) (rules '())) + "Run @var{udev}, which populates the @file{/dev} directory dynamically. Get +extra rules from the packages listed in @var{rules}." + (mlet* %store-monad ((rules (udev-rules-union (cons udev rules))) + (udev.conf (text-file* "udev.conf" + "udev_rules=\"" rules + "/lib/udev/rules.d\"\n"))) (return (service (provision '(udev)) @@ -513,6 +548,8 @@ passed to @command{guix-daemon}." (setenv "LINUX_MODULE_DIRECTORY" "/run/booted-system/kernel/lib/modules") + (setenv "UDEV_CONFIG_FILE" #$udev.conf) + (let ((pid (primitive-fork))) (case pid ((0) @@ -533,6 +570,21 @@ passed to @command{guix-daemon}." pid))))) (stop #~(make-kill-destructor)))))) +(define (device-mapping-service target command) + "Return a service that maps device @var{target}, a string such as +@code{\"home\"} (meaning @code{/dev/mapper/home}), by executing @var{command}, +a gexp." + (with-monad %store-monad + (return (service + (provision (list (symbol-append 'device-mapping- + (string->symbol target)))) + (requirement '(udev)) + (documentation "Map a device node using Linux's device mapper.") + (start #~(lambda () + #$command)) + (stop #~(const #f)) + (respawn? #f))))) + (define %base-services ;; Convenience variable holding the basic services. (let ((motd (text-file "motd" " @@ -555,6 +607,9 @@ This is the GNU operating system, welcome!\n\n"))) (syslog-service) (guix-service) (nscd-service) - (udev-service)))) + + ;; By default, enable the udev rules of LVM2. They are needed as + ;; soon as LVM2 or the device-mapper is used. + (udev-service #:rules (list lvm2))))) ;;; base.scm ends here diff --git a/gnu/system.scm b/gnu/system.scm index ea7fdf1cb7..9bdf227eca 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -44,6 +44,7 @@ #:use-module (gnu system linux) #:use-module (gnu system linux-initrd) #:use-module (gnu system file-systems) + #:autoload (gnu packages cryptsetup) (cryptsetup) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -55,6 +56,7 @@ operating-system-user-services operating-system-packages operating-system-host-name + operating-system-hosts-file operating-system-kernel operating-system-initrd operating-system-users @@ -63,6 +65,7 @@ operating-system-packages operating-system-timezone operating-system-locale + operating-system-mapped-devices operating-system-file-systems operating-system-activation-script @@ -70,7 +73,10 @@ operating-system-profile operating-system-grub.cfg - %base-packages)) + %setuid-programs + %base-packages + + luks-device-mapping)) ;;; Commentary: ;;; @@ -91,7 +97,11 @@ (default base-initrd)) (host-name operating-system-host-name) ; string + (hosts-file operating-system-hosts-file ; M item | #f + (default #f)) + (mapped-devices operating-system-mapped-devices ; list of <mapped-device> + (default '())) (file-systems operating-system-file-systems) ; list of fs (users operating-system-users ; list of user accounts @@ -148,6 +158,13 @@ file." ;;; Services. ;;; +(define (luks-device-mapping source target) + "Return a gexp that maps SOURCE to TARGET as a LUKS device, using +'cryptsetup'." + #~(zero? (system* (string-append #$cryptsetup "/sbin/cryptsetup") + "open" "--type" "luks" + #$source #$target))) + (define (other-file-system-services os) "Return file system services for the file systems of OS that are not marked as 'needed-for-boot'." @@ -157,30 +174,58 @@ as 'needed-for-boot'." (string=? "/" (file-system-mount-point fs)))) (operating-system-file-systems os))) + (define (device-mappings fs) + (filter (lambda (md) + (string=? (string-append "/dev/mapper/" + (mapped-device-target md)) + (file-system-device fs))) + (operating-system-mapped-devices os))) + + (define (requirements fs) + (map (lambda (md) + (symbol-append 'device-mapping- + (string->symbol (mapped-device-target md)))) + (device-mappings fs))) + (sequence %store-monad - (map (match-lambda - (($ <file-system> device title target type flags opts - #f check? create?) - (file-system-service device target type - #:title title - #:check? check? - #:create-mount-point? create? - #:options opts - #:flags flags))) + (map (lambda (fs) + (match fs + (($ <file-system> device title target type flags opts + #f check? create?) + (file-system-service device target type + #:title title + #:requirements (requirements fs) + #:check? check? + #:create-mount-point? create? + #:options opts + #:flags flags)))) file-systems))) +(define (device-mapping-services os) + "Return the list of device-mapping services for OS as a monadic list." + (sequence %store-monad + (map (lambda (md) + (let ((source (mapped-device-source md)) + (target (mapped-device-target md)) + (command (mapped-device-command md))) + (device-mapping-service target + (command source target)))) + (operating-system-mapped-devices os)))) + (define (essential-services os) "Return the list of essential services for OS. These are special services that implement part of what's declared in OS are responsible for low-level bookkeeping." - (mlet* %store-monad ((root-fs (root-file-system-service)) + (mlet* %store-monad ((mappings (device-mapping-services os)) + (root-fs (root-file-system-service)) (other-fs (other-file-system-services os)) (procs (user-processes-service (map (compose first service-provision) other-fs))) (host-name (host-name-service (operating-system-host-name os)))) - (return (cons* host-name procs root-fs other-fs)))) + (return (cons* host-name procs root-fs + (append other-fs mappings))))) (define (operating-system-services os) "Return all the services of OS, including \"internal\" services that do not @@ -220,12 +265,19 @@ explicitly appear in OS." " This is the GNU system. Welcome.\n") +(define (default-/etc/hosts host-name) + "Return the default /etc/hosts file." + (text-file "hosts" + (string-append "localhost 127.0.0.1\n" + host-name " 127.0.0.1\n"))) + (define* (etc-directory #:key (locale "C") (timezone "Europe/Paris") (issue "Hello!\n") (skeletons '()) (pam-services '()) (profile "/run/current-system/profile") + hosts-file (sudoers "")) "Return a derivation that builds the static part of the /etc directory." (mlet* %store-monad @@ -241,7 +293,7 @@ This is the GNU system. Welcome.\n") ;; TODO: Generate bashrc from packages' search-paths. (bashrc (text-file* "bashrc" " -export PS1='\\u@\\h\\$ ' +export PS1='\\u@\\h \\w\\$ ' export LC_ALL=\"" locale "\" export TZ=\"" timezone "\" @@ -268,6 +320,7 @@ alias ll='ls -l' ("skel" ,#~#$skel) ("shells" ,#~#$shells) ("profile" ,#~#$bashrc) + ("hosts" ,#~#$hosts-file) ("localtime" ,#~(string-append #$tzdata "/share/zoneinfo/" #$timezone)) ("sudoers" ,#~#$sudoers))))) @@ -310,12 +363,15 @@ alias ll='ls -l' (append (operating-system-pam-services os) (append-map service-pam-services services)))) (profile-drv (operating-system-profile os)) - (skeletons (operating-system-skeletons os))) + (skeletons (operating-system-skeletons os)) + (/etc/hosts (or (operating-system-hosts-file os) + (default-/etc/hosts (operating-system-host-name os))))) (etc-directory #:pam-services pam-services #:skeletons skeletons #:issue (operating-system-issue os) #:locale (operating-system-locale os) #:timezone (operating-system-timezone os) + #:hosts-file /etc/hosts #:sudoers (operating-system-sudoers os) #:profile profile-drv))) @@ -402,6 +458,11 @@ etc." (use-modules (gnu build activation)) + ;; Make sure /bin/sh is valid and current. + (activate-/bin/sh + (string-append #$(canonical-package bash) + "/bin/sh")) + ;; Populate /etc. (activate-etc #$etc) @@ -470,6 +531,8 @@ we're running in the final root." boot?)) (operating-system-file-systems os))) + ;; TODO: Pass the mapped devices required by boot-time file systems to the + ;; initrd. (mlet %store-monad ((initrd ((operating-system-initrd os) boot-file-systems))) (return #~(string-append #$initrd "/initrd")))) diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 48c4fc7e77..90e2b0c796 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -37,7 +37,13 @@ %pseudo-terminal-file-system %devtmpfs-file-system - %base-file-systems)) + %base-file-systems + + mapped-device + mapped-device? + mapped-device-source + mapped-device-target + mapped-device-command)) ;;; Commentary: ;;; @@ -128,4 +134,17 @@ %pseudo-terminal-file-system %shared-memory-file-system)) + + +;;; +;;; Mapped devices, for Linux's device-mapper. +;;; + +(define-record-type* <mapped-device> mapped-device + make-mapped-device + mapped-device? + (source mapped-device-source) ;string + (target mapped-device-target) ;string + (command mapped-device-command)) ;source target -> gexp + ;;; file-systems.scm ends here diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index 627d17bac2..93f751b757 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -34,6 +34,7 @@ #:use-module (ice-9 match) #:use-module (ice-9 regex) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) #:export (expression->initrd base-initrd)) @@ -53,106 +54,37 @@ (gzip gzip) (name "guile-initrd") (system (%current-system)) - (modules '()) - (to-copy '()) - (linux #f) - (linux-modules '())) + (modules '())) "Return a derivation that builds a Linux initrd (a gzipped cpio archive) -containing GUILE and that evaluates EXP, a G-expression, upon booting. +containing GUILE and that evaluates EXP, a G-expression, upon booting. All +the derivations referenced by EXP are automatically copied to the initrd. -LINUX-MODULES is a list of '.ko' file names to be copied from LINUX into the -initrd. TO-COPY is a list of additional derivations or packages to copy to -the initrd. MODULES is a list of Guile module names to be embedded in the -initrd." +MODULES is a list of Guile module names to be embedded in the initrd." ;; General Linux overview in `Documentation/early-userspace/README' and ;; `Documentation/filesystems/ramfs-rootfs-initramfs.txt'. - (define graph-files - (unfold-right zero? - number->string - 1- - (length to-copy))) - - (mlet %store-monad ((source (imported-modules modules)) - (compiled (compiled-modules modules)) - (module-dir (flat-linux-module-directory linux - linux-modules))) + (mlet %store-monad ((init (gexp->script "init" exp + #:modules modules + #:guile guile))) (define builder - ;; TODO: Move most of this code to (gnu build linux-initrd). #~(begin - (use-modules (gnu build linux-initrd) - (guix build utils) - (guix build store-copy) - (ice-9 pretty-print) - (ice-9 popen) - (ice-9 match) - (ice-9 ftw) - (srfi srfi-26) - (system base compile) - (rnrs bytevectors) - ((system foreign) #:select (sizeof))) - - (let ((modules #$source) - (gos #$compiled) - (scm-dir (string-append "share/guile/" (effective-version))) - (go-dir (format #f ".cache/guile/ccache/~a-~a-~a-~a" - (effective-version) - (if (eq? (native-endianness) (endianness little)) - "LE" - "BE") - (sizeof '*) - (effective-version)))) - (mkdir #$output) - (mkdir "contents") - - (with-directory-excursion "contents" - (copy-recursively #$guile ".") - (call-with-output-file "init" - (lambda (p) - (format p "#!/bin/guile -ds~%!#~%" #$guile) - (pretty-print '#$exp p))) - (chmod "init" #o555) - (chmod "bin/guile" #o555) - - ;; Copy Guile modules. - (chmod scm-dir #o777) - (copy-recursively modules scm-dir - #:follow-symlinks? #t) - (copy-recursively gos (string-append "lib/guile/" - (effective-version) "/ccache") - #:follow-symlinks? #t) - - ;; Compile `init'. - (mkdir-p go-dir) - (set! %load-path (cons modules %load-path)) - (set! %load-compiled-path (cons gos %load-compiled-path)) - (compile-file "init" - #:opts %auto-compilation-options - #:output-file (string-append go-dir "/init.go")) + (use-modules (gnu build linux-initrd)) - ;; Copy Linux modules. - (mkdir "modules") - (copy-recursively #$module-dir "modules") - - ;; Populate the initrd's store. - (with-directory-excursion ".." - (populate-store '#$graph-files "contents")) - - ;; Reset the timestamps of all the files that will make it in the - ;; initrd. - (for-each (cut utime <> 0 0 0 0) - (find-files "." ".*")) - - (write-cpio-archive (string-append #$output "/initrd") "." - #:cpio (string-append #$cpio "/bin/cpio") - #:gzip (string-append #$gzip "/bin/gzip")))))) + (mkdir #$output) + (build-initrd (string-append #$output "/initrd") + #:guile #$guile + #:init #$init + ;; Copy everything INIT refers to into the initrd. + #:references-graphs '("closure") + #:cpio (string-append #$cpio "/bin/cpio") + #:gzip (string-append #$gzip "/bin/gzip")))) (gexp->derivation name builder #:modules '((guix build utils) (guix build store-copy) (gnu build linux-initrd)) - #:references-graphs (zip graph-files to-copy)))) + #:references-graphs `(("closure" ,init))))) (define (flat-linux-module-directory linux modules) "Return a flat directory containing the Linux kernel modules listed in @@ -199,6 +131,7 @@ initrd code." volatile-root? (extra-modules '()) guile-modules-in-chroot?) + ;; TODO: Support boot-time device mappings. "Return a monadic derivation that builds a generic initrd. FILE-SYSTEMS is a list of file-systems to be mounted by the initrd, possibly in addition to the root file system specified on the kernel command line via '--root'. @@ -264,28 +197,29 @@ exception and backtrace!)." (list unionfs-fuse/static) '()))) - (expression->initrd - #~(begin - (use-modules (gnu build linux-boot) - (guix build utils) - (srfi srfi-26)) - - (with-output-to-port (%make-void-port "w") - (lambda () - (set-path-environment-variable "PATH" '("bin" "sbin") - '#$helper-packages))) - - (boot-system #:mounts '#$(map file-system->spec file-systems) - #:linux-modules '#$linux-modules - #:qemu-guest-networking? #$qemu-networking? - #:guile-modules-in-chroot? '#$guile-modules-in-chroot? - #:volatile-root? '#$volatile-root?)) - #:name "base-initrd" - #:modules '((guix build utils) - (gnu build linux-boot) - (gnu build file-systems)) - #:to-copy helper-packages - #:linux linux-libre - #:linux-modules linux-modules)) + (mlet %store-monad ((kodir (flat-linux-module-directory linux-libre + linux-modules))) + (expression->initrd + #~(begin + (use-modules (gnu build linux-boot) + (guix build utils) + (srfi srfi-26)) + + (with-output-to-port (%make-void-port "w") + (lambda () + (set-path-environment-variable "PATH" '("bin" "sbin") + '#$helper-packages))) + + (boot-system #:mounts '#$(map file-system->spec file-systems) + #:linux-modules (map (lambda (file) + (string-append #$kodir "/" file)) + '#$linux-modules) + #:qemu-guest-networking? #$qemu-networking? + #:guile-modules-in-chroot? '#$guile-modules-in-chroot? + #:volatile-root? '#$volatile-root?)) + #:name "base-initrd" + #:modules '((guix build utils) + (gnu build linux-boot) + (gnu build file-systems))))) ;;; linux-initrd.scm ends here diff --git a/gnu/system/linux.scm b/gnu/system/linux.scm index 524ad01261..8cddedf28e 100644 --- a/gnu/system/linux.scm +++ b/gnu/system/linux.scm @@ -175,7 +175,8 @@ authenticate to run COMMAND." ;; These programs are setuid-root. (map (cut unix-pam-service <> #:allow-empty-passwords? allow-empty-passwords?) - '("su" "passwd" "sudo")) + '("su" "passwd" "sudo" + "xlock" "xscreensaver")) ;; These programs are not setuid-root, and we want root to be able ;; to run them without having to authenticate (notably because diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 205bf2cb19..4ee8dc5cf2 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -428,7 +428,9 @@ exec " #$qemu "/bin/" #$(qemu-command (%current-system)) "--system=" #$os-drv " --load=" #$os-drv "/boot --root=/dev/vda1\" \ -serial stdio \ -drive file=" #$image - ",if=virtio,cache=writeback,werror=report,readonly\n") + ",if=virtio,cache=writeback,werror=report,readonly \ + -m 256 +\n") port) (chmod port #o555)))) |