From 711670c04faec02f1c4cccf78a66c90bc7cdfa6e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus
Date: Wed, 24 Aug 2016 22:59:16 +0200
Subject: [PATCH 001/604] gnu: gtk+-2: Add patch to support
GUIX_GTK2_IM_MODULE_FILE.
* gnu/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch: New file.
* gnu/packages/gtk.scm (gtk+-2)[source]: Add it.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/gtk.scm | 1 +
.../gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch | 15 +++++++++++++++
3 files changed, 17 insertions(+)
create mode 100644 gnu/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 98c8848135..a67b00ccdf 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -550,6 +550,7 @@ dist_patch_DATA = \
%D%/packages/patches/guile-relocatable.patch \
%D%/packages/patches/guile-rsvg-pkgconfig.patch \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
+ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk2-theme-paths.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 8feac11d98..e1d9cf9d6d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -563,6 +563,7 @@ is part of the GNOME accessibility project.")
(base32
"0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d"))
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
+ "gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch"
"gtk2-theme-paths.patch"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
diff --git a/gnu/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch b/gnu/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch
new file mode 100644
index 0000000000..f399024f1d
--- /dev/null
+++ b/gnu/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch
@@ -0,0 +1,15 @@
+This patch replaces the environment variable "GTK_IM_MODULE" with
+"GUIX_GTK2_IM_MODULE_FILE" to prevent this version of GTK+ from loading input
+method modules for other major versions of GTK+.
+
+--- gtk+-2.24.30/gtk/gtkrc.c 2016-08-21 22:40:22.339660438 +0200
++++ gtk+-2.24.30/gtk/gtkrc.c 2016-08-23 10:11:11.080822710 +0200
+@@ -439,7 +439,7 @@
+ gchar *
+ gtk_rc_get_im_module_file (void)
+ {
+- const gchar *var = g_getenv ("GTK_IM_MODULE_FILE");
++ const gchar *var = g_getenv ("GUIX_GTK2_IM_MODULE_FILE");
+ gchar *result = NULL;
+
+ if (var)
From 234e7980b54ef37e9a24440ec7219c81d6288a71 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus
Date: Wed, 24 Aug 2016 23:01:11 +0200
Subject: [PATCH 002/604] gnu: gtk+: Add patch to support
GUIX_GTK3_IM_MODULE_FILE.
* gnu/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch: New file.
* gnu/packages/gtk.scm (gtk+)[source]: Add it.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/gtk.scm | 3 ++-
.../gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch | 15 +++++++++++++++
3 files changed, 18 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index a67b00ccdf..a41ade7c4f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -553,6 +553,7 @@ dist_patch_DATA = \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk2-theme-paths.patch \
%D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
+ %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/hdf5-config-date.patch \
%D%/packages/patches/higan-remove-march-native-flag.patch \
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index e1d9cf9d6d..396ff1f1d0 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -625,7 +625,8 @@ application suites.")
(sha256
(base32
"157nh9gg0p2avw765hrnkvr8lsh2w811397yxgjv6q5j4fzz6d1q"))
- (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"))))
+ (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
+ "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk)
diff --git a/gnu/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch b/gnu/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch
new file mode 100644
index 0000000000..aa63a54402
--- /dev/null
+++ b/gnu/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch
@@ -0,0 +1,15 @@
+This patch replaces the environment variable "GTK_IM_MODULE" with
+"GUIX_GTK3_IM_MODULE_FILE" to prevent this version of GTK+ from loading input
+method modules for other major versions of GTK+.
+
+--- gtk+-3.20.3/gtk/deprecated/gtkrc.c 2016-08-21 22:40:48.168437905 +0200
++++ gtk+-3.20.3/gtk/deprecated/gtkrc.c 2016-08-23 10:12:09.097070097 +0200
+@@ -768,7 +768,7 @@
+ gchar *
+ gtk_rc_get_im_module_file (void)
+ {
+- const gchar *var = g_getenv ("GTK_IM_MODULE_FILE");
++ const gchar *var = g_getenv ("GUIX_GTK3_IM_MODULE_FILE");
+ gchar *result = NULL;
+
+ if (var)
From 35aa90a1fd4d8f29d0c88e4a73a7971cb261c68e Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus
Date: Fri, 2 Sep 2016 15:35:14 +0200
Subject: [PATCH 003/604] gnu: Add Infernal.
* gnu/packages/bioinformatics.scm (infernal): New variable.
---
gnu/packages/bioinformatics.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 08c25459c0..2d76a81339 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4835,6 +4835,32 @@ data in the form of VCF files.")
;; at https://vcftools.github.io/license.html
(license license:lgpl3)))
+(define-public infernal
+ (package
+ (name "infernal")
+ (version "1.1.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://eddylab.org/software/infernal/"
+ "infernal-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0sr2hiz3qxfwqpz3whxr6n82p3x27336v3f34iqznp10hks2935c"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("perl" ,perl))) ; for tests
+ (home-page "http://eddylab.org/infernal/")
+ (synopsis "Inference of RNA alignments")
+ (description "Infernal (\"INFERence of RNA ALignment\") is a tool for
+searching DNA sequence databases for RNA structure and sequence similarities.
+It is an implementation of a special case of profile stochastic context-free
+grammars called @dfn{covariance models} (CMs). A CM is like a sequence
+profile, but it scores a combination of sequence consensus and RNA secondary
+structure consensus, so in many cases, it is more capable of identifying RNA
+homologs that conserve their secondary structure more than their primary
+sequence.")
+ (license license:bsd-3)))
+
(define-public r-vegan
(package
(name "r-vegan")
From 5741e3e5520998f93b59848b3e58f99c0357e9a5 Mon Sep 17 00:00:00 2001
From: Alex Kost
Date: Fri, 2 Sep 2016 20:54:21 +0300
Subject: [PATCH 004/604] doc: Fix typos.
* doc/guix.texi: Fix typo.
* doc/emacs.texi: Fix multiple typos.
---
doc/emacs.texi | 6 +++---
doc/guix.texi | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/doc/emacs.texi b/doc/emacs.texi
index d124eca3cb..c7a8881ef5 100644
--- a/doc/emacs.texi
+++ b/doc/emacs.texi
@@ -225,7 +225,7 @@ guix pull}) from Emacs using:
With @kbd{C-u}, make it verbose.
@end table
-Once @command{guix pull} has succeeded, the Guix REPL is restared. This
+Once @command{guix pull} has succeeded, the Guix REPL is restarted. This
allows you to keep using the Emacs interface with the updated Guix.
@@ -266,7 +266,7 @@ Describe current mode to see all available bindings.
@end table
@emph{Hint:} If you need several ``list'' or ``info'' buffers, you can
-simlpy @kbd{M-x clone-buffer} them, and each buffer will have its own
+simply @kbd{M-x clone-buffer} them, and each buffer will have its own
history.
@emph{Warning:} Name/version pairs cannot be used to identify packages
@@ -310,7 +310,7 @@ Mark the current package for upgrading.
@item ^
Mark all obsolete packages for upgrading.
@item e
-Edit the definition of the curent package (go to its location). This is
+Edit the definition of the current package (go to its location). This is
similar to @command{guix edit} command (@pxref{Invoking guix edit}), but
for opening a package recipe in the current Emacs instance.
@item x
diff --git a/doc/guix.texi b/doc/guix.texi
index 2a7fd4d041..d6c041862d 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8324,7 +8324,7 @@ profile, and extends polkit with the actions from
@deffn {Scheme Procedure} xfce-desktop-service
Return a service that adds the @code{xfce} package to the system profile,
-and extends polkit with the abilit for @code{thunar} to manipulate the
+and extends polkit with the ability for @code{thunar} to manipulate the
file system as root from within a user session, after the user has
authenticated with the administrator's password.
@end deffn
From abc4cb57ca6ae015e916d0218a904b250ec23659 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel
Date: Sat, 3 Sep 2016 09:04:52 +0200
Subject: [PATCH 005/604] guix: ant-build-system: Fix pattern for collecting
jar files.
The former pattern included the "jar" binary.
* guix/build/ant-build-system.scm (generate-classpath): Change pattern.
Suggested by: Ricardo Wurmus
---
guix/build/ant-build-system.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/guix/build/ant-build-system.scm b/guix/build/ant-build-system.scm
index 6dc19ff2db..00a4a46d81 100644
--- a/guix/build/ant-build-system.scm
+++ b/guix/build/ant-build-system.scm
@@ -83,7 +83,7 @@ INPUTS."
(string-join
(apply append (map (match-lambda
((_ . dir)
- (find-files dir "\\.*jar$")))
+ (find-files dir "\\.jar$")))
inputs)) ":"))
(define* (unpack #:key source #:allow-other-keys)
From fd0a23e9eb3c6b2a106b8b3a95f39be63501928e Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Sat, 3 Sep 2016 15:48:42 +0200
Subject: [PATCH 006/604] gnu: libnfsidmap: Set pluginpath at configure time.
* gnu/packages/linux.scm (libnfsidmap)[arguments]: Pass --with-pluginpath=
to #:configure-flags.
---
gnu/packages/linux.scm | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index aac2cd19f6..0034314601 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -212,6 +212,11 @@
(base32
"1kzgwxzh83qi97rblcm9qj80cdvnv8kml2plz0q103j0hifj8vb5"))))
(build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags (list
+ (string-append "--with-pluginpath="
+ (assoc-ref %outputs "out")
+ "/lib/libnfsidmap"))))
(home-page
"http://www.citi.umich.edu/projects/nfsv4/crossrealm/libnfsidmap_config.html")
(synopsis
From 8c65863fb34a73cd6d52debeb9ff9ed8c99faf2f Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Sat, 3 Sep 2016 12:48:36 +0200
Subject: [PATCH 007/604] gnu: git: Update to 2.10.0.
* gnu/packages/version-control.scm (git): Update to 2.10.0.
---
gnu/packages/version-control.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 34cfedf4ed..9ff9801997 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -111,14 +111,14 @@ as well as the classic centralized workflow.")
(define-public git
(package
(name "git")
- (version "2.9.3")
+ (version "2.10.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "0qzs681a64k3shh5p0rg41l1z16fbk5sj0xga45k34hp1hsp654z"))))
+ "1rr9zyafb6q3wixyjar6cc7z7vdh1dqa4b5irz3gz1df02n68cy7"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@@ -131,7 +131,7 @@ as well as the classic centralized workflow.")
version ".tar.xz"))
(sha256
(base32
- "0kabsmjfbvq4y1vlwq0yl2y4033a90rnwsq01d7np3cvy55fiq0l"))))))
+ "1y92v1bxk67ilsizqnjba6hqvrsy2zvmipyd9nnz865s21yrj5ry"))))))
(inputs
`(("curl" ,curl)
("expat" ,expat)
From 79518126e7724777fc99f3454f87bd51ebc31aae Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Sat, 3 Sep 2016 16:25:31 +0200
Subject: [PATCH 008/604] Revert "gnu: yelp: Update to 3.21.3"
This reverts commit 29405d882161e8bfa9aadf67bc264c2ee6c74fa4.
---
gnu/packages/gnome.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 5ea9714431..f4488c929b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3711,7 +3711,7 @@ to format Docbook and Mallard documents.")
(define-public yelp
(package
(name "yelp")
- (version "3.21.3")
+ (version "3.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -3719,7 +3719,7 @@ to format Docbook and Mallard documents.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1x8la7qn0l796p4nhprvkwb6sk6yc39xhq3gabvzrhdlb6mjgmrs"))))
+ "1hh8yqbv0scn9nksk9mq94cb4sdczlzxplclv2wqr41jmm8v186x"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc.
From db8b5f5262d668fab6ca3b157e1b2af0126b2cf9 Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Sat, 3 Sep 2016 18:00:25 +0200
Subject: [PATCH 009/604] gnu: rpcbind: Enable warm starts
* gnu/packages/onc-rpc.scm (rpcbind)[arguments]: Pass --enable-warmstarts
to #:configure-flags.
---
gnu/packages/onc-rpc.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm
index 549b82307b..0bcc885c39 100644
--- a/gnu/packages/onc-rpc.scm
+++ b/gnu/packages/onc-rpc.scm
@@ -71,7 +71,7 @@ IPv4 and IPv6. ONC RPC is notably used by the network file system (NFS).")
(build-system gnu-build-system)
(arguments
`(#:configure-flags
- `("--with-systemdsystemunitdir=no")))
+ `("--with-systemdsystemunitdir=no" "--enable-warmstarts")))
(inputs
`(("libtirpc" ,libtirpc)))
(native-inputs
From 217e0edfdc0ea33ecd78f59221239ee980cf15d4 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Sat, 3 Sep 2016 22:50:59 +0300
Subject: [PATCH 010/604] gnu: mpv: Update to 0.20.0.
* gnu/packages/video.scm (mpv): Update to 0.20.0.
---
gnu/packages/video.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 8d500729e4..5ec1424b22 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -790,7 +790,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(define-public mpv
(package
(name "mpv")
- (version "0.19.0")
+ (version "0.20.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -798,7 +798,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
".tar.gz"))
(sha256
(base32
- "1qk7blpg64v47qfnvpgnbf413v5gzn900wmlivs727fd88cq3x9x"))
+ "0mibhjg5skcwcfpg6dx7yi2gj14xawnq2jzmcfwq9knmvv9cjvpy"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system waf-build-system)
(native-inputs
From df9010661004de19f89f777e2941b9fd35d05ed8 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Sat, 3 Sep 2016 23:48:46 +0300
Subject: [PATCH 011/604] gnu: aria2: Update to 1.26.1.
* gnu/packages/bittorrent.scm (aria2): Update to 1.26.1.
---
gnu/packages/bittorrent.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 51248508ff..bed9a014b2 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -207,7 +207,7 @@ interface, for the Transmission BitTorrent daemon.")
(define-public aria2
(package
(name "aria2")
- (version "1.26.0")
+ (version "1.26.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/tatsuhiro-t/aria2/"
@@ -215,7 +215,7 @@ interface, for the Transmission BitTorrent daemon.")
name "-" version ".tar.xz"))
(sha256
(base32
- "1388qswa0in7kb1dx7qb10wp60p58zvvpys7jwim3clsbqvz6a68"))))
+ "00d8r631w4g05jf202arhn0c3jsszb2m0apfw471qpmgajblxrpl"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-libaria2"
From 37355498e677fbb5f736e825b7e8f5055e7496b4 Mon Sep 17 00:00:00 2001
From: doncatnip
Date: Thu, 1 Sep 2016 03:15:01 +0200
Subject: [PATCH 012/604] gnu: gtk: Add clipit.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* gnu/packages/gtk.scm (clipit): New variable.
Co-authored-by: 宋文武
---
gnu/packages/gtk.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 396ff1f1d0..74c4ed36a9 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1333,3 +1333,29 @@ glass artworks done by Venicians glass blowers.")
"GtkSpell provides word-processor-style highlighting and replacement of
misspelled words in a GtkTextView widget.")
(license license:gpl2+)))
+
+(define-public clipit
+ (package
+ (name "clipit")
+ (version "1.4.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/downloads/ClipIt/clipit-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0jrwn8qfgb15rwspdp1p8hb1nc0ngmpvgr87d4k3lhlvqg2cfqva"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("gtk+" ,gtk+-2)))
+ (home-page "https://github.com/CristianHenzel/ClipIt")
+ (synopsis "Lightweight GTK+ clipboard manager")
+ (description
+ "ClipIt is a clipboard manager with features such as a history, search
+thereof, global hotkeys and clipboard item actions. It was forked from
+Parcellite and adds bugfixes and features.")
+ (license license:gpl2+)))
From c4dd0defe16fbee282a31a8d8d0d399bc4bd9baa Mon Sep 17 00:00:00 2001
From: ng0
Date: Sat, 20 Aug 2016 20:56:46 +0000
Subject: [PATCH 013/604] gnu: awesome: Shorten the description.
* gnu/packages/wm.scm (awesome)[description]: Shorten.
Signed-off-by: Alex Kost
---
gnu/packages/wm.scm | 14 +++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 2cc9f44cdc..6275e6fea0 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2016 Al McElrath
;;; Copyright © 2016 Carlo Zancanaro
;;; Copyright © 2016 Ludovic Courtès
+;;; Copyright © 2016 ng0
;;;
;;; This file is part of GNU Guix.
;;;
@@ -452,16 +453,7 @@ experience.")
(zero? (system* "../build/awesome" "-v")))))))
(synopsis "Highly configurable window manager")
(description
- "awesome is a window manager for X. It manages windows in different
-layouts, like floating or tiled. Any layout can be applied dynamically,
-optimizing the environment for the application in use and the task currently
-being performed.
-
-In a tiled layout, windows are managed in a master and stacking area. In a
-floating layout windows can be resized and moved freely. Dialog windows are
-always managed as floating, regardless of the layout currently applied.
-
-Windows are grouped by tags in awesome. Each window can be tagged with one or
-more tags. Selecting certain tags displays all windows with these tags.")
+ "Awesome has been designed as a framework window manager. It is fast, small,
+dynamic and extensible using the Lua programming language.")
(license license:gpl2+)
(home-page "https://awesome.naquadah.org/")))
From dddcb25c7f99ff229c5d5b0f7cbba4dc0ba78971 Mon Sep 17 00:00:00 2001
From: Marius Bakke
Date: Wed, 17 Aug 2016 17:45:24 +0100
Subject: [PATCH 014/604] gnu: Add python-odfpy.
* gnu/packages/python.scm (python-odfpy, python2-odfpy): New variables.
Signed-off-by: Alex Kost
---
gnu/packages/python.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 8b52548065..33674fa9d9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -26,6 +26,7 @@
;;; Copyright © 2016 ng0
;;; Copyright © 2016 Dylan Jeffers
;;; Copyright © 2016 David Craven
+;;; Copyright © 2016 Marius Bakke
;;;
;;; This file is part of GNU Guix.
;;;
@@ -10241,3 +10242,39 @@ time by mocking the datetime module.")
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs base))))))
+
+(define-public python-odfpy
+ (package
+ (name "python-odfpy")
+ (version "1.3.3")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "odfpy" version))
+ (sha256
+ (base32
+ "1a6ms0w9zfhhkqhvrnynwwbxrivw6hgjc0s5k7j06npc7rq0blxw"))))
+ (arguments
+ `(#:modules ((srfi srfi-1)
+ (guix build python-build-system)
+ (guix build utils))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ ;; The test runner invokes python2 and python3 for test*.py.
+ ;; To avoid having both in inputs, we replicate it here.
+ (lambda _
+ (every (lambda (test-file)
+ (zero? (system* "python" test-file)))
+ (find-files "tests" "^test.*\\.py$")))))))
+ (build-system python-build-system)
+ (home-page "https://github.com/eea/odfpy")
+ (synopsis "Python API and tools to manipulate OpenDocument files")
+ (description "Collection of libraries and utility programs written in
+Python to manipulate OpenDocument 1.2 files.")
+ (license
+ ;; The software is mainly dual GPL2+ and ASL2.0, but includes a
+ ;; number of files with other licenses.
+ (list license:gpl2+ license:asl2.0 license:lgpl2.1+ license:cc-by-sa3.0))))
+
+(define-public python2-odfpy
+ (package-with-python2 python-odfpy))
From 48409ef26934cd8a2e692718b06d7853859f7e36 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Sun, 4 Sep 2016 12:43:10 +0300
Subject: [PATCH 015/604] gnu: infernal: Limit to i686 and x86_64 systems.
* gnu/packages/bioinformatics.scm (infernal)[supported-systems]: The
package requires VMX or SSE capability for parallel instructions, so
limit it to those supported systems.
---
gnu/packages/bioinformatics.scm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 2d76a81339..f34acd124d 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4859,6 +4859,8 @@ profile, but it scores a combination of sequence consensus and RNA secondary
structure consensus, so in many cases, it is more capable of identifying RNA
homologs that conserve their secondary structure more than their primary
sequence.")
+ ;; Infernal 1.1.2 requires VMX or SSE capability for parallel instructions.
+ (supported-systems '("i686-linux" "x86_64-linux"))
(license license:bsd-3)))
(define-public r-vegan
From 7b39b7eb91112616a26a7b5de1d0d4782c83add9 Mon Sep 17 00:00:00 2001
From: Julian Graham
Date: Sat, 3 Sep 2016 13:08:37 -0400
Subject: [PATCH 016/604] gnu: gzochi: Update to 0.10.1.
* gnu/packages/game-development.scm (gzochi): Update to 0.10.1.
Signed-off-by: David Craven
---
gnu/packages/game-development.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index d544a7294d..5e6cf0b234 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -93,14 +93,14 @@ is used in some video games and movies.")
(define-public gzochi
(package
(name "gzochi")
- (version "0.10")
+ (version "0.10.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/gzochi/gzochi-"
version ".tar.gz"))
(sha256
(base32
- "055m7ywgl48ljwxf0kjhl76ldck890y5afdwjhk5s3p65xyaxh0k"))))
+ "166rawdal45kvanhvi0bkzy1d2pwf1p0lzslb287lcnm9vdw97yy"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
From 8cfdd64c3797bd014ad742bd4bd994d647ced985 Mon Sep 17 00:00:00 2001
From: Danny Milosavljevic
Date: Sun, 4 Sep 2016 12:50:09 +0200
Subject: [PATCH 017/604] gnu: dtc: Update to 1.4.2.
* gnu/packages/u-boot.scm (dtc): Update to 1.4.2. Delete patch.
* gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch: Delete patch.
* gnu/local.mk (dist_patch_DATA): Delete patch.
Signed-off-by: David Craven
---
gnu/local.mk | 1 -
.../dtc-add-missing-symbols-to-lds.patch | 59 -------------------
gnu/packages/u-boot.scm | 6 +-
3 files changed, 2 insertions(+), 64 deletions(-)
delete mode 100644 gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 2b5e5419ad..d2e94e8d42 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -483,7 +483,6 @@ dist_patch_DATA = \
%D%/packages/patches/doc++-include-directives.patch \
%D%/packages/patches/doc++-segfault-fix.patch \
%D%/packages/patches/doxygen-test.patch \
- %D%/packages/patches/dtc-add-missing-symbols-to-lds.patch \
%D%/packages/patches/duplicity-piped-password.patch \
%D%/packages/patches/duplicity-test_selection-tmp.patch \
%D%/packages/patches/elfutils-tests-ptrace.patch \
diff --git a/gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch b/gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch
deleted file mode 100644
index ccece0f466..0000000000
--- a/gnu/packages/patches/dtc-add-missing-symbols-to-lds.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From a4b093f7366fdb429ca1781144d3985fa50d0fbb Mon Sep 17 00:00:00 2001
-From: Julien Grall
-Date: Tue, 17 Mar 2015 16:00:34 +0000
-Subject: [PATCH] libfdt: Add missing functions to shared library
-
-The commit 4e76ec7 "libfdt: Add fdt_next_subnode() to permit easy
-subnode iteration" adds new functions (fdt_{first,next}_subnode) but
-forgot to mark them as 'global' in the shared library.
-
-Signed-off-by: Julien Grall
----
- libfdt/version.lds | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/libfdt/version.lds b/libfdt/version.lds
-index 80b322b..941208e 100644
---- a/libfdt/version.lds
-+++ b/libfdt/version.lds
-@@ -54,6 +54,8 @@ LIBFDT_1.2 {
- fdt_get_property_by_offset;
- fdt_getprop_by_offset;
- fdt_next_property_offset;
-+ fdt_first_subnode;
-+ fdt_next_subnode;
-
- local:
- *;
-From f58799be130e27cc729cb2d45566daa0bb3b8605 Mon Sep 17 00:00:00 2001
-From: David Gibson
-Date: Tue, 1 Dec 2015 12:55:21 +1100
-Subject: [PATCH] libfdt: Add some missing symbols to version.lds
-
-Several functions in the header file were missing from the version.lds
-script, meaning that they couldn't be used from a libfdt shared library.
-
-Reported by Ken Aaker, via github issue tracker.
-
-Signed-off-by: David Gibson
----
- libfdt/version.lds | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/libfdt/version.lds b/libfdt/version.lds
-index f19f157..1f4e1ea 100644
---- a/libfdt/version.lds
-+++ b/libfdt/version.lds
-@@ -57,6 +57,10 @@ LIBFDT_1.2 {
- fdt_next_property_offset;
- fdt_first_subnode;
- fdt_next_subnode;
-+ fdt_address_cells;
-+ fdt_size_cells;
-+ fdt_stringlist_contains;
-+ fdt_resize;
-
- local:
- *;
---
-2.8.1
diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
index 15b24a6056..e9a4b90941 100644
--- a/gnu/packages/u-boot.scm
+++ b/gnu/packages/u-boot.scm
@@ -32,7 +32,7 @@
(define-public dtc
(package
(name "dtc")
- (version "1.4.1")
+ (version "1.4.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -40,9 +40,7 @@
"dtc-" version ".tar.xz"))
(sha256
(base32
- "155v52palf5fwfcnq696s41whjk0a5dqx98b7maqzdn7xbc2m6bp"))
- (patches
- (search-patches "dtc-add-missing-symbols-to-lds.patch"))))
+ "1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
From f5e4229a075e7aca255ab54d4e98526409520c62 Mon Sep 17 00:00:00 2001
From: Brendan Tildesley
Date: Sat, 3 Sep 2016 05:53:56 +1000
Subject: [PATCH 018/604] gnu: Add libicns.
* gnu/packages/image.scm (libicns): New variable.
Signed-off-by: David Craven
---
gnu/packages/image.scm | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 4fdc4ae252..a65bf3912d 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -147,6 +147,37 @@ maximum quality factor.")
(license license:gpl2+)
(home-page "http://www.kokkonen.net/tjko/projects.html#jpegoptim")))
+(define-public libicns
+ (package
+ (name "libicns")
+ (version "0.8.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/icns/"
+ "libicns-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1hjm8lwap7bjyyxsyi94fh5817xzqhk4kb5y0b7mb6675xw10prk"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libpng" ,libpng)
+ ("jasper" ,jasper)))
+ (arguments
+ `(#:tests? #t)) ; No tests.
+ (home-page "http://icns.sourceforge.net/")
+ (synopsis "Library for handling Mac OS icns resource files")
+ (description
+ "Libicns is a library for the manipulation of Mac OS IconFamily resource
+type files (ICNS). @command{icns2png} and @command{png2icns} are provided to
+convert between PNG and ICNS. @command{icns2png} will extract image files from
+ICNS files under names like \"Foo_48x48x32.png\" useful for installing for use
+with .desktop files. Additionally, @command{icontainer2png} is provided for
+extracting icontainer icon files.")
+ (license (list license:lgpl2.1+ ; libicns
+ license:lgpl2.0+ ; src/apidocs.*
+ license:gpl2+)))) ; icns2png, png2icns, icontainer2png
+
(define-public libtiff
(package
(name "libtiff")
From b11cf99ff5f6a02814cc6c56a248a78d5caeaaeb Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Sun, 4 Sep 2016 16:14:10 +0300
Subject: [PATCH 019/604] gnu: rage: Update to 0.2.1.
* gnu/packages/enlightenment.scm (rage): Update to 0.2.1.
---
gnu/packages/enlightenment.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 818dbac942..d465da9d71 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -262,7 +262,7 @@ contents and more.")
(define-public rage
(package
(name "rage")
- (version "0.2.0")
+ (version "0.2.1")
(source (origin
(method url-fetch)
(uri
@@ -271,7 +271,7 @@ contents and more.")
version ".tar.xz"))
(sha256
(base32
- "07mfh0k83nrm557x72qafxawxizilqgkr6sngbia3ikprc8556zy"))))
+ "06kbgcnbhl9clhdl7k983m4d0n6ggsl4qvizzi1nrp8c7np87fix"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
From adbd7faf412297e48931ba4f7ad9a062d852ab8a Mon Sep 17 00:00:00 2001
From: Kei Kebreau
Date: Sat, 27 Aug 2016 06:33:26 -0400
Subject: [PATCH 020/604] gnu: Add p7zip.
* gnu/packages/compression.scm (p7zip): New variable.
* gnu/packages/patches/remove-unused-p7zip-code.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
gnu/packages/compression.scm | 67 ++
.../patches/p7zip-remove-unused-code.patch | 959 ++++++++++++++++++
3 files changed, 1027 insertions(+)
create mode 100644 gnu/packages/patches/p7zip-remove-unused-code.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index d2e94e8d42..9132c94717 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -705,6 +705,7 @@ dist_patch_DATA = \
%D%/packages/patches/openssl-CVE-2016-2178.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/ots-no-include-missing-file.patch \
+ %D%/packages/patches/p7zip-remove-unused-code.patch \
%D%/packages/patches/patchelf-page-size.patch \
%D%/packages/patches/patchelf-rework-for-arm.patch \
%D%/packages/patches/patchutils-xfail-gendiff-tests.patch \
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index c239d16638..0040e45892 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2016 Danny Milosavljevic
;;; Copyright © 2016 Tobias Geerinckx-Rice
;;; Copyright © 2016 David Craven
+;;; Copyright © 2016 Kei Kebreau
;;;
;;; This file is part of GNU Guix.
;;;
@@ -895,3 +896,69 @@ compared to the fastest mode of zlib, Snappy is an order of magnitude faster
for most inputs, but the resulting compressed files are anywhere from 20% to
100% bigger.")
(license license:asl2.0)))
+
+(define-public p7zip
+ (package
+ (name "p7zip")
+ (version "16.02")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/" name "/" name "/"
+ version "/" name "_" version
+ "_src_all.tar.bz2"))
+ (sha256
+ (base32
+ "07rlwbbgszq8i7m8jh3x6j2w2hc9a72dc7fmqawnqkwlwb00mcjy"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Remove non-free source files
+ (for-each delete-file
+ (append
+ (find-files "CPP/7zip/Compress" "Rar.*")
+ (find-files "CPP/7zip/Crypto" "Rar.*")
+ (find-files "DOC/unRarLicense.txt")
+ (find-files "Utils/file_Codecs_Rar_so.py")))
+ (delete-file-recursively "CPP/7zip/Archive/Rar")
+ (delete-file-recursively "CPP/7zip/Compress/Rar")
+ #t))
+ (patches (search-patches "p7zip-remove-unused-code.patch"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list (string-append "DEST_HOME=" (assoc-ref %outputs "out")) "all3")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key system outputs #:allow-other-keys)
+ (zero? (system* "cp"
+ (let ((system ,(or (%current-target-system)
+ (%current-system))))
+ (cond
+ ((string-prefix? "x86_64" system)
+ "makefile.linux_amd64_asm")
+ ((string-prefix? "i686" system)
+ "makefile.linux_x86_asm_gcc_4.X")
+ (else
+ "makefile.linux_any_cpu_gcc_4.X")))
+ "makefile.machine"))))
+ (replace 'check
+ (lambda _
+ (and (zero? (system* "make" "test"))
+ (zero? (system* "make" "test_7z"))
+ (zero? (system* "make" "test_7zr"))))))))
+ (inputs
+ (let ((system (or (%current-target-system)
+ (%current-system))))
+ `(,@(cond ((string-prefix? "x86_64" system)
+ `(("yasm" ,yasm)))
+ ((string-prefix? "i686" system)
+ `(("nasm" ,nasm)))
+ (else '())))))
+ (home-page "http://p7zip.sourceforge.net/")
+ (synopsis "Command-line file archiver with high compression ratio")
+ (description "p7zip is a command-line port of 7-Zip, a file archiver that
+handles the 7z format which features very high compression ratios.")
+ (license (list license:lgpl2.1+
+ license:gpl2+
+ license:public-domain))))
diff --git a/gnu/packages/patches/p7zip-remove-unused-code.patch b/gnu/packages/patches/p7zip-remove-unused-code.patch
new file mode 100644
index 0000000000..f9c782b93e
--- /dev/null
+++ b/gnu/packages/patches/p7zip-remove-unused-code.patch
@@ -0,0 +1,959 @@
+diff --git a/C/Sha1.c b/C/Sha1.c
+index 55c1c63..48b4c5d 100644
+--- a/C/Sha1.c
++++ b/C/Sha1.c
+@@ -104,39 +104,6 @@ void Sha1_GetBlockDigest(CSha1 *p, const UInt32 *data, UInt32 *destDigest)
+ destDigest[4] = p->state[4] + e;
+ }
+
+-void Sha1_UpdateBlock_Rar(CSha1 *p, UInt32 *data, int returnRes)
+-{
+- UInt32 a, b, c, d, e;
+- UInt32 W[kNumW];
+-
+- a = p->state[0];
+- b = p->state[1];
+- c = p->state[2];
+- d = p->state[3];
+- e = p->state[4];
+-
+- RX_15
+-
+- RX_1_4(R0, R1, 15);
+-
+- RX_20(R2, 20);
+- RX_20(R3, 40);
+- RX_20(R4, 60);
+-
+- p->state[0] += a;
+- p->state[1] += b;
+- p->state[2] += c;
+- p->state[3] += d;
+- p->state[4] += e;
+-
+- if (returnRes)
+- {
+- unsigned i;
+- for (i = 0 ; i < SHA1_NUM_BLOCK_WORDS; i++)
+- data[i] = W[kNumW - SHA1_NUM_BLOCK_WORDS + i];
+- }
+-}
+-
+ #define Sha1_UpdateBlock(p) Sha1_GetBlockDigest(p, p->buffer, p->state)
+
+ void Sha1_Update(CSha1 *p, const Byte *data, size_t size)
+@@ -212,46 +179,6 @@ void Sha1_Update(CSha1 *p, const Byte *data, size_t size)
+ }
+ }
+
+-void Sha1_Update_Rar(CSha1 *p, Byte *data, size_t size /* , int rar350Mode */)
+-{
+- int returnRes = False;
+-
+- unsigned pos = (unsigned)p->count & 0x3F;
+- p->count += size;
+-
+- while (size--)
+- {
+- unsigned pos2 = (pos & 3);
+- UInt32 v = ((UInt32)*data++) << (8 * (3 - pos2));
+- UInt32 *ref = &(p->buffer[pos >> 2]);
+- pos++;
+- if (pos2 == 0)
+- {
+- *ref = v;
+- continue;
+- }
+- *ref |= v;
+-
+- if (pos == SHA1_BLOCK_SIZE)
+- {
+- pos = 0;
+- Sha1_UpdateBlock_Rar(p, p->buffer, returnRes);
+- if (returnRes)
+- {
+- unsigned i;
+- for (i = 0; i < SHA1_NUM_BLOCK_WORDS; i++)
+- {
+- UInt32 d = p->buffer[i];
+- Byte *prev = data + i * 4 - SHA1_BLOCK_SIZE;
+- SetUi32(prev, d);
+- }
+- }
+- // returnRes = rar350Mode;
+- returnRes = True;
+- }
+- }
+-}
+-
+ void Sha1_Final(CSha1 *p, Byte *digest)
+ {
+ unsigned pos = (unsigned)p->count & 0x3F;
+diff --git a/C/Sha1.h b/C/Sha1.h
+index aa22ec3..9c45653 100644
+--- a/C/Sha1.h
++++ b/C/Sha1.h
+@@ -27,8 +27,6 @@ void Sha1_GetBlockDigest(CSha1 *p, const UInt32 *data, UInt32 *destDigest);
+ void Sha1_Update(CSha1 *p, const Byte *data, size_t size);
+ void Sha1_Final(CSha1 *p, Byte *digest);
+
+-void Sha1_Update_Rar(CSha1 *p, Byte *data, size_t size /* , int rar350Mode */);
+-
+ void Sha1_32_PrepareBlock(const CSha1 *p, UInt32 *block, unsigned size);
+ void Sha1_32_Update(CSha1 *p, const UInt32 *data, size_t size);
+ void Sha1_32_Final(CSha1 *p, UInt32 *digest);
+diff --git a/CPP/7zip/Archive/7z/7zUpdate.cpp b/CPP/7zip/Archive/7z/7zUpdate.cpp
+index a0571e7..43ad3e9 100644
+--- a/CPP/7zip/Archive/7z/7zUpdate.cpp
++++ b/CPP/7zip/Archive/7z/7zUpdate.cpp
+@@ -562,7 +562,7 @@ static int CompareEmptyItems(const unsigned *p1, const unsigned *p2, void *param
+ }
+
+ static const char *g_Exts =
+- " 7z xz lzma ace arc arj bz tbz bz2 tbz2 cab deb gz tgz ha lha lzh lzo lzx pak rar rpm sit zoo"
++ " 7z xz lzma ace arc arj bz tbz bz2 tbz2 cab deb gz tgz ha lha lzh lzo lzx pak rpm sit zoo"
+ " zip jar ear war msi"
+ " 3gp avi mov mpeg mpg mpe wmv"
+ " aac ape fla flac la mp3 m4a mp4 ofr ogg pac ra rm rka shn swa tta wv wma wav"
+diff --git a/CPP/7zip/Bundles/Format7zFree/makefile.list b/CPP/7zip/Bundles/Format7zFree/makefile.list
+index da2056b..1dcf1a5 100644
+--- a/CPP/7zip/Bundles/Format7zFree/makefile.list
++++ b/CPP/7zip/Bundles/Format7zFree/makefile.list
+@@ -87,8 +87,6 @@ SRCS=\
+ ../../../../CPP/7zip/Archive/PeHandler.cpp \
+ ../../../../CPP/7zip/Archive/PpmdHandler.cpp \
+ ../../../../CPP/7zip/Archive/QcowHandler.cpp \
+- ../../../../CPP/7zip/Archive/Rar/RarHandler.cpp \
+- ../../../../CPP/7zip/Archive/Rar/Rar5Handler.cpp \
+ ../../../../CPP/7zip/Archive/RpmHandler.cpp \
+ ../../../../CPP/7zip/Archive/SplitHandler.cpp \
+ ../../../../CPP/7zip/Archive/SquashfsHandler.cpp \
+@@ -191,9 +189,6 @@ SRCS=\
+ ../../../../CPP/7zip/Crypto/MyAesReg.cpp \
+ ../../../../CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp \
+ ../../../../CPP/7zip/Crypto/RandGen.cpp \
+- ../../../../CPP/7zip/Crypto/Rar20Crypto.cpp \
+- ../../../../CPP/7zip/Crypto/Rar5Aes.cpp \
+- ../../../../CPP/7zip/Crypto/RarAes.cpp \
+ ../../../../CPP/7zip/Crypto/WzAes.cpp \
+ ../../../../CPP/7zip/Crypto/ZipCrypto.cpp \
+ ../../../../CPP/7zip/Crypto/ZipStrong.cpp \
+@@ -485,10 +480,6 @@ PpmdHandler.o : ../../../../CPP/7zip/Archive/PpmdHandler.cpp
+ $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Archive/PpmdHandler.cpp
+ QcowHandler.o : ../../../../CPP/7zip/Archive/QcowHandler.cpp
+ $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Archive/QcowHandler.cpp
+-RarHandler.o : ../../../../CPP/7zip/Archive/Rar/RarHandler.cpp
+- $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Archive/Rar/RarHandler.cpp
+-Rar5Handler.o : ../../../../CPP/7zip/Archive/Rar/Rar5Handler.cpp
+- $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Archive/Rar/Rar5Handler.cpp
+ RpmHandler.o : ../../../../CPP/7zip/Archive/RpmHandler.cpp
+ $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Archive/RpmHandler.cpp
+ SplitHandler.o : ../../../../CPP/7zip/Archive/SplitHandler.cpp
+@@ -693,12 +684,6 @@ Pbkdf2HmacSha1.o : ../../../../CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp
+ $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp
+ RandGen.o : ../../../../CPP/7zip/Crypto/RandGen.cpp
+ $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Crypto/RandGen.cpp
+-Rar20Crypto.o : ../../../../CPP/7zip/Crypto/Rar20Crypto.cpp
+- $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Crypto/Rar20Crypto.cpp
+-Rar5Aes.o : ../../../../CPP/7zip/Crypto/Rar5Aes.cpp
+- $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Crypto/Rar5Aes.cpp
+-RarAes.o : ../../../../CPP/7zip/Crypto/RarAes.cpp
+- $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Crypto/RarAes.cpp
+ WzAes.o : ../../../../CPP/7zip/Crypto/WzAes.cpp
+ $(CXX) $(CXXFLAGS) ../../../../CPP/7zip/Crypto/WzAes.cpp
+ ZipCrypto.o : ../../../../CPP/7zip/Crypto/ZipCrypto.cpp
+@@ -869,8 +854,6 @@ OBJS=\
+ PeHandler.o \
+ PpmdHandler.o \
+ QcowHandler.o \
+- RarHandler.o \
+- Rar5Handler.o \
+ RpmHandler.o \
+ SplitHandler.o \
+ SquashfsHandler.o \
+@@ -973,9 +956,6 @@ OBJS=\
+ MyAesReg.o \
+ Pbkdf2HmacSha1.o \
+ RandGen.o \
+- Rar20Crypto.o \
+- Rar5Aes.o \
+- RarAes.o \
+ WzAes.o \
+ ZipCrypto.o \
+ ZipStrong.o \
+diff --git a/CPP/7zip/CMAKE/Format7zFree/CMakeLists.txt b/CPP/7zip/CMAKE/Format7zFree/CMakeLists.txt
+index 61f41f9..adc7117 100644
+--- a/CPP/7zip/CMAKE/Format7zFree/CMakeLists.txt
++++ b/CPP/7zip/CMAKE/Format7zFree/CMakeLists.txt
+@@ -126,8 +126,6 @@ add_library(7z MODULE
+ "../../../../CPP/7zip/Archive/PeHandler.cpp"
+ "../../../../CPP/7zip/Archive/PpmdHandler.cpp"
+ "../../../../CPP/7zip/Archive/QcowHandler.cpp"
+- "../../../../CPP/7zip/Archive/Rar/RarHandler.cpp"
+- "../../../../CPP/7zip/Archive/Rar/Rar5Handler.cpp"
+ "../../../../CPP/7zip/Archive/RpmHandler.cpp"
+ "../../../../CPP/7zip/Archive/SplitHandler.cpp"
+ "../../../../CPP/7zip/Archive/SquashfsHandler.cpp"
+@@ -230,9 +228,6 @@ add_library(7z MODULE
+ "../../../../CPP/7zip/Crypto/MyAesReg.cpp"
+ "../../../../CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp"
+ "../../../../CPP/7zip/Crypto/RandGen.cpp"
+- "../../../../CPP/7zip/Crypto/Rar20Crypto.cpp"
+- "../../../../CPP/7zip/Crypto/Rar5Aes.cpp"
+- "../../../../CPP/7zip/Crypto/RarAes.cpp"
+ "../../../../CPP/7zip/Crypto/WzAes.cpp"
+ "../../../../CPP/7zip/Crypto/ZipCrypto.cpp"
+ "../../../../CPP/7zip/Crypto/ZipStrong.cpp"
+diff --git a/CPP/7zip/Crypto/Sha1Cls.h b/CPP/7zip/Crypto/Sha1Cls.h
+index 71acbde..cde4a57 100644
+--- a/CPP/7zip/Crypto/Sha1Cls.h
++++ b/CPP/7zip/Crypto/Sha1Cls.h
+@@ -28,7 +28,6 @@ class CContext: public CContextBase
+ {
+ public:
+ void Update(const Byte *data, size_t size) throw() { Sha1_Update(&_s, data, size); }
+- void UpdateRar(Byte *data, size_t size /* , bool rar350Mode */) throw() { Sha1_Update_Rar(&_s, data, size /* , rar350Mode ? 1 : 0 */); }
+ void Final(Byte *digest) throw() { Sha1_Final(&_s, digest); }
+ };
+
+diff --git a/CPP/7zip/Guid.txt b/CPP/7zip/Guid.txt
+index 7edab6e..cc22992 100644
+--- a/CPP/7zip/Guid.txt
++++ b/CPP/7zip/Guid.txt
+@@ -151,7 +151,6 @@ Handler GUIDs:
+
+ 01 Zip
+ 02 BZip2
+- 03 Rar
+ 04 Arj
+ 05 Z
+ 06 Lzh
+@@ -168,7 +167,6 @@ Handler GUIDs:
+ C9 VDI
+ CA Qcow
+ CB GPT
+- CC Rar5
+ CD IHex
+ CE Hxs
+ CF TE
+diff --git a/CPP/7zip/QMAKE/Format7zFree/Format7zFree.pro b/CPP/7zip/QMAKE/Format7zFree/Format7zFree.pro
+index afa36d4..93c45c7 100644
+--- a/CPP/7zip/QMAKE/Format7zFree/Format7zFree.pro
++++ b/CPP/7zip/QMAKE/Format7zFree/Format7zFree.pro
+@@ -137,8 +137,6 @@ SOURCES += \
+ ../../../../CPP/7zip/Archive/PeHandler.cpp \
+ ../../../../CPP/7zip/Archive/PpmdHandler.cpp \
+ ../../../../CPP/7zip/Archive/QcowHandler.cpp \
+- ../../../../CPP/7zip/Archive/Rar/RarHandler.cpp \
+- ../../../../CPP/7zip/Archive/Rar/Rar5Handler.cpp \
+ ../../../../CPP/7zip/Archive/RpmHandler.cpp \
+ ../../../../CPP/7zip/Archive/SplitHandler.cpp \
+ ../../../../CPP/7zip/Archive/SquashfsHandler.cpp \
+@@ -241,9 +239,6 @@ SOURCES += \
+ ../../../../CPP/7zip/Crypto/MyAesReg.cpp \
+ ../../../../CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp \
+ ../../../../CPP/7zip/Crypto/RandGen.cpp \
+- ../../../../CPP/7zip/Crypto/Rar20Crypto.cpp \
+- ../../../../CPP/7zip/Crypto/Rar5Aes.cpp \
+- ../../../../CPP/7zip/Crypto/RarAes.cpp \
+ ../../../../CPP/7zip/Crypto/WzAes.cpp \
+ ../../../../CPP/7zip/Crypto/ZipCrypto.cpp \
+ ../../../../CPP/7zip/Crypto/ZipStrong.cpp \
+diff --git a/CPP/7zip/QMAKE/all.pro b/CPP/7zip/QMAKE/all.pro
+index a565ba8..6668619 100644
+--- a/CPP/7zip/QMAKE/all.pro
++++ b/CPP/7zip/QMAKE/all.pro
+@@ -4,7 +4,6 @@ SUBDIRS = 7za \
+ 7zr \
+ 7z_ \
+ Format7zFree \
+- Rar \
+ Lzham \
+ test_lib
+
+diff --git a/CPP/7zip/UI/Client7z/Client7z.cpp b/CPP/7zip/UI/Client7z/Client7z.cpp
+index d0eca6d..7f4e6e2 100644
+--- a/CPP/7zip/UI/Client7z/Client7z.cpp
++++ b/CPP/7zip/UI/Client7z/Client7z.cpp
+@@ -32,7 +32,7 @@ HINSTANCE g_hInstance = 0;
+ #endif
+
+ // Tou can find the list of all GUIDs in Guid.txt file.
+-// use another CLSIDs, if you want to support other formats (zip, rar, ...).
++// use another CLSIDs, if you want to support other formats (zip, ...).
+ // {23170F69-40C1-278A-1000-000110070000}
+
+ DEFINE_GUID(CLSID_CFormat7z,
+diff --git a/CPP/7zip/UI/Common/LoadCodecs.h b/CPP/7zip/UI/Common/LoadCodecs.h
+index ac9eeac..076bd1c 100644
+--- a/CPP/7zip/UI/Common/LoadCodecs.h
++++ b/CPP/7zip/UI/Common/LoadCodecs.h
+@@ -158,7 +158,6 @@ struct CArcInfoEx
+ void AddExts(const UString &ext, const UString &addExt);
+
+ bool IsSplit() const { return StringsAreEqualNoCase_Ascii(Name, "Split"); }
+- // bool IsRar() const { return StringsAreEqualNoCase_Ascii(Name, "Rar"); }
+
+ CArcInfoEx():
+ Flags(0),
+diff --git a/CPP/7zip/UI/Common/OpenArchive.cpp b/CPP/7zip/UI/Common/OpenArchive.cpp
+index 7d5b0c4..88ea5ab 100644
+--- a/CPP/7zip/UI/Common/OpenArchive.cpp
++++ b/CPP/7zip/UI/Common/OpenArchive.cpp
+@@ -1063,7 +1063,6 @@ static const char * const k_Formats_with_simple_signuature[] =
+ {
+ "7z"
+ , "xz"
+- , "rar"
+ , "bzip2"
+ , "gzip"
+ , "cab"
+@@ -1720,29 +1719,6 @@ HRESULT CArc::OpenStream2(const COpenOptions &op)
+ {
+ // signature search was here
+ }
+- else if (extension.IsEqualTo("000") || extension.IsEqualTo("001"))
+- {
+- int i = FindFormatForArchiveType(op.codecs, orderIndices, "rar");
+- if (i >= 0)
+- {
+- const size_t kBufSize = (1 << 10);
+- byteBuffer.Alloc(kBufSize);
+- size_t processedSize = kBufSize;
+- RINOK(ReadStream(op.stream, byteBuffer, &processedSize));
+- if (processedSize >= 16)
+- {
+- const Byte *buf = byteBuffer;
+- const Byte kRarHeader[] = { 0x52 , 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00 };
+- if (TestSignature(buf, kRarHeader, 7) && buf[9] == 0x73 && (buf[10] & 1) != 0)
+- {
+- orderIndices2.Add(orderIndices[i]);
+- orderIndices[i] = -1;
+- if (i >= (int)numFinded)
+- numFinded++;
+- }
+- }
+- }
+- }
+ else
+ {
+ const size_t kBufSize = (1 << 10);
+diff --git a/CPP/7zip/UI/FileManager/FM_rc.cpp b/CPP/7zip/UI/FileManager/FM_rc.cpp
+index 83578ed..034feed 100644
+--- a/CPP/7zip/UI/FileManager/FM_rc.cpp
++++ b/CPP/7zip/UI/FileManager/FM_rc.cpp
+@@ -821,8 +821,6 @@ REGISTER_STRINGTABLE(g_stringTable)
+
+ /////////////////////////////////////////////////////
+
+-#include "res/ParentFolder.h"
+-
+ SevenZipPanel::SevenZipPanel(MyFrame *frame, wxWindow *parent,int id,int panelIndex) :
+ wxPanel(parent,id) , m_frame(frame), _wList(0)
+ {
+@@ -840,7 +838,7 @@ REGISTER_STRINGTABLE(g_stringTable)
+ int sizes[] = {150, 250, 350, -1};
+ wxArrayString pathArray;
+ wxBoxSizer *pPathSizer = new wxBoxSizer(wxHORIZONTAL);
+- m_pBmpButtonParentFolder = new wxBitmapButton(this, kParentFolderID, wxGetBitmapFromMemory(PARENT_FOLDER), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
++ m_pBmpButtonParentFolder = new wxBitmapButton(this, kParentFolderID, wxArtProvider::GetBitmap(wxART_GO_DIR_UP, wxART_TOOLBAR, wxDefaultSize), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW);
+ m_pComboBoxPath = new wxComboBox(this, _comboBoxID, wxEmptyString, wxDefaultPosition, wxSize(300,-1), pathArray, wxCB_DROPDOWN | wxCB_SORT );
+ pPathSizer->Add(m_pBmpButtonParentFolder, 0, wxALL|wxEXPAND, 0);
+ pPathSizer->Add(m_pComboBoxPath, 1, wxALL|wxEXPAND, 5);
+diff --git a/CPP/ANDROID/Format7zFree/jni/Android.mk b/CPP/ANDROID/Format7zFree/jni/Android.mk
+index 7c74e73..48cb4fa 100644
+--- a/CPP/ANDROID/Format7zFree/jni/Android.mk
++++ b/CPP/ANDROID/Format7zFree/jni/Android.mk
+@@ -91,8 +91,6 @@ LOCAL_SRC_FILES := \
+ ../../../../CPP/7zip/Archive/PeHandler.cpp \
+ ../../../../CPP/7zip/Archive/PpmdHandler.cpp \
+ ../../../../CPP/7zip/Archive/QcowHandler.cpp \
+- ../../../../CPP/7zip/Archive/Rar/RarHandler.cpp \
+- ../../../../CPP/7zip/Archive/Rar/Rar5Handler.cpp \
+ ../../../../CPP/7zip/Archive/RpmHandler.cpp \
+ ../../../../CPP/7zip/Archive/SplitHandler.cpp \
+ ../../../../CPP/7zip/Archive/SquashfsHandler.cpp \
+@@ -195,9 +193,6 @@ LOCAL_SRC_FILES := \
+ ../../../../CPP/7zip/Crypto/MyAesReg.cpp \
+ ../../../../CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp \
+ ../../../../CPP/7zip/Crypto/RandGen.cpp \
+- ../../../../CPP/7zip/Crypto/Rar20Crypto.cpp \
+- ../../../../CPP/7zip/Crypto/Rar5Aes.cpp \
+- ../../../../CPP/7zip/Crypto/RarAes.cpp \
+ ../../../../CPP/7zip/Crypto/WzAes.cpp \
+ ../../../../CPP/7zip/Crypto/ZipCrypto.cpp \
+ ../../../../CPP/7zip/Crypto/ZipStrong.cpp \
+diff --git a/ChangeLog b/ChangeLog
+index daabd8e..f2a01d6 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -28,7 +28,6 @@ Version 16.00 (never published)
+ - 7z update bcj bugs were fixed.
+ - split (aaa.001) fixed
+ - iso loop fix
+- - rar4 multivol -stdin kpidSize
+ - drag and drop 1<2.txt
+ - memory access violation fix
+
+@@ -80,11 +79,6 @@ Version 15.12 (never published)
+ - "There are no errors" string after "Test" operation inside archive.
+ - The bugs in LZMA SDK were fixed (but these bugs are not related directly to 7-Zip's code).
+
+-
+- - From Windows version of 7-Zip 15.11 :
+- - Some bugs were fixed.
+- - 7-Zip 15.10 showed incorrect error message about missing volume for multivolume RAR archives.
+-
+ - ..../LZHAM added
+
+
+@@ -104,9 +98,6 @@ Version 15.10 beta
+ version (-m switch).
+ - Some bugs were fixed.
+ - extracting from solid wim archives worked incorrectly in some cases,
+- - Also there are some minor changes.
+- - 7-Zip can show the name of missing volume for multivolume RAR and VMDK archives.
+- - Some internal changes with 7-Zip Benchmark.
+
+ Version 15.09 beta
+ ==================
+@@ -128,8 +119,6 @@ Version 15.08 beta
+ Version 15.07 beta
+ ==================
+
+- - "bin/Codecs/Rar29.so" renamed to "bin/Codecs/Rar.so"
+-
+ - support for cygwin 64 bits
+
+ - support for cygwin 64 bits with asm
+@@ -153,15 +142,12 @@ Version 15.07 beta
+
+ - From Windows version of 7-zip 15.06 beta:
+
+- - 7-Zip now can extract RAR5 archives.
+ - 7-Zip now doesn't sort files by type while adding to solid 7z archive.
+ new -mqs switch to sort files by type while adding to solid 7z archive.
+ - The BUG in 7-Zip File Manager was fixed:
+ The "Move" operation to open 7z archive didn't delete empty files.
+ - The BUG in 15.05 was fixed:
+ console version added some text to the end of stdout stream, is -so switch was used.
+- - The BUG in 9.30 - 15.05 was fixed:
+- 7-Zip could not open multivolume sfx RAR archive.
+ - Some bugs were fixed.
+
+ - From Windows version of 7-zip 15.05 beta:
+@@ -214,9 +200,6 @@ Version 9.38
+ - bug #139 "password from commanline is visible in processes list"
+ Now the characters of the password are replaced with *.
+
+- - From Windows version of 7-zip
+- - bug#138 If you extract the password with # program crashes
+- 7z now supports long password in RAR 3 and 4.
+
+
+
+@@ -247,12 +230,6 @@ Version 9.22
+ - #3283518 : Asm/x{32,64}/7zCrcT8U.asm introduces executable stack
+
+
+-Version 9.20.1
+-==============
+-
+- - #3211479 "p7zip 9.20 - "unsupported method" with RAR files - " fixed
+- "install.sh" installs again "bin/Codecs/Rar29.so"
+-
+ Version 9.20
+ ============
+
+@@ -325,8 +302,6 @@ Version 9.13
+ - Some bugs were fixed.
+
+
+- - #2863580 "Crash in Rar decoder on a corrupted file" fixed
+-
+ - #2860898 "Dereferencing a zero pointer in cab handler" fixed
+
+ - #2860679 "Division by zero in cab decoder" fixed
+@@ -455,7 +430,7 @@ Version 4.59 (never published)
+ - It's allowed to use -t switch for "list" and "extract" commands.
+ - Some bugs were fixed.
+
+- - Bug : wrong timestamp for files extracted from .zip or .rar archives
++ - Bug : wrong timestamp for files extracted from .zip archives
+
+
+ Version 4.58
+@@ -468,8 +443,6 @@ Version 4.58
+ 2) -mcu switch: 7-Zip uses UTF-8, if there are non-ASCII symbols.
+ 3) -mcl switch: 7-Zip uses local code page.
+ - Now it's possible to store file creation time in 7z and ZIP archives (-mtc switch).
+- - 7-Zip now can unpack multivolume RAR archives created with
+- "old style volume names" scheme and names *.001, *.002, ...
+ - Now it's possible to use -mSW- and -mSW+ switches instead of -mSW=off and -mSW=on
+ - Some bugs were fixed.
+
+@@ -685,7 +658,7 @@ Version 4.44
+
+ - From Windows version of 7-zip 4.44 :
+ - 7za : Cab support
+- - Speed optimizations for LZMA, Deflate, BZip2 and unRAR.
++ - Speed optimizations for LZMA, Deflate and BZip2.
+ - fix : now, updating a crypted header archive keeps the crypted header
+
+ - fixes in the help displayed by 7za/7z/7zr.
+@@ -805,8 +778,6 @@ Version 4.38
+
+ - patch #1465026 - Patch for install.sh for packagers
+
+- - DosDateTimeToFileTime fixed (rar format)
+-
+ - contrib/VirtualFileSystemForMidnightCommander/u7z updated
+ (thank sgh_punk)
+
+@@ -923,8 +894,6 @@ Version 4.25
+ - Some bugs were fixed
+ - DOCS/MANUAL/exit_codes.htm added
+
+- - new plugin for 7z : RAR format support (extracting only)
+-
+ - better dependencies in makefile
+
+ Version 4.23
+@@ -1112,9 +1081,6 @@ Version 4.10
+ - new port of 7za from the source of 7za 4.10Beta for Windows
+ => p7zip now work on big endian CPU.
+
+- - 7z for Unix is not maintain anymore (because as the source of unrar plugin for 7z
+- is not available, 7z is unless on Unix).
+-
+ Version 0.91
+ ============
+ - add support for FreeBSD 5.2.1
+diff --git a/DOC/License.txt b/DOC/License.txt
+index 0bcbe26..5b0dfaa 100644
+--- a/DOC/License.txt
++++ b/DOC/License.txt
+@@ -5,15 +5,6 @@
+
+ 7-Zip Copyright (C) 1999-2016 Igor Pavlov.
+
+- Licenses for files are:
+-
+- 1) CPP/7zip/Compress/Rar* files: GNU LGPL + unRAR restriction
+- 2) All other files: GNU LGPL
+-
+- The GNU LGPL + unRAR restriction means that you must follow both
+- GNU LGPL rules and unRAR restriction rules.
+-
+-
+ GNU LGPL information
+ --------------------
+
+@@ -33,21 +24,5 @@
+ USA
+
+
+- unRAR restriction
+- -----------------
+-
+- The decompression engine for RAR archives was developed using source
+- code of unRAR program.
+- All copyrights to original unRAR code are owned by Alexander Roshal.
+-
+- The license for original unRAR code has the following restriction:
+-
+- The unRAR sources cannot be used to re-create the RAR compression algorithm,
+- which is proprietary. Distribution of modified unRAR sources in separate form
+- or as a part of other software is permitted, provided that it is clearly
+- stated in the documentation and source comments that the code may
+- not be used to develop a RAR (WinRAR) compatible archiver.
+-
+-
+ --
+ Igor Pavlov
+diff --git a/DOC/MANUAL/cmdline/switches/update.htm b/DOC/MANUAL/cmdline/switches/update.htm
+index 27385b1..0190fc1 100644
+--- a/DOC/MANUAL/cmdline/switches/update.htm
++++ b/DOC/MANUAL/cmdline/switches/update.htm
+@@ -139,7 +139,7 @@ someone in another time zone.
+ UTC file systems: NTFS
+ UTC archive formats: .zip with -mtc switch, 7z, tar, gzip2, iso, wim
+ Local time file systems : FAT, FAT32
+-Local time archive formats : rar, zip, cab
++Local time archive formats : zip, cab
+
+
+ Examples
+diff --git a/DOC/MANUAL/general/formats.htm b/DOC/MANUAL/general/formats.htm
+index 7996c5c..cd01bd6 100644
+--- a/DOC/MANUAL/general/formats.htm
++++ b/DOC/MANUAL/general/formats.htm
+@@ -47,7 +47,6 @@
+ NSIS | | nsis |
+ NTFS | | ntfs img |
+ MBR | | mbr |
+- RAR | | rar r00 |
+ RPM | | rpm |
+ PPMD | | ppmd |
+ QCOW2 | | qcow qcow2 qcow2c |
+diff --git a/DOC/Methods.txt b/DOC/Methods.txt
+index 1a1c54c..daa94e2 100644
+--- a/DOC/Methods.txt
++++ b/DOC/Methods.txt
+@@ -97,12 +97,6 @@ List of defined IDs
+ 02 -
+ 02 - BZip2
+
+- 03 - [Rar]
+- 01 - Rar1
+- 02 - Rar2
+- 03 - Rar3
+- 05 - Rar5
+-
+ 04 - [Arj]
+ 01 - Arj(1,2,3)
+ 02 - Arj4
+@@ -146,10 +140,6 @@ List of defined IDs
+ 01 - [Zip]
+ 01 - ZipCrypto (Main Zip crypto algo)
+
+- 03 - [RAR]
+- 02 -
+- 03 - Rar29AES (AES-128 + modified SHA-1)
+-
+ 07 - [7z]
+ 01 - 7zAES (AES-256 + SHA-256)
+
+diff --git a/DOC/readme.txt b/DOC/readme.txt
+index 4a6998c..00591d4 100644
+--- a/DOC/readme.txt
++++ b/DOC/readme.txt
+@@ -9,30 +9,9 @@
+ License Info
+ ------------
+
+-7-Zip is free software distributed under the GNU LGPL
+-(except for unRar code).
++7-Zip is free software distributed under the GNU LGPL.
+ read License.txt for more infomation about license.
+
+-Notes about unRAR license:
+-
+-Please check main restriction from unRar license:
+-
+- 2. The unRAR sources may be used in any software to handle RAR
+- archives without limitations free of charge, but cannot be used
+- to re-create the RAR compression algorithm, which is proprietary.
+- Distribution of modified unRAR sources in separate form or as a
+- part of other software is permitted, provided that it is clearly
+- stated in the documentation and source comments that the code may
+- not be used to develop a RAR (WinRAR) compatible archiver.
+-
+-In brief it means:
+-1) You can compile and use compiled files under GNU LGPL rules, since
+- unRAR license almost has no restrictions for compiled files.
+- You can link these compiled files to LGPL programs.
+-2) You can fix bugs in source code and use compiled fixed version.
+-3) You can not use unRAR sources to re-create the RAR compression algorithm.
+-
+-
+ LZMA SDK
+ --------
+
+@@ -96,7 +75,6 @@ DOC Documentation
+ ---
+ 7zFormat.txt - 7z format description
+ copying.txt - GNU LGPL license
+- unRarLicense.txt - License for unRAR part of source code
+ src-history.txt - Sources history
+ Methods.txt - Compression method IDs
+ readme.txt - Readme file
+diff --git a/DOC/src-history.txt b/DOC/src-history.txt
+index 6b48c80..dda8057 100644
+--- a/DOC/src-history.txt
++++ b/DOC/src-history.txt
+@@ -188,8 +188,6 @@ HISTORY of the 7-Zip source code
+ - 7-Zip now has 128 MB dictionary limit for 32-bit version:
+ It's for speed optimization: kNumLogBits = 9 + sizeof(size_t) / 2;
+ - TAR: 'D' link flag support.
+-- 7-Zip now can unpack multivolume RAR archives created with
+- "old style volume names" scheme (-vn switch) and names *.001, *.002, ...
+ - Fixed bugs:
+ - 7-Zip FM could not copy / move files to root network folders like \\COMPNAME\FOLDERNAME\
+ In case of move it removed original files.
+@@ -200,8 +198,6 @@ HISTORY of the 7-Zip source code
+ 7-zip tries to delete all extra fileds (except for WzAES).
+ And that code could hang.
+ - 7-Zip GUI didn't suggest BZip2 dictionary size used in previous run.
+- - If creation time stamp was included in .RAR archive, 7-zip used creation time stamp
+- as modification time stamp.
+
+ 4.58 alpha 2 2007-12-31
+ -------------------------
+@@ -251,7 +247,6 @@ HISTORY of the 7-Zip source code
+ stratup code, or you must add CPP/Common/CRC.cpp to your project.
+ - Method ID in .7z now is 63-bit integer (UInt64).
+ - Open error messages
+-- unRar 1.5 fixed
+ - unShrink fixed
+ - BUG of 4.43 beta and 4.44 beta was fixed.
+ 7-Zip compressing to .zip in multi-threading mode didn't work in some cases.
+@@ -433,11 +428,6 @@ HISTORY of the 7-Zip source code
+ contains common resurces
+
+
+-2.30 Beta 19 2002-04-11
+--------------------------
+-- SDK/Archive/Rar/Handler.cpp
+- supporting RAR29
+-
+ 2.30 Beta 18 2002-03-25
+ -------------------------
+ - SDK/Archive/Cab/MSZipDecoder.cpp
+diff --git a/GUI/Contents/Info.plist b/GUI/Contents/Info.plist
+index 71650e1..d60b262 100644
+--- a/GUI/Contents/Info.plist
++++ b/GUI/Contents/Info.plist
+@@ -311,24 +311,6 @@
+
+ CFBundleTypeExtensions
+
+- rar
+- RAR
+- .r00
+-
+- CFBundleTypeIconFile
+- p7zip
+- CFBundleTypeName
+- Rar
+- CFBundleTypeRole
+- Viewer
+- LSTypeIsPackage
+-
+- NSPersistentStoreTypeKey
+- XML
+-
+-
+- CFBundleTypeExtensions
+-
+ ace
+ ACE
+ .c00
+diff --git a/README b/README
+index b76407f..c03917b 100644
+--- a/README
++++ b/README
+@@ -8,7 +8,7 @@ p7zip is a port of the Windows programs 7z.exe and 7za.exe provided by 7-zip.
+ 7-zip is a file archiver with the highest compression ratio.
+ Homepage : www.7-zip.org
+
+- 7z uses plugins (7z.so and Codecs/Rar.so) to handle archives.
++ 7z uses plugins (7z.so) to handle archives.
+ 7za is a stand-alone executable (7za handles less archive formats than 7z).
+ 7zr is a light stand-alone executable that supports only 7z/LZMA/BCJ/BCJ2.
+
+@@ -63,7 +63,6 @@ BUILD :
+ make sfx : to build bin/7zCon.sfx (7za can now create SFX archive)
+ make 7z : to build bin/7z and its plugins :
+ - "bin/7z.so" (GNU LGPL + AES code license)
+- - "bin/Codecs/Rar.so" (GNU LGPL + unRAR restriction)
+ make 7zr : to build bin/7zr
+ make all : to build bin/7za and bin/7zCon.sfx
+ make all2 : to build bin/7za, bin/7z (with its plugins) and bin/7zCon.sfx
+@@ -74,7 +73,6 @@ BUILD :
+
+ make 7zG : to build bin/7zG and its plugins :
+ - "bin/7z.so" (GNU LGPL + AES code license)
+- - "bin/Codecs/Rar.so" (GNU LGPL + unRAR restriction)
+ make test_7zG : to test bin/7zG (extracting, archiving, ...)
+
+
+diff --git a/Utils/bin_to_sources.py b/Utils/bin_to_sources.py
+index 1be72ec..7da359a 100644
+--- a/Utils/bin_to_sources.py
++++ b/Utils/bin_to_sources.py
+@@ -13,9 +13,6 @@ file0='Utils/file_7zCon_sfx.py'
+ dir0='CPP/7zip/UI/Console'
+ file0='Utils/file_7z.py'
+
+-dir0='CPP/7zip/Compress/Rar'
+-file0='Utils/file_Codecs_Rar_so.py'
+-
+ dir0='CPP/7zip/Bundles/Format7zFree'
+ file0='Utils/file_7z_so.py'
+
+diff --git a/Utils/file_7z_so.py b/Utils/file_7z_so.py
+index 7ca9fff..43edb87 100644
+--- a/Utils/file_7z_so.py
++++ b/Utils/file_7z_so.py
+@@ -111,8 +111,6 @@ files_cpp=[
+ 'CPP/7zip/Archive/PeHandler.cpp',
+ 'CPP/7zip/Archive/PpmdHandler.cpp',
+ 'CPP/7zip/Archive/QcowHandler.cpp',
+- 'CPP/7zip/Archive/Rar/RarHandler.cpp',
+- 'CPP/7zip/Archive/Rar/Rar5Handler.cpp',
+ 'CPP/7zip/Archive/RpmHandler.cpp',
+ 'CPP/7zip/Archive/SplitHandler.cpp',
+ 'CPP/7zip/Archive/SquashfsHandler.cpp',
+@@ -215,9 +213,6 @@ files_cpp=[
+ 'CPP/7zip/Crypto/MyAesReg.cpp',
+ 'CPP/7zip/Crypto/Pbkdf2HmacSha1.cpp',
+ 'CPP/7zip/Crypto/RandGen.cpp',
+- 'CPP/7zip/Crypto/Rar20Crypto.cpp',
+- 'CPP/7zip/Crypto/Rar5Aes.cpp',
+- 'CPP/7zip/Crypto/RarAes.cpp',
+ 'CPP/7zip/Crypto/WzAes.cpp',
+ 'CPP/7zip/Crypto/ZipCrypto.cpp',
+ 'CPP/7zip/Crypto/ZipStrong.cpp',
+diff --git a/Utils/generate.py b/Utils/generate.py
+index 132024a..62c0456 100755
+--- a/Utils/generate.py
++++ b/Utils/generate.py
+@@ -281,7 +281,6 @@ import file_7zr
+ import file_7zG
+ import file_7zFM
+ import file_7z_so
+-import file_Codecs_Rar_so
+ import file_Codecs_Lzham_so
+ import file_LzmaCon
+ import file_Client7z
+@@ -440,43 +439,6 @@ LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
+ -I../../../include_windows
+ ''')
+
+-project_Codecs_Rar=Structure(name="Rar",name2="Rar",
+- type=TYPE_DLL,
+- need_AES=False,
+- includedirs=includedirs_7za,
+- defines=[ "EXTERNAL_CODECS", "_FILE_OFFSET_BITS=64", "_LARGEFILE_SOURCE", "_REENTRANT", "ENV_UNIX", "BREAK_HANDLER", "UNICODE", "_UNICODE", "UNIX_USE_WIN_FILE" ],
+- files_c=file_Codecs_Rar_so.files_c,
+- files_cpp=file_Codecs_Rar_so.files_cpp,
+- cmake_end='''
+-
+-find_library(DL_LIB dl)
+-
+-link_directories(${DL_LIB_PATH})
+-
+-IF(APPLE)
+- TARGET_LINK_LIBRARIES(Rar ${COREFOUNDATION_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
+-ELSE(APPLE)
+- IF(HAVE_PTHREADS)
+- TARGET_LINK_LIBRARIES(Rar ${CMAKE_THREAD_LIBS_INIT} dl)
+- ENDIF(HAVE_PTHREADS)
+-ENDIF(APPLE)
+-
+-''',
+-android_header=r'''
+-LOCAL_CFLAGS := -DANDROID_NDK -fexceptions \
+- -DNDEBUG -D_REENTRANT -DENV_UNIX \
+- -DEXTERNAL_CODECS \
+- -DBREAK_HANDLER \
+- -DUNICODE -D_UNICODE -DUNIX_USE_WIN_FILE \
+- -I../../../Windows \
+- -I../../../Common \
+- -I../../../../C \
+--I../../../myWindows \
+--I../../../ \
+--I../../../include_windows
+-''')
+-
+-
+
+ project_Codecs_Lzham=Structure(name="Lzham",name2="Lzham",
+ type=TYPE_DLL,
+@@ -762,7 +724,6 @@ generate_makefile_list('../CPP/7zip/Bundles/Alone/makefile.list',project_7za)
+ generate_makefile_list('../CPP/7zip/Bundles/Alone7z/makefile.list',project_7zr)
+ generate_makefile_list('../CPP/7zip/UI/Console/makefile.list',project_7z)
+ generate_makefile_list('../CPP/7zip/Bundles/Format7zFree/makefile.list',project_Format7zFree)
+-generate_makefile_list('../CPP/7zip/Compress/Rar/makefile.list',project_Codecs_Rar,'../../../../bin/Codecs')
+ generate_makefile_list('../CPP/7zip/Compress/Lzham/makefile.list',project_Codecs_Lzham,'../../../../bin/Codecs')
+ generate_makefile_list('../CPP/7zip/Bundles/SFXCon/makefile.list',project_7zCon_sfx)
+ generate_makefile_list('../CPP/7zip/UI/GUI/makefile.list',project_7zG)
+@@ -776,7 +737,6 @@ generate_pro('../CPP/7zip/QMAKE/7za/7za.pro',project_7za)
+ generate_pro('../CPP/7zip/QMAKE/7zr/7zr.pro',project_7zr)
+ generate_pro('../CPP/7zip/QMAKE/7z_/7z_.pro',project_7z)
+ generate_pro('../CPP/7zip/QMAKE/Format7zFree/Format7zFree.pro',project_Format7zFree)
+-generate_pro('../CPP/7zip/QMAKE/Rar/Rar.pro',project_Codecs_Rar)
+ generate_pro('../CPP/7zip/QMAKE/Lzham/Lzham.pro',project_Codecs_Lzham)
+
+ generate_premake4('../CPP/7zip/PREMAKE/premake4.lua',project_7za)
+diff --git a/contrib/qnx630sp3/qnx630sp3-shared b/contrib/qnx630sp3/qnx630sp3-shared
+index 6f5481f..ea07114 100644
+--- a/contrib/qnx630sp3/qnx630sp3-shared
++++ b/contrib/qnx630sp3/qnx630sp3-shared
+@@ -8,7 +8,7 @@ mv ./bin/7z ../${BIN} && mv ./bin/7za ../${BIN} && mv ./bin/7zr ../${BIN} && mv
+ make clean && \
+ cp makefile.qnx_shared.so makefile.machine && \
+ make 7z && \
+-mv ./bin/7z.so ../${BIN} && mv ./bin/Codecs/Rar.so ../${BIN}/Codecs && \
++mv ./bin/7z.so ../${BIN} && \
+ make clean && \
+ mv makefile.machine.bak makefile.machine
+ echo "All done - look for binaries in ../${BIN}"
+diff --git a/makefile b/makefile
+index 745c8ed..f8e8e33 100644
+--- a/makefile
++++ b/makefile
+@@ -31,7 +31,6 @@ depend:
+ $(MAKE) -C CPP/7zip/UI/Client7z depend
+ $(MAKE) -C CPP/7zip/UI/Console depend
+ $(MAKE) -C CPP/7zip/Bundles/Format7zFree depend
+- $(MAKE) -C CPP/7zip/Compress/Rar depend
+ $(MAKE) -C CPP/7zip/UI/GUI depend
+ $(MAKE) -C CPP/7zip/UI/FileManager depend
+
+@@ -42,7 +41,6 @@ sfx: common
+ common7z:common
+ $(MKDIR) bin/Codecs
+ $(MAKE) -C CPP/7zip/Bundles/Format7zFree all
+- $(MAKE) -C CPP/7zip/Compress/Rar all
+
+ lzham:common
+ $(MKDIR) bin/Codecs
+@@ -67,7 +65,6 @@ clean_C:
+ $(MAKE) -C CPP/7zip/UI/FileManager clean
+ $(MAKE) -C CPP/7zip/UI/GUI clean
+ $(MAKE) -C CPP/7zip/Bundles/Format7zFree clean
+- $(MAKE) -C CPP/7zip/Compress/Rar clean
+ $(MAKE) -C CPP/7zip/Compress/Lzham clean
+ $(MAKE) -C CPP/7zip/Bundles/LzmaCon clean2
+ $(MAKE) -C CPP/7zip/Bundles/AloneGCOV clean
+diff --git a/makefile.oldmake b/makefile.oldmake
+index afc681c..690af08 100644
+--- a/makefile.oldmake
++++ b/makefile.oldmake
+@@ -31,7 +31,6 @@ depend:
+ cd CPP/7zip/UI/Client7z ; $(MAKE) depend
+ cd CPP/7zip/UI/Console ; $(MAKE) depend
+ cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) depend
+- cd CPP/7zip/Compress/Rar ; $(MAKE) depend
+ cd CPP/7zip/UI/GUI ; $(MAKE) depend
+ cd CPP/7zip/UI/FileManager ; $(MAKE) depend
+
+@@ -42,7 +41,6 @@ sfx: common
+ common7z:common
+ $(MKDIR) bin/Codecs
+ cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) all
+- cd CPP/7zip/Compress/Rar ; $(MAKE) all
+
+ lzham:common
+ $(MKDIR) bin/Codecs
+@@ -67,7 +65,6 @@ clean_C:
+ cd CPP/7zip/UI/FileManager ; $(MAKE) clean
+ cd CPP/7zip/UI/GUI ; $(MAKE) clean
+ cd CPP/7zip/Bundles/Format7zFree ; $(MAKE) clean
+- cd CPP/7zip/Compress/Rar ; $(MAKE) clean
+ cd CPP/7zip/Compress/Lzham ; $(MAKE) clean
+ cd CPP/7zip/Bundles/LzmaCon ; $(MAKE) clean2
+ cd CPP/7zip/Bundles/AloneGCOV ; $(MAKE) clean
+diff --git a/makefile.qnx_shared.so b/makefile.qnx_shared.so
+index abd1caf..cff5485 100644
+--- a/makefile.qnx_shared.so
++++ b/makefile.qnx_shared.so
+@@ -1,5 +1,5 @@
+ ###################################################
+-# makefile.machine for "7z.so , Codecs/Rar.so" :
++# makefile.machine for "7z.so" :
+ # tested with p7zip-4.47_beta on qnx-6.3.0 sp3 x86 target
+
+ OPTFLAGS=-O -s
From 696cb41be78e514797c26d9c416c15c66f548364 Mon Sep 17 00:00:00 2001
From: Stefan Reichoer
Date: Sun, 4 Sep 2016 01:09:48 +0200
Subject: [PATCH 021/604] gnu: Add remind.
* gnu/packages/calendar.scm (remind): New variable.
---
gnu/packages/calendar.scm | 34 +++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/calendar.scm b/gnu/packages/calendar.scm
index 7f3d05d08e..cf858996e6 100644
--- a/gnu/packages/calendar.scm
+++ b/gnu/packages/calendar.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Kei Kebreau
;;; Copyright © 2016 Efraim Flashner
;;; Copyright © 2016 Troy Sankey
+;;; Copyright © 2016 Stefan Reichoer
;;;
;;; This file is part of GNU Guix.
;;;
@@ -26,6 +27,7 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build utils)
+ #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (gnu packages base)
@@ -34,7 +36,8 @@
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages perl)
- #:use-module (gnu packages python))
+ #:use-module (gnu packages python)
+ #:use-module (srfi srfi-26))
(define-public libical
(package
@@ -134,3 +137,32 @@ data units.")
able to synchronize with CalDAV servers through vdirsyncer.")
(home-page "http://lostpackets.de/khal/")
(license expat)))
+
+(define-public remind
+ (package
+ (name "remind")
+ (version "3.1.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.roaringpenguin.com/files/download/"
+ "remind-"
+ (string-join (map (cut string-pad <> 2 #\0)
+ (string-split version #\.))
+ ".")
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1hcfcxz5fjzl7606prlb7dgls5kr8z3wb51h48s6qm8ang0b9nla"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f)) ;no "check" target
+ (home-page "http://www.roaringpenguin.com/products/remind/")
+ (synopsis "Sophisticated calendar and alarm program")
+ (description
+ "Remind allows you to remind yourself of upcoming events and appointments.
+Each reminder or alarm can consist of a message sent to standard output, or a
+program to be executed. It also features: sophisticated date calculation,
+moon phases, sunrise/sunset, Hebrew calendar, alarms, PostScript output and
+proper handling of holidays.")
+ (license gpl2)))
From f7c9b01f29a3e7a347b9b47db06a7cf1746df521 Mon Sep 17 00:00:00 2001
From: Rene Saavedra
Date: Sun, 4 Sep 2016 00:05:11 -0500
Subject: [PATCH 022/604] gnu: nano: Update to 2.7.0.
* gnu/packages/nano.scm (nano): Update to 2.7.0.
Signed-off-by: Leo Famulari
---
gnu/packages/nano.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm
index eabfaa5c96..3c4c699983 100644
--- a/gnu/packages/nano.scm
+++ b/gnu/packages/nano.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012 Nikita Karetnikov
;;; Copyright © 2015, 2016 Efraim Flashner
+;;; Copyright © 2016 Rene Saavedra
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,7 +29,7 @@
(define-public nano
(package
(name "nano")
- (version "2.5.3")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
@@ -36,7 +37,7 @@
version ".tar.gz"))
(sha256
(base32
- "1vhjrcydcfxqq1719vcsvqqnbjbq2523m00dhzag5vwzkc961c5j"))))
+ "1hzazcrbwjqiw89jjvlj97q0wf385qqkzcm0870pdrixiv7yklax"))))
(build-system gnu-build-system)
(inputs
`(("gettext" ,gnu-gettext)
From 14d5ca2e2e57643b6b4acfb980b18b7474c27e7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Sat, 3 Sep 2016 00:17:27 +0200
Subject: [PATCH 023/604] ui: Initialize %FILE-PORT-NAME-CANONICALIZATION to
#f.
This avoids loads of needless 'stat' calls due to the default 'relative
setting and the 'canonicalize-path' calls it leads to. This was
especially visible when 'guix substitute' access files in
/var/guix/substitute/cache.
* guix/ui.scm (run-guix-command): Set %FILE-PORT-NAME-CANONICALIZATION
to #f.
---
guix/ui.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/guix/ui.scm b/guix/ui.scm
index 906b349845..452d16308e 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -1187,7 +1187,9 @@ found."
(let ((command-main (module-ref module
(symbol-append 'guix- command))))
(parameterize ((program-name command))
- (apply command-main args))))
+ ;; Disable canonicalization so we don't don't stat unreasonably.
+ (with-fluids ((%file-port-name-canonicalization #f))
+ (apply command-main args)))))
(define (run-guix . args)
"Run the 'guix' command defined by command line ARGS.
From 2ff0da025745dd4ddce45d34c89fdf39190f9104 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Sun, 4 Sep 2016 23:39:17 +0200
Subject: [PATCH 024/604] file-systems: Always use (guix build syscalls).
* gnu/build/file-systems.scm: Use (guix build syscalls)
unconditionally. Override the 'mount' and 'umount' bindings
when (guile) provides them.
(MS_RDONLY, MS_NOSUID, MS_NODEV, MS_NOEXEC, MS_REMOUNT)
(MS_BIND, MS_MOVE): Remove.
* guix/build/syscalls.scm (%libc-errno-pointer): Add
'false-if-exception' around 'dynamic-func'.
---
gnu/build/file-systems.scm | 34 ++++++++++++----------------------
guix/build/syscalls.scm | 3 ++-
2 files changed, 14 insertions(+), 23 deletions(-)
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index f277cbfa34..f1fccbdf2e 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -19,6 +19,7 @@
(define-module (gnu build file-systems)
#:use-module (guix build utils)
#:use-module (guix build bournish)
+ #:use-module (guix build syscalls)
#:use-module (rnrs io ports)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
@@ -41,17 +42,16 @@
uuid->string
string->uuid
- MS_RDONLY
- MS_NOSUID
- MS_NODEV
- MS_NOEXEC
- MS_BIND
- MS_MOVE
bind-mount
mount-flags->bit-mask
check-file-system
- mount-file-system))
+ mount-file-system)
+ #:re-export (mount
+ umount
+ MS_BIND
+ MS_MOVE
+ MS_RDONLY))
;;; Commentary:
;;;
@@ -61,21 +61,11 @@
;;; Code:
;; 'mount' is already defined in the statically linked Guile used for initial
-;; RAM disks, but in all other cases the (guix build syscalls) module contains
-;; the mount binding.
-(eval-when (expand load eval)
- (unless (defined? 'mount)
- (module-use! (current-module)
- (resolve-interface '(guix build syscalls)))))
-
-;; Linux mount flags, from libc's .
-(define MS_RDONLY 1)
-(define MS_NOSUID 2)
-(define MS_NODEV 4)
-(define MS_NOEXEC 8)
-(define MS_REMOUNT 32)
-(define MS_BIND 4096)
-(define MS_MOVE 8192)
+;; RAM disks, in which case the bindings in (guix build syscalls) do not work
+;; (the FFI bindings do not work there). Override them in that case.
+(when (module-defined? the-scm-module 'mount)
+ (set! mount (@ (guile) mount))
+ (set! umount (@ (guile) umount)))
(define (bind-mount source target)
"Bind-mount SOURCE at TARGET."
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index c663899160..e5315ed6f3 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -283,7 +283,8 @@ given TYPES. READ uses WRAP-FIELDS to return its value."
(define %libc-errno-pointer
;; Glibc's 'errno' pointer.
- (let ((errno-loc (dynamic-func "__errno_location" (dynamic-link))))
+ (let ((errno-loc (false-if-exception
+ (dynamic-func "__errno_location" (dynamic-link)))))
(and errno-loc
(let ((proc (pointer->procedure '* errno-loc '())))
(proc)))))
From 7ca87354db53fd1e1a7a3dfeddb9a598ea064bbe Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Sun, 4 Sep 2016 23:41:53 +0200
Subject: [PATCH 025/604] Add (guix modules).
* guix/modules.scm, tests/modules.scm: New files.
* Makefile.am (MODULES, SCM_TESTS): Add them.
* doc/guix.texi (G-Expressions): Add an example of
'source-module-closure'.
---
Makefile.am | 2 +
doc/guix.texi | 22 +++++++
guix/modules.scm | 155 ++++++++++++++++++++++++++++++++++++++++++++++
tests/modules.scm | 45 ++++++++++++++
4 files changed, 224 insertions(+)
create mode 100644 guix/modules.scm
create mode 100644 tests/modules.scm
diff --git a/Makefile.am b/Makefile.am
index 165dfe9727..1a34e0d5ca 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,6 +41,7 @@ MODULES = \
guix/combinators.scm \
guix/utils.scm \
guix/sets.scm \
+ guix/modules.scm \
guix/download.scm \
guix/git-download.scm \
guix/hg-download.scm \
@@ -222,6 +223,7 @@ SCM_TESTS = \
tests/pk-crypto.scm \
tests/pki.scm \
tests/sets.scm \
+ tests/modules.scm \
tests/gnu-maintenance.scm \
tests/substitute.scm \
tests/builders.scm \
diff --git a/doc/guix.texi b/doc/guix.texi
index d6c041862d..b6ca34a2f3 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -3825,6 +3825,28 @@ In this example, the @code{(guix build utils)} module is automatically
pulled into the isolated build environment of our gexp, such that
@code{(use-modules (guix build utils))} works as expected.
+@cindex module closure
+@findex source-module-closure
+Usually you want the @emph{closure} of the module to be imported---i.e.,
+the module itself and all the modules it depends on---rather than just
+the module; failing to do that, attempts to use the module will fail
+because of missing dependent modules. The @code{source-module-closure}
+procedure computes the closure of a module by looking at its source file
+headers, which comes in handy in this case:
+
+@example
+(use-modules (guix modules)) ;for 'source-module-closure'
+
+(with-imported-modules (source-module-closure
+ '((guix build utils)
+ (gnu build vm)))
+ (gexp->derivation "something-with-vms"
+ #~(begin
+ (use-modules (guix build utils)
+ (gnu build vm))
+ @dots{})))
+@end example
+
The syntactic form to construct gexps is summarized below.
@deffn {Scheme Syntax} #~@var{exp}
diff --git a/guix/modules.scm b/guix/modules.scm
new file mode 100644
index 0000000000..24f613ff4e
--- /dev/null
+++ b/guix/modules.scm
@@ -0,0 +1,155 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Ludovic Courtès
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see .
+
+(define-module (guix modules)
+ #:use-module ((guix utils) #:select (memoize))
+ #:use-module (guix sets)
+ #:use-module (srfi srfi-26)
+ #:use-module (ice-9 match)
+ #:export (source-module-closure
+ live-module-closure
+ guix-module-name?))
+
+;;; Commentary:
+;;;
+;;; This module provides introspection tools for Guile modules at the source
+;;; level. Namely, it allows you to determine the closure of a module; it
+;;; does so just by reading the 'define-module' clause of the module and its
+;;; dependencies. This is primarily useful as an argument to
+;;; 'with-imported-modules'.
+;;;
+;;; Code:
+
+(define (colon-symbol? obj)
+ "Return true if OBJ is a symbol that starts with a colon."
+ (and (symbol? obj)
+ (string-prefix? ":" (symbol->string obj))))
+
+(define (colon-symbol->keyword symbol)
+ "Convert SYMBOL to a keyword after stripping its initial ':'."
+ (symbol->keyword
+ (string->symbol (string-drop (symbol->string symbol) 1))))
+
+(define (extract-dependencies clauses)
+ "Return the list of modules imported according to the given 'define-module'
+CLAUSES."
+ (let loop ((clauses clauses)
+ (result '()))
+ (match clauses
+ (()
+ (reverse result))
+ ((#:use-module (module (or #:select #:hide #:prefix #:renamer) _)
+ rest ...)
+ (loop rest (cons module result)))
+ ((#:use-module module rest ...)
+ (loop rest (cons module result)))
+ ((#:autoload module _ rest ...)
+ (loop rest (cons module result)))
+ (((or #:export #:re-export #:export-syntax #:re-export-syntax
+ #:replace #:version)
+ _ rest ...)
+ (loop rest result))
+ (((or #:pure #:no-backtrace) rest ...)
+ (loop rest result))
+ (((? colon-symbol? symbol) rest ...)
+ (loop (cons (colon-symbol->keyword symbol) rest)
+ result)))))
+
+(define module-file-dependencies
+ (memoize
+ (lambda (file)
+ "Return the list of the names of modules that the Guile module in FILE
+depends on."
+ (call-with-input-file file
+ (lambda (port)
+ (match (read port)
+ (('define-module name clauses ...)
+ (extract-dependencies clauses))
+ ;; XXX: R6RS 'library' form is ignored.
+ (_
+ '())))))))
+
+(define (module-name->file-name module)
+ "Return the file name for MODULE."
+ (string-append (string-join (map symbol->string module) "/")
+ ".scm"))
+
+(define (guix-module-name? name)
+ "Return true if NAME (a list of symbols) denotes a Guix or GuixSD module."
+ (match name
+ (('guix _ ...) #t)
+ (('gnu _ ...) #t)
+ (_ #f)))
+
+(define* (source-module-dependencies module #:optional (load-path %load-path))
+ "Return the modules used by MODULE by looking at its source code."
+ ;; The (system syntax) module is a special-case because it has no
+ ;; corresponding source file (as of Guile 2.0.)
+ (if (equal? module '(system syntax))
+ '()
+ (module-file-dependencies
+ (search-path load-path
+ (module-name->file-name module)))))
+
+(define* (module-closure modules
+ #:key
+ (select? guix-module-name?)
+ (dependencies source-module-dependencies))
+ "Return the closure of MODULES, calling DEPENDENCIES to determine the list
+of modules used by a given module. MODULES and the result are a list of Guile
+module names. Only modules that match SELECT? are considered."
+ (let loop ((modules modules)
+ (result '())
+ (visited (set)))
+ (match modules
+ (()
+ (reverse result))
+ ((module rest ...)
+ (cond ((set-contains? visited module)
+ (loop rest result visited))
+ ((select? module)
+ (loop (append (dependencies module) rest)
+ (cons module result)
+ (set-insert module visited)))
+ (else
+ (loop rest result visited)))))))
+
+(define* (source-module-closure modules
+ #:optional (load-path %load-path)
+ #:key (select? guix-module-name?))
+ "Return the closure of MODULES by reading 'define-module' forms in their
+source code. MODULES and the result are a list of Guile module names. Only
+modules that match SELECT? are considered."
+ (module-closure modules
+ #:dependencies (cut source-module-dependencies <> load-path)
+ #:select? select?))
+
+(define* (live-module-closure modules
+ #:key (select? guix-module-name?))
+ "Return the closure of MODULES, determined by looking at live (loaded)
+module information. MODULES and the result are a list of Guile module names.
+Only modules that match SELECT? are considered."
+ (define (dependencies module)
+ (map module-name
+ (delq the-scm-module (module-uses (resolve-module module)))))
+
+ (module-closure modules
+ #:dependencies dependencies
+ #:select? select?))
+
+;;; modules.scm ends here
diff --git a/tests/modules.scm b/tests/modules.scm
new file mode 100644
index 0000000000..04945e531b
--- /dev/null
+++ b/tests/modules.scm
@@ -0,0 +1,45 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Ludovic Courtès
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see .
+
+(define-module (test-modules)
+ #:use-module (guix modules)
+ #:use-module ((guix build-system gnu) #:select (%gnu-build-system-modules))
+ #:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-64))
+
+(test-begin "modules")
+
+(test-assert "closure of (guix build gnu-build-system)"
+ (lset= equal?
+ (live-module-closure '((guix build gnu-build-system)))
+ (source-module-closure '((guix build gnu-build-system)))
+ %gnu-build-system-modules
+ (source-module-closure %gnu-build-system-modules)
+ (live-module-closure %gnu-build-system-modules)))
+
+(test-assert "closure of (gnu build install)"
+ (lset= equal?
+ (live-module-closure '((gnu build install)))
+ (source-module-closure '((gnu build install)))))
+
+(test-assert "closure of (gnu build vm)"
+ (lset= equal?
+ (live-module-closure '((gnu build vm)))
+ (source-module-closure '((gnu build vm)))))
+
+(test-end)
From 239c6e276214813f59f761c9dc5cc0e9d266b49b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Sun, 4 Sep 2016 23:42:50 +0200
Subject: [PATCH 026/604] system: Use 'source-module-closure' where needed.
* gnu/system/vm.scm (%vm-module-closure): Remove.
(expression->derivation-in-linux-vm): Use 'source-module-closure'
instead of %VM-MODULE-CLOSURE.
(qemu-image): Likewise.
* gnu/system/linux-initrd.scm (expression->initrd): Likewise.
(flat-linux-module-directory, base-initrd): Likewise.
* gnu/system/mapped-devices.scm (open-luks-device): Likewise.
---
gnu/system/linux-initrd.scm | 25 +++++++++++--------------
gnu/system/mapped-devices.scm | 5 +++--
gnu/system/vm.scm | 22 +++++-----------------
3 files changed, 19 insertions(+), 33 deletions(-)
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index bbaa5c0f89..174239a566 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -27,6 +27,7 @@
#:select (%store-prefix))
#:use-module ((guix derivations)
#:select (derivation->output-path))
+ #:use-module (guix modules)
#:use-module (gnu packages compression)
#:use-module (gnu packages linux)
#:use-module (gnu packages guile)
@@ -66,10 +67,8 @@ the derivations referenced by EXP are automatically copied to the initrd."
(mlet %store-monad ((init (gexp->script "init" exp
#:guile guile)))
(define builder
- (with-imported-modules '((guix cpio)
- (guix build utils)
- (guix build store-copy)
- (gnu build linux-initrd))
+ (with-imported-modules (source-module-closure
+ '((gnu build linux-initrd)))
#~(begin
(use-modules (gnu build linux-initrd))
@@ -88,9 +87,9 @@ the derivations referenced by EXP are automatically copied to the initrd."
"Return a flat directory containing the Linux kernel modules listed in
MODULES and taken from LINUX."
(define build-exp
- (with-imported-modules '((guix build utils)
- (guix elf)
- (gnu build linux-modules))
+ (with-imported-modules (source-module-closure
+ '((guix build utils)
+ (gnu build linux-modules)))
#~(begin
(use-modules (ice-9 match) (ice-9 regex)
(srfi srfi-1)
@@ -223,13 +222,11 @@ loaded at boot time in the order in which they appear."
(mlet %store-monad ((kodir (flat-linux-module-directory linux
linux-modules)))
(expression->initrd
- (with-imported-modules '((guix build bournish)
- (guix build utils)
- (guix build syscalls)
- (gnu build linux-boot)
- (gnu build linux-modules)
- (gnu build file-systems)
- (guix elf))
+ (with-imported-modules (source-module-closure
+ '((gnu build linux-boot)
+ (guix build utils)
+ (guix build bournish)
+ (gnu build file-systems)))
#~(begin
(use-modules (gnu build linux-boot)
(guix build utils)
diff --git a/gnu/system/mapped-devices.scm b/gnu/system/mapped-devices.scm
index 7b91fcfc41..2ce35eaa07 100644
--- a/gnu/system/mapped-devices.scm
+++ b/gnu/system/mapped-devices.scm
@@ -20,6 +20,7 @@
(define-module (gnu system mapped-devices)
#:use-module (guix gexp)
#:use-module (guix records)
+ #:use-module (guix modules)
#:use-module (gnu services)
#:use-module (gnu services shepherd)
#:autoload (gnu packages cryptsetup) (cryptsetup)
@@ -95,8 +96,8 @@
(define (open-luks-device source target)
"Return a gexp that maps SOURCE to TARGET as a LUKS device, using
'cryptsetup'."
- (with-imported-modules '((gnu build file-systems)
- (guix build bournish))
+ (with-imported-modules (source-module-closure
+ '((gnu build file-systems)))
#~(let ((source #$source))
;; XXX: 'use-modules' should be at the top level.
(use-modules (rnrs bytevectors) ;bytevector?
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index c31e3a80ef..4c53edc0cf 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -26,6 +26,7 @@
#:use-module (guix packages)
#:use-module (guix monads)
#:use-module (guix records)
+ #:use-module (guix modules)
#:use-module ((gnu build vm)
#:select (qemu-command))
@@ -90,21 +91,6 @@
(options "trans=virtio")
(check? #f))))
-(define %vm-module-closure
- ;; The closure of (gnu build vm), roughly.
- ;; FIXME: Compute it automatically.
- '((gnu build vm)
- (gnu build install)
- (gnu build linux-boot)
- (gnu build linux-modules)
- (gnu build file-systems)
- (guix elf)
- (guix records)
- (guix build utils)
- (guix build syscalls)
- (guix build bournish)
- (guix build store-copy)))
-
(define* (expression->derivation-in-linux-vm name exp
#:key
(system (%current-system))
@@ -148,7 +134,8 @@ made available under the /xchg CIFS share."
(define builder
;; Code that launches the VM that evaluates EXP.
- (with-imported-modules %vm-module-closure
+ (with-imported-modules (source-module-closure '((guix build utils)
+ (gnu build vm)))
#~(begin
(use-modules (guix build utils)
(gnu build vm))
@@ -205,7 +192,8 @@ register INPUTS in the store database of the image so that Guix can be used in
the image."
(expression->derivation-in-linux-vm
name
- (with-imported-modules %vm-module-closure
+ (with-imported-modules (source-module-closure '((gnu build vm)
+ (guix build utils)))
#~(begin
(use-modules (gnu build vm)
(guix build utils))
From e49e74f5c43572628ed903b9ddbe208a006a68da Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Mon, 5 Sep 2016 10:47:15 +0300
Subject: [PATCH 027/604] gnu: bitcoin-core: Update to 0.13.0.
* gnu/packages/finance.scm (bitcoin-core): Update to 0.13.0.
[native-inputs]: Use python-3 over python-2.
---
gnu/packages/finance.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 21a22768fd..57c9f60bac 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -46,7 +46,7 @@
(define-public bitcoin-core
(package
(name "bitcoin-core")
- (version "0.12.1")
+ (version "0.13.0")
(source (origin
(method url-fetch)
(uri
@@ -54,11 +54,11 @@
version "/bitcoin-" version ".tar.gz"))
(sha256
(base32
- "16g1cnasy24275kxrs0cg48nbx1dk54xvxm1pdsvk7y30mn3pz08"))))
+ "1nhw2s8p1hg6715l6kc1c7psqhkzfwhfrrgiar17zccvd14p0z8c"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
- ("python" ,python-2) ; for the tests
+ ("python" ,python) ; for the tests
("util-linux" ,util-linux))) ; provides the hexdump command for tests
(inputs
`(("bdb" ,bdb-5.3) ; with 6.2.23, there is an error: ambiguous overload
From d84a5861de97856ad18cf8939eab86cbfab1eb93 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Mon, 5 Sep 2016 11:19:20 +0300
Subject: [PATCH 028/604] gnu: libvpx: Update to 1.6.0.
* gnu/packages/video.scm (libvpx): Update to 1.6.0.
---
gnu/packages/video.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 5ec1424b22..864e691666 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -887,7 +887,7 @@ access to mpv's powerful playback capabilities.")
(define-public libvpx
(package
(name "libvpx")
- (version "1.5.0")
+ (version "1.6.0")
(source (origin
(method url-fetch)
(uri (string-append "http://storage.googleapis.com/"
@@ -895,7 +895,7 @@ access to mpv's powerful playback capabilities.")
name "-" version ".tar.bz2"))
(sha256
(base32
- "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h"))
+ "1basd6dda5di9p7jhc0f4f52wzm9c3hsravqspw6ibpcn5gbpbyh"))
(patches (search-patches "libvpx-CVE-2016-2818.patch"))))
(build-system gnu-build-system)
(arguments
From 818db70872312c128b1a69466919b6dd8ec890b1 Mon Sep 17 00:00:00 2001
From: "John J. Foerch"
Date: Wed, 3 Aug 2016 21:36:52 -0500
Subject: [PATCH 029/604] gnu: Add ola.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* gnu/packages/ola.scm (ola): New variable.
Signed-off-by: Ludovic Courtès
---
gnu/local.mk | 1 +
gnu/packages/lighting.scm | 75 +++++++++++++++++++++++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100644 gnu/packages/lighting.scm
diff --git a/gnu/local.mk b/gnu/local.mk
index 9132c94717..50363ef026 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -213,6 +213,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/libusb.scm \
%D%/packages/libunwind.scm \
%D%/packages/libupnp.scm \
+ %D%/packages/lighting.scm \
%D%/packages/links.scm \
%D%/packages/linux.scm \
%D%/packages/lirc.scm \
diff --git a/gnu/packages/lighting.scm b/gnu/packages/lighting.scm
new file mode 100644
index 0000000000..5101fba208
--- /dev/null
+++ b/gnu/packages/lighting.scm
@@ -0,0 +1,75 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 John J. Foerch
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see .
+
+(define-module (gnu packages lighting)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages gnunet)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages libftdi)
+ #:use-module (gnu packages libusb)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf))
+
+(define-public ola
+ (package
+ (name "ola")
+ (version "0.10.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/OpenLightingProject/ola/releases/download/"
+ version "/ola-" version ".tar.gz"))
+ (sha256
+ (base32
+ "09zx1c8nkj29shfdzkahrh9397m3mwnsy0gj7jrb63f89f3n2vlq"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("bison" ,bison)
+ ("cppunit" ,cppunit)
+ ("flex" ,flex)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libftdi" ,libftdi)
+ ("libmicrohttpd" ,libmicrohttpd)
+ ("libusb" ,libusb)
+ ("libuuid" ,util-linux)
+ ("zlib" ,zlib)))
+ (propagated-inputs
+ `(("protobuf" ,protobuf))) ;; for pkg-config --libs libola
+ (arguments
+ `(;; G++ >= 4.8 macro expansion tracking requires lots of memory, causing
+ ;; build to fail on low memory systems. We disable that with the
+ ;; following configure flags.
+ #:configure-flags (list "CXXFLAGS=-ftrack-macro-expansion=0")))
+ (synopsis "Framework for controlling entertainment lighting equipment")
+ (description "The Open Lighting Architecture is a framework for lighting
+control information. It supports a range of protocols and over a dozen USB
+devices. It can run as a standalone service, which is useful for converting
+signals between protocols, or alternatively using the OLA API, it can be used
+as the backend for lighting control software. OLA runs on many different
+platforms including ARM, which makes it a perfect fit for low cost Ethernet to
+DMX gateways.")
+ (home-page "https://www.openlighting.org/ola")
+ (license license:lgpl2.1+)))
From 24262239da96eeabb0840c178ac6c80792e405c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20Lassieur?=
Date: Sun, 4 Sep 2016 22:42:35 +0200
Subject: [PATCH 030/604] gnu: Add mb2md.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* gnu/packages/mail.scm (mb2md): New variable.
Signed-off-by: Ludovic Courtès
---
gnu/packages/mail.scm | 52 +++++++++++++++++++++++++++++++++++++++++--
1 file changed, 50 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index c07bc529d0..3c29a9558a 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -16,6 +16,7 @@
;;; Copyright © 2016 Alex Kost
;;; Copyright © 2016 Troy Sankey
;;; Copyright © 2016 ng0
+;;; Copyright © 2016 Clément Lassieur
;;;
;;; This file is part of GNU Guix.
;;;
@@ -77,14 +78,16 @@
#:use-module (gnu packages xorg)
#:use-module ((guix licenses)
#:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
- non-copyleft (expat . license:expat) bsd-3))
+ non-copyleft (expat . license:expat) bsd-3
+ public-domain))
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
- #:use-module (guix build-system python))
+ #:use-module (guix build-system python)
+ #:use-module (guix build-system trivial))
(define-public mailutils
(package
@@ -1308,3 +1311,48 @@ Khard can also be used from within the email client @command{mutt}.")
(description "Mail::SPF is the Sender Policy Framework implemented
in Perl.")
(license bsd-3)))
+
+(define-public mb2md
+ (package
+ (name "mb2md")
+ (version "3.20")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://batleth.sapienti-sat.org/projects/mb2md/mb2md-"
+ version ".pl.gz"))
+ (sha256
+ (base32
+ "0bvkky3c90738h3skd2f1b2yy5xzhl25cbh9w2dy97rs86ssjidg"))))
+ (build-system trivial-build-system)
+ (arguments
+ '(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (bin (string-append out "/bin"))
+ (perl (assoc-ref %build-inputs "perl"))
+ (gzip (assoc-ref %build-inputs "gzip"))
+ (perl-timedate (assoc-ref %build-inputs "perl-timedate"))
+ (perl5lib (string-append perl-timedate "/lib/perl5/site_perl")))
+ (mkdir-p bin)
+ (with-directory-excursion bin
+ (copy-file source "mb2md.gz")
+ (system* (string-append gzip "/bin/gzip") "-d" "mb2md.gz")
+ (substitute* "mb2md"
+ (("#!/usr/bin/perl")
+ (string-append "#!/usr/bin/perl -I " perl5lib)))
+ (patch-shebang "mb2md" (list (string-append perl "/bin")))
+ (chmod "mb2md" #o555))
+ #t))))
+ (native-inputs `(("gzip", gzip)))
+ (inputs `(("perl" ,perl)
+ ("perl-timedate" ,perl-timedate)))
+ (home-page "http://batleth.sapienti-sat.org/projects/mb2md/")
+ (synopsis "Mbox to maildir converter")
+ (description
+ "Mb2md is a Perl script that takes one or more mbox format files and
+converts them to maildir format directories.")
+ (license public-domain)))
From 35b380648b063db9a8b11352b1ae85d8f1ff7c70 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Mon, 5 Sep 2016 13:13:30 +0300
Subject: [PATCH 031/604] gnu: Remove elementary, evas-generic-loaders,
emotion-generic-players.
* gnu/packages/enlightenment.scm (elementary, evas-generic-loaders)
(emotion-generic-players): Remove variables.
These packages were absorbed by efl-1.18.0.
---
gnu/packages/enlightenment.scm | 84 ----------------------------------
1 file changed, 84 deletions(-)
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index d465da9d71..7cd11b59a2 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -149,90 +149,6 @@ removable devices or support for multimedia.")
;; Different parts are under different licenses.
(license (list license:bsd-2 license:lgpl2.1 license:zlib))))
-(define-public elementary
- (package
- (name "elementary")
- (version "1.17.1")
- (source (origin
- (method url-fetch)
- (uri
- (string-append "https://download.enlightenment.org/rel/libs/"
- "elementary/elementary-" version ".tar.xz"))
- (sha256
- (base32
- "149xjq4z71l44w1kd8zks9b2g0wjc9656w46hzd27b58afj1dqc5"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (propagated-inputs
- `(("efl" ,efl))) ; elementary.pc, elementary-cxx.pc
- (home-page "https://www.enlightenment.org")
- (synopsis "Widget library of Enlightenment world")
- (description
- "Elementary is a widget library/toolkit, part of the Enlightenment
-Foundation Libraries. It is build upon Edje and Evas libraries and uses
-full capabilities of EFL.")
- (license license:lgpl2.1)))
-
-(define-public evas-generic-loaders
- (package
- (name "evas-generic-loaders")
- (version "1.17.0")
- (source (origin
- (method url-fetch)
- (uri
- (string-append
- "https://download.enlightenment.org/rel/libs/"
- "evas_generic_loaders/evas_generic_loaders-"
- version ".tar.xz"))
- (sha256
- (base32
- "0ynq1nx0bfgg19p4vki1fap36yyip53zaxpzncx2slr6jcx1kxf2"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("efl" ,efl)
- ("gstreamer" ,gstreamer)
- ("gst-plugins-base" ,gst-plugins-base)
- ("librsvg" ,librsvg)
- ("libspectre" ,libspectre)
- ("poppler" ,poppler)))
- (home-page "https://www.enlightenment.org")
- (synopsis "Plugins for integration of various file types into Evas")
- (description
- "Evas-generic-loaders is a collection of interfaces to outside libraries
-and applications allowing to natively open pictures, documents and media
-files in Evas (EFL canvas library).")
- (license license:gpl2+)))
-
-(define-public emotion-generic-players
- (package
- (name "emotion-generic-players")
- (version "1.17.0")
- (source (origin
- (method url-fetch)
- (uri
- (string-append "https://download.enlightenment.org/rel/libs/"
- "emotion_generic_players/emotion_generic_players"
- "-" version ".tar.xz"))
- (sha256
- (base32
- "03kaql95mk0c5j50v3c5i5lmlr3gz7xlh8p8q87xz8zf9j5h1pp7"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("pkg-config" ,pkg-config)))
- (inputs
- `(("efl" ,efl)
- ("vlc" ,vlc)))
- (home-page "https://www.enlightenment.org")
- (synopsis "Plugins for integrating media players in EFL based applications")
- (description
- "Emotion-generic-players is a collection of interfaces to outside libraries
-and applications allowing to natively play video files through Emotion.
-The only supported now is VLC.")
- (license license:bsd-2)))
-
(define-public terminology
(package
(name "terminology")
From f99cfc19a2f0617c2d438044bfc1431b1854c125 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Mon, 5 Sep 2016 15:23:11 +0300
Subject: [PATCH 032/604] gnu: borg: Rebuild generated C files.
* gnu/packages/backup.scm (borg)[source]: Remove generated '.c' files.
[native-inputs]: Add python-cython.
---
gnu/packages/backup.scm | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index dcab95fa28..4678b9b91f 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -410,10 +410,13 @@ detection, and lossless compression.")
(source (origin
(method url-fetch)
(uri (pypi-uri "borgbackup" version))
-
(sha256
(base32
- "1l9iw55w5x51yxl3q89cf6avg80lajxvc8qz584hrsmnk6i56cr0"))))
+ "1l9iw55w5x51yxl3q89cf6avg80lajxvc8qz584hrsmnk6i56cr0"))
+ (modules '((guix build utils)))
+ (snippet
+ '(for-each
+ delete-file (find-files "borg" "^(c|h|p).*\\.c$")))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -437,7 +440,8 @@ detection, and lossless compression.")
(install-file "docs/_build/man/borg.1" man)
#t))))))))
(native-inputs
- `(("python-setuptools-scm" ,python-setuptools-scm)
+ `(("python-cython" ,python-cython)
+ ("python-setuptools-scm" ,python-setuptools-scm)
;; For generating the documentation.
("python-sphinx" ,python-sphinx)
("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme)))
From ddfd10c88449d096cdd23a9220cc02544c56e0ad Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Mon, 5 Sep 2016 17:49:33 +0300
Subject: [PATCH 033/604] gnu: font-gnu-unifont: Update to 9.0.02.
* gnu/packages/fonts.scm (font-gnu-unifont): Update to 9.0.02.
---
gnu/packages/fonts.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
index 9b2281ad20..fe6c227029 100644
--- a/gnu/packages/fonts.scm
+++ b/gnu/packages/fonts.scm
@@ -601,7 +601,7 @@ languages, plus Greek and Cyrillic.")
(define-public font-gnu-unifont
(package
(name "font-gnu-unifont")
- (version "9.0.01")
+ (version "9.0.02")
(source (origin
(method url-fetch)
(uri (string-append
@@ -609,7 +609,7 @@ languages, plus Greek and Cyrillic.")
version ".tar.gz"))
(sha256
(base32
- "14z4lx6asa94i73m19lsdgzqjn9xzi8320h3dafvzq9ima94pm9b"))))
+ "1ss6cp2bs8mzz3jqjbmmi877jfdb1jjcd29dvyk3i8qy7r0d44qm"))))
(build-system gnu-build-system)
(outputs '("out" ; TrueType version
"pcf" ; PCF (bitmap) version
From 105d4ee2dfa2297482f4a2503802b79d679675c7 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 12:42:12 +0000
Subject: [PATCH 034/604] gnu: Add perl-uri-template.
* gnu/packages/web.scm (perl-uri-template): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/web.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index e004062fba..22d7384c75 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -2964,6 +2964,30 @@ URI::Find::Schemeless. For a command-line interface, urifind is provided.")
methods for WebSocket URIs as it does for HTTP URIs.")
(license (package-license perl))))
+(define-public perl-uri-template
+ (package
+ (name "perl-uri-template")
+ (version "0.22")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "08kjjb4c0v9gqfrfnj1wkivylxl05finn11ra64dj136fhmnyrbg"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("perl-uri" ,perl-uri)))
+ (native-inputs
+ `(("perl-test-pod-coverage" ,perl-test-pod-coverage)
+ ("perl-test-pod" ,perl-test-pod)
+ ("perl-json" ,perl-json)))
+ (home-page "http://search.cpan.org/dist/URI-Template")
+ (synopsis "Object for handling URI templates")
+ (description "This perl module provides a wrapper around URI templates as described in
+RFC 6570.")
+ (license (package-license perl))))
+
(define-public perl-www-curl
(package
(name "perl-www-curl")
From ba24828805a3904b141a1afb5a5bb1b13b668f22 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 13:02:00 +0000
Subject: [PATCH 035/604] gnu: Add perl-class-errorhandler.
* gnu/packages/perl.scm (perl-class-errorhandler): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index aef92f4b79..4e3d1fa8d0 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -700,6 +700,27 @@ subclasses and can be overridden.")
type for perl.")
(license (package-license perl))))
+(define-public perl-class-errorhandler
+ (package
+ (name "perl-class-errorhandler")
+ (version "0.04")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/T/TO/TOKUHIROM/"
+ "Class-ErrorHandler-" version ".tar.gz"))
+ (sha256
+ (base32
+ "00j5f0z4riyq7i95jww291dpmbn0hmmvkcbrh7p0p8lpqz7jsb9l"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Class-ErrorHandler")
+ (synopsis "Base class for error handling")
+ (description
+ "@code{Class::ErrorHandler} provides an error-handling mechanism that is generic
+enough to be used as the base class for a variety of OO classes. Subclasses inherit
+its two error-handling methods, error and errstr, to communicate error messages back
+to the calling program.")
+ (license (package-license perl))))
+
(define-public perl-class-factory-util
(package
(name "perl-class-factory-util")
From 951e924c9b0f34ed57d7676b2f67d520b05b8482 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 13:13:18 +0000
Subject: [PATCH 036/604] gnu: Add perl-datetime-format-mail.
* gnu/packages/perl.scm (perl-datetime-format-mail): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/perl.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 4e3d1fa8d0..db941fbf09 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -1792,6 +1792,27 @@ to create DateTime objects, with some custom tweaks to smooth out the rough
edges (mainly concerning timezone detection and selection).")
(license (package-license perl))))
+(define-public perl-datetime-format-mail
+ (package
+ (name "perl-datetime-format-mail")
+ (version "0.403")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/B/BO/BOOK/"
+ "DateTime-Format-Mail-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1c7wapbi9g9p2za52l3skhh31vg4da5kx2yfqzsqyf3p8iff7y4d"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("perl-datetime" ,perl-datetime)
+ ("perl-params-validate" ,perl-params-validate)))
+ (home-page "http://search.cpan.org/dist/DateTime-Format-Mail")
+ (synopsis "Convert between DateTime and RFC2822/822 formats")
+ (description "RFCs 2822 and 822 specify date formats to be used by email.
+This module parses and emits such dates.")
+ (license (package-license perl))))
+
(define-public perl-devel-caller
(package
(name "perl-devel-caller")
From 8a0773a2b4e4f3d7f3536a0c5746e2258cbc9a09 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 13:24:11 +0000
Subject: [PATCH 037/604] gnu: Add perl-datetime-format-w3cdtf.
* gnu/packages/perl.scm (perl-datetime-format-w3cdtf): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/perl.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index db941fbf09..78c4a9a5db 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -1813,6 +1813,32 @@ edges (mainly concerning timezone detection and selection).")
This module parses and emits such dates.")
(license (package-license perl))))
+(define-public perl-datetime-format-w3cdtf
+ (package
+ (name "perl-datetime-format-w3cdtf")
+ (version "0.06")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/G/GW/GWILLIAMS/"
+ "DateTime-Format-W3CDTF-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0ymxizwd2zfx8b4bmrmv4k439qwfwf2522jrvn4hlay5v6z459dr"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("perl-datetime" ,perl-datetime)))
+ (native-inputs
+ `(("perl-test-pod" ,perl-test-pod)
+ ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+ (home-page "http://search.cpan.org/dist/DateTime-Format-W3CDTF")
+ (synopsis "Parse and format W3CDTF datetime strings")
+ (description
+ "This module understands the W3CDTF date/time format, an ISO 8601 profile,
+defined at https://www.w3.org/TR/NOTE-datetime. This format is the native date
+format of RSS 1.0. It can be used to parse these formats in order to create
+the appropriate objects.")
+ (license (package-license perl))))
+
(define-public perl-devel-caller
(package
(name "perl-devel-caller")
From 46173a0d10d83c4b3714a38632df5d8c93f4f642 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 13:45:37 +0000
Subject: [PATCH 038/604] gnu: Add perl-feed-find.
* gnu/packages/web.scm (perl-feed-find): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/web.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 22d7384c75..3822d7fe0d 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -1789,6 +1789,33 @@ by calling Encode::encode(locale => $bytes) and converted back again
with Encode::decode(locale => $string).")
(home-page "http://search.cpan.org/~gaas/Encode-Locale/")))
+(define-public perl-feed-find
+ (package
+ (name "perl-feed-find")
+ (version "0.07")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/B/BT/BTROTT/"
+ "Feed-Find-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0sa33cm8ww55cymnl8j7b5yspi2y5xkkkgqqa4h6fs3wdqylz600"))))
+ (build-system perl-build-system)
+ (arguments
+ ;; Tests expect to query files at http://stupidfool.org/perl/feeds/
+ `(#:tests? #f))
+ (inputs
+ `(("perl-class-errorhandler" ,perl-class-errorhandler)
+ ("perl-html-parser" ,perl-html-parser)
+ ("perl-libwww" ,perl-libwww)
+ ("perl-uri" ,perl-uri)))
+ (home-page "http://search.cpan.org/dist/Feed-Find")
+ (synopsis "Syndication feed auto-discovery")
+ (description "@code{Feed::Find} implements feed auto-discovery for finding
+syndication feeds, given a URI. It will discover the following feed formats:
+RSS 0.91, RSS 1.0, RSS 2.0, Atom.")
+ (license (package-license perl))))
+
(define-public perl-file-listing
(package
(name "perl-file-listing")
From b51b2bf3a41dc8b4ef48f41f1862a2cfe33aedd3 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 13:55:21 +0000
Subject: [PATCH 039/604] gnu: Add perl-uri-fetch.
* gnu/packages/web.scm (perl-uri-fetch): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/web.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index 3822d7fe0d..e0b649f5ac 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -2945,6 +2945,31 @@ represent \"Uniform Resource Identifier references\" as specified in RFC 2396
and updated by RFC 2732.")
(home-page "http://search.cpan.org/dist/URI/")))
+(define-public perl-uri-fetch
+ (package
+ (name "perl-uri-fetch")
+ (version "0.13")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/N/NE/NEILB/"
+ "URI-Fetch-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0rw6xiqm70s218aii9id3hf8j3pz6n22xnwd8v9m1ff2bnh63c0d"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests require internet connection to succeed
+ (inputs
+ `(("perl-class-errorhandler" ,perl-class-errorhandler)
+ ("perl-libwww" ,perl-libwww)
+ ("perl-uri" ,perl-uri)))
+ (home-page "http://search.cpan.org/dist/URI-Fetch")
+ (synopsis "Smart URI fetching/caching")
+ (description "@code{URI::Fetch} is a smart client for fetching HTTP pages,
+notably syndication feeds (RSS, Atom, and others), in an intelligent, bandwidth-
+and time-saving way.")
+ (license (package-license perl))))
+
(define-public perl-uri-find
(package
(name "perl-uri-find")
From 3cf17446cf2a67b2de81617dd07b07baf24693e6 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 14:12:25 +0000
Subject: [PATCH 040/604] gnu: Add perl-unicode-utf8.
* gnu/packages/perl.scm (perl-unicode-utf8): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/perl.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 78c4a9a5db..6192dae3d8 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -6679,6 +6679,30 @@ described in Unicode Standard Annex #14. The @code{East_Asian_Width} property
defined by Annex #11 is used to determine breaking positions.")
(license (package-license perl))))
+(define-public perl-unicode-utf8
+ (package
+ (name "perl-unicode-utf8")
+ (version "0.60")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/C/CH/CHANSEN/"
+ "Unicode-UTF8-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1g3fp47slsk7wbz3189kpg342lfs7lpsy570jxnx7s9v59dg5k7n"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-fatal" ,perl-test-fatal)
+ ("perl-test-leaktrace" ,perl-test-leaktrace)
+ ("perl-variable-magic" ,perl-variable-magic)
+ ("perl-test-pod" ,perl-test-pod)))
+ (home-page "http://search.cpan.org/dist/Unicode-UTF8")
+ (synopsis "Encoding and decoding of UTF-8 encoding form")
+ (description
+ "This module provides functions to encode and decode UTF-8 encoding form
+as specified by Unicode and ISO/IEC 10646:2011.")
+ (license (package-license perl))))
+
(define-public perl-universal-can
(package
(name "perl-universal-can")
From 428e4463c3352ede41e8ccbe69b681054a4f90fa Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 14:21:09 +0000
Subject: [PATCH 041/604] gnu: Add perl-path-tiny.
* gnu/packages/perl.scm (perl-path-tiny): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/perl.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 6192dae3d8..0f9ecdd9b3 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -4634,6 +4634,31 @@ up inheritance from those modules at the same time.")
directory specifications in a cross-platform manner.")
(license (package-license perl))))
+(define-public perl-path-tiny
+ (package
+ (name "perl-path-tiny")
+ (version "0.096")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DA/DAGOLDEN/"
+ "Path-Tiny-" version ".tar.gz"))
+ (sha256
+ (base32
+ "08dmr6ijjg3dp7h9dxix0nmad0fw16c6qzs4qc0hdz500gd64sr2"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests require additional test modules to be packaged
+ ;; (native-inputs
+ ;; `(("perl-test-failwarnings" ,perl-test-failwarnings)
+ ;; ("perl-test-mockrandom" ,perl-test-mockrandom)))
+ (inputs
+ `(("perl-unicode-utf8" ,perl-unicode-utf8)))
+ (home-page "http://search.cpan.org/dist/Path-Tiny")
+ (synopsis "File path utility")
+ (description "This module provides a small, fast utility for working
+with file paths.")
+ (license asl2.0)))
+
(define-public perl-perlio-utf8_strict
(package
(name "perl-perlio-utf8-strict")
From 0c1bab36a99b7e5658a775d49df30a78a6295c46 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 14:37:34 +0000
Subject: [PATCH 042/604] gnu: Add perl-xml-xpath.
* gnu/packages/xml.scm (perl-xml-xpath): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/xml.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index a478599fe6..52578693fa 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -11,6 +11,7 @@
;;; Copyright © 2016 Leo Famulari
;;; Copyright © 2016 Ben Woodcroft
;;; Copyright © 2016 Jan Nieuwenhuizen
+;;; Copyright © 2016 ng0
;;;
;;; This file is part of GNU Guix.
;;;
@@ -563,6 +564,30 @@ encoding of the message to be send into XML, sending the message to the
server, collect the answer, and finally decoding the XML to Perl.")
(license (package-license perl))))
+(define-public perl-xml-xpath
+ (package
+ (name "perl-xml-xpath")
+ (version "1.37")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
+ "XML-XPath-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0997l8vjgq8p7d1irvp6amqyrv24x7f8hybjm4l4ayag32b13bmq"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-path-tiny" ,perl-path-tiny)))
+ (inputs
+ `(("perl-xml-parser" ,perl-xml-parser)))
+ (home-page "http://search.cpan.org/dist/XML-XPath")
+ (synopsis "Parse and evaluate XPath statements")
+ (description
+ "This module aims to comply exactly to the @url{XPath specification,
+https://www.w3.org/TR/xpath} and yet allow extensions to be added in
+the form of functions.")
+ (license (package-license perl))))
+
(define-public pugixml
(package
(name "pugixml")
From b2696a58b3c601abf02ff40cd915c4f6b195743b Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 14:50:00 +0000
Subject: [PATCH 043/604] gnu: Add perl-xml-atom.
* gnu/packages/xml.scm (perl-xml-atom): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/xml.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index 52578693fa..f2fa725b87 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -186,6 +186,38 @@ which read a graph file and create an instance of the Graph class.
the @code{Graph} class and write it out in a specific file format.")
(license (package-license perl))))
+(define-public perl-xml-atom
+ (package
+ (name "perl-xml-atom")
+ (version "0.41")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/M/MI/MIYAGAWA/"
+ "XML-Atom-" version ".tar.gz"))
+ (sha256
+ (base32
+ "17lnkb9ymrhk2z642bhj5i2bv3q1da3kpp2lvsl0yhqshk3wdjj8"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-datetime" ,perl-datetime)
+ ;; TODO package: perl-datetime-format-atom
+ ("perl-xml-xpath" ,perl-xml-xpath)))
+ (inputs
+ `(("perl-class-data-inheritable" ,perl-class-data-inheritable)
+ ("perl-datetime" ,perl-datetime)
+ ("perl-datetime-timezone" ,perl-datetime-timezone)
+ ("perl-digest-sha1" ,perl-digest-sha1)
+ ("perl-libwww" ,perl-libwww)
+ ("perl-uri" ,perl-uri)
+ ("perl-xml-libxml" ,perl-xml-libxml)
+ ("perl-xml-xpath" ,perl-xml-xpath)))
+ (home-page "http://search.cpan.org/dist/XML-Atom")
+ (synopsis "Atom feed and API implementation")
+ (description
+ "Atom is a syndication, API, and archiving format for weblogs and other data.
+@code{XML::Atom} implements the feed format as well as a client for the API.")
+ (license (package-license perl))))
+
(define-public perl-xml-parser
(package
(name "perl-xml-parser")
From 60e8c2ae2c5262e9be4d3c0bdda1b62e86d18dbb Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 15:05:30 +0000
Subject: [PATCH 044/604] gnu: Add perl-test-manifest.
* gnu/packages/perl.scm (perl-test-manifest): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/perl.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 0f9ecdd9b3..309deb5e42 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -5773,6 +5773,29 @@ string comparison functions of Test::More, but which are more suitable when
you test against long strings.")
(license (package-license perl))))
+(define-public perl-test-manifest
+ (package
+ (name "perl-test-manifest")
+ (version "2.02")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/B/BD/BDFOY/"
+ "Test-Manifest-" version ".tar.gz"))
+ (sha256
+ (base32
+ "15ik52l9macrrfizf4y6wj71d4lx7w590h2dfajnkmbxmz786iq6"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-test-pod" ,perl-test-pod)
+ ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+ (home-page "http://search.cpan.org/dist/Test-Manifest")
+ (synopsis "Interact with a t/test_manifest file")
+ (description "@code{Test::Manifest} overrides the default test file order. Instead of
+running all of the t/*.t files in ASCII-betical order, it looks in the t/test_manifest
+file to find out which tests you want to run and the order in which you want to run them.
+It constructs the right value for the build system to do the right thing.")
+ (license (package-license perl))))
+
(define-public perl-test-mockobject
(package
(name "perl-test-mockobject")
From a022b23fa94f200a6c3e3cf9d7d05cdd704b7ab9 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 15:14:05 +0000
Subject: [PATCH 045/604] gnu: Add perl-xml-rss.
* gnu/packages/xml.scm (perl-xml-rss): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/xml.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index f2fa725b87..b2f51bd2ba 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -340,6 +340,41 @@ maintain a prefix to namespace URI map, and provides a number of basic
checks.")
(license (package-license perl))))
+(define-public perl-xml-rss
+ (package
+ (name "perl-xml-rss")
+ (version "1.59")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/S/SH/SHLOMIF/"
+ "XML-RSS-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0v6vfizn2psy6av057kp7fv3z3y73s6b3w56jm3zr6hlq48llsx2"))))
+ (build-system perl-build-system)
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-test-manifest" ,perl-test-manifest)
+ ("perl-test-differences" ,perl-test-differences)
+ ("perl-test-pod" ,perl-test-pod)
+ ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
+ ;; XXX: The test which uses this modules does not run, even when it is included
+ ;; it is ignored. ("perl-test-trailingspace" ,perl-test-trailingspace)
+ (inputs
+ `(("perl-datetime" ,perl-datetime)
+ ("perl-datetime-format-mail" ,perl-datetime-format-mail)
+ ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
+ ("perl-html-parser" ,perl-html-parser)
+ ("perl-xml-parser" ,perl-xml-parser)))
+ (home-page "http://search.cpan.org/dist/XML-RSS")
+ (synopsis "Creates and updates RSS files")
+ (description
+ "This module provides a basic framework for creating and maintaining
+RDF Site Summary (RSS) files. This distribution also contains many examples
+that allow you to generate HTML from an RSS, convert between 0.9, 0.91, and
+1.0 version, and more.")
+ (license (package-license perl))))
+
(define-public perl-xml-sax
(package
(name "perl-xml-sax")
From 246455c28701e71aa7e948859a0d3d6259596b99 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 15:36:05 +0000
Subject: [PATCH 046/604] gnu: Add perl-xml-feed.
* gnu/packages/xml.scm (perl-xml-feed): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/xml.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm
index b2f51bd2ba..8e0fe01c6b 100644
--- a/gnu/packages/xml.scm
+++ b/gnu/packages/xml.scm
@@ -631,6 +631,45 @@ encoding of the message to be send into XML, sending the message to the
server, collect the answer, and finally decoding the XML to Perl.")
(license (package-license perl))))
+(define-public perl-xml-feed
+ (package
+ (name "perl-xml-feed")
+ (version "0.53")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/D/DA/DAVECROSS/"
+ "XML-Feed-" version ".tar.gz"))
+ (sha256
+ (base32
+ "07b165g6wk8kqwpl49r3n0kag6p2nrkyp3ch0h8qyxb6nrnkkq7c"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests require internet connection
+ (native-inputs
+ `(("perl-module-build" ,perl-module-build)
+ ("perl-uri" ,perl-uri)
+ ("perl-class-data-inheritable" ,perl-class-data-inheritable)))
+ (inputs
+ `(("perl-class-errorhandler" ,perl-class-errorhandler)
+ ("perl-datetime" ,perl-datetime)
+ ("perl-datetime-format-mail" ,perl-datetime-format-mail)
+ ("perl-datetime-format-w3cdtf" ,perl-datetime-format-w3cdtf)
+ ("perl-feed-find" ,perl-feed-find)
+ ("perl-html-parser" ,perl-html-parser)
+ ("perl-libwww-perl" ,perl-libwww)
+ ("perl-module-pluggable" ,perl-module-pluggable)
+ ("perl-uri-fetch" ,perl-uri-fetch)
+ ("perl-xml-atom" ,perl-xml-atom)
+ ("perl-xml-libxml" ,perl-xml-libxml)
+ ("perl-xml-rss" ,perl-xml-rss)))
+ (home-page "http://search.cpan.org/dist/XML-Feed")
+ (synopsis "XML Syndication Feed Support")
+ (description "@code{XML::Feed} is a syndication feed parser for both RSS and
+Atom feeds. It also implements feed auto-discovery for finding feeds, given a URI.
+@code{XML::Feed} supports the following syndication feed formats:
+RSS 0.91, RSS 1.0, RSS 2.0, Atom")
+ (license (package-license perl))))
+
(define-public perl-xml-xpath
(package
(name "perl-xml-xpath")
From 823c82929b91727f66e684a612cb6c4f697b6dcb Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 14 Aug 2016 15:54:07 +0000
Subject: [PATCH 047/604] gnu: Add perl-www-opensearch.
* gnu/packages/web.scm (perl-www-opensearch): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/web.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index e0b649f5ac..70bfd9e161 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -3092,6 +3092,34 @@ library.")
web browsing, used for automating interaction with websites.")
(license (package-license perl))))
+(define-public perl-www-opensearch
+ (package
+ (name "perl-www-opensearch")
+ (version "0.17")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/B/BR/BRICAS/"
+ "WWW-OpenSearch-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1yxplx1q1qk2fvnzqrbk01lz26fy1lyhay51a3ky7q3jgh9p01rb"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:tests? #f)) ; Tests require further modules to be packaged
+ (inputs
+ `(("perl-data-page" ,perl-data-page)
+ ("perl-libwww" ,perl-libwww)
+ ("perl-uri" ,perl-uri)
+ ("perl-uri-template" ,perl-uri-template)
+ ("perl-xml-feed" ,perl-xml-feed)
+ ("perl-xml-libxml" ,perl-xml-libxml)))
+ (home-page "http://search.cpan.org/dist/WWW-OpenSearch")
+ (synopsis "Search A9 OpenSearch compatible engines")
+ (description
+ "@code{WWW::OpenSearch} is a module to search @url{A9's OpenSearch,
+http://opensearch.a9.com} compatible search engines.")
+ (license (package-license perl))))
+
(define-public perl-www-robotrules
(package
(name "perl-www-robotrules")
From 4e835710f1f45ceffb432fa19cc3cfbbdaf0919b Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Mon, 5 Sep 2016 14:19:05 +0200
Subject: [PATCH 048/604] gnu: Add git@2.9
* gnu/packages/version-control.scm (git@2.9): New variable.
* gnu/packages/version-control.scm (cgit)[inputs]: Replace git with git@2.9
---
gnu/packages/version-control.scm | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 9ff9801997..d77cca0e10 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -293,6 +293,20 @@ everything from small to very large projects with speed and efficiency.")
(license license:gpl2)
(home-page "http://git-scm.com/")))
+;; Some dependent packages directly access internal interfaces which
+;; have changed in 2.10
+(define-public git@2.9
+ (package
+ (inherit git)
+ (version "2.9.3")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kernel.org/software/scm/git/git-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0qzs681a64k3shh5p0rg41l1z16fbk5sj0xga45k34hp1hsp654z"))))))
+
(define-public libgit2
(package
(name "libgit2")
@@ -387,7 +401,7 @@ write native speed custom Git applications in any language with bindings.")
("xmllint" ,libxml2)
("xsltprot" ,libxslt)))
(inputs
- `(("git:src" ,(package-source git))
+ `(("git:src" ,(package-source git@2.9))
("openssl" ,openssl)
("zlib" ,zlib)))
(home-page "https://git.zx2c4.com/cgit/")
From 901c1aae0a58811dc7d4892118a38c8354c294fc Mon Sep 17 00:00:00 2001
From: ng0
Date: Sat, 20 Aug 2016 22:14:17 +0000
Subject: [PATCH 049/604] gnu: Add libtoxcore.
* gnu/packages/messaging.scm (libtoxcore): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/messaging.scm | 48 +++++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index fa4515c768..b95239a748 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -5,6 +5,7 @@
;;; Copyright © 2015 Andreas Enge
;;; Copyright © 2015, 2016 Ricardo Wurmus
;;; Copyright © 2015 Efraim Flashner
+;;; Copyright © 2016 ng0
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,6 +29,7 @@
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)
@@ -35,6 +37,7 @@
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages check)
+ #:use-module (gnu packages crypto)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
@@ -59,7 +62,9 @@
#:use-module (gnu packages admin)
#:use-module (gnu packages linux)
#:use-module (gnu packages tls)
- #:use-module (gnu packages icu4c))
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages xiph))
(define-public libotr
(package
@@ -566,4 +571,45 @@ system on which to rapidly develop added functionality, or prototype new
protocols.")
(license x11)))
+(define-public libtoxcore
+ (let ((revision "1")
+ (commit "755f084e8720b349026c85afbad58954cb7ff1d4"))
+ (package
+ (name "libtoxcore")
+ (version (string-append "0.0.0" "-"
+ revision "."(string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/irungentoo/toxcore.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0ap1gvlyihnfivv235dbrgsxsiiz70bhlmlr5gn1027w3h5kqz8w"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ;; TODO: Add when test suite is capable of passing.
+ ;; ("check" ,check)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("libsodium" ,libsodium)
+ ("opus" ,opus)
+ ("libvpx" ,libvpx)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'autoconf
+ (lambda _
+ (zero? (system* "autoreconf" "-vfi")))))
+ #:tests? #f)) ; FIXME: Testsuite fails, reasons unspecific.
+ (synopsis "Library for the Tox encrypted messenger protocol")
+ (description
+ "C library implementation of the Tox encrypted messenger protocol.")
+ (license gpl3+)
+ (home-page "https://tox.chat"))))
+
;;; messaging.scm ends here
From c2b411c288637d2877aaa2785500fea235f6fd32 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sun, 21 Aug 2016 02:17:27 +0000
Subject: [PATCH 050/604] gnu: Add freealut.
* gnu/packages/audio.scm (freealut): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/audio.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 67701a0f37..9f03368168 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -6,6 +6,7 @@
;;; Copyright © 2015, 2016 Mark H Weaver
;;; Copyright © 2016 Efraim Flashner
;;; Copyright © 2016 Alex Griffin
+;;; Copyright © 2016 ng0
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1511,6 +1512,32 @@ buffers, and audio capture.")
(home-page "http://kcat.strangesoft.net/openal.html")
(license license:lgpl2.0+)))
+(define-public freealut
+ (package
+ (name "freealut")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ ;; Upstream url is unclear, many systems use Fedora, there is also
+ ;; https://github.com/vancegroup/freealut though the status of it
+ ;; (official? unofficial?) is not clear.
+ (uri (string-append
+ "https://pkgs.fedoraproject.org/repo/pkgs/" name "/" name "-"
+ version ".tar.gz" "/e089b28a0267faabdb6c079ee173664a/" name
+ "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0kzlil6112x2429nw6mycmif8y6bxr2cwjcvp18vh6s7g63ymlb0"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f)) ; no check target
+ (inputs
+ `(("openal" ,openal)))
+ (synopsis "Free implementation of OpenAL's ALUT standard")
+ (description "freealut is the OpenAL Utility Toolkit.")
+ (home-page "http://kcat.strangesoft.net/openal.html")
+ (license license:lgpl2.0)))
+
(define-public patchage
(package
(name "patchage")
From 43bec6d06d8dcc4c0f865e492d370a8724bba2ce Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Sun, 4 Sep 2016 02:53:37 -0400
Subject: [PATCH 051/604] gnu: qemu: Update to 2.7.0 [fixes CVE-2016-7116].
* gnu/packages/qemu.scm (qemu): Update to 2.7.0.
[arguments]: Adjust path in 'disable-test-qga' phase.
---
gnu/packages/qemu.scm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm
index 1b9f0add25..aee6a75f0e 100644
--- a/gnu/packages/qemu.scm
+++ b/gnu/packages/qemu.scm
@@ -69,14 +69,14 @@
(define-public qemu
(package
(name "qemu")
- (version "2.6.1")
+ (version "2.7.0")
(source (origin
(method url-fetch)
(uri (string-append "http://wiki.qemu-project.org/download/qemu-"
version ".tar.bz2"))
(sha256
(base32
- "1l88iqk0swqccrnjwczgl9arqsvy77bis862zxajy7z3dqdzshj9"))))
+ "0lqyz01z90nvxpc3nx4djbci7hx62cwvs5zwd6phssds0sap6vij"))))
(build-system gnu-build-system)
(arguments
'(;; Running tests in parallel can occasionally lead to failures, like:
@@ -125,7 +125,7 @@
(setenv "V" "1")))
(add-before 'check 'disable-test-qga
(lambda _
- (substitute* "tests/Makefile"
+ (substitute* "tests/Makefile.include"
;; Comment out the test-qga test, which needs /sys and
;; fails within the build environment.
(("check-unit-.* tests/test-qga" all)
From fea1422e273ba5ca7640ecbbfbf352703ef7cda8 Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Sun, 4 Sep 2016 23:07:51 -0400
Subject: [PATCH 052/604] gnu: slock: Update to 1.3.
* gnu/packages/suckless.scm (slock): Update to 1.3.
[inputs]: Add libxrandr.
---
gnu/packages/suckless.scm | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 1f62e26248..7efa502d8f 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -106,14 +106,14 @@ numbers of user-defined menu items efficiently.")
(define-public slock
(package
(name "slock")
- (version "1.2")
+ (version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "http://dl.suckless.org/tools/slock-"
version ".tar.gz"))
(sha256
(base32
- "1crkyr4vblhciy6vnbjwwjnlkm9yg2hzq16v6hzxm20ai67na0il"))))
+ "065xa9hl7zn0lv2f7yjxphqsa35rg6dn9hv10gys0sh4ljpa7d5s"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no tests
@@ -123,7 +123,8 @@ numbers of user-defined menu items efficiently.")
(inputs
`(("libx11" ,libx11)
("libxext" ,libxext)
- ("libxinerama" ,libxinerama)))
+ ("libxinerama" ,libxinerama)
+ ("libxrandr" ,libxrandr)))
(home-page "http://tools.suckless.org/slock/")
(synopsis "Simple X session lock")
(description
From 26ffb69399752d6b2c1ea93ac8c6cf7e3d178c02 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 09:17:57 +0200
Subject: [PATCH 053/604] syscalls: Use #:return-errno? when it is available.
* guix/build/syscalls.scm (errno): Do not export.
(syscall->procedure): Change to return a procedure that returns both the
value and errno. Use #:return-errno? where available.
(mount, umount, swapon, swapoff, mkdtemp!, fdatasync, statfs)
(clone, setns, pivot-root, fcntl-flock, network-interface-names)
(network-interface-flags, set-network-interface-flags)
(set-network-interface-address, network-interface-address):
(network-interfaces, tcgetattr, tcsetattr, terminal-window-size): Adjust
accordingly using 'let-values'.
---
guix/build/syscalls.scm | 177 +++++++++++++++++++++-------------------
1 file changed, 92 insertions(+), 85 deletions(-)
diff --git a/guix/build/syscalls.scm b/guix/build/syscalls.scm
index e5315ed6f3..2cee6544c4 100644
--- a/guix/build/syscalls.scm
+++ b/guix/build/syscalls.scm
@@ -24,12 +24,12 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
+ #:use-module (srfi srfi-11)
#:use-module (ice-9 rdelim)
#:use-module (ice-9 regex)
#:use-module (ice-9 match)
#:use-module (ice-9 ftw)
- #:export (errno
- MS_RDONLY
+ #:export (MS_RDONLY
MS_NOSUID
MS_NODEV
MS_NOEXEC
@@ -282,14 +282,14 @@ given TYPES. READ uses WRAP-FIELDS to return its value."
;;;
(define %libc-errno-pointer
- ;; Glibc's 'errno' pointer.
+ ;; Glibc's 'errno' pointer, for use with Guile < 2.0.12.
(let ((errno-loc (false-if-exception
(dynamic-func "__errno_location" (dynamic-link)))))
(and errno-loc
(let ((proc (pointer->procedure '* errno-loc '())))
(proc)))))
-(define errno
+(define errno ;for Guile < 2.0.12
(if %libc-errno-pointer
(let ((bv (pointer->bytevector %libc-errno-pointer (sizeof int))))
(lambda ()
@@ -328,13 +328,26 @@ given TYPES. READ uses WRAP-FIELDS to return its value."
(call-with-restart-on-EINTR (lambda () expr)))
(define (syscall->procedure return-type name argument-types)
- "Return a procedure that wraps the C function NAME using the dynamic FFI.
+ "Return a procedure that wraps the C function NAME using the dynamic FFI,
+and that returns two values: NAME's return value, and errno.
+
If an error occurs while creating the binding, defer the error report until
the returned procedure is called."
(catch #t
(lambda ()
(let ((ptr (dynamic-func name (dynamic-link))))
- (pointer->procedure return-type ptr argument-types)))
+ ;; The #:return-errno? facility was introduced in Guile 2.0.12.
+ ;; Support older versions of Guile by catching 'wrong-number-of-args'.
+ (catch 'wrong-number-of-args
+ (lambda ()
+ (pointer->procedure return-type ptr argument-types
+ #:return-errno? #t))
+ (lambda (key . rest)
+ (let ((proc (pointer->procedure return-type ptr argument-types)))
+ (lambda args
+ (let ((result (apply proc args))
+ (err (errno)))
+ (values result err))))))))
(lambda args
(lambda _
(error (format #f "~a: syscall->procedure failed: ~s"
@@ -401,18 +414,18 @@ may be a bitwise-or of the MS_* constants, and OPTIONS may be a
string. When FLAGS contains MS_REMOUNT, SOURCE and TYPE are ignored. When
UPDATE-MTAB? is true, update /etc/mtab. Raise a 'system-error' exception on
error."
- (let ((ret (proc (if source
- (string->pointer source)
- %null-pointer)
- (string->pointer target)
- (if type
- (string->pointer type)
- %null-pointer)
- flags
- (if options
- (string->pointer options)
- %null-pointer)))
- (err (errno)))
+ (let-values (((ret err)
+ (proc (if source
+ (string->pointer source)
+ %null-pointer)
+ (string->pointer target)
+ (if type
+ (string->pointer type)
+ %null-pointer)
+ flags
+ (if options
+ (string->pointer options)
+ %null-pointer))))
(unless (zero? ret)
(throw 'system-error "mount" "mount ~S on ~S: ~A"
(list source target (strerror err))
@@ -426,8 +439,8 @@ error."
#:key (update-mtab? #f))
"Unmount TARGET. Optionally FLAGS may be one of the MNT_* or UMOUNT_*
constants from ."
- (let ((ret (proc (string->pointer target) flags))
- (err (errno)))
+ (let-values (((ret err)
+ (proc (string->pointer target) flags)))
(unless (zero? ret)
(throw 'system-error "umount" "~S: ~A"
(list target (strerror err))
@@ -451,8 +464,8 @@ constants from ."
(let ((proc (syscall->procedure int "swapon" (list '* int))))
(lambda* (device #:optional (flags 0))
"Use the block special device at DEVICE for swapping."
- (let ((ret (proc (string->pointer device) flags))
- (err (errno)))
+ (let-values (((ret err)
+ (proc (string->pointer device) flags)))
(unless (zero? ret)
(throw 'system-error "swapon" "~S: ~A"
(list device (strerror err))
@@ -462,8 +475,7 @@ constants from ."
(let ((proc (syscall->procedure int "swapoff" '(*))))
(lambda (device)
"Stop using block special device DEVICE for swapping."
- (let ((ret (proc (string->pointer device)))
- (err (errno)))
+ (let-values (((ret err) (proc (string->pointer device))))
(unless (zero? ret)
(throw 'system-error "swapoff" "~S: ~A"
(list device (strerror err))
@@ -499,8 +511,7 @@ user-land process."
(lambda (tmpl)
"Create a new unique directory in the file system using the template
string TMPL and return its file name. TMPL must end with 'XXXXXX'."
- (let ((result (proc (string->pointer tmpl)))
- (err (errno)))
+ (let-values (((result err) (proc (string->pointer tmpl))))
(when (null-pointer? result)
(throw 'system-error "mkdtemp!" "~S: ~A"
(list tmpl (strerror err))
@@ -513,9 +524,8 @@ string TMPL and return its file name. TMPL must end with 'XXXXXX'."
"Flush buffered output of PORT, an output file port, and then call
fdatasync(2) on the underlying file descriptor."
(force-output port)
- (let* ((fd (fileno port))
- (ret (proc fd))
- (err (errno)))
+ (let*-values (((fd) (fileno port))
+ ((ret err) (proc fd)))
(unless (zero? ret)
(throw 'system-error "fdatasync" "~S: ~A"
(list fd (strerror err))
@@ -566,9 +576,9 @@ fdatasync(2) on the underlying file descriptor."
(lambda (file)
"Return a data structure describing the file system
mounted at FILE."
- (let* ((stat (make-bytevector sizeof-statfs))
- (ret (proc (string->pointer file) (bytevector->pointer stat)))
- (err (errno)))
+ (let*-values (((stat) (make-bytevector sizeof-statfs))
+ ((ret err) (proc (string->pointer file)
+ (bytevector->pointer stat))))
(if (zero? ret)
(read-statfs stat)
(throw 'system-error "statfs" "~A: ~A"
@@ -611,11 +621,11 @@ mounted at FILE."
"Create a new child process by duplicating the current parent process.
Unlike the fork system call, clone accepts FLAGS that specify which resources
are shared between the parent and child processes."
- (let ((ret (proc syscall-id flags
- %null-pointer ;child stack
- %null-pointer %null-pointer ;ptid & ctid
- %null-pointer)) ;unused
- (err (errno)))
+ (let-values (((ret err)
+ (proc syscall-id flags
+ %null-pointer ;child stack
+ %null-pointer %null-pointer ;ptid & ctid
+ %null-pointer))) ;unused
(if (= ret -1)
(throw 'system-error "clone" "~d: ~A"
(list flags (strerror err))
@@ -632,8 +642,7 @@ are shared between the parent and child processes."
file descriptor obtained by opening a /proc/PID/ns/* file. NSTYPE specifies
which type of namespace the current process may be reassociated with, or 0 if
there is no such limitation."
- (let ((ret (proc fdes nstype))
- (err (errno)))
+ (let-values (((ret err) (proc fdes nstype)))
(unless (zero? ret)
(throw 'system-error "setns" "~d ~d: ~A"
(list fdes nstype (strerror err))
@@ -644,9 +653,9 @@ there is no such limitation."
(lambda (new-root put-old)
"Change the root file system to NEW-ROOT and move the current root file
system to PUT-OLD."
- (let ((ret (proc (string->pointer new-root)
- (string->pointer put-old)))
- (err (errno)))
+ (let-values (((ret err)
+ (proc (string->pointer new-root)
+ (string->pointer put-old))))
(unless (zero? ret)
(throw 'system-error "pivot_root" "~S ~S: ~A"
(list new-root put-old (strerror err))
@@ -717,12 +726,12 @@ exception if it's already taken."
;; XXX: 'fcntl' is a vararg function, but here we happily use the
;; standard ABI; crossing fingers.
- (let ((ret (proc fd
- (if wait?
- F_SETLKW ; lock & wait
- F_SETLK) ; non-blocking attempt
- (bytevector->pointer bv)))
- (err (errno)))
+ (let-values (((ret err)
+ (proc fd
+ (if wait?
+ F_SETLKW ;lock & wait
+ F_SETLK) ;non-blocking attempt
+ (bytevector->pointer bv))))
(unless (zero? ret)
;; Presumably we got EAGAIN or so.
(throw 'flock-error err))))))
@@ -857,19 +866,19 @@ to interfaces that are currently up."
(len (* ifreq-struct-size 10))
(reqs (make-bytevector len))
(conf (make-c-struct ifconf-struct
- (list len (bytevector->pointer reqs))))
- (ret (%ioctl (fileno sock) SIOCGIFCONF conf))
- (err (errno)))
- (when close?
- (close-port sock))
- (if (zero? ret)
- (bytevector->string-list reqs ifreq-struct-size
- (match (parse-c-struct conf ifconf-struct)
- ((len . _) len)))
- (throw 'system-error "network-interface-list"
- "network-interface-list: ~A"
- (list (strerror err))
- (list err)))))
+ (list len (bytevector->pointer reqs)))))
+ (let-values (((ret err)
+ (%ioctl (fileno sock) SIOCGIFCONF conf)))
+ (when close?
+ (close-port sock))
+ (if (zero? ret)
+ (bytevector->string-list reqs ifreq-struct-size
+ (match (parse-c-struct conf ifconf-struct)
+ ((len . _) len)))
+ (throw 'system-error "network-interface-list"
+ "network-interface-list: ~A"
+ (list (strerror err))
+ (list err))))))
(define %interface-line
;; Regexp matching an interface line in Linux's /proc/net/dev.
@@ -897,9 +906,9 @@ interface NAME."
(let ((req (make-bytevector ifreq-struct-size)))
(bytevector-copy! (string->utf8 name) 0 req 0
(min (string-length name) (- IF_NAMESIZE 1)))
- (let* ((ret (%ioctl (fileno socket) SIOCGIFFLAGS
- (bytevector->pointer req)))
- (err (errno)))
+ (let-values (((ret err)
+ (%ioctl (fileno socket) SIOCGIFFLAGS
+ (bytevector->pointer req))))
(if (zero? ret)
;; The 'ifr_flags' field is IF_NAMESIZE bytes after the beginning of
@@ -927,9 +936,9 @@ interface NAME."
;; Set the 'ifr_flags' field.
(bytevector-uint-set! req IF_NAMESIZE flags (native-endianness)
(sizeof short))
- (let* ((ret (%ioctl (fileno socket) SIOCSIFFLAGS
- (bytevector->pointer req)))
- (err (errno)))
+ (let-values (((ret err)
+ (%ioctl (fileno socket) SIOCSIFFLAGS
+ (bytevector->pointer req))))
(unless (zero? ret)
(throw 'system-error "set-network-interface-flags"
"set-network-interface-flags on ~A: ~A"
@@ -943,9 +952,9 @@ interface NAME."
(min (string-length name) (- IF_NAMESIZE 1)))
;; Set the 'ifr_addr' field.
(write-socket-address! sockaddr req IF_NAMESIZE)
- (let* ((ret (%ioctl (fileno socket) SIOCSIFADDR
- (bytevector->pointer req)))
- (err (errno)))
+ (let-values (((ret err)
+ (%ioctl (fileno socket) SIOCSIFADDR
+ (bytevector->pointer req))))
(unless (zero? ret)
(throw 'system-error "set-network-interface-address"
"set-network-interface-address on ~A: ~A"
@@ -958,9 +967,9 @@ the same type as that returned by 'make-socket-address'."
(let ((req (make-bytevector ifreq-struct-size)))
(bytevector-copy! (string->utf8 name) 0 req 0
(min (string-length name) (- IF_NAMESIZE 1)))
- (let* ((ret (%ioctl (fileno socket) SIOCGIFADDR
- (bytevector->pointer req)))
- (err (errno)))
+ (let-values (((ret err)
+ (%ioctl (fileno socket) SIOCGIFADDR
+ (bytevector->pointer req))))
(if (zero? ret)
(read-socket-address req IF_NAMESIZE)
(throw 'system-error "network-interface-address"
@@ -1076,9 +1085,10 @@ return the list of resulting objects."
(lambda ()
"Return a list of objects, each denoting a configured
network interface. This is implemented using the 'getifaddrs' libc function."
- (let* ((ptr (bytevector->pointer (make-bytevector (sizeof* '*))))
- (ret (proc ptr))
- (err (errno)))
+ (let*-values (((ptr)
+ (bytevector->pointer (make-bytevector (sizeof* '*))))
+ ((ret err)
+ (proc ptr)))
(if (zero? ret)
(let* ((ptr (dereference-pointer ptr))
(result (unfold-interface-list ptr)))
@@ -1181,9 +1191,8 @@ given an integer, returns the list of names of the constants that are or'd."
(let ((proc (syscall->procedure int "tcgetattr" (list int '*))))
(lambda (fd)
"Return the structure for the tty at FD."
- (let* ((bv (make-bytevector sizeof-termios))
- (ret (proc fd (bytevector->pointer bv)))
- (err (errno)))
+ (let*-values (((bv) (make-bytevector sizeof-termios))
+ ((ret err) (proc fd (bytevector->pointer bv))))
(if (zero? ret)
(read-termios bv)
(throw 'system-error "tcgetattr" "~A"
@@ -1206,8 +1215,7 @@ produced by 'tcsetattr-action'; see tcsetattr(3) for details."
(match/write input-flags output-flags control-flags local-flags
line-discipline control-chars input-speed output-speed))
- (let ((ret (proc fd actions (bytevector->pointer bv)))
- (err (errno)))
+ (let-values (((ret err) (proc fd actions (bytevector->pointer bv))))
(unless (zero? ret)
(throw 'system-error "tcgetattr" "~A"
(list (strerror err))
@@ -1238,10 +1246,9 @@ produced by 'tcsetattr-action'; see tcsetattr(3) for details."
"Return a structure describing the terminal at PORT, or raise
a 'system-error' if PORT is not backed by a terminal. This procedure
corresponds to the TIOCGWINSZ ioctl."
- (let* ((size (make-bytevector sizeof-winsize))
- (ret (%ioctl (fileno port) TIOCGWINSZ
- (bytevector->pointer size)))
- (err (errno)))
+ (let*-values (((size) (make-bytevector sizeof-winsize))
+ ((ret err) (%ioctl (fileno port) TIOCGWINSZ
+ (bytevector->pointer size))))
(if (zero? ret)
(read-winsize size)
(throw 'system-error "terminal-window-size" "~A"
From 0c90ed5505e04540b1982c04993369fb9706a916 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 09:23:43 +0200
Subject: [PATCH 054/604] gnupg: Honor $GUIX_GPG_COMMAND and default to 'gpg'.
* guix/gnupg.scm (%gpg-command): Change to "gpg" or $GUIX_GPG_COMMAND.
---
guix/gnupg.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/guix/gnupg.scm b/guix/gnupg.scm
index d1d8b377e1..ef8f9000dc 100644
--- a/guix/gnupg.scm
+++ b/guix/gnupg.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2010, 2011, 2013, 2014 Ludovic Courtès
+;;; Copyright © 2010, 2011, 2013, 2014, 2016 Ludovic Courtès
;;; Copyright © 2013 Nikita Karetnikov
;;;
;;; This file is part of GNU Guix.
@@ -40,7 +40,7 @@
(define %gpg-command
;; The GnuPG 2.x command-line program name.
- (make-parameter "gpg2"))
+ (make-parameter (or (getenv "GUIX_GPG_COMMAND") "gpg")))
(define %openpgp-key-server
;; The default key server. Note that keys.gnupg.net appears to be
From c6f0b0f603540c2be9694ebcbaa4b65b103847bc Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Tue, 6 Sep 2016 06:54:20 +0300
Subject: [PATCH 055/604] gnu: orc: Update to 0.4.26.
* gnu/packages/gstreamer.scm (orc): Update to 0.4.26.
---
gnu/packages/gstreamer.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 651186ab8a..08bd679d37 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -63,14 +63,14 @@
(define-public orc
(package
(name "orc")
- (version "0.4.25")
+ (version "0.4.26")
(source (origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/data/src/"
"orc/orc-" version ".tar.xz"))
(sha256
(base32
- "1lak3hyvvb0w9avzmf0a8vayb7vqhj4m709q1czlhvgjb15dbcf1"))))
+ "0jd69ynvr3k70mlxxgbsk047l1rd63m1wkj3qdcq7644xy0gllkx"))))
(build-system gnu-build-system)
(arguments `(#:phases
(alist-cons-before
From 462b567650e6fbe25a562b5e13dfbaa5ee4c55a9 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Tue, 6 Sep 2016 08:47:22 +0300
Subject: [PATCH 056/604] gnu: orc: Use 'modify-phases'.
* gnu/packages/gstreamer.scm (orc)[arguments]: Use the 'modify-phases'
syntax.
---
gnu/packages/gstreamer.scm | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 08bd679d37..e5078233a9 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -72,18 +72,18 @@
(base32
"0jd69ynvr3k70mlxxgbsk047l1rd63m1wkj3qdcq7644xy0gllkx"))))
(build-system gnu-build-system)
- (arguments `(#:phases
- (alist-cons-before
- 'check 'disable-faulty-test
- (lambda _
- ;; XXX Disable the 'test-limits' and 'exec_opcodes_sys'
- ;; tests, which fail on some machines. See:
- ;; https://bugzilla.gnome.org/show_bug.cgi?id=735273
- (substitute* '("testsuite/test-limits.c"
- "testsuite/exec_opcodes_sys.c")
- (("if \\(error\\) return 1;")
- "if (error) return 77;")))
- %standard-phases)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'disable-faulty-test
+ (lambda _
+ ;; XXX Disable the 'test-limits' and 'exec_opcodes_sys'
+ ;; tests, which fail on some machines. See:
+ ;; https://bugzilla.gnome.org/show_bug.cgi?id=735273
+ (substitute* '("testsuite/test-limits.c"
+ "testsuite/exec_opcodes_sys.c")
+ (("if \\(error\\) return 1;")
+ "if (error) return 77;")))))))
(home-page "http://code.entropywave.com/orc/")
(synopsis "Oil runtime compiler")
(description
From 5e50f846b5b3e07798553fed5fac6be6aea6088c Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Tue, 6 Sep 2016 09:01:23 +0300
Subject: [PATCH 057/604] gnu: gst-plugins-base: Add opus support.
* gnu/packages/gstreamer.scm (gst-plugins-base)[inputs]: Add opus.
---
gnu/packages/gstreamer.scm | 1 +
1 file changed, 1 insertion(+)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index e5078233a9..ba162c6601 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -160,6 +160,7 @@ This package provides the core library and elements.")
`(("gstreamer" ,gstreamer))) ; required by gstreamer-plugins-base-1.0.pc
(inputs
`(("cdparanoia" ,cdparanoia)
+ ("opus" ,opus)
("orc" ,orc)
("pango" ,pango)
("libogg" ,libogg)
From 58458a65ec1faba205299b10c443e8de4234ea2c Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Tue, 6 Sep 2016 09:49:38 +0300
Subject: [PATCH 058/604] gnu: gst-plugins-ugly: Add mpg123 support.
* gnu/packages/gstreamer.scm (gst-plugins-ugly)[inputs]: Add mpg123.
---
gnu/packages/gstreamer.scm | 1 +
1 file changed, 1 insertion(+)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index ba162c6601..cc874a2f18 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -357,6 +357,7 @@ par compared to the rest.")
("libmpeg2" ,libmpeg2)
("libdvdread" ,libdvdread)
("libx264" ,libx264)
+ ("mpg123" ,mpg123)
;; TODO:
;; * opencore-amr (for the AMR-NB decoder and encoder and the
;; AMR-WB decoder)
From 6779b9322253ba232d5d07e337d2d0933ecfdf2f Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Tue, 6 Sep 2016 13:06:10 +0300
Subject: [PATCH 059/604] gnu: gst-plugins-bad: Remove unreferenced qt input.
* gnu/packages/gstreamer.scm (gst-plugins-bad)[inputs]: Remove qtbase.
---
gnu/packages/gstreamer.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index cc874a2f18..b1785e95c9 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -324,7 +324,9 @@ developers consider to have good quality code and correct functionality.")
("openssl" ,openssl)
("opus" ,opus)
("orc" ,orc)
- ("qtbase" ,qtbase)
+ ;("qtbase" ,qtbase)
+ ;("qtdeclarative" ,qtdeclarative)
+ ;("qtx11extras" ,qtx11extras)
("soundtouch" ,soundtouch)
("wayland" ,wayland)))
(home-page "http://gstreamer.freedesktop.org/")
From 83723949a4e5f90176f8863dd08fd9c7f36bce75 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Tue, 6 Sep 2016 15:53:57 +0300
Subject: [PATCH 060/604] gnu: Fix pre-2.7.0 qemu builds.
This is a follow-up to 43bec6d0.
* gnu/packages/debug.scm (qemu-2.3.0),
gnu/packages/grub.scm (qemu-for-tests)[arguments]: Remove the
'disable-test-qga phase.
---
gnu/packages/debug.scm | 5 ++++-
gnu/packages/grub.scm | 8 +++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm
index 9da8885fb3..82a8090d0c 100644
--- a/gnu/packages/debug.scm
+++ b/gnu/packages/debug.scm
@@ -161,7 +161,10 @@ tools that process C/C++ code.")
;; XXX: Disable tests because of GTester's rejection of duplicate test
;; names, which wasn't addressed in this version of QEMU.
`(#:tests? #f
- ,@(package-arguments qemu-minimal)))))
+ ,@(substitute-keyword-arguments (package-arguments qemu-minimal)
+ ((#:phases phases)
+ ;; We disable the tests so we skip the phase disabling the qga test.
+ `(modify-phases ,phases (delete 'disable-test-qga))))))))
(define-public american-fuzzy-lop
(let ((machine (match (or (%current-target-system)
diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index 3229b868c5..302fd0e1ae 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -22,6 +22,7 @@
(define-module (gnu packages grub)
#:use-module (guix download)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module ((guix licenses) #:select (gpl3+))
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
@@ -58,7 +59,12 @@
;; ERROR:tests/rtc-test.c:176:check_time: assertion failed (ABS(t - s) <= wiggle): (382597824 <= 2)
;; Simply disable the tests.
(arguments `(#:tests? #f
- ,@(package-arguments qemu-minimal)))
+ ,@(substitute-keyword-arguments (package-arguments qemu-minimal)
+ ((#:phases phases)
+ ;; We disable the tests so we also skip the phase disabling
+ ;; the qga test, which fails due to changes in QEMU
+ `(modify-phases ,phases
+ (delete 'disable-test-qga))))))
;; The manual fails to build with Texinfo 5.x.
(native-inputs (alist-delete "texinfo" (package-native-inputs qemu)))))
From 5e814f63a41390868ed36ce4e8380334f5537921 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice
Date: Mon, 5 Sep 2016 15:28:07 +0200
Subject: [PATCH 061/604] gnu: btrfs-progs: Update to 4.7.2.
* gnu/packages/linux.scm (btrfs-progs): Update to 4.7.2.
---
gnu/packages/linux.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 0034314601..030e35e638 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2631,7 +2631,7 @@ and copy/paste text in the console and in xterm.")
(define-public btrfs-progs
(package
(name "btrfs-progs")
- (version "4.7.1")
+ (version "4.7.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/"
@@ -2639,7 +2639,7 @@ and copy/paste text in the console and in xterm.")
"btrfs-progs-v" version ".tar.xz"))
(sha256
(base32
- "15jsa12ijc6z49v1csc62x9zidrgcf307lwy1rbffdwk3gsrczww"))))
+ "03z6zgvjb94jk0q1xx2hicznfxj5c8xyyw5xqmh05rpz8ghwk6zl"))))
(build-system gnu-build-system)
(outputs '("out"
"static")) ; static versions of binaries in "out" (~16MiB!)
From f2e7be4e29fb847207ebdc86023b9283700de42f Mon Sep 17 00:00:00 2001
From: David Craven
Date: Fri, 26 Aug 2016 21:48:36 +0200
Subject: [PATCH 062/604] system: vm: Remove -net user flag.
* gnu/system/vm.scm (common-qemu-options): Remove -net user flag.
---
gnu/system/vm.scm | 1 -
1 file changed, 1 deletion(-)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 4c53edc0cf..03f7d6c913 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -450,7 +450,6 @@ with '-virtfs' options for the host file systems listed in SHARED-FS."
"")
" -no-reboot -net nic,model=virtio \
" #$@(map virtfs-option shared-fs) " \
- -net user \
-vga std \
-drive file=" #$image
",if=virtio,cache=writeback,werror=report,readonly \
From 6526d43ea4fb0cd151a0d5e9a072c651c1c963d1 Mon Sep 17 00:00:00 2001
From: David Craven
Date: Fri, 26 Aug 2016 21:45:57 +0200
Subject: [PATCH 063/604] activation: Allow home directories to be created
under /var/lib.
* gnu/build/activation.scm (activate-user+groups): Make sure /var/lib
exists.
---
gnu/build/activation.scm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm
index 10aa58d85c..7dc40b0961 100644
--- a/gnu/build/activation.scm
+++ b/gnu/build/activation.scm
@@ -233,6 +233,9 @@ numeric gid or #f."
;; 'groupadd' aborts if the file doesn't already exist.
(touch "/etc/group")
+ ;; Allow home directories to be created under /var/lib.
+ (mkdir "/var/lib")
+
;; Create the root account so we can use 'useradd' and 'groupadd'.
(activate-user (find (match-lambda
((name (? zero?) _ ...) #t)
From f2901d824adf8b384f80766e99b0a9a90753abfa Mon Sep 17 00:00:00 2001
From: David Craven
Date: Sat, 27 Aug 2016 15:45:15 +0200
Subject: [PATCH 064/604] services: Export initrc.
* gnu/services/xorg.scm (define-module): Export initrc.
---
gnu/services/xorg.scm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index 4e311deb84..87c4487037 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -42,6 +42,8 @@
#:export (xorg-configuration-file
%default-xorg-modules
xorg-start-command
+ xinitrc
+
%default-slim-theme
%default-slim-theme-name
slim-configuration
From ec2e2f6ce2f808de20f4770748db43aefd46f0bf Mon Sep 17 00:00:00 2001
From: David Craven
Date: Sat, 27 Aug 2016 15:38:55 +0200
Subject: [PATCH 065/604] services: syslog: Use syslog-configuration.
* gnu/services/base.scm (): New variable.
(syslog-service-type): Use .
(syslog-service): Use .
* gnu/tests/base.scm (%avahi-os): Use .
* doc/guix.texi (syslog-configuration-type): Add @deftp.
(syslog-service): Update @deffn.
---
doc/guix.texi | 21 ++++++++++++++++-----
gnu/services/base.scm | 29 +++++++++++++++++++++--------
gnu/tests/base.scm | 9 ++++++---
3 files changed, 43 insertions(+), 16 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index b6ca34a2f3..2abb7b231a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -7719,12 +7719,23 @@ privacy---often the result of host name lookups is in local cache, so
external name servers do not even need to be queried.
@end defvr
+@anchor{syslog-configuration-type}
+@deftp {Data Type} syslog-configuration
+This data type represents the configuration of the syslog daemon.
-@deffn {Scheme Procedure} syslog-service @
- [#:config-file @var{%default-syslog.conf}]
-Return a service that runs @command{syslogd}. If the configuration file
-name @var{config-file} is not specified, use some reasonable default
-settings.
+@table @asis
+@item @code{syslogd} (default: @code{#~(string-append #$inetutils "/libexec/syslogd")})
+The syslog daemon to use.
+
+@item @code{config-file} (default: @code{%default-syslog.conf})
+The syslog configuration file to use.
+
+@end table
+@end deftp
+
+@anchor{syslog-service}
+@deffn {Scheme Procedure} syslog-service @var{config}
+Return a service that runs a syslog daemon according to @var{config}.
@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
information on the configuration file syntax.
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index f3f6408687..2c2962cd8c 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -82,6 +82,9 @@
nscd-service-type
nscd-service
+
+ syslog-configuration
+ syslog-configuration?
syslog-service
syslog-service-type
%default-syslog.conf
@@ -885,17 +888,27 @@ given @var{config}---an @code{} object. @xref{Name
Service Switch}, for an example."
(service nscd-service-type config))
+
+(define-record-type*
+ syslog-configuration make-syslog-configuration
+ syslog-configuration?
+ (syslogd syslog-configuration-syslogd
+ (default #~(string-append #$inetutils "/libexec/syslogd")))
+ (config-file syslog-configuration-config-file
+ (default %default-syslog.conf)))
+
(define syslog-service-type
(shepherd-service-type
'syslog
- (lambda (config-file)
+ (lambda (config)
(shepherd-service
(documentation "Run the syslog daemon (syslogd).")
(provision '(syslogd))
(requirement '(user-processes))
(start #~(make-forkexec-constructor
- (list (string-append #$inetutils "/libexec/syslogd")
- "--no-detach" "--rcfile" #$config-file)))
+ (list #$(syslog-configuration-syslogd config)
+ "--no-detach"
+ "--rcfile" #$(syslog-configuration-config-file config))))
(stop #~(make-kill-destructor))))))
;; Snippet adapted from the GNU inetutils manual.
@@ -921,14 +934,14 @@ Service Switch}, for an example."
mail.* /var/log/maillog
"))
-(define* (syslog-service #:key (config-file %default-syslog.conf))
- "Return a service that runs @command{syslogd}. If configuration file
-name @var{config-file} is not specified, use some reasonable default
-settings.
+(define* (syslog-service #:optional (config (syslog-configuration)))
+ "Return a service that runs @command{syslogd} and takes
+@var{} as a parameter.
@xref{syslogd invocation,,, inetutils, GNU Inetutils}, for more
information on the configuration file syntax."
- (service syslog-service-type config-file))
+ (service syslog-service-type config))
+
(define pam-limits-service-type
(let ((security-limits
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 41f50c0e7a..5c2af5b6d4 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -384,9 +384,12 @@ functionality tests.")
(log-file "/dev/console")))
(syslog-service-type config
=>
- (plain-file
- "syslog.conf"
- "*.* /dev/console\n")))))))
+ (syslog-configuration
+ (inherit config)
+ (config-file
+ (plain-file
+ "syslog.conf"
+ "*.* /dev/console\n")))))))))
(define (run-nss-mdns-test)
;; Test resolution of '.local' names via libc. Start the marionette service
From 99c53e226ee95f2ee7f58a2704e2c5051af6aaef Mon Sep 17 00:00:00 2001
From: David Craven
Date: Sun, 28 Aug 2016 16:26:28 +0200
Subject: [PATCH 066/604] gnu: Add prefix to license imports in (gnu packages
display-managers).
* gnu/packages/display-managers.scm: Import (guix licenses) with prefix
"license:".
---
gnu/packages/display-managers.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 579b149a0c..3f3c6dba5c 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -19,7 +19,7 @@
;;; along with GNU Guix. If not, see .
(define-module (gnu packages display-managers)
- #:use-module ((guix licenses) #:prefix l:)
+ #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system cmake)
@@ -92,4 +92,4 @@ fonts, External themes support, Configurable runtime options: X server --
login / shutdown / reboot commands, Single (GDM-like) or double (XDM-like)
input control, Can load predefined user at startup, Configurable welcome /
shutdown messages, Random theme selection.")
- (license l:gpl2)))
+ (license license:gpl2)))
From 901385ca026bde2a6d4bfeccf8251d8875ab1453 Mon Sep 17 00:00:00 2001
From: David Craven
Date: Sun, 28 Aug 2016 17:07:57 +0200
Subject: [PATCH 067/604] gnu: Add greenisland.
* gnu/packages/display-managers.scm (greenisland): New variable.
---
gnu/packages/display-managers.scm | 94 +++++++++++++++++++++++++++++--
1 file changed, 90 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 3f3c6dba5c..74a607a870 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -25,12 +25,98 @@
#:use-module (guix build-system cmake)
#:use-module (guix packages)
#:use-module (gnu packages)
- #:use-module (gnu packages gl)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages image)
#:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
- #:use-module (gnu packages linux))
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xorg))
+
+(define-public greenisland
+ (package
+ (name "greenisland")
+ (version "0.8.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/greenisland/greenisland"
+ "/releases/download/v" version "/"
+ "greenisland-" version ".tar.xz"))
+ (sha256
+ (base32
+ "1c9rlq7fqrsd5nb37anjvnp9xspqjz1kc0fvydv5xdy3abg8mw40"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("dbus" ,dbus)
+ ("glib:bin" ,glib "bin")
+ ("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server)))
+ (inputs
+ `(("elogind" ,elogind)
+ ("eudev" ,eudev)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("glib" ,glib)
+ ("libdrm" ,libdrm)
+ ("libinput" ,libinput-minimal)
+ ("libxcursor" ,libxcursor)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libx11" ,libx11)
+ ("mesa" ,mesa)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)
+ ("xcb-util-cursor" ,xcb-util-cursor)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DPLUGIN_INSTALL_DIR="
+ (assoc-ref %outputs "out") "/plugins")
+ (string-append "-DQML_INSTALL_DIR="
+ (assoc-ref %outputs "out") "/qml"))
+ #:modules ((guix build cmake-build-system)
+ (guix build qt-utils)
+ (guix build utils))
+ #:imported-modules (,@%cmake-build-system-modules
+ (guix build qt-utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-udev-tests
+ (lambda _ ; FIXME: Build env doesn't contain /dev/sda
+ (substitute* "tests/auto/platform/tst_udev.cpp"
+ (("QVERIFY") "// QVERIFY")
+ (("QCOMPARE") "// QCOMPARE"))))
+ (replace 'check
+ (lambda _
+ (setenv "DBUS_FATAL_WARNINGS" "0")
+ (zero? (system* "dbus-launch" "ctest" "."))))
+ (add-before 'check 'check-setup
+ (lambda _
+ (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ (setenv "XDG_RUNTIME_DIR" (getcwd))
+ #t))
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-qt-program out "greenisland")
+ (wrap-qt-program out "greenisland-launcher")
+ (wrap-qt-program out "greenisland-screencaster")
+ (wrap-qt-program out "greenisland-wayland-scanner")
+ #t))))))
+ (synopsis "QtQuick Wayland compositor and shell for desktop and mobile")
+ (description "Green Island provides a full blown Wayland compositor for
+QtQuick as well as pluggable hardware abstraction, extensions, tools and a
+Qt-style API for Wayland clients.")
+ (home-page "http://hawaiios.org")
+ ;; Choice of license at the user's opinion.
+ (license (list license:gpl2 license:gpl3 license:lgpl2.1 license:lgpl3))))
(define-public slim
(package
From 15791fa53512b50796b36b9ca0fe780260262d9d Mon Sep 17 00:00:00 2001
From: David Craven
Date: Sun, 28 Aug 2016 17:09:16 +0200
Subject: [PATCH 068/604] gnu: Add sddm.
* gnu/packages/display-managers.scm (sddm): New variable.
---
gnu/packages/display-managers.scm | 68 +++++++++++++++++++++++++++++++
1 file changed, 68 insertions(+)
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 74a607a870..1371bb5f39 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -25,6 +25,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix packages)
#:use-module (gnu packages)
+ #:use-module (gnu packages admin)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gl)
@@ -118,6 +119,73 @@ Qt-style API for Wayland clients.")
;; Choice of license at the user's opinion.
(license (list license:gpl2 license:gpl3 license:lgpl2.1 license:lgpl3))))
+(define-public sddm
+ (package
+ (name "sddm")
+ (version "0.14.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/sddm/sddm"
+ "/releases/download/v" version "/"
+ "sddm-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0y3pn8g2qj7q20zkmbasrfsj925lfzizk63sfrvzf84bc5c84d3y"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("extra-cmake-modules" ,extra-cmake-modules)
+ ("pkg-config" ,pkg-config)
+ ("qttools" ,qttools)))
+ (inputs
+ `(("glib" ,glib)
+ ("greenisland" ,greenisland)
+ ("libxcb" ,libxcb)
+ ("libxkbcommon" ,libxkbcommon)
+ ("linux-pam" ,linux-pam)
+ ("qtbase" ,qtbase)
+ ("qtdeclarative" ,qtdeclarative)
+ ("shadow" ,shadow)
+ ("wayland" ,wayland)))
+ (arguments
+ `(#:configure-flags
+ (list
+ ;; Currently doesn't do anything
+ ;; Option added by enable wayland greeters PR
+ "-DENABLE_WAYLAND=ON"
+ "-DENABLE_PAM=ON"
+ "-DCONFIG_FILE=/etc/sddm.conf"
+ ;; Set path to /etc/login.defs
+ ;; Alternatively use -DUID_MIN and -DUID_MAX
+ (string-append "-DLOGIN_DEFS_PATH="
+ (assoc-ref %build-inputs "shadow")
+ "/etc/login.defs")
+ (string-append "-DQT_IMPORTS_DIR="
+ (assoc-ref %outputs "out") "/qml")
+ (string-append "-DCMAKE_INSTALL_SYSCONFDIR="
+ (assoc-ref %outputs "out") "/etc"))
+ #:modules ((guix build cmake-build-system)
+ (guix build qt-utils)
+ (guix build utils))
+ #:imported-modules (,@%cmake-build-system-modules
+ (guix build qt-utils))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'wrap-programs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (wrap-qt-program out "sddm")
+ (wrap-qt-program out "sddm-greeter")
+ #t))))))
+ (synopsis "QML based X11 and Wayland display manager")
+ (description "SDDM is a display manager for X11 and Wayland aiming to be
+fast, simple and beautiful. SDDM is themeable and puts no restrictions on the
+user interface design. It uses QtQuick which gives the designer the ability to
+create smooth, animated user interfaces.")
+ (home-page "https://github.com/sddm/sddm")
+ ;; QML files are MIT licensed and images are CC BY 3.0.
+ (license (list license:gpl2+ license:expat license:cc-by3.0))))
+
(define-public slim
(package
(name "slim")
From 935644c01ade149f33e1eeea9ed8647f229aa4d6 Mon Sep 17 00:00:00 2001
From: David Craven
Date: Wed, 20 Jul 2016 13:17:48 +0200
Subject: [PATCH 069/604] services: Add sddm service.
* gnu/services/sddm.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* doc/guix.texi (@deftp, @deffn): Add documentation.
---
doc/guix.texi | 103 ++++++++++++++
gnu/local.mk | 1 +
gnu/services/sddm.scm | 318 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 422 insertions(+)
create mode 100644 gnu/services/sddm.scm
diff --git a/doc/guix.texi b/doc/guix.texi
index 2abb7b231a..59bc5d8ee0 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8226,6 +8226,109 @@ Xorg---is provided by the @code{(gnu services xorg)} module. Note that
there is no @code{xorg-service} procedure. Instead, the X server is
started by the @dfn{login manager}, currently SLiM.
+@deftp {Data Type} sddm-configuration
+This is the data type representing the sddm service configuration.
+
+@table @asis
+@item @code{display-server} (default: "x11")
+Select display server to use for the greeter. Valid values are "x11"
+or "wayland".
+
+@item @code{numlock} (default: "on")
+Valid values are "on", "off" or "none".
+
+@item @code{halt-command} (default @code{#~(string-apppend #$shepherd "/sbin/halt")})
+Command to run when halting.
+
+@item @code{reboot-command} (default @code{#~(string-append #$shepherd "/sbin/reboot")})
+Command to run when rebooting.
+
+@item @code{theme} (default "maldives")
+Theme to use. Default themes provided by SDDM are "elarun" or "maldives".
+
+@item @code{themes-directory} (default "/run/current-system/profile/share/sddm/themes")
+Directory to look for themes.
+
+@item @code{faces-directory} (default "/run/current-system/profile/share/sddm/faces")
+Directory to look for faces.
+
+@item @code{default-path} (default "/run/current-system/profile/bin")
+Default PATH to use.
+
+@item @code{minimum-uid} (default 1000)
+Minimum UID to display in SDDM.
+
+@item @code{maximum-uid} (default 2000)
+Maximum UID to display in SDDM
+
+@item @code{remember-last-user?} (default #t)
+Remember last user.
+
+@item @code{remember-last-session?} (default #t)
+Remember last session.
+
+@item @code{hide-users} (default "")
+Usernames to hide from SDDM greeter.
+
+@item @code{hide-shells} (default @code{#~(string-append #$shadow "/sbin/nologin")})
+Users with shells listed will be hidden from the SDDM greeter.
+
+@item @code{session-command} (default @code{#~(string-append #$sddm "/share/sddm/scripts/wayland-session")})
+Script to run before starting a wayland session.
+
+@item @code{sessions-directory} (default "/run/current-system/profile/share/wayland-sessions")
+Directory to look for desktop files starting wayland sessions.
+
+@item @code{xorg-server-path} (default @code{xorg-start-command})
+Path to xorg-server.
+
+@item @code{xauth-path} (default @code{#~(string-append #$xauth "/bin/xauth")})
+Path to xauth.
+
+@item @code{xephyr-path} (default @code{#~(string-append #$xorg-server "/bin/Xephyr")})
+Path to Xephyr.
+
+@item @code{xdisplay-start} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xsetup")})
+Script to run after starting xorg-server.
+
+@item @code{xdisplay-stop} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")})
+Script to run before stopping xorg-server.
+
+@item @code{xsession-command} (default: @code{xinitr })
+Script to run before starting a X session.
+
+@item @code{xsessions-directory} (default: "/run/current-system/profile/share/xsessions")
+Directory to look for desktop files starting X sessions.
+
+@item @code{minimum-vt} (default: 7)
+Minimum VT to use.
+
+@item @code{xserver-arguments} (default "-nolisten tcp")
+Arguments to pass to xorg-server.
+
+@item @code{auto-login-user} (default "")
+User to use for auto-login.
+
+@item @code{auto-login-session} (default "")
+Desktop file to use for auto-login.
+
+@item @code{relogin?} (default #f)
+Relogin after logout.
+
+@end table
+@end deftp
+
+@deffn {Scheme Procedure} sddm-service config
+Return a service that spawns the SDDM graphical login manager for config of
+type @code{}.
+
+@example
+ (sddm-service (sddm-configuration
+ (auto-login-user "Alice")
+ (auto-login-session "xfce.desktop")))
+@end example
+@end deffn
+
@deffn {Scheme Procedure} slim-service [#:allow-empty-passwords? #f] @
[#:auto-login? #f] [#:default-user ""] [#:startx] @
[#:theme @var{%default-slim-theme}] @
diff --git a/gnu/local.mk b/gnu/local.mk
index 50363ef026..0a9b831aa1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -391,6 +391,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/networking.scm \
%D%/services/shepherd.scm \
%D%/services/herd.scm \
+ %D%/services/sddm.scm \
%D%/services/spice.scm \
%D%/services/ssh.scm \
%D%/services/web.scm \
diff --git a/gnu/services/sddm.scm b/gnu/services/sddm.scm
new file mode 100644
index 0000000000..ab6672b0e5
--- /dev/null
+++ b/gnu/services/sddm.scm
@@ -0,0 +1,318 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 David Craven
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see .
+
+(define-module (gnu services sddm)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages display-managers)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu services)
+ #:use-module (gnu services shepherd)
+ #:use-module (gnu services xorg)
+ #:use-module (gnu system pam)
+ #:use-module (gnu system shadow)
+ #:use-module (guix gexp)
+ #:use-module (guix records)
+ #:export (sddm-configuration
+ sddm-confiugration?
+ sddm-service-type
+ sddm-service))
+
+(define-record-type*
+ sddm-configuration make-sddm-configuration
+ sddm-configuration?
+ (sddm sddm-configuration-sddm
+ (default sddm))
+
+ ;; [General]
+ ;; valid values are x11 and wayland
+ ;; currently doesn't do anything is enabled by wayland greeter PR
+ (display-server sddm-configuration-display-server
+ (default "x11"))
+ ;; valid values are on, off or none
+ (numlock sddm-configuration-numlock
+ (default "on"))
+ (halt-command sddm-configuration-halt-command
+ (default #~(string-append #$shepherd "/sbin/halt")))
+ (reboot-command sddm-configuration-reboot-command
+ (default #~(string-append #$shepherd "/sbin/reboot")))
+
+ ;; [Theme]
+ ;; valid values are elarun or maldives
+ (theme sddm-configuration-theme
+ (default "maldives"))
+ (themes-directory sddm-configuration-themes-directory
+ (default "/run/current-system/profile/share/sddm/themes"))
+ (faces-directory sddm-configuration-faces-directory
+ (default "/run/current-system/profile/share/sddm/faces"))
+
+ ;; [Users]
+ (default-path sddm-configuration-default-path
+ (default "/run/current-system/profile/bin"))
+ (minimum-uid sddm-configuration-minimum-uid
+ (default 1000))
+ (maximum-uid sddm-configuration-maximum-uid
+ (default 2000))
+ (remember-last-user? sddm-configuration-remember-last-user?
+ (default #t))
+ (remember-last-session? sddm-configuration-remember-last-session?
+ (default #t))
+ (hide-users sddm-configuration-hide-users
+ (default ""))
+ (hide-shells sddm-configuration-hide-shells
+ (default #~(string-append #$shadow "/sbin/nologin")))
+
+ ;; [Wayland]
+ (session-command sddm-configuration-session-command
+ (default #~(string-append #$sddm "/share/sddm/scripts/wayland-session")))
+ (sessions-directory sddm-configuration-sessions-directory
+ (default "/run/current-system/profile/share/wayland-sessions"))
+ ;; [X11]
+ (xorg-server-path sddm-configuration-xorg-server-path
+ (default (xorg-start-command)))
+ (xauth-path sddm-configuration-xauth-path
+ (default #~(string-append #$xauth "/bin/xauth")))
+ (xephyr-path sddm-configuration-xephyr-path
+ (default #~(string-append #$xorg-server "/bin/Xephyr")))
+ (xdisplay-start sddm-configuration-xdisplay-start
+ (default #~(string-append #$sddm "/share/sddm/scripts/Xsetup")))
+ (xdisplay-stop sddm-configuration-xdisplay-stop
+ (default #~(string-append #$sddm "/share/sddm/scripts/Xstop")))
+ (xsession-command sddm-configuration-xsession-command
+ (default (xinitrc)))
+ (xsessions-directory sddm-configuration-xsessions-directory
+ (default "/run/current-system/profile/share/xsessions"))
+ (minimum-vt sddm-configuration-minimum-vt
+ (default 7))
+ (xserver-arguments sddm-configuration-xserver-arguments
+ (default "-nolisten tcp"))
+
+ ;; [Autologin]
+ (auto-login-user sddm-configuration-auto-login-user
+ (default ""))
+ ;; valid values are xfce.desktop gnome.desktop weston.desktop hawaii.desktop
+ (auto-login-session sddm-configuration-auto-login-session
+ (default ""))
+ (relogin? sddm-configuration-relogin?
+ (default #f)))
+
+(define (sddm-configuration-file config)
+ (mixed-text-file "sddm.conf" "
+[General]
+DisplayServer=" (sddm-configuration-display-server config) "
+Numlock=" (sddm-configuration-numlock config) "
+HaltCommand=" (sddm-configuration-halt-command config) "
+RebootCommand=" (sddm-configuration-reboot-command config) "
+
+[Users]
+DefaultPath=" (sddm-configuration-default-path config) "
+MinimumUid=" (number->string (sddm-configuration-minimum-uid config))"
+MaximumUid=" (number->string (sddm-configuration-maximum-uid config))"
+RememberLastUser=" (if (sddm-configuration-remember-last-user? config)
+ "true" "false") "
+RememberLastSession=" (if (sddm-configuration-remember-last-session? config)
+ "true" "false") "
+HideUsers=" (sddm-configuration-hide-users config) "
+Hideshells=" (sddm-configuration-hide-shells config) "
+
+[Theme]
+Current=" (sddm-configuration-theme config) "
+ThemeDir=" (sddm-configuration-themes-directory config) "
+FacesDir=" (sddm-configuration-faces-directory config) "
+
+[Wayland]
+SessionCommand=" (sddm-configuration-session-command config) "
+SessionDir=" (sddm-configuration-sessions-directory config) "
+
+[X11]
+ServerPath=" (sddm-configuration-xorg-server-path config) "
+XauthPath=" (sddm-configuration-xauth-path config) "
+XephyrPath=" (sddm-configuration-xephyr-path config) "
+DisplayCommand=" (sddm-configuration-xdisplay-start config) "
+DisplayStopCommand=" (sddm-configuration-xdisplay-stop config) "
+SessionCommand=" (sddm-configuration-xsession-command config) "
+SessionDir=" (sddm-configuration-xsessions-directory config) "
+MinimumVT=" (number->string (sddm-configuration-minimum-vt config)) "
+ServerArguments=" (sddm-configuration-xserver-arguments config) "
+
+[Autologin]
+User=" (sddm-configuration-auto-login-user config) "
+Session=" (sddm-configuration-auto-login-session config) "
+Relogin=" (if (sddm-configuration-relogin? config)
+ "true" "false") "
+"))
+
+(define (sddm-shepherd-service config)
+ "Return a for sddm with CONFIG."
+
+ (define sddm-command
+ #~(list (string-append #$(sddm-configuration-sddm config) "/bin/sddm")))
+
+ (list (shepherd-service
+ (documentation "SDDM display manager.")
+ (requirement '(user-processes))
+ (provision '(display-manager))
+ (start #~(make-forkexec-constructor #$sddm-command))
+ (stop #~(make-kill-destructor)))))
+
+(define (sddm-etc-service config)
+ (list `("sddm.conf" ,(sddm-configuration-file config))))
+
+(define (sddm-pam-service)
+ "Return a PAM service for @command{sddm}."
+ (pam-service
+ (name "sddm")
+ (auth
+ (list
+ (pam-entry
+ (control "requisite")
+ (module "pam_nologin.so"))
+ (pam-entry
+ (control "required")
+ (module "pam_env.so"))
+ (pam-entry
+ (control "required")
+ (module "pam_succeed_if.so")
+ (arguments (list "uid >= 1000" "quiet")))
+ ;; should be factored out into system-auth
+ (pam-entry
+ (control "required")
+ (module "pam_unix.so"))))
+ (account
+ (list
+ ;; should be factored out into system-account
+ (pam-entry
+ (control "required")
+ (module "pam_unix.so"))))
+ (password
+ (list
+ ;; should be factored out into system-password
+ (pam-entry
+ (control "required")
+ (module "pam_unix.so")
+ (arguments (list "sha512" "shadow" "try_first_pass")))))
+ (session
+ (list
+ ;; lfs has a required pam_limits.so
+ ;; should be factored out into system-session
+ (pam-entry
+ (control "required")
+ (module "pam_unix.so"))))))
+
+(define (sddm-greeter-pam-service)
+ "Return a PAM service for @command{sddm-greeter}."
+ (pam-service
+ (name "sddm-greeter")
+ (auth
+ (list
+ ;; Load environment form /etc/environment and ~/.pam_environment
+ (pam-entry
+ (control "required")
+ (module "pam_env.so"))
+ ;; Always let the greeter start without authentication
+ (pam-entry
+ (control "required")
+ (module "pam_permit.so"))))
+ (account
+ (list
+ ;; No action required for account management
+ (pam-entry
+ (control "required")
+ (module "pam_permit.so"))))
+ (password
+ (list
+ ;; Can't change password
+ (pam-entry
+ (control "required")
+ (module "pam_deny.so"))))
+ (session
+ (list
+ ;; Setup session
+ (pam-entry
+ (control "required")
+ (module "pam_unix.so"))))))
+
+(define (sddm-autologin-pam-service)
+ "Return a PAM service for @command{sddm-autologin}"
+ (pam-service
+ (name "sddm-autologin")
+ (auth
+ (list
+ (pam-entry
+ (control "requisite")
+ (module "pam_nologin.so"))
+ (pam-entry
+ (control "required")
+ (module "pam_succeed_if.so")
+ (arguments (list "uid >= 1000" "quiet")))
+ (pam-entry
+ (control "required")
+ (module "pam_permit.so"))))
+ (account
+ (list
+ (pam-entry
+ (control "include")
+ (module "sddm"))))
+ (password
+ (list
+ (pam-entry
+ (control "required")
+ (module "pam_deny.so"))))
+ (session
+ (list
+ (pam-entry
+ (control "include")
+ (module "sddm"))))))
+
+(define (sddm-pam-services config)
+ (list (sddm-pam-service)
+ (sddm-greeter-pam-service)
+ (sddm-autologin-pam-service)))
+
+(define %sddm-accounts
+ (list (user-group (name "sddm") (system? #t))
+ (user-account
+ (name "sddm")
+ (group "sddm")
+ (system? #t)
+ (comment "SDDM user")
+ (home-directory "/var/lib/sddm")
+ (shell #~(string-append #$shadow "/sbin/nologin")))))
+
+;; Add default themes to profile
+(define sddm-profile-service
+ (compose list sddm-configuration-sddm))
+
+(define sddm-service-type
+ (service-type (name 'sddm)
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ sddm-shepherd-service)
+ (service-extension etc-service-type
+ sddm-etc-service)
+ (service-extension pam-root-service-type
+ sddm-pam-services)
+ (service-extension account-service-type
+ (const %sddm-accounts))
+ (service-extension profile-service-type
+ sddm-profile-service)))))
+
+(define* (sddm-service #:optional (config (sddm-configuration)))
+ "Run the @uref{https://github.com/sddm/sddm,SSDM display manager}
+with the given @var{config}, a @code{} object."
+ (service sddm-service-type config))
From 40b3f52399feeca34e20796c22776f6c462e42c0 Mon Sep 17 00:00:00 2001
From: David Craven
Date: Sun, 4 Sep 2016 15:20:24 +0200
Subject: [PATCH 070/604] gnu: Add cairo-xcb.
* gnu/packages/gtk.scm (cairo-xcb): New variable.
---
gnu/packages/gtk.scm | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 74c4ed36a9..5f55c1ee6f 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -149,6 +149,19 @@ affine transformation (scale, rotation, shear, etc.).")
(license license:lgpl2.1) ; or Mozilla Public License 1.1
(home-page "http://cairographics.org/")))
+(define-public cairo-xcb
+ (package
+ (inherit cairo)
+ (name "cairo-xcb")
+ (inputs
+ `(("mesa" ,mesa)
+ ,@(package-inputs cairo)))
+ (arguments
+ `(#:tests? #f
+ #:configure-flags
+ '("--enable-xlib-xcb" "--enable-gl" "--enable-egl")))
+ (synopsis "2D graphics library (with X11 support)")))
+
(define-public harfbuzz
(package
(name "harfbuzz")
From dfe05a514c192034fd65c7b5ca7e4d576b10ab4f Mon Sep 17 00:00:00 2001
From: David Craven
Date: Sun, 4 Sep 2016 15:28:55 +0200
Subject: [PATCH 071/604] gnu: Add xorg-server-xwayland.
* gnu/packages/xorg.scm (xorg-server-xwayland): New variable.
---
gnu/packages/xorg.scm | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index fe14b1c6d4..0d3cdce37c 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2016 Efraim Flashner
;;; Copyright © 2016 ng0
;;; Copyright © 2016 Alex Kost
+;;; Copyright © 2016 David Craven
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,6 +33,7 @@
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
+ #:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
@@ -5155,6 +5157,23 @@ communicates with the user via graphical controls such as buttons and
draggable titlebars and borders.")
(license license:x11)))
+(define-public xorg-server-xwayland
+ (package
+ (inherit xorg-server)
+ (name "xorg-server-xwayland")
+ (inputs
+ `(("libepoxy" ,libepoxy)
+ ("wayland" ,wayland)
+ ,@(package-inputs xorg-server)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments xorg-server)
+ ((#:configure-flags flags)
+ `(cons* "--enable-xwayland" "--disable-xorg"
+ "--disable-docs" "--disable-devel-docs"
+ "--disable-xvfb" "--disable-xnest"
+ "--disable-xquartz" "--disable-xwin"
+ ,flags))))
+ (synopsis "Xorg server with wayland backend")))
;; packages of height 4 in the propagated-inputs tree
From 24e051cb5f201765dee7f1c44bf8d496f91798de Mon Sep 17 00:00:00 2001
From: David Craven
Date: Wed, 20 Jul 2016 13:16:49 +0200
Subject: [PATCH 072/604] gnu: Add weston.
* gnu/packages/freedesktop.scm (weston): New variable.
---
gnu/packages/freedesktop.scm | 75 ++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 2032dce66a..84154b309b 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -36,6 +36,7 @@
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages autotools)
#:use-module (gnu packages gettext)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
@@ -49,6 +50,7 @@
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages libunwind)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages polkit)
@@ -318,6 +320,79 @@ applications, X servers (rootless or fullscreen) or other display servers.")
(home-page "https://wayland.freedesktop.org")
(license license:expat)))
+(define-public weston
+ (package
+ (name "weston")
+ (version "1.11.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://wayland.freedesktop.org/releases/"
+ "weston-" version ".tar.xz"))
+ (sha256
+ (base32
+ "09biddxw3ar797kxf9mywjkb2iwky6my39gpp51ni846y7lqdq05"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server)))
+ (inputs
+ `(("cairo" ,cairo-xcb)
+ ("dbus" ,dbus)
+ ("elogind" ,elogind)
+ ("libinput" ,libinput-minimal)
+ ("libunwind" ,libunwind)
+ ("libxcursor" ,libxcursor)
+ ("libxkbcommon" ,libxkbcommon)
+ ("mesa" ,mesa)
+ ("mtdev" ,mtdev)
+ ("linux-pam" ,linux-pam)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)
+ ("xorg-server-xwayland" ,xorg-server-xwayland)))
+ (arguments
+ `(#:configure-flags
+ (list "--disable-setuid-install"
+ "--enable-systemd-login"
+ (string-append "--with-xserver-path="
+ (assoc-ref %build-inputs "xorg-server-xwayland")
+ "/bin/Xwayland"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'use-elogind
+ (lambda _
+ ;; Use elogind instead of systemd
+ (substitute* "configure"
+ (("libsystemd-login >= 198") "libelogind"))
+ (substitute* '("src/launcher-logind.c" "src/weston-launch.c")
+ (("#include ")
+ "#include "))))
+ (add-after 'configure 'patch-confdefs.h
+ (lambda _
+ (system "echo \"#define HAVE_SYSTEMD_LOGIN_209 1\" >> confdefs.h")))
+ (add-before 'check 'setup
+ (lambda _
+ (setenv "HOME" (getcwd))
+ (setenv "XDG_RUNTIME_DIR" (getcwd))
+ #t))
+ (add-before 'check 'start-xorg-server
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; The test suite requires a running X server.
+ (system (string-append (assoc-ref inputs "xorg-server")
+ "/bin/Xvfb :1 &"))
+ (setenv "DISPLAY" ":1")
+ #t)))))
+ (home-page "https://wayland.freedesktop.org")
+ (synopsis "Reference implementation of a Wayland compositor")
+ (description "Weston is the reference implementation of a Wayland
+compositor, and a useful compositor in its own right.
+
+A Wayland compositor allows applications to render to a shared offscreen
+buffer using OpenGL ES. The compositor then culls the hidden parts and
+composes the final output. A Wayland compositor is essentially a
+multiplexer to the KMS/DRM Linux kernel devices.")
+ (license license:expat)))
+
(define-public exempi
(package
(name "exempi")
From 274563e1f4b3ff89ad628e6318c43d3e8bc1aa66 Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Sat, 3 Sep 2016 22:21:04 +0200
Subject: [PATCH 073/604] gnu: Add ding.
* gnu/packages/dictionaries.scm (ding): New variable.
---
gnu/packages/dictionaries.scm | 64 ++++++++++++++++++++++++++++++++++-
1 file changed, 63 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/dictionaries.scm b/gnu/packages/dictionaries.scm
index 931db626d8..0c47585fe7 100644
--- a/gnu/packages/dictionaries.scm
+++ b/gnu/packages/dictionaries.scm
@@ -26,7 +26,9 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages base)
#:use-module (gnu packages texinfo)
- #:use-module (gnu packages compression))
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages tcl))
+
(define-public vera
(package
@@ -138,3 +140,63 @@ body of text. Style instead analyzes surface aspects of a written
work, such as sentence length and other readability measures.")
(home-page "https://www.gnu.org/software/diction/")
(license gpl3+)))
+
+(define-public ding
+ (package
+ (name "ding")
+ (version "1.8")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://ftp.tu-chemnitz.de/pub/Local/urz/" name
+ "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "00z97ndwmzsgig9q6y98y8nbxy76pyi9qyj5qfpbbck24gakpz5l"))))
+ (build-system gnu-build-system)
+ (inputs `(("tk" ,tk)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (delete 'check)
+ (replace
+ 'install
+ (lambda _
+ (let ((bindir (string-append
+ (assoc-ref %outputs "out") "/bin"))
+ (wish (string-append
+ (assoc-ref %build-inputs "tk")
+ "/bin/wish8.6"))
+ (sharedir (string-append
+ (assoc-ref %outputs "out")
+ "/share/applications"))
+ (libdir (string-append
+ (assoc-ref %outputs "out") "/lib")))
+ (mkdir-p bindir)
+ (mkdir-p libdir)
+ (mkdir-p sharedir)
+
+ (substitute* "ding.desktop"
+ (("Exec=/usr/bin/ding")
+ (string-append "Exec=" bindir "/ding")))
+ (with-fluids ((%default-port-encoding "ISO-8859-1"))
+ (substitute* "ding" (("exec wish") (string-append "exec " wish))))
+ (substitute* "install.sh"
+ (("/bin/cp") "cp")
+ (("/bin/mv") "mv")
+ (("NEEDPROG=\"wish\"")
+ (string-append "NEEDPROG=\"" wish "\""))
+ (("DEFBINDIR=\"/usr/local/bin\"")
+ (string-append "DEFBINDIR=\"" bindir "\""))
+ (("DEFLIBDIR=\"/usr/local/lib\"")
+ (string-append "DEFLIBDIR=\"" libdir "\"")))
+ (install-file "ding.desktop" sharedir)
+ (install-file "ding.png" sharedir)
+ (zero?
+ (system* "./install.sh"))))))))
+ (synopsis "Dictionary lookup program with a German-English dictionary")
+ (description "Ding is a dictionary lookup program for the X window system.
+It comes with a German-English dictionary with approximately 270,000 entries.")
+ (home-page "http://www-user.tu-chemnitz.de/~fri/ding/")
+ (license gpl2+)))
From 83457fe00efc12120fb2a41398b136353e0dcb51 Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Mon, 5 Sep 2016 00:26:26 +0200
Subject: [PATCH 074/604] gnu: Add teximpatient.
* gnu/packages/tex.scm (teximpatient): New variable.
---
gnu/packages/tex.scm | 43 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm
index 9dde8a9eab..c8114c2077 100644
--- a/gnu/packages/tex.scm
+++ b/gnu/packages/tex.scm
@@ -28,7 +28,9 @@
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix utils)
+ #:use-module (guix git-download)
#:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
@@ -446,3 +448,44 @@ PDF documents.")
(description "Texmaker is a program that integrates many tools needed to
develop documents with LaTeX, in a single application.")
(license license:gpl2+)))
+
+
+(define-public teximpatient
+ (package
+ (name "teximpatient")
+ (version "2.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/" name "/" name "-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0h56w22d99dh4fgld4ssik8ggnmhmrrbnrn1lnxi1zr0miphn1sd"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ ;; Unfortunately some mistakes have been made in packaging.
+ ;; Work around them here ...
+ (replace 'unpack
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((srcdir "teximpatient-2.4"))
+ (system* "tar" "-xzf" (assoc-ref inputs "source")
+ (string-append "--one-top-level=" srcdir))
+ (delete-file (string-append srcdir "/book.pdf"))
+ (install-file (car
+ (find-files
+ (assoc-ref inputs "automake")
+ "^install-sh$"))
+ srcdir)
+ (chdir srcdir)))))))
+ (native-inputs
+ `(("texlive" ,texlive)
+ ("automake" ,automake)))
+ (home-page "http://www.gnu.org/software/teximpatient")
+ (synopsis "Book on TeX, plain TeX and Eplain")
+ (description "@i{TeX for the Impatient} is a ~350 page book on TeX,
+plain TeX, and Eplain, originally written by Paul Abrahams, Kathryn Hargreaves,
+and Karl Berry.")
+ (license license:fdl1.3+)))
From 763899f0db923478c8b1b068fd61e06ae856c1fb Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Fri, 2 Sep 2016 16:07:29 -0400
Subject: [PATCH 075/604] gnu: Add openssl-next.
* gnu/packages/tls.scm (openssl-next): New variable.
* gnu/packages/patches/openssl-1.1.0-c-rehash-in.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
---
gnu/local.mk | 1 +
.../patches/openssl-1.1.0-c-rehash-in.patch | 19 ++++++++++
gnu/packages/tls.scm | 35 +++++++++++++++++++
3 files changed, 55 insertions(+)
create mode 100644 gnu/packages/patches/openssl-1.1.0-c-rehash-in.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 0a9b831aa1..bcd96ae0d6 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -702,6 +702,7 @@ dist_patch_DATA = \
%D%/packages/patches/openjpeg-CVE-2015-6581.patch \
%D%/packages/patches/openjpeg-use-after-free-fix.patch \
%D%/packages/patches/openssl-runpath.patch \
+ %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \
%D%/packages/patches/openssl-CVE-2016-2177.patch \
%D%/packages/patches/openssl-CVE-2016-2178.patch \
diff --git a/gnu/packages/patches/openssl-1.1.0-c-rehash-in.patch b/gnu/packages/patches/openssl-1.1.0-c-rehash-in.patch
new file mode 100644
index 0000000000..e3a982b7a8
--- /dev/null
+++ b/gnu/packages/patches/openssl-1.1.0-c-rehash-in.patch
@@ -0,0 +1,19 @@
+This patch removes the explicit reference to the 'perl' binary,
+such that OpenSSL does not retain a reference to Perl.
+
+The 'c_rehash' program is seldom used, but it is used nonetheless
+to create symbolic links to certificates, for instance in the 'nss-certs'
+package.
+
+diff --git a/tools/c_rehash.in b/tools/c_rehash.in
+index 2fef627..9d40eae 100644
+--- a/tools/c_rehash.in
++++ b/tools/c_rehash.in
+@@ -1,4 +1,6 @@
+-#!{- $config{hashbangperl} -}
++eval '(exit $?0)' && eval 'exec perl -wS "$0" ${1+"$@"}'
++ & eval 'exec perl -wS "$0" $argv:q'
++ if 0;
+
+ # {- join("\n# ", @autowarntext) -}
+ # Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved.
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 4b87150615..efc1190980 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -323,6 +323,41 @@ required structures.")
(license license:openssl)
(home-page "http://www.openssl.org/")))
+(define-public openssl-next
+ (package
+ (inherit openssl)
+ (name "openssl")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (list (string-append "ftp://ftp.openssl.org/source/"
+ name "-" version ".tar.gz")
+ (string-append "ftp://ftp.openssl.org/source/old/"
+ (string-trim-right version char-set:letter)
+ "/" name "-" version ".tar.gz")))
+ (patches (search-patches "openssl-1.1.0-c-rehash-in.patch"))
+ (sha256
+ (base32
+ "10lcpmnxap9nw8ymdglys93cgkwd1lf1rz4fhq5whwhlmkwrzipm"))))
+ (outputs '("out"
+ "doc" ;1.3MiB of man3 pages
+ "static")) ; 5.5MiB of .a files
+ (arguments
+ (substitute-keyword-arguments (package-arguments openssl)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (delete 'patch-tests) ; These two phases are not needed by
+ (delete 'patch-Makefile.org) ; OpenSSL 1.1.0.
+
+ (add-after 'configure 'patch-runpath
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
+ (substitute* "Makefile.shared"
+ (("\\$\\$\\{SHAREDCMD\\} \\$\\$\\{SHAREDFLAGS\\}")
+ (string-append "$${SHAREDCMD} $${SHAREDFLAGS}"
+ " -Wl,-rpath," lib)))
+ #t)))))))))
+
(define-public libressl
(package
(name "libressl")
From 7247ecda0e32387b86bf820fcaeb0a4cb7087189 Mon Sep 17 00:00:00 2001
From: Hartmut Goebel
Date: Tue, 6 Sep 2016 17:09:07 +0200
Subject: [PATCH 076/604] gnu: scribus: Update to 1.5.2.
* gnu/packages/scribus.scm (scribus): Update to 1.5.2.
Signed-off-by: Efraim Flashner
---
gnu/packages/scribus.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm
index 72f3c57612..d48051ee33 100644
--- a/gnu/packages/scribus.scm
+++ b/gnu/packages/scribus.scm
@@ -40,14 +40,14 @@
(define-public scribus
(package
(name "scribus")
- (version "1.5.1")
+ (version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/scribus/scribus-devel/"
version "/scribus-" version ".tar.xz"))
(sha256
(base32
- "0f2adwg58w37sdi3xrk8xqw486p3pcfjaypcsswjl76r2f3yd0hq"))))
+ "1xbl7h4x32y2nfhn57ivjziyvlnwadcbizqwfqx5srfsmqiyqppc"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no test target
From a7199b7d994433eaabb989690887b921d053d761 Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Tue, 6 Sep 2016 14:39:35 -0400
Subject: [PATCH 077/604] activation: Don't fail if /var/lib exists.
This is a followup to commit 6526d43ea4fb0cd151a0d5e9a072c651c1c963d1.
* gnu/build/activation.scm (activate-user+groups): Use mkdir-p to create
/var/lib.
---
gnu/build/activation.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm
index 7dc40b0961..1b31dc1538 100644
--- a/gnu/build/activation.scm
+++ b/gnu/build/activation.scm
@@ -234,7 +234,7 @@ numeric gid or #f."
(touch "/etc/group")
;; Allow home directories to be created under /var/lib.
- (mkdir "/var/lib")
+ (mkdir-p "/var/lib")
;; Create the root account so we can use 'useradd' and 'groupadd'.
(activate-user (find (match-lambda
From 3ed3c105e3aef11f21d2e50a529389c0e5aa5555 Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Tue, 6 Sep 2016 14:02:20 -0400
Subject: [PATCH 078/604] gnu: slock: Fix CVE-2016-6866.
* gnu/packages/patches/slock-CVE-2016-6866.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/suckless.scm (slock): Use it.
---
gnu/local.mk | 1 +
.../patches/slock-CVE-2016-6866.patch | 51 +++++++++++++++++++
gnu/packages/suckless.scm | 1 +
3 files changed, 53 insertions(+)
create mode 100644 gnu/packages/patches/slock-CVE-2016-6866.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index bcd96ae0d6..69e516cea3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -790,6 +790,7 @@ dist_patch_DATA = \
%D%/packages/patches/slim-session.patch \
%D%/packages/patches/slim-config.patch \
%D%/packages/patches/slim-sigusr1.patch \
+ %D%/packages/patches/slock-CVE-2016-6866.patch \
%D%/packages/patches/slurm-configure-remove-nonfree-contribs.patch \
%D%/packages/patches/soprano-find-clucene.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
diff --git a/gnu/packages/patches/slock-CVE-2016-6866.patch b/gnu/packages/patches/slock-CVE-2016-6866.patch
new file mode 100644
index 0000000000..2f94b8c1a9
--- /dev/null
+++ b/gnu/packages/patches/slock-CVE-2016-6866.patch
@@ -0,0 +1,51 @@
+Fix CVE-2016-6866.
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-6866
+https://security-tracker.debian.org/tracker/CVE-2016-6866
+
+Copied from upstream source repository:
+http://git.suckless.org/slock/commit/?id=d8bec0f6fdc8a246d78cb488a0068954b46fcb29
+
+From d8bec0f6fdc8a246d78cb488a0068954b46fcb29 Mon Sep 17 00:00:00 2001
+From: Markus Teich
+Date: Tue, 30 Aug 2016 22:59:06 +0000
+Subject: fix CVE-2016-6866
+
+---
+diff --git a/slock.c b/slock.c
+index 847b328..8ed59ca 100644
+--- a/slock.c
++++ b/slock.c
+@@ -123,7 +123,7 @@ readpw(Display *dpy)
+ readpw(Display *dpy, const char *pws)
+ #endif
+ {
+- char buf[32], passwd[256];
++ char buf[32], passwd[256], *encrypted;
+ int num, screen;
+ unsigned int len, color;
+ KeySym ksym;
+@@ -159,7 +159,11 @@ readpw(Display *dpy, const char *pws)
+ #ifdef HAVE_BSD_AUTH
+ running = !auth_userokay(getlogin(), NULL, "auth-slock", passwd);
+ #else
+- running = !!strcmp(crypt(passwd, pws), pws);
++ errno = 0;
++ if (!(encrypted = crypt(passwd, pws)))
++ fprintf(stderr, "slock: crypt: %s\n", strerror(errno));
++ else
++ running = !!strcmp(encrypted, pws);
+ #endif
+ if (running) {
+ XBell(dpy, 100);
+@@ -312,6 +316,8 @@ main(int argc, char **argv) {
+
+ #ifndef HAVE_BSD_AUTH
+ pws = getpw();
++ if (strlen(pws) < 2)
++ die("slock: failed to get user password hash.\n");
+ #endif
+
+ if (!(dpy = XOpenDisplay(NULL)))
+--
+cgit v0.9.0.3-65-g4555
diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm
index 7efa502d8f..820d550d6e 100644
--- a/gnu/packages/suckless.scm
+++ b/gnu/packages/suckless.scm
@@ -111,6 +111,7 @@ numbers of user-defined menu items efficiently.")
(method url-fetch)
(uri (string-append "http://dl.suckless.org/tools/slock-"
version ".tar.gz"))
+ (patches (search-patches "slock-CVE-2016-6866.patch"))
(sha256
(base32
"065xa9hl7zn0lv2f7yjxphqsa35rg6dn9hv10gys0sh4ljpa7d5s"))))
From 751c70404b176082e20f6bcc4d014227ccfe2f7d Mon Sep 17 00:00:00 2001
From: ng0
Date: Mon, 8 Aug 2016 19:54:50 +0000
Subject: [PATCH 079/604] gnu: Add tintin++.
* gnu/packages/games.scm (tintin++): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/games.scm | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 88330c7293..d386e2c99f 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -101,6 +101,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages tcl)
#:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages pcre)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
#:use-module (guix build-system python)
@@ -2736,6 +2738,42 @@ the GNU GPL.")
(home-page "https://supertuxproject.org/")
(license license:gpl3+)))
+(define-public tintin++
+ (package
+ (name "tintin++")
+ (version "2.01.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://sourceforge.net/projects/tintin"
+ "/files/TinTin++ Source Code/" version
+ "/tintin" "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "195wrfcys8yy953gdrl1gxryhjnx9lg1vqgxm3dyzm8bi18aa2yc"))))
+ (inputs
+ `(("gnutls" ,gnutls)
+ ("pcre" ,pcre)
+ ("readline" ,readline)
+ ("zlib" ,zlib)))
+ (arguments
+ '(#:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ ;; The source is in tt/src.
+ (add-before 'configure 'chdir
+ (lambda _
+ (chdir "src")
+ #t)))))
+ (build-system gnu-build-system)
+ (home-page "http://tintin.sourceforge.net/")
+ (synopsis "MUD client")
+ (description
+ "TinTin++ is a MUD client which supports MCCP (Mud Client Compression Protocol),
+MMCP (Mud Master Chat Protocol), xterm 256 colors, most TELNET options used by MUDs,
+as well as those required to login via telnet on Linux / Mac OS X servers, and an
+auto mapper with a VT100 map display.")
+ (license license:gpl2+)))
+
(define-public laby
(package
(name "laby")
From a287fafef283de47fcc39338b1d343e221220ac7 Mon Sep 17 00:00:00 2001
From: Danny Milosavljevic
Date: Tue, 16 Aug 2016 20:05:12 +0200
Subject: [PATCH 080/604] gnu: lua-5.1: install pkg-config file.
* gnu/packages/patches/lua51-pkgconfig.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/lua.scm (lua-5.1)[source]: Add it.
Signed-off-by: Efraim Flashner
---
gnu/local.mk | 1 +
gnu/packages/lua.scm | 3 +-
gnu/packages/patches/lua51-pkgconfig.patch | 101 +++++++++++++++++++++
3 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/lua51-pkgconfig.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 69e516cea3..12578cad64 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -660,6 +660,7 @@ dist_patch_DATA = \
%D%/packages/patches/lua-CVE-2014-5461.patch \
%D%/packages/patches/lua-pkgconfig.patch \
%D%/packages/patches/lua51-liblua-so.patch \
+ %D%/packages/patches/lua51-pkgconfig.patch \
%D%/packages/patches/lua52-liblua-so.patch \
%D%/packages/patches/luajit-no_ldconfig.patch \
%D%/packages/patches/luajit-symlinks.patch \
diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm
index 8bd67c594d..274330fd3d 100644
--- a/gnu/packages/lua.scm
+++ b/gnu/packages/lua.scm
@@ -84,7 +84,8 @@ for configuration, scripting, and rapid prototyping.")
(sha256
(base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16"))
(patches (search-patches "lua51-liblua-so.patch"
- "lua-CVE-2014-5461.patch"))))))
+ "lua-CVE-2014-5461.patch"
+ "lua51-pkgconfig.patch"))))))
(define-public luajit
(package
diff --git a/gnu/packages/patches/lua51-pkgconfig.patch b/gnu/packages/patches/lua51-pkgconfig.patch
new file mode 100644
index 0000000000..5b03adaaaa
--- /dev/null
+++ b/gnu/packages/patches/lua51-pkgconfig.patch
@@ -0,0 +1,101 @@
+Enables generating Lua's pkg-config file.
+
+http://lua-users.org/lists/lua-l/2015-03/msg00338.html
+
+--- a/Makefile 2016-08-16 19:44:27.363614964 +0200
++++ b/Makefile 2016-08-16 19:49:22.623070005 +0200
+@@ -13,6 +13,7 @@
+ INSTALL_BIN= $(INSTALL_TOP)/bin
+ INSTALL_INC= $(INSTALL_TOP)/include
+ INSTALL_LIB= $(INSTALL_TOP)/lib
++INSTALL_PC= $(INSTALL_LIB)/pkgconfig
+ INSTALL_MAN= $(INSTALL_TOP)/man/man1
+ #
+ # You probably want to make INSTALL_LMOD and INSTALL_CMOD consistent with
+@@ -41,9 +42,12 @@
+ PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
+
+ # What to install.
+-TO_BIN= lua luac
++INTERPRETER= lua
++COMPILER= luac
++TO_BIN= $(INTERPRETER) $(COMPILER)
+ TO_INC= lua.h luaconf.h lualib.h lauxlib.h ../etc/lua.hpp
+ TO_LIB= liblua.a liblua.so liblua.so.${V}
++TO_PC= lua-$(V).pc
+ TO_MAN= lua.1 luac.1
+
+ # Lua version and release.
+@@ -52,17 +56,22 @@
+
+ all: $(PLAT)
+
+-$(PLATS) clean:
++$(PLATS):
+ cd src && $(MAKE) $@ V=$(V) R=$(R)
+
++clean:
++ cd src && $(MAKE) $@
++ $(RM) $(TO_PC)
++
+ test: dummy
+ src/lua test/hello.lua
+
+-install: dummy
+- cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
++install: dummy $(TO_PC)
++ cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_PC) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
+ cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
+ cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
+ cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
++ cd src && $(INSTALL_DATA) ../$(TO_PC) $(INSTALL_PC)
+ cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
+
+ ranlib:
+@@ -95,6 +104,7 @@
+ @echo "INSTALL_BIN = $(INSTALL_BIN)"
+ @echo "INSTALL_INC = $(INSTALL_INC)"
+ @echo "INSTALL_LIB = $(INSTALL_LIB)"
++ @echo "INSTALL_PC = $(INSTALL_PC)"
+ @echo "INSTALL_MAN = $(INSTALL_MAN)"
+ @echo "INSTALL_LMOD = $(INSTALL_LMOD)"
+ @echo "INSTALL_CMOD = $(INSTALL_CMOD)"
+@@ -111,6 +121,7 @@
+ @echo "TO_BIN = $(TO_BIN)"
+ @echo "TO_INC = $(TO_INC)"
+ @echo "TO_LIB = $(TO_LIB)"
++ @echo "TO_PC = $(TO_PC)"
+ @echo "TO_MAN = $(TO_MAN)"
+
+ # echo config parameters as Lua code
+@@ -122,7 +133,29 @@
+ @$(MAKE) echo | grep = | sed -e 's/= /= "/' -e 's/$$/"/' #-e 's/""/nil/'
+ @echo "-- EOF"
+
++pc:
++ @echo 'prefix=$(INSTALL_TOP)'
++ @echo 'libdir=$(INSTALL_LIB)'
++ @echo 'includedir=$(INSTALL_INC)'
++ @echo 'bindir=$(INSTALL_BIN)'
++ @echo
++ @echo 'INSTALL_LMOD=$(INSTALL_LMOD)'
++ @echo 'INSTALL_CMOD=$(INSTALL_CMOD)'
++ @echo 'INTERPRETER=$${bindir}/$(INTERPRETER)'
++ @echo 'COMPILER=$${bindir}/$(COMPILER)'
++ @echo
++ @echo 'Name: Lua'
++ @echo 'Description: A powerful, fast, lightweight, embeddable scripting language'
++ @echo 'Version: $(R)'
++ @echo
++ @echo 'Libs: -L$${libdir} -llua -lm'
++ @echo 'Cflags: -I$${includedir}'
++
++pkg-config: $(TO_PC)
++$(TO_PC):
++ @$(MAKE) -s pc > $@
++
+ # list targets that do not create files (but not all makes understand .PHONY)
+-.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
++.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho pkg-config
+
+ # (end of Makefile)
From a61696216c6aded59dfb5d9fd9ab2f20aac8e095 Mon Sep 17 00:00:00 2001
From: Petter
Date: Wed, 17 Aug 2016 10:27:04 -0500
Subject: [PATCH 081/604] gnu: go: Update to 1.7.
* gnu/packages/golang.scm (go-1.6): Update to 1.7, with corresponding
minor changes to prebuild phase, and rename variable to...
(go-1.7): ...this new variable.
(go): Inherit from new "go-1.7".
Signed-off-by: Efraim Flashner
---
gnu/packages/golang.scm | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm
index 09d962dd1d..afa3a361b7 100644
--- a/gnu/packages/golang.scm
+++ b/gnu/packages/golang.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Matthew Jordan
;;; Copyright © 2016 Andy Wingo
;;; Copyright © 2016 Ludovic Courtès
+;;; Copyright © 2016 Petter
;;;
;;; This file is an addendum GNU Guix.
;;;
@@ -185,11 +186,11 @@ garbage collection, various safety features and in the style of communicating
sequential processes (CSP) concurrent programming features added.")
(license license:bsd-3)))
-(define-public go-1.6
+(define-public go-1.7
(package
(inherit go-1.4)
(name "go")
- (version "1.6.3")
+ (version "1.7")
(source
(origin
(method url-fetch)
@@ -197,7 +198,7 @@ sequential processes (CSP) concurrent programming features added.")
name version ".src.tar.gz"))
(sha256
(base32
- "002v6irgfd63zp9iza8nski5by0lar033j3ddpqiikw6bznsw9k3"))))
+ "1h712yd5wk5mrj2dixc9z2xlgksfks00yvglrkrgr488p8b0qs3j"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
@@ -216,11 +217,14 @@ sequential processes (CSP) concurrent programming features added.")
;; Removing net/ tests, which fail when attempting to access
;; network resources not present in the build container.
(for-each delete-file
- '("net/listen_test.go" "net/parse_test.go"))
+ '("net/listen_test.go"
+ "net/parse_test.go"
+ "net/cgo_unix_test.go"))
(substitute* "os/os_test.go"
(("/usr/bin") (getcwd))
- (("/bin/pwd") (which "pwd")))
+ (("/bin/pwd") (which "pwd"))
+ (("/bin/sh") (which "sh")))
;; Add libgcc to runpath
(substitute* "cmd/link/internal/ld/lib.go"
@@ -275,7 +279,7 @@ sequential processes (CSP) concurrent programming features added.")
;; fix shebang for testar script
;; note the target script is generated at build time.
- (substitute* "../misc/cgo/testcarchive/test.bash"
+ (substitute* "../misc/cgo/testcarchive/carchive_test.go"
(("#!/usr/bin/env") (string-append "#!" (which "env"))))
(substitute* "net/lookup_unix.go"
@@ -336,4 +340,4 @@ sequential processes (CSP) concurrent programming features added.")
`(("go" ,go-1.4)
,@(package-native-inputs go-1.4)))))
-(define-public go go-1.6)
+(define-public go go-1.7)
From 618089f951efcefa380fa779018483fde062b93f Mon Sep 17 00:00:00 2001
From: Marius Bakke
Date: Fri, 12 Aug 2016 02:29:51 +0100
Subject: [PATCH 082/604] gnu: Add gzstream.
* gnu/packages/compression.scm (gzstream): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/compression.scm | 39 ++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 0040e45892..aaa0c99e88 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -13,6 +13,7 @@
;;; Copyright © 2016 Tobias Geerinckx-Rice
;;; Copyright © 2016 David Craven
;;; Copyright © 2016 Kei Kebreau
+;;; Copyright © 2016 Marius Bakke
;;;
;;; This file is part of GNU Guix.
;;;
@@ -962,3 +963,41 @@ handles the 7z format which features very high compression ratios.")
(license (list license:lgpl2.1+
license:gpl2+
license:public-domain))))
+
+(define-public gzstream
+ (package
+ (name "gzstream")
+ (version "1.5")
+ (source (origin
+ (method url-fetch)
+ (uri
+ ;; No versioned URL, but last release was in 2003.
+ "http://www.cs.unc.edu/Research/compgeom/gzstream/gzstream.tgz")
+ (file-name (string-append name "-" version ".tgz"))
+ (sha256
+ (base32
+ "00y19pqjsdj5zcrx4p9j56pl73vayfwnb7y2hvp423nx0cwv5b4r"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Remove pre-compiled object.
+ '(delete-file "gzstream.o"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (include (string-append out "/include")))
+ (install-file "libgzstream.a" lib)
+ (install-file "gzstream.h" include)
+ #t))))))
+ (propagated-inputs `(("zlib" ,zlib)))
+ (home-page "http://www.cs.unc.edu/Research/compgeom/gzstream/")
+ (synopsis "Compressed C++ iostream")
+ (description "gzstream is a small library for providing zlib
+functionality in a C++ iostream.")
+ (license license:lgpl2.1+)))
From 6fabb196e39496ad4facb9e0e6dcbe23d55a2e0a Mon Sep 17 00:00:00 2001
From: ng0
Date: Fri, 26 Aug 2016 15:41:33 +0000
Subject: [PATCH 083/604] gnu: Add eschalot.
* gnu/packages/crypto.scm (eschalot): New variable.
Signed-off-by: Leo Famulari
---
gnu/packages/crypto.scm | 60 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 5dad97c72f..055551f10f 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 Leo Famulari
;;; Copyright © 2016 Lukas Gradl
;;; Copyright © 2016 Tobias Geerinckx-Rice
+;;; Copyright © 2016 ng0
;;;
;;; This file is part of GNU Guix.
;;;
@@ -37,6 +38,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system gnu))
(define-public libsodium
@@ -263,3 +265,61 @@ gain and retain the authorization and encryption keys required to perform
secure operations. ")
(license (list license:lgpl2.1+ ; the files keyutils.*
license:gpl2+)))) ; the rest
+
+;; There is no release candidate but commits point out a version number,
+;; furthermore no tarball exists.
+(define-public eschalot
+ (let ((commit "0bf31d88a11898c19b1ed25ddd2aff7b35dbac44")
+ (revision "1"))
+ (package
+ (name "eschalot")
+ (version (string-append "1.2.0-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/schnabear/eschalot")
+ (commit commit)))
+ (file-name (string-append name "-" version))
+ (sha256
+ (base32
+ "0lj38ldh8vzi11wp4ghw4k0fkwp0s04zv8k8d473p1snmbh7mx98"))))
+ (inputs
+ `(("openssl" ,openssl))) ; It needs: openssl/{bn,pem,rsa,sha}.h
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ (string-append "INSTALL=" "install"))
+ ;; XXX: make test would run a !VERY! long hashing of names with the use
+ ;; of a wordlist, the amount of computing time this would waste on build
+ ;; servers is in no relation to the size or importance of this small
+ ;; application, therefore we run our own tests on eschalot and worgen.
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'check
+ (lambda _
+ (and
+ (zero? (system* "./worgen" "8-12" "top1000.txt" "3-10" "top400nouns.txt"
+ "3-6" "top150adjectives.txt" "3-6"))
+ (zero? (system* "./eschalot" "-r" "^guix|^guixsd"))
+ (zero? (system* "./eschalot" "-r" "^gnu|^free"))
+ (zero? (system* "./eschalot" "-r" "^cyber|^hack"))
+ (zero? (system* "./eschalot" "-r" "^troll")))))
+ ;; Make install can not create the bin dir, create it.
+ (add-before 'install 'create-bin-dir
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (mkdir-p bin)
+ #t))))))
+ (home-page "https://github.com/schnabear/eschalot")
+ (synopsis "Tor hidden service name generator")
+ (description
+ "Eschalot is a tor hidden service name generator, it allows one to
+produce customized vanity .onion addresses using a brute-force method. Searches
+for valid names can be run with regular expressions and wordlists. For the
+generation of wordlists the included tool @code{worgen} can be used. There is
+no man page, refer to the home page for usage details.")
+ (license (list license:isc license:expat)))))
From dd72173455b31aeddb4a691285bd5c0702c75d34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 19:27:27 +0200
Subject: [PATCH 084/604] guix package: Clarify upgrade code.
* guix/scripts/package.scm (upgradeable?): Rename to...
(upgraded-manifest-entry): ... this. Change to take a
and to return a .
(options->installable)[to-upgrade]: Adjust accordingly.
---
guix/scripts/package.scm | 45 ++++++++++++++++++++--------------------
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index fd42cdb36e..14a0895b43 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -261,19 +261,25 @@ synopsis or description matches all of REGEXPS."
((<) #t)
(else #f)))))
-(define (upgradeable? name current-version current-path)
- "Return #t if there's a version of package NAME newer than CURRENT-VERSION,
-or if the newest available version is equal to CURRENT-VERSION but would have
-an output path different than CURRENT-PATH."
- (match (vhash-assoc name (find-newest-available-packages))
- ((_ candidate-version pkg . rest)
- (case (version-compare candidate-version current-version)
- ((>) #t)
- ((<) #f)
- ((=) (let ((candidate-path (derivation->output-path
- (package-derivation (%store) pkg))))
- (not (string=? current-path candidate-path))))))
- (#f #f)))
+(define (upgraded-manifest-entry entry)
+ "Return either a corresponding to an upgrade of ENTRY, or
+#f if no upgrade was found."
+ (match entry
+ (($ name version output (? string? path))
+ (match (vhash-assoc name (find-newest-available-packages))
+ ((_ candidate-version pkg . rest)
+ (case (version-compare candidate-version version)
+ ((>)
+ (package->manifest-entry pkg output))
+ ((<)
+ #f)
+ ((=)
+ (let ((candidate-path (derivation->output-path
+ (package-derivation (%store) pkg))))
+ (and (not (string=? path candidate-path))
+ (package->manifest-entry pkg output))))))
+ (#f
+ #f)))))
;;;
@@ -560,16 +566,9 @@ return the new list of manifest entries."
(options->upgrade-predicate opts))
(define to-upgrade
- (filter-map (match-lambda
- (($ name version output path _)
- (and (upgrade? name)
- (upgradeable? name version path)
- (let ((output (or output "out")))
- (call-with-values
- (lambda ()
- (specification->package+output name output))
- package->manifest-entry))))
- (_ #f))
+ (filter-map (lambda (entry)
+ (and (upgrade? (manifest-entry-name entry))
+ (upgraded-manifest-entry entry)))
(manifest-entries manifest)))
(define to-install
From c8c25704aeb2e5fa4feb6a86235f9565738eea99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 20:19:21 +0200
Subject: [PATCH 085/604] profiles: Add manifest-transaction helper procedures.
* guix/profiles.scm (manifest-transaction-install-entry)
(manifest-transaction-remove-pattern)
(manifest-transaction-null?): New procedures.
* tests/profiles.scm ("manifest-transaction-null?"): New test.
---
guix/profiles.scm | 27 ++++++++++++++++++++++++++-
tests/profiles.scm | 3 +++
2 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/guix/profiles.scm b/guix/profiles.scm
index cd448e3f25..ac2fa051b2 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -78,6 +78,9 @@
manifest-transaction?
manifest-transaction-install
manifest-transaction-remove
+ manifest-transaction-install-entry
+ manifest-transaction-remove-pattern
+ manifest-transaction-null?
manifest-perform-transaction
manifest-transaction-effects
@@ -383,6 +386,28 @@ no match.."
(remove manifest-transaction-remove ; list of
(default '())))
+(define (manifest-transaction-install-entry entry transaction)
+ "Augment TRANSACTION's set of installed packages with ENTRY, a
+."
+ (manifest-transaction
+ (inherit transaction)
+ (install
+ (cons entry (manifest-transaction-install transaction)))))
+
+(define (manifest-transaction-remove-pattern pattern transaction)
+ "Add PATTERN to TRANSACTION's list of packages to remove."
+ (manifest-transaction
+ (inherit transaction)
+ (remove
+ (cons pattern (manifest-transaction-remove transaction)))))
+
+(define (manifest-transaction-null? transaction)
+ "Return true if TRANSACTION has no effect---i.e., it neither installs nor
+remove software."
+ (match transaction
+ (($ () ()) #t)
+ (($ _ _) #f)))
+
(define (manifest-transaction-effects manifest transaction)
"Compute the effect of applying TRANSACTION to MANIFEST. Return 4 values:
the list of packages that would be removed, installed, upgraded, or downgraded
@@ -424,7 +449,7 @@ replace it."
downgrade)))))))
(define (manifest-perform-transaction manifest transaction)
- "Perform TRANSACTION on MANIFEST and return new manifest."
+ "Perform TRANSACTION on MANIFEST and return the new manifest."
(let ((install (manifest-transaction-install transaction))
(remove (manifest-transaction-remove transaction)))
(manifest-add (manifest-remove manifest remove)
diff --git a/tests/profiles.scm b/tests/profiles.scm
index 028d7b6fb4..f9c2f5499e 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -187,6 +187,9 @@
(and (null? remove) (null? install) (null? downgrade)
(equal? (list (cons guile-2.0.9 guile-2.0.9)) upgrade)))))
+(test-assert "manifest-transaction-null?"
+ (manifest-transaction-null? (manifest-transaction)))
+
(test-assertm "profile-derivation"
(mlet* %store-monad
((entry -> (package->manifest-entry %bootstrap-guile))
From 5239f3d90841de767c86d0f3a7975b8d799d583d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 22:28:12 +0200
Subject: [PATCH 086/604] guix package: Build up the transaction incrementally.
* guix/scripts/package.scm (upgraded-manifest-entry): Rename to...
(transaction-upgrade-entry): ... this. Add 'transaction' parameter and
return a transaction.
(options->installable): Likewise.
[to-upgrade]: Rename to...
[upgraded]: ... this, and change to be a transaction. Return a
transaction.
(options->removable): Likewise.
(process-actions): Adjust accordingly.
* tests/packages.scm ("transaction-upgrade-entry, zero upgrades")
("transaction-upgrade-entry, one upgrade"): New tests.
---
guix/scripts/package.scm | 96 +++++++++++++++++++++++-----------------
tests/packages.scm | 29 ++++++++++++
2 files changed, 85 insertions(+), 40 deletions(-)
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 14a0895b43..dc5fcba922 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -261,25 +261,30 @@ synopsis or description matches all of REGEXPS."
((<) #t)
(else #f)))))
-(define (upgraded-manifest-entry entry)
- "Return either a corresponding to an upgrade of ENTRY, or
-#f if no upgrade was found."
+(define (transaction-upgrade-entry entry transaction)
+ "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a
+."
(match entry
(($ name version output (? string? path))
(match (vhash-assoc name (find-newest-available-packages))
((_ candidate-version pkg . rest)
(case (version-compare candidate-version version)
((>)
- (package->manifest-entry pkg output))
+ (manifest-transaction-install-entry
+ (package->manifest-entry pkg output)
+ transaction))
((<)
- #f)
+ transaction)
((=)
(let ((candidate-path (derivation->output-path
(package-derivation (%store) pkg))))
- (and (not (string=? path candidate-path))
- (package->manifest-entry pkg output))))))
+ (if (string=? path candidate-path)
+ transaction
+ (manifest-transaction-install-entry
+ (package->manifest-entry pkg output)
+ transaction))))))
(#f
- #f)))))
+ transaction)))))
;;;
@@ -559,17 +564,20 @@ upgrading, #f otherwise."
(output #f)
(item item))))
-(define (options->installable opts manifest)
+(define (options->installable opts manifest transaction)
"Given MANIFEST, the current manifest, and OPTS, the result of 'args-fold',
-return the new list of manifest entries."
+return an variant of TRANSACTION that accounts for the specified installations
+and upgrades."
(define upgrade?
(options->upgrade-predicate opts))
- (define to-upgrade
- (filter-map (lambda (entry)
- (and (upgrade? (manifest-entry-name entry))
- (upgraded-manifest-entry entry)))
- (manifest-entries manifest)))
+ (define upgraded
+ (fold (lambda (entry transaction)
+ (if (upgrade? (manifest-entry-name entry))
+ (transaction-upgrade-entry entry transaction)
+ transaction))
+ transaction
+ (manifest-entries manifest)))
(define to-install
(filter-map (match-lambda
@@ -586,23 +594,29 @@ return the new list of manifest entries."
(_ #f))
opts))
- (append to-upgrade to-install))
+ (fold manifest-transaction-install-entry
+ upgraded
+ to-install))
-(define (options->removable options manifest)
- "Given options, return the list of manifest patterns of packages to be
-removed from MANIFEST."
- (filter-map (match-lambda
- (('remove . spec)
- (call-with-values
- (lambda ()
- (package-specification->name+version+output spec))
- (lambda (name version output)
- (manifest-pattern
- (name name)
- (version version)
- (output output)))))
- (_ #f))
- options))
+(define (options->removable options manifest transaction)
+ "Given options, return a variant of TRANSACTION augmented with the list of
+patterns of packages to remove."
+ (fold (lambda (opt transaction)
+ (match opt
+ (('remove . spec)
+ (call-with-values
+ (lambda ()
+ (package-specification->name+version+output spec))
+ (lambda (name version output)
+ (manifest-transaction-remove-pattern
+ (manifest-pattern
+ (name name)
+ (version version)
+ (output output))
+ transaction))))
+ (_ transaction)))
+ transaction
+ options))
(define (register-gc-root store profile)
"Register PROFILE, a profile generation symlink, as a GC root, unless it
@@ -813,16 +827,18 @@ processed, #f otherwise."
opts)
;; Then, process normal package installation/removal/upgrade.
- (let* ((manifest (profile-manifest profile))
- (install (options->installable opts manifest))
- (remove (options->removable opts manifest))
- (transaction (manifest-transaction
- (install (map transform-entry install))
- (remove remove)))
- (new (manifest-perform-transaction manifest transaction)))
+ (let* ((manifest (profile-manifest profile))
+ (step1 (options->installable opts manifest
+ (manifest-transaction)))
+ (step2 (options->removable opts manifest step1))
+ (step3 (manifest-transaction
+ (inherit step2)
+ (install (map transform-entry
+ (manifest-transaction-install step2)))))
+ (new (manifest-perform-transaction manifest step3)))
- (unless (and (null? install) (null? remove))
- (show-manifest-transaction store manifest transaction
+ (unless (manifest-transaction-null? step3)
+ (show-manifest-transaction store manifest step3
#:dry-run? dry-run?)
(build-and-use-profile store profile new
#:bootstrap? bootstrap?
diff --git a/tests/packages.scm b/tests/packages.scm
index daceea5d62..456e691962 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -49,6 +49,7 @@
#:use-module (srfi srfi-35)
#:use-module (srfi srfi-64)
#:use-module (rnrs io ports)
+ #:use-module (ice-9 vlist)
#:use-module (ice-9 regex)
#:use-module (ice-9 match))
@@ -83,6 +84,34 @@
(and (hidden-package? (hidden-package (dummy-package "foo")))
(not (hidden-package? (dummy-package "foo")))))
+(test-assert "transaction-upgrade-entry, zero upgrades"
+ (let* ((old (dummy-package "foo" (version "1")))
+ (tx (mock ((gnu packages) find-newest-available-packages
+ (const vlist-null))
+ ((@@ (guix scripts package) transaction-upgrade-entry)
+ (manifest-entry
+ (inherit (package->manifest-entry old))
+ (item (string-append (%store-prefix) "/"
+ (make-string 32 #\e) "-foo-1")))
+ (manifest-transaction)))))
+ (manifest-transaction-null? tx)))
+
+(test-assert "transaction-upgrade-entry, one upgrade"
+ (let* ((old (dummy-package "foo" (version "1")))
+ (new (dummy-package "foo" (version "2")))
+ (tx (mock ((gnu packages) find-newest-available-packages
+ (const (vhash-cons "foo" (list "2" new) vlist-null)))
+ ((@@ (guix scripts package) transaction-upgrade-entry)
+ (manifest-entry
+ (inherit (package->manifest-entry old))
+ (item (string-append (%store-prefix) "/"
+ (make-string 32 #\e) "-foo-1")))
+ (manifest-transaction)))))
+ (and (match (manifest-transaction-install tx)
+ ((($ "foo" "2" "out" item))
+ (eq? item new)))
+ (null? (manifest-transaction-remove tx)))))
+
(test-assert "package-field-location"
(let ()
(define (goto port line column)
From 03763d6473bcd6c7a84bcc3a6aa7bc2d1ee1e44f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 23:05:26 +0200
Subject: [PATCH 087/604] profiles: Export accessors.
* guix/profiles.scm (manifest-pattern-name, manifest-pattern-version)
(manifest-pattern-output): Export.
---
guix/profiles.scm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/guix/profiles.scm b/guix/profiles.scm
index ac2fa051b2..4a2ba1c2f4 100644
--- a/guix/profiles.scm
+++ b/guix/profiles.scm
@@ -67,6 +67,9 @@
manifest-pattern
manifest-pattern?
+ manifest-pattern-name
+ manifest-pattern-version
+ manifest-pattern-output
manifest-remove
manifest-add
From 01afdab89c6a91f4cd05d3c4f4ff95a0402703eb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 23:14:07 +0200
Subject: [PATCH 088/604] packages: Add 'package-superseded' and associated
support.
This provides a way to mark a package as superseded by another one.
Upgrades replace superseded packages with their replacement.
* guix/packages.scm (package-superseded, deprecated-package): New
procedures.
* gnu/packages.scm (%find-package): Check for 'package-superseded'.
* guix/scripts/package.scm (transaction-upgrade-entry)[supersede]: New
procedure. Call it when 'package-superseded' is true.
* tests/guix-build.sh: Add test for a superseded package.
* tests/packages.scm ("package-superseded")
("transaction-upgrade-entry, superseded package"): New tests.
---
gnu/packages.scm | 9 +++++++-
guix/packages.scm | 14 ++++++++++++
guix/scripts/package.scm | 46 +++++++++++++++++++++++++++-------------
tests/guix-build.sh | 6 ++++++
tests/packages.scm | 30 ++++++++++++++++++++++++++
5 files changed, 89 insertions(+), 16 deletions(-)
diff --git a/gnu/packages.scm b/gnu/packages.scm
index 68a9eef2ad..5d60423a3a 100644
--- a/gnu/packages.scm
+++ b/gnu/packages.scm
@@ -305,7 +305,14 @@ return its return value."
(when fallback?
(warning (_ "deprecated NAME-VERSION syntax; \
use NAME@VERSION instead~%")))
- pkg)
+
+ (match (package-superseded pkg)
+ ((? package? new)
+ (info (_ "package '~a' has been superseded by '~a'~%")
+ (package-name pkg) (package-name new))
+ new)
+ (#f
+ pkg)))
(_
(if version
(leave (_ "~A: package not found for version ~a~%") name version)
diff --git a/guix/packages.scm b/guix/packages.scm
index d544c34cf8..afbafc70a7 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -83,6 +83,8 @@
package-location
hidden-package
hidden-package?
+ package-superseded
+ deprecated-package
package-field-location
package-direct-sources
@@ -306,6 +308,18 @@ user interfaces, ignores."
interfaces."
(assoc-ref (package-properties p) 'hidden?))
+(define (package-superseded p)
+ "Return the package the supersedes P, or #f if P is still current."
+ (assoc-ref (package-properties p) 'superseded))
+
+(define (deprecated-package old-name p)
+ "Return a package called OLD-NAME and marked as superseded by P, a package
+object."
+ (package
+ (inherit p)
+ (name old-name)
+ (properties `((superseded . ,p)))))
+
(define (package-field-location package field)
"Return the source code location of the definition of FIELD for PACKAGE, or
#f if it could not be determined."
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index dc5fcba922..b87aee0be9 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -264,25 +264,41 @@ synopsis or description matches all of REGEXPS."
(define (transaction-upgrade-entry entry transaction)
"Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a
."
+ (define (supersede old new)
+ (info (_ "package '~a' has been superseded by '~a'~%")
+ (manifest-entry-name old) (package-name new))
+ (manifest-transaction-install-entry
+ (package->manifest-entry new (manifest-entry-output old))
+ (manifest-transaction-remove-pattern
+ (manifest-pattern
+ (name (manifest-entry-name old))
+ (version (manifest-entry-version old))
+ (output (manifest-entry-output old)))
+ transaction)))
+
(match entry
(($ name version output (? string? path))
(match (vhash-assoc name (find-newest-available-packages))
((_ candidate-version pkg . rest)
- (case (version-compare candidate-version version)
- ((>)
- (manifest-transaction-install-entry
- (package->manifest-entry pkg output)
- transaction))
- ((<)
- transaction)
- ((=)
- (let ((candidate-path (derivation->output-path
- (package-derivation (%store) pkg))))
- (if (string=? path candidate-path)
- transaction
- (manifest-transaction-install-entry
- (package->manifest-entry pkg output)
- transaction))))))
+ (match (package-superseded pkg)
+ ((? package? new)
+ (supersede entry new))
+ (#f
+ (case (version-compare candidate-version version)
+ ((>)
+ (manifest-transaction-install-entry
+ (package->manifest-entry pkg output)
+ transaction))
+ ((<)
+ transaction)
+ ((=)
+ (let ((candidate-path (derivation->output-path
+ (package-derivation (%store) pkg))))
+ (if (string=? path candidate-path)
+ transaction
+ (manifest-transaction-install-entry
+ (package->manifest-entry pkg output)
+ transaction))))))))
(#f
transaction)))))
diff --git a/tests/guix-build.sh b/tests/guix-build.sh
index 6d4f97019a..9e9788bca0 100644
--- a/tests/guix-build.sh
+++ b/tests/guix-build.sh
@@ -93,6 +93,9 @@ cat > "$module_dir/foo.scm"<package "foo")
+ (and (eq? new (specification->package "foo"))
+ (eq? new (specification->package+output "foo")))))))
+
(test-assert "transaction-upgrade-entry, zero upgrades"
(let* ((old (dummy-package "foo" (version "1")))
(tx (mock ((gnu packages) find-newest-available-packages
@@ -112,6 +121,27 @@
(eq? item new)))
(null? (manifest-transaction-remove tx)))))
+(test-assert "transaction-upgrade-entry, superseded package"
+ (let* ((old (dummy-package "foo" (version "1")))
+ (new (dummy-package "bar" (version "2")))
+ (dep (deprecated-package "foo" new))
+ (tx (mock ((gnu packages) find-newest-available-packages
+ (const (vhash-cons "foo" (list "2" dep) vlist-null)))
+ ((@@ (guix scripts package) transaction-upgrade-entry)
+ (manifest-entry
+ (inherit (package->manifest-entry old))
+ (item (string-append (%store-prefix) "/"
+ (make-string 32 #\e) "-foo-1")))
+ (manifest-transaction)))))
+ (and (match (manifest-transaction-install tx)
+ ((($ "bar" "2" "out" item))
+ (eq? item new)))
+ (match (manifest-transaction-remove tx)
+ (((? manifest-pattern? pattern))
+ (and (string=? (manifest-pattern-name pattern) "foo")
+ (string=? (manifest-pattern-version pattern) "1")
+ (string=? (manifest-pattern-output pattern) "out")))))))
+
(test-assert "package-field-location"
(let ()
(define (goto port line column)
From 967cfd18f666f24ae9cbad14ea8e6921c10cba81 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Tue, 6 Sep 2016 23:19:45 +0200
Subject: [PATCH 089/604] gnu: paredit: Rename to 'emacs-paredit'.
* gnu/packages/emacs.scm (paredit)[name]: Change to "emacs-paredit".
(paredit/old-name): New variable.
---
gnu/packages/emacs.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index ad51634f0c..1ec0d8f9f0 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -320,7 +320,7 @@ metadata.")
(define-public paredit
(package
- (name "paredit")
+ (name "emacs-paredit")
(version "24")
(source (origin
(method url-fetch)
@@ -364,6 +364,9 @@ for those who may want transient periods of unbalanced parentheses, such as
when typing parentheses directly or commenting out code line by line.")
(license license:gpl3+)))
+(define-public paredit/old-name
+ (deprecated-package "paredit" paredit))
+
(define-public git-modes
(package
(name "git-modes")
From 375cef6c6d9eb6b0c511679e17a4d16cfab70a8e Mon Sep 17 00:00:00 2001
From: Hartmut Goebel
Date: Thu, 1 Sep 2016 17:16:12 +0200
Subject: [PATCH 090/604] updated: gnu: add asn1c
* gnu/packages/tls.scm (asn1c): New variable.
Signed-off-by: Leo Famulari
---
gnu/packages/tls.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index efc1190980..64414edc1a 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2015 Leo Famulari
;;; Copyright © 2016 Efraim Flashner
;;; Copyright © 2016 ng0
+;;; Copyright © 2016 Hartmut Goebel
;;;
;;; This file is part of GNU Guix.
;;;
@@ -68,6 +69,33 @@ networking, allowing for formal validation of data according to some
specifications.")
(license license:lgpl2.0+)))
+(define-public asn1c
+ (package
+ (name "asn1c")
+ (version "0.9.27")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://lionet.info/soft/asn1c-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "17nvn2kzvlryasr9dzqg6gs27b9lvqpval0k31pb64bjqbhn8pq2"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("perl" ,perl)))
+ (home-page "https://lionet.info/asn1c")
+ (synopsis "ASN.1 to C compiler")
+ (description "The ASN.1 to C compiler takes ASN.1 module
+files and generates C++ compatible C source code. That code can be
+used to serialize the native C structures into compact and unambiguous
+BER/XER/PER-based data files, and deserialize the files back.
+
+Various ASN.1 based formats are widely used in the industry, such as to encode
+the X.509 certificates employed in the HTTPS handshake, to exchange control
+data between mobile phones and cellular networks, to car-to-car communication
+in intelligent transportation networks.")
+ (license license:bsd-2)))
+
(define-public p11-kit
(package
(name "p11-kit")
From abc114bdd9f933739733fd6eecdcdb51f8725161 Mon Sep 17 00:00:00 2001
From: Mark H Weaver
Date: Wed, 7 Sep 2016 00:57:44 -0400
Subject: [PATCH 091/604] gnu: webkitgtk: Update to 2.12.5.
* gnu/packages/webkit.scm (webkitgtk): Update to 2.12.5.
---
gnu/packages/webkit.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 2c940285c7..4e3ceb4abb 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -53,14 +53,14 @@
(define-public webkitgtk
(package
(name "webkitgtk")
- (version "2.12.4")
+ (version "2.12.5")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
- "0xwsc2lpb4q55vdgmwljx43219l0sa6r5mqs3bmw3fwsb5vk2ka2"))))
+ "0h0wig413399wws6l88mn1nnjbqb42vb55yvz8az39b4p1a7h53b"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no tests
From b393a44cd030637778386f79ad444c0116ede5a9 Mon Sep 17 00:00:00 2001
From: ng0
Date: Sat, 23 Jul 2016 13:03:22 +0000
Subject: [PATCH 092/604] gnu: Add perl-curses.
* gnu/packages/ncurses.scm (perl-curses): New variable.
Signed-off-by: Efraim Flashner
---
gnu/packages/ncurses.scm | 48 +++++++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/ncurses.scm b/gnu/packages/ncurses.scm
index 147033a7e5..97991670f3 100644
--- a/gnu/packages/ncurses.scm
+++ b/gnu/packages/ncurses.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès
;;; Copyright © 2014 Mark H Weaver
;;; Copyright © 2015 Leo Famulari
+;;; Copyright © 2016 ng0
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,7 +23,10 @@
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
- #:use-module (guix build-system gnu))
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system perl)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages perl))
(define-public ncurses
(let ((patch-makefile-phase
@@ -161,3 +165,45 @@ curses widgets, such as dialog boxes.")
(home-page "http://invisible-island.net/dialog/dialog.html")
;; Includes the gpl3 file "config.sub" from Automake.
(license (list lgpl2.1 gpl3))))
+
+(define-public perl-curses
+ (package
+ (name "perl-curses")
+ (version "1.36")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://cpan/authors/id/G/GI/GIRAFFED/"
+ "Curses-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0r6xd9wr0c25rr28zixhqipak575zqsfb7r7f2693i9il1dpj554"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (arguments
+ `(#:make-maker-flags (list "PANELS" "MENUS")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'configure 'set-curses-ldflags
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((ncurses (assoc-ref inputs "ncurses"))
+ (include (string-append ncurses "/include"))
+ (lib (string-append ncurses "/lib")))
+ (setenv "CURSES_LIBTYPE" "ncurses")
+ (setenv "CURSES_CFLAGS" (string-append "-I" include))
+ (setenv "CURSES_PANEL_CFLAGS" (string-append "-I" include))
+ (setenv "CURSES_MENU_CFLAGS" (string-append "-I" include))
+ (setenv "CURSES_FORM_CFLAGS" (string-append "-I" include))
+ (setenv "CURSES_LDFLAGS" (string-append "-L" lib " -lncurses"))
+ (setenv "CURSES_PANEL_LDFLAGS" (string-append "-L" lib " -lpanel"))
+ (setenv "CURSES_MENU_LDFLAGS" (string-append "-L" lib " -lmenu"))
+ (setenv "CURSES_FORM_LDFLAGS" (string-append "-L" lib " -lform"))
+ #t))))))
+ (home-page "http://search.cpan.org/dist/Curses")
+ (synopsis "Terminal screen handling and optimization")
+ (description
+ "@code{Curses} is the interface between Perl and the curses library
+of your system.")
+ (license (package-license perl))))
From 8dc0ecae6c92d050db2e33ab7b6e3ec6609fb321 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 10:28:05 +0200
Subject: [PATCH 093/604] gnu: rottlog: Use 'modify-phases'.
* gnu/packages/admin.scm (rottlog)[arguments]: Use 'modify-phases'.
---
gnu/packages/admin.scm | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 474c0d7556..86fa7846d1 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -735,11 +735,10 @@ over ssh connections.")
(assoc-ref %outputs "out")
"/etc")
"--localstatedir=/var")
- #:phases (alist-cons-after
- 'install 'install-info
- (lambda _
- (zero? (system* "make" "install-info")))
- %standard-phases)))
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'install-info
+ (lambda _
+ (zero? (system* "make" "install-info")))))))
(native-inputs `(("texinfo" ,texinfo)
("util-linux" ,util-linux))) ; for 'cal'
(home-page "http://www.gnu.org/software/rottlog/")
From 11e7463482cd64789008618a647725ae0b2a81e6 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen
Date: Wed, 7 Sep 2016 10:34:48 +0200
Subject: [PATCH 094/604] gnu: rottlog: Set default value for 'packdir'.
* gnu/packages/admin.scm (rottlog)[arguments]: Add 'set-packdir' phase.
---
gnu/packages/admin.scm | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 86fa7846d1..c60ad308c1 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -736,6 +736,13 @@ over ssh connections.")
"/etc")
"--localstatedir=/var")
#:phases (modify-phases %standard-phases
+ (add-after 'build 'set-packdir
+ (lambda _
+ ;; Set a default location for archived logs.
+ (substitute* "rc/rc"
+ (("packdir=\"\"")
+ "packdir=\"/var/log\""))
+ #t))
(add-after 'install 'install-info
(lambda _
(zero? (system* "make" "install-info")))))))
From 268ad34e0eadf8a015798b5c5587aad65b9f3a61 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 10:51:56 +0200
Subject: [PATCH 095/604] gnu: rottlog: Read configuration files from
/etc/rottlog.
* gnu/packages/admin.scm (rottlog)[arguments]: Set
ROTT_ETCDIR=/etc/rottlog in #:configure-flags and add #:make-flags.
---
gnu/packages/admin.scm | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index c60ad308c1..f64cbce8e8 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -731,10 +731,14 @@ over ssh connections.")
"true")))))
(build-system gnu-build-system)
(arguments
- '(#:configure-flags (list (string-append "ROTT_ETCDIR="
- (assoc-ref %outputs "out")
- "/etc")
+ '(#:configure-flags (list "ROTT_ETCDIR=/etc/rottlog" ;rc file location
"--localstatedir=/var")
+
+ ;; Install example config files in OUT/etc.
+ #:make-flags (list (string-append "ROTT_ETCDIR="
+ (assoc-ref %outputs "out")
+ "/etc"))
+
#:phases (modify-phases %standard-phases
(add-after 'build 'set-packdir
(lambda _
From 309e523e8f85e97eca07bc16721235be5ba0c2c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 10:55:47 +0200
Subject: [PATCH 096/604] gnu: rottlog: Adjust the default 'weekly' config.
* gnu/packages/admin.scm (rottlog)[arguments]: Add 'tweak-rc-weekly'
phase.
---
gnu/packages/admin.scm | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index f64cbce8e8..4e31b7c431 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -747,6 +747,15 @@ over ssh connections.")
(("packdir=\"\"")
"packdir=\"/var/log\""))
#t))
+ (add-before 'install 'tweak-rc-weekly
+ (lambda _
+ (substitute* "rc/weekly"
+ (("/bin/kill")
+ (which "kill"))
+ (("syslogd\\.pid")
+ ;; The file is called 'syslog.pid' (no 'd').
+ "syslog.pid"))
+ #t))
(add-after 'install 'install-info
(lambda _
(zero? (system* "make" "install-info")))))))
From e4a01b7d4d070fc54781af02b3f8583dee4d272e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 11:02:57 +0200
Subject: [PATCH 097/604] gnu: inetutils: Use /var as the localstatedir.
* gnu/packages/admin.scm (inetutils)[arguments]: Add #:configure-flags.
---
gnu/packages/admin.scm | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4e31b7c431..3685633f34 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -239,7 +239,9 @@ re-executing them as necessary.")
(base32
"05n65k4ixl85dc6rxc51b1b732gnmm8xnqi424dy9f1nz7ppb3xy"))))
(build-system gnu-build-system)
- (arguments `(;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
+ (arguments `(#:configure-flags '("--localstatedir=/var")
+
+ ;; FIXME: `tftp.sh' relies on `netstat' from utils-linux,
;; which is currently missing.
#:tests? #f))
(inputs `(("ncurses" ,ncurses)
From afa54a38b738e6ddf4fb25757410cf7b24067b39 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 11:25:00 +0200
Subject: [PATCH 098/604] services: syslog: Use a PID file.
* gnu/services/base.scm (syslog-service-type)[start]: Remove --no-detach
and use #:pid-file.
---
gnu/services/base.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 2c2962cd8c..42094b5fb9 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -907,8 +907,8 @@ Service Switch}, for an example."
(requirement '(user-processes))
(start #~(make-forkexec-constructor
(list #$(syslog-configuration-syslogd config)
- "--no-detach"
- "--rcfile" #$(syslog-configuration-config-file config))))
+ "--rcfile" #$(syslog-configuration-config-file config))
+ #:pid-file "/var/run/syslog.pid"))
(stop #~(make-kill-destructor))))))
;; Snippet adapted from the GNU inetutils manual.
From 392a4e122350367c4b4ac331db5ec28360c7f38c Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen
Date: Tue, 6 Sep 2016 08:28:33 +0200
Subject: [PATCH 099/604] guix hash: Add --exclude-vcs option.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* guix/scripts/hash.scm (show-help): Add help text for --exclude-vcs option.
(%options): Add --exclude-vcs option.
(guix-hash): Handle exclude-vcs option.
* doc/guix.texi ("Invoking guix hash"): Update doc.
* tests/guix-hash.sh: Add test.
Co-authored-by: Ludovic Courtès
---
doc/guix.texi | 10 +++++++---
guix/scripts/hash.scm | 25 ++++++++++++++++++++-----
tests/guix-hash.sh | 16 ++++++++++++++++
3 files changed, 43 insertions(+), 8 deletions(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 59bc5d8ee0..655dcfa277 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -4678,7 +4678,7 @@ The general syntax is:
guix hash @var{option} @var{file}
@end example
-@command{guix hash} has the following option:
+@command{guix hash} has the following options:
@table @code
@@ -4706,6 +4706,11 @@ hash (@pxref{Invoking guix archive}).
@c FIXME: Replace xref above with xref to an ``Archive'' section when
@c it exists.
+@item --exclude-vcs
+@itemx -x
+When combined with @option{--recursive}, exclude version control system
+directories (@file{.bzr}, @file{.git}, @file{.hg}, etc.)
+
@vindex git-fetch
As an example, here is how you would compute the hash of a Git checkout,
which is useful when using the @code{git-fetch} method (@pxref{origin
@@ -4714,8 +4719,7 @@ Reference}):
@example
$ git clone http://example.org/foo.git
$ cd foo
-$ rm -rf .git
-$ guix hash -r .
+$ guix hash -rx .
@end example
@end table
diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm
index d44095377b..a57602ab51 100644
--- a/guix/scripts/hash.scm
+++ b/guix/scripts/hash.scm
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès
+;;; Copyright © 2012, 2013, 2014, 2016 Ludovic Courtès
;;; Copyright © 2013 Nikita Karetnikov
+;;; Copyright © 2016 Jan Nieuwenhuizen
;;;
;;; This file is part of GNU Guix.
;;;
@@ -48,6 +49,8 @@ Return the cryptographic hash of FILE.
Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'
and 'hexadecimal' can be used as well).\n"))
+ (format #t (_ "
+ -x, --exclude-vcs exclude version control directories"))
(format #t (_ "
-f, --format=FMT write the hash in the given format"))
(format #t (_ "
@@ -62,7 +65,10 @@ and 'hexadecimal' can be used as well).\n"))
(define %options
;; Specification of the command-line options.
- (list (option '(#\f "format") #t #f
+ (list (option '(#\x "exclude-vcs") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'exclude-vcs? #t result)))
+ (option '(#\f "format") #t #f
(lambda (opt name arg result)
(define fmt-proc
(match arg
@@ -81,7 +87,6 @@ and 'hexadecimal' can be used as well).\n"))
(option '(#\r "recursive") #f #f
(lambda (opt name arg result)
(alist-cons 'recursive? #t result)))
-
(option '(#\h "help") #f #f
(lambda args
(show-help)
@@ -107,13 +112,23 @@ and 'hexadecimal' can be used as well).\n"))
(alist-cons 'argument arg result))
%default-options))
+ (define (vcs-file? file stat)
+ (case (stat:type stat)
+ ((directory)
+ (member (basename file) '(".bzr" ".git" ".hg" ".svn" "CVS")))
+ (else
+ #f)))
+
(let* ((opts (parse-options))
(args (filter-map (match-lambda
(('argument . value)
value)
(_ #f))
(reverse opts)))
- (fmt (assq-ref opts 'format)))
+ (fmt (assq-ref opts 'format))
+ (select? (if (assq-ref opts 'exclude-vcs?)
+ (negate vcs-file?)
+ (const #t))))
(define (file-hash file)
;; Compute the hash of FILE.
@@ -121,7 +136,7 @@ and 'hexadecimal' can be used as well).\n"))
(with-error-handling
(if (assoc-ref opts 'recursive?)
(let-values (((port get-hash) (open-sha256-port)))
- (write-file file port)
+ (write-file file port #:select? select?)
(flush-output-port port)
(get-hash))
(call-with-input-file file port-sha256))))
diff --git a/tests/guix-hash.sh b/tests/guix-hash.sh
index 23df01d417..44213d51af 100644
--- a/tests/guix-hash.sh
+++ b/tests/guix-hash.sh
@@ -1,5 +1,6 @@
# GNU Guix --- Functional package management for GNU
# Copyright © 2013, 2014 Ludovic Courtès
+# Copyright © 2016 Jan Nieuwenhuizen
#
# This file is part of GNU Guix.
#
@@ -46,3 +47,18 @@ then false; else true; fi
# the archive format doesn't support.
if guix hash -r /dev/null
then false; else true; fi
+
+# Adding a .git directory
+mkdir "$tmpdir/.git"
+touch "$tmpdir/.git/foo"
+
+# ...changes the hash
+test `guix hash -r $tmpdir` = 0a50z04zyzf7pidwxv0nwbj82pgzbrhdy9562kncnvkcfvb48m59
+
+# ...but remains the same when using `-x'
+test `guix hash -r $tmpdir -x` = 10k1lw41wyrjf9mxydi0is5nkpynlsvgslinics4ppir13g7d74p
+
+# Without '-r', this should fail.
+if guix hash "$tmpdir"
+then false; else true; fi
+
From e0d7b421f6d7551c15a40e215242d3db7d30682c Mon Sep 17 00:00:00 2001
From: Arun Isaac
Date: Tue, 6 Sep 2016 11:04:54 +0530
Subject: [PATCH 100/604] gnu: Add mpop.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* gnu/packages/mail.scm (mpop): New variable.
Signed-off-by: Ludovic Courtès
---
gnu/packages/mail.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 3c29a9558a..c2fc1a9a0c 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -17,6 +17,7 @@
;;; Copyright © 2016 Troy Sankey
;;; Copyright © 2016 ng0
;;; Copyright © 2016 Clément Lassieur
+;;; Copyright © 2016 Arun Isaac
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1356,3 +1357,34 @@ in Perl.")
"Mb2md is a Perl script that takes one or more mbox format files and
converts them to maildir format directories.")
(license public-domain)))
+
+(define-public mpop
+ (package
+ (name "mpop")
+ (version "1.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://downloads.sourceforge.net/mpop/mpop-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0n0ij258kn8lfa6nyr6l6plc4hf1wvyf1hkwicvdbjqdqrgjnq81"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("gnutls" ,gnutls)
+ ("libidn" ,libidn)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:configure-flags (list "--with-tls=gnutls")))
+ (home-page "http://mpop.sourceforge.net/")
+ (synopsis "POP3 mail client")
+ (description "mpop is a small and fast POP3 client suitable as a
+fetchmail replacement.
+
+mpop supports multiple accounts, header based mail filtering, delivery
+to mbox files, maildir folders or a Mail Delivery Agent (MDA),
+TLS/SSL, several authentication methods, Internationalized Domain
+Names (IDN) and SOCKS proxies.")
+ (license gpl3+)))
From 96dbc93089723cece1241e51c657f596adf6d3d5 Mon Sep 17 00:00:00 2001
From: Eric Le Bihan
Date: Wed, 7 Sep 2016 07:57:38 +0200
Subject: [PATCH 101/604] Add Zsh completion file.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* etc/completion/zsh/_guix: New file.
* Makefile.am (dist_zshcompletion_DATA): New variable.
* configure.ac: Add --with-zsh-completion-dir.
Signed-off-by: Ludovic Courtès
---
Makefile.am | 3 +
configure.ac | 7 +
etc/completion/zsh/_guix | 456 +++++++++++++++++++++++++++++++++++++++
3 files changed, 466 insertions(+)
create mode 100644 etc/completion/zsh/_guix
diff --git a/Makefile.am b/Makefile.am
index 1a34e0d5ca..f9fe14166b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -344,6 +344,9 @@ dist_pkgdata_DATA = hydra.gnu.org.pub
# Bash completion file.
dist_bashcompletion_DATA = etc/completion/bash/guix
+# Zsh completion file.
+dist_zshcompletion_DATA = etc/completion/zsh/_guix
+
EXTRA_DIST = \
HACKING \
ROADMAP \
diff --git a/configure.ac b/configure.ac
index 13a9b6e19f..84287e4289 100644
--- a/configure.ac
+++ b/configure.ac
@@ -41,6 +41,13 @@ AC_ARG_WITH([bash-completion-dir],
[bashcompletiondir='${sysconfdir}/bash_completion.d'])
AC_SUBST([bashcompletiondir])
+AC_ARG_WITH([zsh-completion-dir],
+ AC_HELP_STRING([--with-zsh-completion-dir=DIR],
+ [name of the Zsh completion directory]),
+ [zshcompletiondir="$withval"],
+ [zshcompletiondir='${datadir}/zsh/site-functions'])
+AC_SUBST([zshcompletiondir])
+
dnl Better be verbose.
AC_MSG_CHECKING([for the store directory])
AC_MSG_RESULT([$storedir])
diff --git a/etc/completion/zsh/_guix b/etc/completion/zsh/_guix
new file mode 100644
index 0000000000..3760bb629b
--- /dev/null
+++ b/etc/completion/zsh/_guix
@@ -0,0 +1,456 @@
+#compdef guix
+#
+# GNU Guix --- Functional package management for GNU
+# Copyright © 2016 Eric Le Bihan
+#
+# 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 .
+
+
+_guix_caching_policy()
+{
+ local -a old_policy
+ old_policy=( "$1"(Nmh+24) )
+ (( $#old_policy ))
+}
+
+_guix_list_actions()
+{
+ _guix_actions=( $(guix system --help | sed -n 's/^ \([a-z-]\+\)\s\+.\+/\1/p') )
+}
+
+_guix_list_checkers()
+{
+ _guix_checkers=( $(guix lint -l | sed -n 's/^- \(.\+\): .\+/\1/p') )
+}
+
+_guix_list_graph_types()
+{
+ _guix_graph_types=( $(guix graph --list-types | sed -n 's/^ - \(.\+\): .\+/\1/p') )
+}
+
+_guix_list_importers()
+{
+ _guix_importers=( $(guix import --help | sed -n 's/^\s\+\([a-z]\+\)$/\1/p') )
+}
+
+_guix_list_updaters()
+{
+ _guix_updaters=( $(guix lint -l | sed -n 's/^- \(.\+\): .\+/\1/p') )
+}
+
+_guix_list_available_packages()
+{
+ if ( [[ ${+_guix_available_packages} -eq 0 ]] || _cache_invalid GUIX_AVAILABLE_PACKAGES ) \
+ && ! _retrieve_cache GUIX_AVAILABLE_PACKAGES; then
+ _guix_available_packages=(${${(f)"$(guix package -A | cut -f1)"}})
+ _store_cache GUIX_AVAILABLE_PACKAGES _guix_available_packages
+ fi
+}
+
+_guix_list_installed_packages()
+{
+ _guix_installed_packages=( $(guix package -I "^${prefix}" | cut -f1) )
+}
+
+(( $+functions[_guix_build] )) || _guix_build()
+{
+ _arguments \
+ '--expression=[build the package matching EXPR]:EXPR' \
+ '--file=[build the package matching code evaluated from FILE]:FILE:_files' \
+ '--source[build the packages source derivations]' \
+ '--sources=[build source derivations]:TYPE:(all package transitive)' \
+ '--system=[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
+ '--target=[cross-build for TRIPLET (e.g. "armel-linux-gnu")]:TRIPLET' \
+ '--derivations[return the derivation paths of the given packages]' \
+ '--check[rebuild items to check for non-determinism issues]' \
+ '--root=[symlink result to FILE and register it as GC root]:FILE:_files' \
+ '--quiet[do not show the build log]' \
+ '--log-file[return the log file names for the given derivations]' \
+ '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
+ '--keep-failed[keep build tree of failed builds]' \
+ '--keep-going[keep going when some of the derivations fail]' \
+ '--dry-run[do not build the derivations]' \
+ '--fallback[fall back to building when the substituter fails]' \
+ '--no-substitutes[build instead of resorting to pre-built substitutes]' \
+ '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
+ '--no-grafts[do not graft packages]' \
+ '--no-build-hook[do not attempt to offload builds via the build hook]' \
+ '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
+ '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
+ '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
+ '--rounds=[build N times in a row to detect non-determinism]:N' \
+ '--cores=[allow the use of up to N CPU cores for the build]:N' \
+ '--max-jobs=[allow at most N build jobs]:N' \
+ '--with-source=[use SOURCE when building the corresponding package]:SOURCE' \
+ '--with-input=[replace dependency PACKAGE by REPLACEMENT]:PACKAGE=REPLACEMENT' \
+ '*:package:->packages'
+
+ if [[ "$state" = packages ]]; then
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ fi
+}
+
+(( $+functions[_guix_challenge] )) || _guix_challenge()
+{
+ _arguments \
+ '--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
+ '*:package:->packages'
+
+ if [[ "$state" = packages ]]; then
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ fi
+}
+
+(( $+functions[_guix_container] )) || _guix_container()
+{
+ _arguments \
+ ':action:(exec)' \
+ '*:args'
+}
+
+(( $+functions[_guix_download] )) || _guix_download()
+{
+ _arguments \
+ '--format=[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
+ '1:URL:_urls'
+}
+
+(( $+functions[_guix_edit] )) || _guix_edit()
+{
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+}
+
+(( $+functions[_guix_environment] )) || _guix_environment()
+{
+ _arguments \
+ '--expression=[create environment for the package evaluated from EXPR]:EXPR' \
+ '--load=[create environment for the package evaluated from FILE]:FILE:_files' \
+ '--ad-hoc[include all specified packages, not only their inputs]' \
+ '--pure[unset existing environment variables]' \
+ '--search-paths[display needed environment variable definitions]' \
+ '--system=[attempt to build for SYSTEM (e.g. "i686-linux")]:SYSTEM' \
+ '--container[run command within an isolated container]' \
+ '--network[allow containers to access the network]' \
+ '--share=[share writable host file system according to SPEC]:SPEC' \
+ '--expose=[expose read-only host file system according to SPEC]:SPEC' \
+ '--bootstrap[use bootstrap binaries to build the environment]' \
+ '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
+ '--keep-failed[keep build tree of failed builds]' \
+ '--keep-going[keep going when some of the derivations fail]' \
+ '--dry-run[do not build the derivations]' \
+ '--fallback[fall back to building when the substituter fails]' \
+ '--no-substitutes[build instead of resorting to pre-built substitutes]' \
+ '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
+ '--no-grafts[do not graft packages]' \
+ '--no-build-hook[do not attempt to offload builds via the build hook]' \
+ '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
+ '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
+ '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
+ '--rounds=[build N times in a row to detect non-determinism]:N' \
+ '--cores=[allow the use of up to N CPU cores for the build]:N' \
+ '--max-jobs=[allow at most N build jobs]:N' \
+ '*:package:->packages'
+
+ if [[ "$state" = packages ]]; then
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ fi
+
+}
+
+(( $+functions[_guix_gc] )) || _guix_gc()
+{
+ _arguments \
+ '--collect-garbage=[collect at least MIN bytes of garbage]:MIN' \
+ '--free-space=[attempt to reach FREE available space in the store]:FREE' \
+ '--delete[attempt to delete PATHS]' \
+ '--optimize[optimize the store by deduplicating identical files]' \
+ '--list-dead[list dead paths]' \
+ '--list-live[list live paths]' \
+ '--references[list the references of PATHS]' \
+ '--requisites[list the requisites of PATHS]' \
+ '--referrers[list the referrers of PATHS]' \
+ '--verify=[verify the integrity of the store]:OPTS:(contents repair)' \
+ '--list-failures[list cached build failures]' \
+ '--clear-failures[remove PATHS from the set of cached failures]' \
+ '1:PATH:_dirs'
+}
+
+(( $+functions[_guix_graph] )) || _guix_graph()
+{
+ _arguments \
+ '--type=[represent nodes of the given TYPE]:TYPE:->types' \
+ '--list-types[list the available graph types]' \
+ '--expression=[consider the package EXPR evaluates to]:EXPR' \
+ '1:PACKAGE:->packages'
+
+ case "$state" in
+ types)
+ _guix_list_graph_types
+ compadd -a -- _guix_graph_types
+ ;;
+ packages)
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ ;;
+ esac
+
+}
+
+(( $+functions[_guix_hash] )) || _guix_hash()
+{
+ _arguments \
+ '--format=[write the hash in the given format]:FMT:(nix-base32 base16 base32 hex)' \
+ '--recursive[compute the hash on FILE recursively]'\
+ '1:FILE:_files'
+}
+
+(( $+functions[_guix_import] )) || _guix_import()
+{
+ _arguments \
+ '1:IMPORTER:->importer' \
+ '*:args:'
+
+ if [[ "$state" = importer ]]; then
+ _guix_list_importers
+ compadd -a -- _guix_importers
+ fi
+}
+
+(( $+functions[_guix_lint] )) || _guix_lint()
+{
+ _arguments \
+ '--checkers=[only run the specified checkers]:CHECKERS:->checkers' \
+ '--list-checkers[display the list of available lint checkers]' \
+ '1:PACKAGE:->packages'
+
+ case "$state" in
+ checkers)
+ _guix_list_checkers
+ compadd -a -- _guix_checkers
+ ;;
+ packages)
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ ;;
+ esac
+}
+
+(( $+functions[_guix_package] )) || _guix_package()
+{
+ _arguments \
+ '--install[install one or more packages]: :->install' \
+ '--install-from-expression=[install the package EXP evaluates to]:EXP' \
+ '--install-from-file=[install the package evaluated from FILE]:FILE:_files' \
+ '--remove[remove one or more packages]: :->remove' \
+ '--upgrade=[upgrade all the installed packages matching REGEXP]:REGEXP' \
+ '--manifest=[create a new profile generation from FILE]:FILE:_files' \
+ '--do-not-upgrade=[do not upgrade any packages matching REGEXP]:REGEXP' \
+ '--roll-back[roll back to the previous generation]' \
+ '--search-paths=[display needed environment variable definitions]:KINDS' \
+ '--list-generations=[list generations matching PATTERN]:PATTERN' \
+ '--delete-generations=[delete generations matching PATTERN]:PATTERN' \
+ '--switch-generation=[switch to a generation matching PATTERN]:PATTERN' \
+ '--profile=[use PROFILE instead of the default profile]:PROFILE' \
+ '--bootstrap[use the bootstrap Guile to build the profile]' \
+ '--verbose[produce verbose output]' \
+ '--search=[search in synopsis and description using REGEXP]:REGEXP' \
+ '--list-installed=[list installed packages matching REGEXP]:REGEXP' \
+ '--list-available=[list available packages matching REGEXP]:REGEXP' \
+ '--show=[show details about a package]: :->show' \
+ '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
+ '--keep-failed[keep build tree of failed builds]' \
+ '--keep-going[keep going when some of the derivations fail]' \
+ '--dry-run[do not build the derivations]' \
+ '--fallback[fall back to building when the substituter fails]' \
+ '--no-substitutes[build instead of resorting to pre-built substitutes]' \
+ '--substitute-urls=[fetch substitute from URLS if they are authorized]:URLS:_urls' \
+ '--no-grafts[do not graft packages]' \
+ '--no-build-hook[do not attempt to offload builds via the build hook]' \
+ '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
+ '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
+ '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
+ '--rounds=[build N times in a row to detect non-determinism]:N' \
+ '--cores=[allow the use of up to N CPU cores for the build]:N' \
+ '--max-jobs=[allow at most N build jobs]:N' \
+ '--with-source=[use SOURCE when building the corresponding package]:SOURCE' \
+ '--with-input=[replace dependency PACKAGE by REPLACEMENT]:PACKAGE=REPLACEMENT'
+
+ case "$state" in
+ install|show)
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ ;;
+ remove)
+ _guix_list_installed_packages
+ compadd -a -- _guix_installed_packages
+ ;;
+ esac
+}
+
+(( $+functions[_guix_publish] )) || _guix_publish()
+{
+ _arguments \
+ '--port=[listen on PORT]:PORT:' \
+ '--listen=[listen on the network interface for HOST]:HOST:_hosts' \
+ '--user=[change privileges to USER as soon as possible]:USER:_users' \
+ '--compression=[compress archives at LEVEL]:LEVEL' \
+ '--ttl=[announce narinfos can be cached for TTL seconds]:TTL' \
+ '--repl=[spawn REPL server on PORT]:PORT'
+}
+
+(( $+functions[_guix_pull] )) || _guix_pull()
+{
+ _arguments \
+ '--verbose[produce verbose output]' \
+ '--url=[download the Guix tarball from URL]:URL:_urls' \
+ '--bootstrap[use the bootstrap Guile to build the new Guix]'
+}
+
+(( $+functions[_guix_refresh] )) || _guix_refresh()
+{
+ _arguments \
+ '--expression=[consider the package EXPR evaluates to]:EXPR' \
+ '--update[update source files in place]' \
+ '--select=[select all the packages in SUBSET]:SUBSET:(core non-core)' \
+ '--type=[restrict to updates from the specified updaters]:UPDATER:->updaters' \
+ '--list-updaters[list available updaters and exit]' \
+ '--list-dependent[list top-level dependent packages]' \
+ '--key-server=[use HOST as the OpenPGP key server]:HOST:_hosts' \
+ '--gpg=[use COMMAND as the GnuPG 2.x command]:COMMAND' \
+ '--key-download=[policy to handle missing OpenPGP keys]:POLICY:(always interactive never)' \
+ '*:package:->packages'
+
+ case "$state" in
+ updaters)
+ _guix_list_updaters
+ compadd -a -- _guix_updaters
+ ;;
+ packages)
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ ;;
+ esac
+}
+
+(( $+functions[_guix_size] )) || _guix_size()
+{
+ _arguments \
+ '--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
+ '-system=[consider packages for SYSTEM--e.g., "i686-linux"]:SYSTEM' \
+ '--map-file=[write to FILE a graphical map of disk usage]:FILE:_files' \
+ '*:package:->packages'
+
+ if [[ "$state" = packages ]]; then
+ _guix_list_available_packages
+ compadd -a -- _guix_available_packages
+ fi
+}
+
+(( $+functions[_guix_system] )) || _guix_system()
+{
+ _arguments \
+ '--load-path=[prepend DIR to the package module search path]:DIR:_dirs' \
+ '--keep-failed[keep build tree of failed builds]' \
+ '--keep-going[keep going when some of the derivations fail]' \
+ '--dry-run[do not build the derivations]' \
+ '--fallback[fall back to building when the substituter fails]' \
+ '--no-substitutes[build instead of resorting to pre-built substitutes]' \
+ '--substitute-urls=[fetch substitute from URLS if they are authorized]:URL:_urls' \
+ '--no-grafts[do not graft packages]' \
+ '--no-build-hook[do not attempt to offload builds via the build hook]' \
+ '--max-silent-time=[mark the build as failed after SECONDS of silence]:SECONDS' \
+ '--timeout=[mark the build as failed after SECONDS of activity]:SECONDS' \
+ '--verbosity=[use the given verbosity LEVEL]:LEVEL' \
+ '--rounds=[build N times in a row to detect non-determinism]:N' \
+ '--cores=[allow the use of up to N CPU cores for the build]:N' \
+ '--max-jobs=[allow at most N build jobs]:N' \
+ '--derivation[return the derivation of the given system]' \
+ '--on-error=[apply STRATEGY when an error occurs while reading FILE]:STRATEGY' \
+ '--image-size=[for "vm-image", produce an image of SIZE]:SIZE' \
+ '--no-grub[for "init", do not install GRUB]' \
+ '--share=[for "vm", share host file system according to SPEC]:SPEC' \
+ '--expose=[for "vm", expose host file system according to SPEC]:SPEC' \
+ '--full-boot[for "vm", make a full boot sequence]' \
+ '1:action:->actions' \
+ '*:file:_files'
+
+ if [[ "$state" = actions ]]; then
+ _guix_list_actions
+ compadd -a -- _guix_actions
+ fi
+}
+
+(( $+functions[_guix_command] )) || _guix_command()
+{
+ local -a _guix_cmds
+ _guix_cmds=(
+ "archive:Export/import one or more packages from/to the store"
+ "build:Build a given package"
+ "challenge:Challenge the substitutes for a package"
+ "container:Build and manipulate Linux containers"
+ "download:Download the file at given URL and add it to the store"
+ "edit:Edit the definitions of a package"
+ "environment:Build an environment with a package and its dependencies"
+ "gc:Invoke the garbage collector"
+ "graph:Emit a DOT representation of the dependencies of a package"
+ "hash:Return the cryptographic hash of a file"
+ "import:Run an importer"
+ "lint:Run a set of checkers on a package"
+ "package:Install, remove, or upgrade packages"
+ "publish:Publish /gnu/store over HTTP."
+ "pull:Download and deploy the latest version of Guix"
+ "refresh:Update package definitions to match the latest version"
+ "size:Report the size of a package and its dependencies"
+ "system:Build the operating system"
+ )
+
+ if (( CURRENT == 1 )); then
+ _describe -t commands 'guix command' _guix_cmds || compadd "$@"
+ else
+ local curcontext="$curcontext"
+
+ cmd="${${_guix_cmds[(r)$words[1]:*]%%:*}}"
+
+ if (( $#cmd )); then
+ local cache_policy
+
+ zstyle -s ":completion:${curcontext}:" cache-policy cache_policy
+ if [[ -z "$cache_policy" ]]; then
+ zstyle ":completion:${curcontext}:" cache-policy _guix_caching_policy
+ fi
+
+ curcontext="${curcontext%:*:*}:guix-${cmd}:"
+
+ _call_function ret _guix_${cmd} || _message 'no more arguments'
+ else
+ _message "unknown guix command: $words[1]"
+ fi
+ return ret
+ fi
+}
+
+_arguments \
+ '(--version)--version[Display version information and exit]' \
+ '*::guix command:_guix_command'
+
+# vim: ts=4 sts=4 sw=4 et ai
+# Local variables:
+# mode: sh
+# End:
From e9006d06a04e60db1ca78283b6c7e951d5a477fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 16:22:25 +0200
Subject: [PATCH 102/604] bash completion: Redirect 'guix' stderr to /dev/null.
This avoids spurious messages when pressing TAB.
* etc/completion/bash/guix (_guix_complete_available_package)
(_guix_complete_installed_package, _guix_complete_option)
(_guix_complete): Redirect stderr to /dev/null when running 'guix'.
---
etc/completion/bash/guix | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index 807a0b2e1f..b38c319cce 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -1,5 +1,5 @@
# GNU Guix --- Functional package management for GNU
-# Copyright © 2015 Ludovic Courtès
+# Copyright © 2015, 2016 Ludovic Courtès
#
# This file is part of GNU Guix.
#
@@ -27,7 +27,8 @@ _guix_complete_available_package ()
then
# Cache the complete list because it rarely changes and makes
# completion much faster.
- _guix_available_packages="$(${COMP_WORDS[0]} package -A | cut -f1)"
+ _guix_available_packages="$(${COMP_WORDS[0]} package -A 2> /dev/null \
+ | cut -f1)"
fi
COMPREPLY=($(compgen -W "$_guix_available_packages" -- "$prefix"))
}
@@ -37,15 +38,16 @@ _guix_complete_installed_package ()
# Here we do not cache the list of installed packages because that
# may change over time and the list is relatively small anyway.
local prefix="$1"
- local packages="$(${COMP_WORDS[0]} package -I "^$prefix" | cut -f1)"
+ local packages="$(${COMP_WORDS[0]} package -I "^$prefix" 2> /dev/null \
+ | cut -f1)"
COMPREPLY=($(compgen -W "$packages" -- "$prefix"))
}
_guix_complete_option ()
{
- local options="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} --help \
+ local options="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} --help 2> /dev/null \
| grep '^ \+-' \
- | sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g' )"
+ | sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')"
compopt -o nospace
COMPREPLY=($(compgen -W "$options" -- "${COMP_WORDS[$word_count - 1]}"))
}
@@ -119,7 +121,8 @@ _guix_complete ()
if [ -z "$_guix_subcommands" ]
then
# Cache the list of subcommands to speed things up.
- _guix_subcommands="$(guix --help | grep '^ ' | cut -c 2-)"
+ _guix_subcommands="$(guix --help 2> /dev/null \
+ | grep '^ ' | cut -c 2-)"
fi
COMPREPLY=($(compgen -W "$_guix_subcommands" -- "$word_at_point"))
;;
From f07f7d86145c10539709ca43cb0c201b6f935005 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 17:33:48 +0200
Subject: [PATCH 103/604] bash completion: Complete subcommands and their
options.
* etc/completion/bash/guix (_guix_complete_subcommand): New function.
(_guix_complete_option): Allow completion of subcommand options.
(_guix_complete): Use '_guix_complete_subcommand' for "system" and
"import".
---
etc/completion/bash/guix | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/etc/completion/bash/guix b/etc/completion/bash/guix
index b38c319cce..c92f8915c9 100644
--- a/etc/completion/bash/guix
+++ b/etc/completion/bash/guix
@@ -20,6 +20,15 @@
declare _guix_available_packages
+_guix_complete_subcommand ()
+{
+ local command="${COMP_WORDS[1]}"
+ local subcommands="$(${COMP_WORDS[0]} $command --help 2> /dev/null \
+ | grep '^ [a-z]' \
+ | sed -e's/^ \+\([a-z-]\+\).*$/\1/g')"
+ COMPREPLY=($(compgen -W "$subcommands" -- "${COMP_WORDS[${#COMP_WORDS[*]} - 1]}"))
+}
+
_guix_complete_available_package ()
{
local prefix="$1"
@@ -45,11 +54,16 @@ _guix_complete_installed_package ()
_guix_complete_option ()
{
- local options="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} --help 2> /dev/null \
+ local subcommand
+ case "${COMP_WORDS[2]}" in
+ -*) subcommand="";;
+ [a-z]*) subcommand="${COMP_WORDS[2]}";;
+ esac
+ local options="$(${COMP_WORDS[0]} ${COMP_WORDS[1]} $subcommand --help 2> /dev/null \
| grep '^ \+-' \
| sed -e's/^.*--\([a-zA-Z0-9_-]\+\)\(=\?\).*/--\1\2/g')"
compopt -o nospace
- COMPREPLY=($(compgen -W "$options" -- "${COMP_WORDS[$word_count - 1]}"))
+ COMPREPLY=($(compgen -W "$options" -- "${COMP_WORDS[${#COMP_WORDS[*]} - 1]}"))
}
_guix_is_command ()
@@ -140,13 +154,13 @@ _guix_complete ()
fi
elif _guix_is_command "system"
then
- _guix_complete_file # TODO: complete sub-commands
+ _guix_complete_subcommand
+ elif _guix_is_command "import"
+ then
+ _guix_complete_subcommand
elif _guix_is_command "hash"
then
- _guix_complete_file
- elif _guix_is_command "import" # TODO: complete sub-commands
- then
- _guix_complete_file
+ _guix_complete_file
else
_guix_complete_available_package "$word_at_point"
fi
From c4947d0e1b3c5c46049943504a1a3975fbe46be6 Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Wed, 7 Sep 2016 18:36:56 +0200
Subject: [PATCH 104/604] gnu: Add tcp-wrappers.
* gnu/packages/networking.scm (tcp-wrappers): New variable.
---
gnu/packages/networking.scm | 78 +++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index 07f0b9d957..c4edbc319a 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -135,6 +135,84 @@ establish a relatively secure environment (su and chroot) for running client
or server shell scripts with network connections.")
(license license:gpl2)))
+(define-public tcp-wrappers
+ (package
+ (name "tcp-wrappers")
+ (version "7.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; there is no configure script
+ (delete 'check) ; there are no tests
+ (replace 'build
+ (lambda _
+ (chmod "." #o755)
+ ;; Upstream doesn't generate a shared library. So we have to do it.
+ (setenv "CC" "gcc -fno-builtin -fPIC")
+ (substitute* "Makefile"
+ (("^(all[^\n]*)" line) (string-append line " libwrap.so\n
+libwrap.so: $(LIB_OBJ)\n
+\tgcc -shared $^ -o $@\n")))
+ ;; Deal with some gcc breakage.
+ (substitute* "percent_m.c"
+ (("extern char .sys_errlist.*;") ""))
+ (substitute* "scaffold.c"
+ (("extern char .malloc.*;") ""))
+ ;; This, believe it or not, is the recommended way to build!
+ (zero? (system* "make" "REAL_DAEMON_DIR=/etc" "linux"))))
+ ;; There is no make install stage, so we have to do it ourselves.
+ (replace 'install
+ (lambda _
+ (let ((out (assoc-ref %outputs "out"))
+ (man-pages `("hosts_access.3"
+ "hosts_access.5"
+ "hosts_options.5"
+ "tcpd.8"
+ "tcpdchk.8"
+ "tcpdmatch.8"))
+ (libs `("libwrap.a"
+ "libwrap.so"))
+ (headers `("tcpd.h"))
+ (bins `("safe_finger"
+ "tcpd"
+ "tcpdchk"
+ "tcpdmatch"
+ "try-from")))
+ (for-each
+ (lambda (x)
+ (install-file x (string-append out "/include")))
+ headers)
+ (for-each
+ (lambda (x)
+ (install-file x (string-append out "/share/man/man"
+ (string-take-right x 1))))
+ man-pages)
+ (for-each
+ (lambda (x)
+ (install-file x (string-append out "/lib/")))
+ libs)
+ (for-each
+ (lambda (x)
+ (install-file x (string-append out "/bin/")))
+ bins)))))))
+ (home-page "http://www.porcupine.org")
+ (synopsis "Monitor and filter incoming requests for network services")
+ (description "With this package you can monitor and filter incoming requests for
+network services. It includes a library which may be used by daemons to
+transparently check connection attempts against an access control list.")
+ (license (license:non-copyleft "file://DISCLAIMER"
+ "See the file DISCLAIMER in the distribution."))))
+
+
(define-public zeromq
(package
(name "zeromq")
From 8f3afba44f2092ccb966b4f44ed7eb11c68d5f0a Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Wed, 7 Sep 2016 18:37:38 +0200
Subject: [PATCH 105/604] gnu: Enable tcp-wrappers for nrircd.
* gnu/packages/messaging.scm (ngircd) [inputs]: Add tcp-wrappers.
---
gnu/packages/messaging.scm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index b95239a748..4f7dcc7bf0 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -47,6 +47,7 @@
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages libidn)
#:use-module (gnu packages lua)
#:use-module (gnu packages xml)
@@ -213,8 +214,9 @@ dictionaries. HexChat can be extended with multiple addons.")
(native-inputs `(("procps" ,procps)
("expect" ,expect)
("inetutils" ,inetutils)))
- ;; XXX Add libident, libwrap.
+ ;; XXX Add libident.
(inputs `(("zlib" ,zlib)
+ ("libwrap" ,tcp-wrappers)
("gnutls" ,gnutls)
,@(if (string-suffix? "-linux"
(or (%current-target-system)
@@ -223,7 +225,7 @@ dictionaries. HexChat can be extended with multiple addons.")
'())))
(arguments
`(#:configure-flags
- '("--with-gnutls" "--with-iconv" "--enable-ipv6"
+ '("--with-gnutls" "--with-iconv" "--enable-ipv6" "--with-tcp-wrappers"
,@(if (string-suffix? "-linux"
(or (%current-target-system)
(%current-system)))
From fe447664d864f3d406862e9fba681c50edf04cfb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 18:11:30 +0200
Subject: [PATCH 106/604] gnu: guile-irregex: Remove hard-coded Guile effective
version.
* gnu/packages/guile.scm (guile-irregex)[arguments]: Add (ice-9 popen)
and (ice-9 rdelim). Remove nested 'use-modules' form. Call
'open-pipe*' to determine Guile's effective version, and use it to
compute MODULE-DIR.
---
gnu/packages/guile.scm | 84 ++++++++++++++++++++++--------------------
1 file changed, 44 insertions(+), 40 deletions(-)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index d09cfbfd1a..859e77a6e8 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -632,6 +632,8 @@ See http://minikanren.org/ for more on miniKanren generally.")
(arguments
`(#:modules ((guix build utils)
(ice-9 match)
+ (ice-9 rdelim)
+ (ice-9 popen)
(guix build gnu-build-system))
#:phases
(modify-phases %standard-phases
@@ -640,50 +642,52 @@ See http://minikanren.org/ for more on miniKanren generally.")
(delete 'check)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
- (begin
- (use-modules (guix build utils)
- (ice-9 match))
- (let* ((out (assoc-ref outputs "out"))
- (module-dir (string-append out "/share/guile/site/2.0"))
- (source (assoc-ref inputs "source"))
- (doc (string-append out "/share/doc/guile-irregex/"))
- (guild (string-append (assoc-ref %build-inputs "guile")
- "/bin/guild")))
- ;; Make installation directories.
- (mkdir-p (string-append module-dir "/rx/source"))
- (mkdir-p doc)
+ (let* ((out (assoc-ref outputs "out"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ "guile" "-c"
+ "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
+ (source (assoc-ref inputs "source"))
+ (doc (string-append out "/share/doc/guile-irregex/"))
+ (guild (string-append (assoc-ref %build-inputs "guile")
+ "/bin/guild")))
+ ;; Make installation directories.
+ (mkdir-p (string-append module-dir "/rx/source"))
+ (mkdir-p doc)
- ;; Compile .scm files and install.
- (setenv "GUILE_AUTO_COMPILE" "0")
+ ;; Compile .scm files and install.
+ (setenv "GUILE_AUTO_COMPILE" "0")
- (for-each (lambda (copy-info)
- (match copy-info
- ((src-file dest-file-basis)
- (let* ((dest-file (string-append
- module-dir dest-file-basis
- ".scm"))
- (go-file (string-append
+ (for-each (lambda (copy-info)
+ (match copy-info
+ ((src-file dest-file-basis)
+ (let* ((dest-file (string-append
module-dir dest-file-basis
- ".go")))
- ;; Install source module.
- (copy-file src-file
- dest-file)
- ;; Install compiled module.
- (unless (zero? (system* guild "compile"
- "-L" (getcwd)
- "-o" go-file
- src-file))
- (error (format #f "Failed to compile ~s to ~s!"
- src-file dest-file)))))))
- '(("irregex-guile.scm" "/rx/irregex")
- ("irregex.scm" "/rx/source/irregex")
- ;; Not really reachable via guile's packaging system,
- ;; but nice to have around
- ("irregex-utils.scm" "/rx/source/irregex-utils")))
+ ".scm"))
+ (go-file (string-append
+ module-dir dest-file-basis
+ ".go")))
+ ;; Install source module.
+ (copy-file src-file
+ dest-file)
+ ;; Install compiled module.
+ (unless (zero? (system* guild "compile"
+ "-L" (getcwd)
+ "-o" go-file
+ src-file))
+ (error (format #f "Failed to compile ~s to ~s!"
+ src-file dest-file)))))))
+ '(("irregex-guile.scm" "/rx/irregex")
+ ("irregex.scm" "/rx/source/irregex")
+ ;; Not really reachable via guile's packaging system,
+ ;; but nice to have around
+ ("irregex-utils.scm" "/rx/source/irregex-utils")))
- ;; Also copy over the README.
- (install-file "irregex.html" doc)
- #t)))))))
+ ;; Also copy over the README.
+ (install-file "irregex.html" doc)
+ #t))))))
(inputs
`(("guile" ,guile-2.0)))
(home-page "http://synthcode.com/scheme/irregex")
From 4b74a29d8fd1af870a2db19d554923263abb7657 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 18:16:49 +0200
Subject: [PATCH 107/604] gnu: guile-minikanren: Remove hard-coded Guile
effective version.
* gnu/packages/guile.scm (guile-minikanren)[arguments]: Remove (ice-9
match) from #:modules. Use 'open-pipe*' to determine the effective
version of Guile, and use that to compute MODULE-DIR.
---
gnu/packages/guile.scm | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 859e77a6e8..195af54c84 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -555,15 +555,22 @@ http:://json.org specification. These are the main features:
"0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6"))))
(build-system trivial-build-system)
(arguments
- `(#:modules
- ((guix build utils)
- (ice-9 match))
+ `(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
- (ice-9 match))
+ (ice-9 match)
+ (ice-9 popen)
+ (ice-9 rdelim))
+
(let* ((out (assoc-ref %outputs "out"))
- (module-dir (string-append out "/share/guile/site/2.0"))
+ (guile (assoc-ref %build-inputs "guile"))
+ (effective (read-line
+ (open-pipe* OPEN_READ
+ (string-append guile "/bin/guile")
+ "-c" "(display (effective-version))")))
+ (module-dir (string-append out "/share/guile/site/"
+ effective))
(source (assoc-ref %build-inputs "source"))
(doc (string-append out "/share/doc/guile-minikanren"))
(scm-files '("minikanren.scm"
From ffc72ec6dfb02bca3e282ccc1b6c00da6e7fbcaf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 18:27:11 +0200
Subject: [PATCH 108/604] gnu: guile-json: Remove hard-coded Guile effective
version.
* gnu/packages/guile.scm (guile-json)[snippet]: Modify 'ac_subst_vars'
in 'configure', and use "@GUILE_EFFECTIVE_VERSION@" instead of "2.0" in
'Makefile.in'.
---
gnu/packages/guile.scm | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 195af54c84..bd9902d427 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -514,19 +514,23 @@ for Guile\".")
(name "guile-json")
(version "0.5.0")
(source (origin
- (method url-fetch)
- (uri (string-append "mirror://savannah/guile-json/guile-json-"
- version ".tar.gz"))
- (sha256
- (base32
- "0l8a34l92nrdszy7ykycfvr8y0n0yi5qb3ccliycvpvf9mzk5n8d"))
- (modules '((guix build utils)))
- (snippet
- ;; Make sure everything goes under .../site/2.0, like Guile's
- ;; search paths expects.
- '(substitute* '("Makefile.in" "json/Makefile.in")
- (("moddir =.*/share/guile/site" all)
- (string-append all "/2.0"))))))
+ (method url-fetch)
+ (uri (string-append "mirror://savannah/guile-json/guile-json-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0l8a34l92nrdszy7ykycfvr8y0n0yi5qb3ccliycvpvf9mzk5n8d"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Make sure everything goes under .../site/X.Y, like Guile's
+ ;; search paths expects.
+ '(begin
+ (substitute* "configure"
+ (("ac_subst_vars='")
+ "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n"))
+ (substitute* '("Makefile.in" "json/Makefile.in")
+ (("moddir =.*/share/guile/site" all)
+ (string-append all "/@GUILE_EFFECTIVE_VERSION@")))))))
(build-system gnu-build-system)
(native-inputs `(("guile" ,guile-2.0)))
(home-page "http://savannah.nongnu.org/projects/guile-json/")
From 757ce0f99d5ffed86ee3258eef6c8841e82e1116 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 18:33:33 +0200
Subject: [PATCH 109/604] gnu: guile-commonmark: Remove hard-coded "/2.0" in
installation directories.
* gnu/packages/guile.scm (guile-commonmark)[source]: Add 'snippet' and
'modules'.
---
gnu/packages/guile.scm | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index bd9902d427..4276e34080 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -1206,7 +1206,18 @@ you send to a FIFO file.")
"/" name "-" version ".tar.gz"))
(sha256
(base32
- "12cb5fqvvgc87f5xp0ih5az305wnjia89l5jba83d0r2p8bfy0b0"))))
+ "12cb5fqvvgc87f5xp0ih5az305wnjia89l5jba83d0r2p8bfy0b0"))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Use the real effective version of Guile in directory names
+ ;; instead of a hard-coded "/2.0".
+ '(begin
+ (substitute* "configure"
+ (("ac_subst_vars='")
+ "ac_subst_vars='GUILE_EFFECTIVE_VERSION\n"))
+ (substitute* "Makefile.in"
+ (("/site/2.0")
+ "/site/@GUILE_EFFECTIVE_VERSION@"))))))
(build-system gnu-build-system)
(inputs
`(("guile" ,guile-2.0)))
From 947a5d47a50252cb0b87b78a8f83f274dec593e2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 18:39:44 +0200
Subject: [PATCH 110/604] gnu: Add 'package-for-guile-2.2' procedure and use
it.
* gnu/packages/guile.scm (guile-2.2-package-name)
(package-for-guile-2.2): New procedures.
* gnu/packages/guile.scm (guile2.2-json, guile2.2-minikanren)
(guile2.2-irregex, guile2.2-commonmark): New variables.
---
gnu/packages/guile.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index 4276e34080..2f6ae30aab 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -229,6 +229,21 @@ without requiring the source code to be rewritten.")
(files '("lib/guile/2.2/ccache"
"share/guile/site/2.2")))))))
+(define (guile-2.2-package-name name)
+ "Return NAME with a \"guile2.2-\" prefix instead of \"guile-\", when
+applicable."
+ (if (string-prefix? "guile-" name)
+ (string-append "guile2.2-"
+ (string-drop name
+ (string-length "guile-")))
+ name))
+
+(define package-for-guile-2.2
+ ;; A procedure that rewrites the dependency tree of the given package to use
+ ;; GUILE-NEXT instead of GUILE-2.0.
+ (package-input-rewriting `((,guile-2.0 . ,guile-next))
+ guile-2.2-package-name))
+
(define-public guile-for-guile-emacs
(package (inherit guile-next)
(name "guile-for-guile-emacs")
@@ -544,6 +559,9 @@ http:://json.org specification. These are the main features:
- Allows JSON pretty printing.")
(license lgpl3+)))
+(define-public guile2.2-json
+ (package-for-guile-2.2 guile-json))
+
(define-public guile-minikanren
(package
(name "guile-minikanren")
@@ -627,6 +645,9 @@ slightly from miniKanren mainline.
See http://minikanren.org/ for more on miniKanren generally.")
(license expat)))
+(define-public guile2.2-minikanren
+ (package-for-guile-2.2 guile-minikanren))
+
(define-public guile-irregex
(package
(name "guile-irregex")
@@ -709,6 +730,9 @@ string-based regular expressions. It implements SRFI 115 and is deeply
inspired by the SCSH regular expression system.")
(license bsd-3)))
+(define-public guile2.2-irregex
+ (package-for-guile-2.2 guile-irregex))
+
;; There are two guile-gdbm packages, one using the FFI and one with
;; direct C bindings, hence the verbose name.
@@ -1231,4 +1255,7 @@ is no support for parsing block and inline level HTML.")
(home-page "https://github.com/OrangeShark/guile-commonmark")
(license lgpl3+)))
+(define-public guile2.2-commonmark
+ (package-for-guile-2.2 guile-commonmark))
+
;;; guile.scm ends here
From d6a07ee6751cdd414d702194dbeb0fd71f0781c9 Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Sat, 3 Sep 2016 08:26:05 +0200
Subject: [PATCH 111/604] gnu: Add rpc-daemon service
* gnu/services/nfs.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
doc/guix.texi | 26 +++++++++++++++++++++
gnu/local.mk | 1 +
gnu/services/nfs.scm | 54 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 81 insertions(+)
create mode 100644 gnu/services/nfs.scm
diff --git a/doc/guix.texi b/doc/guix.texi
index 655dcfa277..fb7284eb2f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -25,6 +25,7 @@ Copyright @copyright{} 2015, 2016 Ricardo Wurmus@*
Copyright @copyright{} 2016 Ben Woodcroft@*
Copyright @copyright{} 2016 Chris Marusich@*
Copyright @copyright{} 2016 Efraim Flashner@*
+Copyright @copyright{} 2016 John Darrington@*
Copyright @copyright{} 2016 ng0
Permission is granted to copy, distribute and/or modify this document
@@ -10093,6 +10094,31 @@ directories are created when the service is activated.
@node Various Services
@subsubsection Various Services
+
+@subsubheading RPC Bind Service
+@cindex rpcbind
+
+The @code{(gnu services nfs)} module provides the following:
+
+@defvr {Scheme Variable} rpcbind-service-type
+A service type for the RPC portmapper daemon.
+@end defvr
+
+
+@deftp {Data Type} rpcbind-configuration
+Data type representing the configuration of the RPC Bind Service.
+This type has the following parameters:
+@table @asis
+@item @code{rpcbind} (default: @code{rpcbind})
+The rpcbind package to use.
+
+@item @code{warm-start?} (default: @code{#t})
+If this parameter is @code{#t}, then the daemon will read a
+state file on startup thus reloading state information saved by a previous
+instance.
+@end table
+@end deftp
+
@cindex lirc
@subsubheading Lirc Service
diff --git a/gnu/local.mk b/gnu/local.mk
index 12578cad64..8b042d5971 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -389,6 +389,7 @@ GNU_SYSTEM_MODULES = \
%D%/services/mail.scm \
%D%/services/mcron.scm \
%D%/services/networking.scm \
+ %D%/services/nfs.scm \
%D%/services/shepherd.scm \
%D%/services/herd.scm \
%D%/services/sddm.scm \
diff --git a/gnu/services/nfs.scm b/gnu/services/nfs.scm
new file mode 100644
index 0000000000..82713d8133
--- /dev/null
+++ b/gnu/services/nfs.scm
@@ -0,0 +1,54 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 John Darrington
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see .
+
+(define-module (gnu services nfs)
+ #:use-module (gnu)
+ #:use-module (gnu services shepherd)
+ #:use-module (gnu packages onc-rpc)
+ #:use-module (guix)
+ #:use-module (guix records)
+ #:export (rpcbind-service-type
+ rpcbind-configuration
+ rpcbind-configuration?))
+
+(define-record-type*
+ rpcbind-configuration make-rpcbind-configuration
+ rpcbind-configuration?
+ (rpcbind rpcbind-configuration-rpcbind
+ (default rpcbind))
+ (warm-start? rpcbind-configuration-warm-start?
+ (default #t)))
+
+(define rpcbind-service-type
+ (shepherd-service-type
+ 'rpcbind
+ (lambda (config)
+ (define pkg
+ (rpcbind-configuration-rpcbind config))
+
+ (define rpcbind-command
+ #~(list (string-append #$pkg "/bin/rpcbind") "-f"
+ #$@(if (rpcbind-configuration-warm-start? config) '("-w") '())))
+
+ (shepherd-service
+ (documentation "Start the RPC bind daemon.")
+ (requirement '(networking))
+ (provision '(rpcbind-daemon))
+
+ (start #~(make-forkexec-constructor #$rpcbind-command))
+ (stop #~(make-kill-destructor))))))
From e79b3c37e3f3a00241e7a980b45eb0e30f942b94 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus
Date: Wed, 7 Sep 2016 10:25:42 +0200
Subject: [PATCH 112/604] gnu: man-db: Use modify-phases syntax.
* gnu/packages/man.scm (man-db)[arguments]: Use modify-phases syntax.
---
gnu/packages/man.scm | 25 ++++++++++++-------------
1 file changed, 12 insertions(+), 13 deletions(-)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index 9ffbba9de9..a5ee2d3121 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2014, 2015 Ludovic Courtès
;;; Copyright © 2014 David Thompson
-;;; Copyright © 2015 Ricardo Wurmus
+;;; Copyright © 2015, 2016 Ricardo Wurmus
;;; Copyright © 2015 Alex Kost
;;; Copyright © 2015, 2016 Efraim Flashner
;;;
@@ -69,18 +69,17 @@ a flexible and convenient way.")
(build-system gnu-build-system)
(arguments
'(#:phases
- (alist-cons-after
- 'patch-source-shebangs 'patch-test-shebangs
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Patch shebangs in test scripts.
- (let ((out (assoc-ref outputs "out")))
- (for-each (lambda (file)
- (substitute* file
- (("#! /bin/sh")
- (string-append "#!" (which "sh")))))
- (remove file-is-directory?
- (find-files "src/tests" ".*")))))
- %standard-phases)
+ (modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'patch-test-shebangs
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Patch shebangs in test scripts.
+ (let ((out (assoc-ref outputs "out")))
+ (for-each (lambda (file)
+ (substitute* file
+ (("#! /bin/sh")
+ (string-append "#!" (which "sh")))))
+ (remove file-is-directory?
+ (find-files "src/tests" ".*")))))))
#:configure-flags
(let ((groff (assoc-ref %build-inputs "groff"))
(less (assoc-ref %build-inputs "less"))
From ea55a39530d6604cde07d5b23ba529a07a76ea7b Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus
Date: Wed, 7 Sep 2016 10:44:24 +0200
Subject: [PATCH 113/604] gnu: man-db: Patch path to iconv.
* gnu/packages/man.scm (man-db)[arguments]: Add phase
"patch-iconv-path".
Fixes .
---
gnu/packages/man.scm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/man.scm b/gnu/packages/man.scm
index a5ee2d3121..865851982f 100644
--- a/gnu/packages/man.scm
+++ b/gnu/packages/man.scm
@@ -79,7 +79,13 @@ a flexible and convenient way.")
(("#! /bin/sh")
(string-append "#!" (which "sh")))))
(remove file-is-directory?
- (find-files "src/tests" ".*")))))))
+ (find-files "src/tests" ".*"))))))
+ (add-after 'unpack 'patch-iconv-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/man.c"
+ (("\"iconv\"")
+ (string-append "\"" (which "iconv") "\"")))
+ #t)))
#:configure-flags
(let ((groff (assoc-ref %build-inputs "groff"))
(less (assoc-ref %build-inputs "less"))
From 29e53b95f7db941296f7ff8f05e7525010362af6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ludovic=20Court=C3=A8s?=
Date: Wed, 7 Sep 2016 22:55:43 +0200
Subject: [PATCH 114/604] doc: Update package count.
* doc/guix.texi (Limitations): Update package count.
---
doc/guix.texi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index fb7284eb2f..3923627c79 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6156,7 +6156,7 @@ Few system services are currently supported out-of-the-box
(@pxref{Services}).
@item
-More than 3,200 packages are available, but you may
+More than 4,000 packages are available, but you may
occasionally find that a useful package is missing.
@item
From 23c43e55acec39e6562aafa11ff1d2173e25e079 Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Wed, 7 Sep 2016 17:26:00 -0400
Subject: [PATCH 115/604] gnu: imagemagick: Update to 6.9.5-9.
* gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.5-9.
---
gnu/packages/imagemagick.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index f824abf3f4..94ba2e2189 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -41,14 +41,14 @@
(define-public imagemagick
(package
(name "imagemagick")
- (version "6.9.5-8")
+ (version "6.9.5-9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://imagemagick/ImageMagick-"
version ".tar.xz"))
(sha256
(base32
- "0ds21sk1pczf2cwi62rqp6b8x2m24sb6xn82ivzh13m42phzigav"))))
+ "10y1bfx70k6q0fi9zmccdw3miab1jdpqfyb7yjyacrg1m86k0kww"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch")
From c0bc4b8c7da48dc5f3df6d3526eb1432ee1bbdcb Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Wed, 7 Sep 2016 17:26:28 -0400
Subject: [PATCH 116/604] gnu: graphicsmagick: Update to 1.3.25 [fixes
CVE-2016-2317].
* gnu/packages/imagemagick.scm (graphicsmagick): Update to 1.3.25.
---
gnu/packages/imagemagick.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 94ba2e2189..5d72cf291b 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -155,7 +155,7 @@ script.")
(define-public graphicsmagick
(package
(name "graphicsmagick")
- (version "1.3.24")
+ (version "1.3.25")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp.graphicsmagick.org/pub/"
@@ -163,7 +163,7 @@ script.")
"/GraphicsMagick-" version ".tar.xz"))
(sha256
(base32
- "1q40w5hcl8rcpszm0r7rpr3a9lj390p39zfvavkvlgxyyk7bmgsj"))))
+ "17xcc7pfcmiwpfr1g8ys5a7bdnvqzka53vg3kkzhwwz0s99gljyn"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
From 9e258dc24978c8d8544a471ae35156ab3001dd20 Mon Sep 17 00:00:00 2001
From: Efraim Flashner
Date: Wed, 7 Sep 2016 21:02:28 +0300
Subject: [PATCH 117/604] gnu: lightweight-desktop.tmpl: Fix typo.
* gnu/system/examples/lightweight-desktop.tmpl: While it is currently
unknown if Bob has a brother, it is sufficiently documented that Alice
is, in fact, Bob's sister.
---
gnu/system/examples/lightweight-desktop.tmpl | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl
index 7cb461f2b9..91e7d0b562 100644
--- a/gnu/system/examples/lightweight-desktop.tmpl
+++ b/gnu/system/examples/lightweight-desktop.tmpl
@@ -24,7 +24,7 @@
(users (cons (user-account
(name "alice")
- (comment "Bob's brother")
+ (comment "Bob's sister")
(group "users")
(supplementary-groups '("wheel" "netdev"
"audio" "video"))
From a232d2c6a81d19b2389efef549954111e20926e5 Mon Sep 17 00:00:00 2001
From: Erik Edrosa
Date: Wed, 7 Sep 2016 21:00:00 -0400
Subject: [PATCH 118/604] gnu: openal: Update to 1.17.2.
* gnu/packages/audio.scm (openal): Update to 1.17.2.
Signed-off-by: Efraim Flashner
---
gnu/packages/audio.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index 9f03368168..40cc029424 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -1468,7 +1468,7 @@ lv2-c++-tools.")
(define-public openal
(package
(name "openal")
- (version "1.15.1")
+ (version "1.17.2")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1476,7 +1476,7 @@ lv2-c++-tools.")
version ".tar.bz2"))
(sha256
(base32
- "0mmhdqiyb3c9dzvxspm8h2v8jibhi8pfjxnf6m0wn744y1ia2a8f"))))
+ "051k5fy8pk4fd9ha3qaqcv08xwbks09xl5qs4ijqq2qz5xaghhd3"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no check target
From 7fb461d2feec88de0f0cc713acf79300c7d6c3ae Mon Sep 17 00:00:00 2001
From: Leo Famulari
Date: Wed, 7 Sep 2016 17:45:46 -0400
Subject: [PATCH 119/604] gnu: curl: Update replacement to 7.50.2 [fixes
CVE-2016-7141].
* gnu/packages/curl.scm (curl)[replacement]: Update to 7.50.2
(curl-7.50.1): Replace with ...
(curl-7.50.2): ... this.
---
gnu/packages/curl.scm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/curl.scm b/gnu/packages/curl.scm
index a250bb17d3..f3c0ade824 100644
--- a/gnu/packages/curl.scm
+++ b/gnu/packages/curl.scm
@@ -40,7 +40,7 @@
(define-public curl
(package
(name "curl")
- (replacement curl-7.50.1)
+ (replacement curl-7.50.2)
(version "7.47.0")
(source (origin
(method url-fetch)
@@ -125,15 +125,15 @@ tunneling, and so on.")
"See COPYING in the distribution."))
(home-page "http://curl.haxx.se/")))
-(define curl-7.50.1
+(define curl-7.50.2
(package
(inherit curl)
(source
- (let ((version "7.50.1"))
+ (let ((version "7.50.2"))
(origin
(method url-fetch)
(uri (string-append "https://curl.haxx.se/download/curl-"
version ".tar.lzma"))
(sha256
(base32
- "0qc3qp3h18v24irzw7dgg1jf39v4hnz8irv83v9lbn9rxzrpdcdj")))))))
+ "0d5ly1xms0hh5zkv0m77d50c1816ywmbvmi1m158jyl70ndi9gby")))))))
From 1c6c0ad067b558fcbebd87e8cb51d342d808163e Mon Sep 17 00:00:00 2001
From: John Darrington
Date: Mon, 5 Sep 2016 13:53:39 +0200
Subject: [PATCH 120/604] services: ntpd: Use a dedicated directory for drift
file.
Fixes . Drift file now resides in a
dedicated directory owned by the daemon.
* gnu/services/networking.scm (ntp-service-activation): New procedure,
(ntp-service-type): Add new service-extension.
---
gnu/services/networking.scm | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 71f49a03a5..dee1b74d81 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès