summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/docbook.scm47
-rw-r--r--gnu/packages/gnome.scm15
-rw-r--r--gnu/packages/linux.scm25
-rw-r--r--gnu/packages/package-management.scm4
-rw-r--r--gnu/packages/patches/flac-fix-memcmp-not-declared.patch13
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/web.scm32
-rw-r--r--gnu/packages/xiph.scm16
-rw-r--r--gnu/services/base.scm58
-rw-r--r--gnu/system.scm7
-rw-r--r--gnu/system/install.scm14
-rw-r--r--gnu/system/linux-initrd.scm12
12 files changed, 175 insertions, 72 deletions
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index 29fa409a8c..c689c9c81d 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -50,8 +50,12 @@
                           (dtd    (string-append out "/xml/dtd/docbook")))
                      (mkdir-p dtd)
                      (with-directory-excursion dtd
-                       (system* unzip source))))
-       #:modules ((guix build utils))))
+                       (system* unzip source))
+                     (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
+                       (("uri=\"") 
+                        (string-append 
+                         "uri=\"file://" dtd "/")))))
+                 #:modules ((guix build utils))))
     (native-inputs `(("unzip" ,unzip)))
     (home-page "http://docbook.org")
     (synopsis "DocBook XML DTDs for document authoring")
@@ -61,20 +65,42 @@ suited to books and papers about computer hardware and software (though it is
 by no means limited to these applications.)  This package provides XML DTDs.")
     (license (x11-style "" "See file headers."))))
 
+(define-public docbook-xml-4.4
+  (package (inherit docbook-xml)
+   (version "4.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.docbook.org/xml/" version
+                                  "/docbook-xml-" version ".zip"))
+              (sha256
+               (base32
+                "141h4zsyc71sfi2zzd89v4bb4qqq9ca1ri9ix2als9f4i3mmkw82"))))))
+
+(define-public docbook-xml-4.3
+  (package (inherit docbook-xml)
+   (version "4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://www.docbook.org/xml/" version
+                                  "/docbook-xml-" version ".zip"))
+              (sha256
+               (base32
+                "0r1l2if1z4wm2v664sqdizm4gak6db1kx9y50jq89m3gxaa8l1i3"))))))
+
 (define-public docbook-xsl
   (package
     (name "docbook-xsl")
-    (version "1.72.0")
+    (version "1.78.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://sourceforge/docbook/docbook-xsl-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "1cnrfgqz8pc9wnlgqjch2338ad7jki6d4h6b2fhaxn1a2201df5k"))))
+                "0rxl013ncmz1n6ymk2idvx3hix9pdabk8xn01cpcv32wmfb753y9"))))
     (build-system trivial-build-system)
     (arguments
-     `(#:builder (begin
+     `(#:builder (let ((name-version (string-append ,name "-" ,version)))
                    (use-modules (guix build utils))
 
                    (let* ((bzip2  (assoc-ref %build-inputs "bzip2"))
@@ -86,10 +112,13 @@ by no means limited to these applications.)  This package provides XML DTDs.")
                      (system* (string-append tar "/bin/tar") "xvf" source)
 
                      (mkdir-p xsl)
-                     (copy-recursively (string-append ,name "-" ,version)
-                                       (string-append xsl "/" ,name
-                                                      "-" ,version))))
-       #:modules ((guix build utils))))
+                     (copy-recursively name-version
+                                       (string-append xsl "/" name-version))
+
+                     (substitute* (string-append xsl "/" name-version "/catalog.xml")
+                       (("rewritePrefix=\"./") 
+                        (string-append "rewritePrefix=\"file://" xsl "/" name-version "/")))))
+                 #:modules ((guix build utils))))
     (native-inputs `(("bzip2" ,bzip2)
                      ("tar" ,tar)))
     (home-page "http://docbook.org")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a043d8d4d2..893c3e8a6b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -26,6 +26,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages flex)  
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gstreamer)
@@ -136,14 +137,24 @@ The gnome-about program helps find which version of GNOME is installed.")
        (base32
         "19n4x25ndzngaciiyd8dd6s2mf9gv6nv3wv27ggns2smm7zkj1nb"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (alist-cons-before
+        'check 'pre-check
+        (lambda* (#:key inputs #:allow-other-keys #:rest args)
+          ;; This is needed, because without it, xmlint etc tries
+          ;; to download docbookx.dtd from the net
+          (setenv "XML_CATALOG_FILES" 
+                  (string-append (assoc-ref inputs "docbook-xml") 
+                                 "/xml/dtd/docbook/catalog.xml")))
+        %standard-phases)))
     (native-inputs
      `(("intltool" ,intltool)
+       ("docbook-xml" ,docbook-xml-4.4)
        ("libxml2" ,libxml2)
        ("libxslt" ,libxslt)
        ("pkg-config" ,pkg-config)
        ("python-2" ,python-2)))
-    (arguments
-     `(#:tests? #f)) ; tries to load http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd
     (home-page "https://wiki.gnome.org/GnomeDocUtils")
     (synopsis
      "Documentation utilities for the Gnome project")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index d33492a1af..b9864f4f44 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1187,10 +1187,15 @@ system.")
                 "0c34b0za2v0934acvgnva0vaqpghmmhz4zh7k0m9jd4mbc91byqm"))
               (modules '((guix build utils)))
               (snippet
-               '(substitute* "tests/Makefile.in"
-                  ;; The '%: %.in' rule incorrectly uses @VERSION@.
-                  (("@VERSION@")
-                   "[@]VERSION[@]")))))
+               '(begin
+                  (substitute* "tests/Makefile.in"
+                    ;; The '%: %.in' rule incorrectly uses @VERSION@.
+                    (("@VERSION@")
+                     "[@]VERSION[@]"))
+                  (substitute* '("src/unicode_start" "src/unicode_stop")
+                    ;; Assume the Coreutils are in $PATH.
+                    (("/usr/bin/tty")
+                     "tty"))))))
     (build-system gnu-build-system)
     (arguments
      '(#:phases (alist-cons-before
@@ -1203,7 +1208,17 @@ system.")
                         (string-append gzip "/bin/gzip"))
                        (("bzip2")
                         (string-append bzip2 "/bin/bzip2")))))
-                 %standard-phases)))
+                 (alist-cons-after
+                  'install 'post-install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    ;; Make sure these programs find their comrades.
+                    (let* ((out (assoc-ref outputs "out"))
+                           (bin (string-append out "/bin")))
+                      (for-each (lambda (prog)
+                                  (wrap-program (string-append bin "/" prog)
+                                                `("PATH" ":" prefix (,bin))))
+                                '("unicode_start" "unicode_stop"))))
+                  %standard-phases))))
     (inputs `(("check" ,check)
               ("gzip" ,guix:gzip)
               ("bzip2" ,guix:bzip2)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 5ab537aa8a..cf808970ce 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -111,7 +111,7 @@ Nix package manager.")
 
 (define-public guix
   ;; Development version of Guix.
-  (let ((commit "20b1d19"))
+  (let ((commit "0ae8c15"))
     (package (inherit guix-0.6)
       (version (string-append "0.6." commit))
       (source (origin
@@ -122,7 +122,7 @@ Nix package manager.")
                       (recursive? #t)))
                 (sha256
                  (base32
-                  "0n278kzp586rzbhcghbj7am641yjc35pcb6n1r304myziwd0mz6r"))))
+                  "1y6mwzwsjdxbfibqypb55dix371rifhfz0bygfr8k868lcdsawic"))))
       (arguments
        (substitute-keyword-arguments (package-arguments guix-0.6)
          ((#:phases phases)
diff --git a/gnu/packages/patches/flac-fix-memcmp-not-declared.patch b/gnu/packages/patches/flac-fix-memcmp-not-declared.patch
deleted file mode 100644
index 9dd5c81ba5..0000000000
--- a/gnu/packages/patches/flac-fix-memcmp-not-declared.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-See http://sourceforge.net/p/flac/bugs/364/
-
-diff -Naur flac-1.2.1-orig/examples/cpp/encode/file/main.cpp flac-1.2.1-ae/examples/cpp/encode/file/main.cpp
---- flac-1.2.1-orig/examples/cpp/encode/file/main.cpp	2012-12-27 20:15:11.000000000 +0100
-+++ flac-1.2.1-ae/examples/cpp/encode/file/main.cpp	2012-12-27 20:25:01.000000000 +0100
-@@ -30,6 +30,7 @@
- 
- #include <stdio.h>
- #include <stdlib.h>
-+#include <string.h>
- #include "FLAC++/metadata.h"
- #include "FLAC++/encoder.h"
- 
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 9946b3adcf..075113ca9d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -56,14 +56,14 @@
 (define-public ffmpeg
   (package
     (name "ffmpeg")
-    (version "2.2.1")
+    (version "2.3")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://www.ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.bz2"))
              (sha256
               (base32
-               "153kfk8rzrfxx930rrk417b2m695dvy47v4hci3nd49iggx9jzz1"))))
+               "17l0bx95al6cjhz3pzfcbwg07sbfbwqbxg34zl5lhl89w9jbngbb"))))
     (build-system gnu-build-system)
     (inputs
      `(("fontconfig" ,fontconfig)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 6e94953bfe..4bf714bfe7 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -528,25 +528,19 @@ help you implement simple HTTP servers.")
        (alist-cons-before
         'build 'pre-build
         (lambda* (#:key inputs #:allow-other-keys #:rest args)
-          ;; This stuff is needed, because without it, xmlint etc tries
-          ;; to download docbookx.dtd and docbook.xsl from the net
-          (let ((build (assoc-ref %standard-phases 'build))
-                (docbook-xml (assoc-ref inputs "docbook-xml"))
-                (docbook-xsl (assoc-ref inputs "docbook-xsl"))
-                (our-catalog "/tmp/docbook-xml.xml"))
-            (setenv "XML_CATALOG_FILES" our-catalog)
-            (with-output-to-file our-catalog
-              (lambda ()
-                (display (string-append
-                          "<?xml version=\"1.0\"?>
-<!DOCTYPE catalog PUBLIC \"-//OASIS//DTD XML Catalogs V1.0//EN\"
-\"file:///usr/share/xml/schema/xml-core/catalog.dtd\">
-<catalog xmlns=\"urn:oasis:names:tc:entity:xmlns:xml:catalog\">
-<system systemId=\"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd\"
-uri=\"file://" docbook-xml  "/xml/dtd/docbook/docbookx.dtd\"/>
-<system systemId=\"http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl\"
-uri=\"file://" docbook-xsl  "/xml/xsl/docbook-xsl-1.72.0/manpages/docbook.xsl\"/>
-</catalog>\n"))))))
+          ;; Uncommenting the next two lines may assist in debugging
+          ;; (substitute* "docs/man5/Makefile" (("a2x") "a2x -v"))
+          ;; (setenv "XML_DEBUG_CATALOG" "1")
+
+          (setenv "XML_CATALOG_FILES" 
+                  (string-append
+                   (assoc-ref inputs "docbook-xsl") 
+                   "/xml/xsl/docbook-xsl-1.78.1/catalog.xml"
+                   ;; Contrary to the documentation, the file names must
+                   ;; be separated by a space, not a colon.
+                   " " 
+                   (assoc-ref inputs "docbook-xml") 
+                   "/xml/dtd/docbook/catalog.xml")))
         %standard-phases)))
     ;; All of the below are used to generate the documentation
     ;; (Should they be propagated inputs of asciidoc ??)
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
index 03cf0e49d2..8259be3f7d 100644
--- a/gnu/packages/xiph.scm
+++ b/gnu/packages/xiph.scm
@@ -49,14 +49,14 @@
 (define libogg
   (package
    (name "libogg")
-   (version "1.3.0")
+   (version "1.3.2")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://downloads.xiph.org/releases/ogg/libogg-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "0jy79ffkl34vycnwfsj4svqsdg1lwy2l1rr49y8r4d44kh12a5r3"))))
+              "16z74q422jmprhyvy7c9x909li8cqzmvzyr8cgbm52xcsp6pqs1z"))))
    (build-system gnu-build-system)
    (synopsis "libogg, a library for manipulating the ogg multimedia format")
    (description
@@ -72,14 +72,14 @@ periodic timestamps for seeking.")
 (define libvorbis
   (package
    (name "libvorbis")
-   (version "1.3.3")
+   (version "1.3.4")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://downloads.xiph.org/releases/vorbis/libvorbis-"
                                 version ".tar.xz"))
             (sha256
              (base32
-              "1gby6hapz9njx4l9g0pndyk4q83z5fgrgc30mfwfgx7bllspsk43"))))
+              "0wpk87jnhngcl3nc5i39flkycx1sjzilx8jjx4zc4p8r55ylj19g"))))
    (build-system gnu-build-system)
    (propagated-inputs `(("libogg" ,libogg)))
    (arguments `(#:configure-flags '("LDFLAGS=-lm")
@@ -192,16 +192,14 @@ OpenBSD's sndio.")
 (define flac
   (package
    (name "flac")
-   (version "1.2.1")
+   (version "1.3.0")
    (source (origin
             (method url-fetch)
             (uri (string-append "http://downloads.xiph.org/releases/flac/flac-"
-                                version ".tar.gz"))
+                                version ".tar.xz"))
             (sha256
              (base32
-              "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn"))
-            (patches
-             (list (search-patch "flac-fix-memcmp-not-declared.patch")))))
+              "1p0hh190kqvpkbk1bbajd81jfbmkyl4fn2i7pggk2zppq6m68bgs"))))
    (build-system gnu-build-system)
    (arguments
     `(#:parallel-tests? #f
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index acda08d19a..55ee5c4b08 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))
+                #:select (udev kbd))
   #:use-module ((gnu packages base)
                 #:select (glibc-final))
   #:use-module (gnu packages package-management)
@@ -38,6 +38,7 @@
             file-system-service
             user-processes-service
             host-name-service
+            console-font-service
             udev-service
             mingetty-service
             nscd-service
@@ -199,6 +200,50 @@ stopped before 'kill' is called."
                         (sethostname #$name)))
              (respawn? #f)))))
 
+(define (unicode-start tty)
+  "Return a gexp to start Unicode support on @var{tty}."
+
+  ;; We have to run 'unicode_start' in a pipe so that when it invokes the
+  ;; 'tty' command, that command returns TTY.
+  #~(begin
+      (let ((pid (primitive-fork)))
+        (case pid
+          ((0)
+           (close-fdes 0)
+           (dup2 (open-fdes #$tty O_RDONLY) 0)
+           (close-fdes 1)
+           (dup2 (open-fdes #$tty O_WRONLY) 1)
+           (execl (string-append #$kbd "/bin/unicode_start")
+                  "unicode_start"))
+          (else
+           (zero? (cdr (waitpid pid))))))))
+
+(define* (console-font-service tty #:optional (font "LatGrkCyr-8x16"))
+  "Return a service that sets up Unicode support in @var{tty} and loads
+@var{font} for that tty (fonts are per virtual console in Linux.)"
+  ;; Note: 'LatGrkCyr-8x16' has the advantage of providing three common
+  ;; scripts as well as glyphs for em dash, quotation marks, and other Unicode
+  ;; codepoints notably found in the UTF-8 manual.
+  (let ((device (string-append "/dev/" tty)))
+    (with-monad %store-monad
+      (return (service
+               (documentation "Load a Unicode console font.")
+               (provision (list (symbol-append 'console-font-
+                                               (string->symbol tty))))
+
+               ;; Start after mingetty has been started on TTY, otherwise the
+               ;; settings are ignored.
+               (requirement (list (symbol-append 'term-
+                                                 (string->symbol tty))))
+
+               (start #~(lambda _
+                          (and #$(unicode-start device)
+                               (zero?
+                                (system* (string-append #$kbd "/bin/setfont")
+                                         "-C" #$device #$font)))))
+               (stop #~(const #t))
+               (respawn? #f))))))
+
 (define* (mingetty-service tty
                            #:key
                            (motd (text-file "motd" "Welcome.\n"))
@@ -290,7 +335,7 @@ the ``message of the day''."
      # level notice or higher and anything of level err or
      # higher to the console.
      # Don't log private authentication messages!
-     *.err;auth.notice;authpriv.none         /dev/console
+     *.alert;auth.notice;authpriv.none       /dev/console
 
      # Log anything (except mail) of level info or higher.
      # Don't log private authentication messages!
@@ -469,7 +514,14 @@ passed to @command{guix-daemon}."
   ;; Convenience variable holding the basic services.
   (let ((motd (text-file "motd" "
 This is the GNU operating system, welcome!\n\n")))
-    (list (mingetty-service "tty1" #:motd motd)
+    (list (console-font-service "tty1")
+          (console-font-service "tty2")
+          (console-font-service "tty3")
+          (console-font-service "tty4")
+          (console-font-service "tty5")
+          (console-font-service "tty6")
+
+          (mingetty-service "tty1" #:motd motd)
           (mingetty-service "tty2" #:motd motd)
           (mingetty-service "tty3" #:motd motd)
           (mingetty-service "tty4" #:motd motd)
diff --git a/gnu/system.scm b/gnu/system.scm
index 82397be3a3..20942ec7f0 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -222,7 +222,12 @@ explicitly appear in OS."
          lsof                                 ;for Guix's 'list-runtime-roots'
          util-linux inetutils isc-dhcp
          net-tools                        ; XXX: remove when Inetutils suffices
-         module-init-tools udev kbd
+
+         ;; Get 'insmod' & co. from kmod, not module-init-tools, since udev
+         ;; already depends on it anyway.
+         kmod udev
+
+         e2fsprogs kbd
 
          ;; The packages below are also in %FINAL-INPUTS, so take them from
          ;; there to avoid duplication.
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index b30c5577e4..07e8938ba0 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -40,7 +40,7 @@ manual."
                 #~(execl (string-append #$texinfo-4 "/bin/info") "info"
                          "-d" "/run/current-system/profile/share/info"
                          "-f" (string-append #$guix "/share/info/guix.info")
-                         "-n" "System Configuration")))
+                         "-n" "System Installation")))
 
 (define (installation-services)
   "Return the list services for the installation image."
@@ -63,7 +63,9 @@ You have been warned.  Thanks for being so brave.
                             #:motd motd
                             #:auto-login "root")
 
-          ;; Documentation.
+          ;; Documentation.  The manual is in UTF-8, but
+          ;; 'console-font-service' sets up Unicode support and loads a font
+          ;; with all the useful glyphs like em dash and quotation marks.
           (mingetty-service "tty2"
                             #:motd motd
                             #:auto-login "guest"
@@ -86,6 +88,14 @@ You have been warned.  Thanks for being so brave.
           ;; Start udev so that useful device nodes are available.
           (udev-service)
 
+          ;; Install Unicode support and a suitable font.
+          (console-font-service "tty1")
+          (console-font-service "tty2")
+          (console-font-service "tty3")
+          (console-font-service "tty4")
+          (console-font-service "tty5")
+          (console-font-service "tty6")
+
           (nscd-service))))
 
 (define %issue
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index afbfc692d3..9e39f2d663 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -57,11 +57,13 @@
                              (to-copy '())
                              (linux #f)
                              (linux-modules '()))
-  "Return a package that contains a Linux initrd (a gzipped cpio archive)
-containing GUILE and that evaluates EXP upon booting.  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."
+  "Return a derivation that builds a Linux initrd (a gzipped cpio archive)
+containing GUILE and that evaluates EXP, a G-expression, upon booting.
+
+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."
 
   ;; General Linux overview in `Documentation/early-userspace/README' and
   ;; `Documentation/filesystems/ramfs-rootfs-initramfs.txt'.