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 @@ (define-public gtk+-2
(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 @@ (define-public gtk+
(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 @@ (define-public vcftools
;; 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 @@ (define (generate-classpath 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 @@ (define-public libnfsidmap
(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 @@ (define-public bazaar
(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 @@ (define-public git
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 @@ (define-public yelp-xsl
(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 @@ (define-public yelp
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 @@ (define-public rpcbind
(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 @@ (define-public mplayer
(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 @@ (define-public mpv
".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 @@ (define-public transmission-remote-cli
(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 @@ (define-public aria2
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 @@ (define-public gtkspell3
"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 @@ (define-public awesome
(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 @@ (define-public python2-freezegun
(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 @@ (define-public infernal
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 @@ (define-public bullet
(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-module (gnu packages u-boot)
(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 @@ (define-public dtc
"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 @@ (define-public jpegoptim
(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 @@ (define-public terminology
(define-public rage
(package
(name "rage")
- (version "0.2.0")
+ (version "0.2.1")
(source (origin
(method url-fetch)
(uri
@@ -271,7 +271,7 @@ (define-public rage
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 @@ (define-public snappy
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 @@ (define-module (gnu packages calendar)
#: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 @@ (define-module (gnu packages calendar)
#: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 @@ (define-public khal
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-module (gnu packages nano)
(define-public nano
(package
(name "nano")
- (version "2.5.3")
+ (version "2.7.0")
(source
(origin
(method url-fetch)
@@ -36,7 +37,7 @@ (define-public nano
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 @@ (define module
(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 @@ (define-module (gnu build file-systems)
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 @@ (define-module (gnu build file-systems)
;;; 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 @@ (define* (read bv #:optional (offset 0))
(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 @@ (define-module (gnu system linux-initrd)
#: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 @@ (define* (expression->initrd exp
(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 @@ (define (flat-linux-module-directory linux modules)
"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 @@ (define device-mapping-commands
(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 (device-mapping-service mapped-device)
(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 @@ (define-module (gnu system vm)
#: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 @@ (define %linux-vm-file-systems
(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 @@ (define* (expression->derivation-in-linux-vm name exp
(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 @@ (define* (qemu-image #:key
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-module (gnu packages finance)
(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 @@ (define-public bitcoin-core
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 @@ (define-public gnome-mpv
(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 @@ (define-public libvpx
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 @@ (define-module (gnu packages mail)
#: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 @@ (define-public perl-mail-spf
(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 @@ (define-public efl
;; 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 @@ (define-public borg
(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 @@ (define-public borg
(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 @@ (define-public font-anonymous-pro
(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 @@ (define-public font-gnu-unifont
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 @@ (define-public perl-uri-ws
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 @@ (define-public perl-class-date
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 @@ (define-public perl-datetimex-easy
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 @@ (define-public perl-datetime-format-mail
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 @@ (define-public perl-encode-locale
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 @@ (define-public perl-uri
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 @@ (define-public perl-unicode-linebreak
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 @@ (define-public perl-path-class
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 @@ (define-public perl-xml-compile-wsdl11
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 @@ (define-public perl-graph-readwrite
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 @@ (define-public perl-test-longstring
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 @@ (define-public perl-xml-namespacesupport
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 @@ (define-public perl-xml-compile-wsdl11
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 @@ (define-public perl-www-mechanize
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 @@ (define-public git
(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 @@ (define-public cgit
("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 @@ (define-module (gnu packages messaging)
#: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 @@ (define-module (gnu packages messaging)
#: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 @@ (define-module (gnu packages messaging)
#: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 @@ (define-public prosody
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 @@ (define-public openal
(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 (qemu-patch commit file-name sha256)
(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 @@ (define-public qemu
(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 @@ (define-public dmenu
(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 @@ (define-public slock
(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 @@ (define-module (guix build syscalls)
#: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 @@ (define* (read bv #:optional (offset 0))
;;;
(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 @@ (define-syntax-rule (restart-on-EINTR expr)
(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 @@ (define mount
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 @@ (define umount
#: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 @@ (define swapon
(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 @@ (define swapoff
(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 @@ (define mkdtemp!
(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 @@ (define fdatasync
"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 @@ (define statfs
(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 @@ (define clone
"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 @@ (define setns
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 @@ (define pivot-root
(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 @@ (define bv
;; 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 @@ (define* (network-interface-names #:optional sock)
(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 @@ (define (network-interface-flags socket 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 @@ (define (set-network-interface-flags socket name flags)
;; 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 @@ (define (set-network-interface-address socket name sockaddr)
(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 @@ (define (network-interface-address socket 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) 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 @@ (define network-interfaces
(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 @@ (define tcgetattr
(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 @@ (define bv
(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 @@ (define* (terminal-window-size #:optional (port (current-output-port)))
"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-module (guix gnupg)
(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-module (gnu packages gstreamer)
(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 @@ (define-public orc
(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 @@ (define-public gst-plugins-base
`(("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 @@ (define-public gst-plugins-ugly
("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 @@ (define-public gst-plugins-bad
("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 @@ (define qemu-2.3.0
;; 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 @@ (define qemu-for-tests
;; 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 @@ (define-public gpm
(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 @@ (define-public btrfs-progs
"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 @@ (define (virtfs-option 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 @@ (define activate-user
;; '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 @@ (define-module (gnu services xorg)
#: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 @@ (define-module (gnu services base)
nscd-service-type
nscd-service
+
+ syslog-configuration
+ syslog-configuration?
syslog-service
syslog-service-type
%default-syslog.conf
@@ -885,17 +888,27 @@ (define* (nscd-service #:optional (config %nscd-default-configuration))
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 @@ (define %default-syslog.conf
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 @@ (define %avahi-os
(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 @@ (define-public slim
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 @@ (define-module (gnu packages display-managers)
#: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 @@ (define-module (gnu packages display-managers)
#: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 @@ (define-public greenisland
;; 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 @@ (define-public cairo
(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 @@ (define-module (gnu packages xorg)
#: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 @@ (define-public xorg-server
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 @@ (define-module (gnu packages freedesktop)
#: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 @@ (define-module (gnu packages freedesktop)
#: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 @@ (define-public wayland-protocols
(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 @@ (define-module (gnu packages dictionaries)
#: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 @@ (define-public diction
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 @@ (define-module (gnu packages tex)
#: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 @@ (define-public texmaker
(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 @@ (define-public openssl
(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-module (gnu packages scribus)
(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 @@ (define activate-user
(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 @@ (define-public slock
(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 @@ (define-module (gnu packages games)
#: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 @@ (define-public supertux
(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 @@ (define-public lua-5.1
(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 @@ (define-public go-1.4
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 @@ (define-public go-1.6
name version ".src.tar.gz"))
(sha256
(base32
- "002v6irgfd63zp9iza8nski5by0lar033j3ddpqiikw6bznsw9k3"))))
+ "1h712yd5wk5mrj2dixc9z2xlgksfks00yvglrkrgr488p8b0qs3j"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases)
@@ -216,11 +217,14 @@ (define-public go-1.6
;; 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 @@ (define-public go-1.6
;; 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 @@ (define-public go-1.6
`(("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 @@ (define-public p7zip
(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 @@ (define-module (gnu packages crypto)
#: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 @@ (define-public keyutils
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 @@ (define (matches-one? str)
((<) #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 @@ (define upgrade?
(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 @@ (define-module (guix profiles)
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 @@ (define-record-type* manifest-transaction
(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 @@ (define (manifest-entry->pattern entry)
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 @@ (define glibc
(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 @@ (define (matches-one? str)
((<) #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 @@ (define (store-item->manifest-entry item)
(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 @@ (define to-install
(_ #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 @@ (define (transform-entry entry)
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 @@ (define-module (test-packages)
#: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 @@ (define %store
(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 @@ (define-module (guix profiles)
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 @@ (define* (%find-package spec name version #:key fallback?)
(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 @@ (define-module (guix packages)
package-location
hidden-package
hidden-package?
+ package-superseded
+ deprecated-package
package-field-location
package-direct-sources
@@ -306,6 +308,18 @@ (define (hidden-package? p)
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 @@ (define (matches-one? str)
(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 @@ (define %store
(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 @@ (define-public geiser-next
(define-public paredit
(package
- (name "paredit")
+ (name "emacs-paredit")
(version "24")
(source (origin
(method url-fetch)
@@ -364,6 +364,9 @@ (define-public paredit
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 @@ (define-public libtasn1
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-module (gnu packages webkit)
(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 @@ (define-module (gnu packages ncurses)
#: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 @@ (define-public dialog
(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 @@ (define-public rottlog
(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 @@ (define-public rottlog
"/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 @@ (define-public rottlog
"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 @@ (define-public rottlog
(("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 @@ (define-public inetutils
(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 @@ (define syslog-service-type
(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 @@ (define (show-help)
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 @@ (define (show-help)
(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 @@ (define fmt-proc
(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 @@ (define (parse-options)
(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 @@ (define (file-hash file)
(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 @@ (define-public mb2md
"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 @@ (define-public socat
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 @@ (define-module (gnu packages messaging)
#: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 @@ (define-public ngircd
(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 @@ (define-public ngircd
'())))
(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 @@ (define-public guile-irregex
(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 @@ (define-public guile-irregex
(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 @@ (define-public guile-minikanren
"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 @@ (define-public guile-json
(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 @@ (define-public guile-commonmark
"/" 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 @@ (define-public guile-next
(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 @@ (define-public guile-json
- 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 @@ (define-public guile-minikanren
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 @@ (define-public guile-irregex
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 @@ (define-public guile-commonmark
(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 @@ (define-public man-db
(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 @@ (define-public man-db
(("#! /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-module (gnu packages imagemagick)
(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 @@ (define-public perl-image-magick
(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 @@ (define-public graphicsmagick
"/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 @@ (define-public lvtk
(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 @@ (define-public openal
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-module (gnu packages curl)
(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 @@ (define-public curl
"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
;;; Copyright © 2015 Mark H Weaver
;;; Copyright © 2016 Efraim Flashner
+;;; Copyright © 2016 John Darrington
;;;
;;; This file is part of GNU Guix.
;;;
@@ -272,7 +273,7 @@ (define ntp-shepherd-service
(let ()
;; TODO: Add authentication support.
(define config
- (string-append "driftfile /var/run/ntp.drift\n"
+ (string-append "driftfile /var/run/ntpd/ntp.drift\n"
(string-join (map (cut string-append "server " <>)
servers)
"\n")
@@ -307,13 +308,27 @@ (define %ntp-accounts
(home-directory "/var/empty")
(shell #~(string-append #$shadow "/sbin/nologin")))))
+
+(define (ntp-service-activation config)
+ "Return the activation gexp for CONFIG."
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (define %user
+ (getpw "ntpd"))
+
+ (let ((directory "/var/run/ntpd"))
+ (mkdir-p directory)
+ (chown directory (passwd:uid %user) (passwd:gid %user))))))
+
(define ntp-service-type
(service-type (name 'ntp)
(extensions
(list (service-extension shepherd-root-service-type
ntp-shepherd-service)
(service-extension account-service-type
- (const %ntp-accounts))))))
+ (const %ntp-accounts))
+ (service-extension activation-service-type
+ ntp-service-activation)))))
(define* (ntp-service #:key (ntp ntp)
(servers %ntp-servers))
From fdf14c64f1dc7526e84b7e0ce41bf99e5b31c3f8 Mon Sep 17 00:00:00 2001
From: John Darrington