summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk2
-rw-r--r--gnu/packages/astronomy.scm1
-rw-r--r--gnu/packages/audacity.scm4
-rw-r--r--gnu/packages/backup.scm24
-rw-r--r--gnu/packages/bootloaders.scm6
-rw-r--r--gnu/packages/compton.scm3
-rw-r--r--gnu/packages/display-managers.scm5
-rw-r--r--gnu/packages/dns.scm12
-rw-r--r--gnu/packages/game-development.scm51
-rw-r--r--gnu/packages/games.scm154
-rw-r--r--gnu/packages/gnome.scm4
-rw-r--r--gnu/packages/image.scm4
-rw-r--r--gnu/packages/kde-frameworks.scm22
-rw-r--r--gnu/packages/kodi.scm293
-rw-r--r--gnu/packages/linux.scm3
-rw-r--r--gnu/packages/mail.scm54
-rw-r--r--gnu/packages/messaging.scm112
-rw-r--r--gnu/packages/mpd.scm4
-rw-r--r--gnu/packages/music.scm53
-rw-r--r--gnu/packages/ntp.scm4
-rw-r--r--gnu/packages/ots.scm34
-rw-r--r--gnu/packages/patches/ngircd-no-dns-in-tests.patch368
-rw-r--r--gnu/packages/patches/vim-CVE-2017-5953.patch32
-rw-r--r--gnu/packages/perl.scm44
-rw-r--r--gnu/packages/pretty-print.scm29
-rw-r--r--gnu/packages/python.scm265
-rw-r--r--gnu/packages/qt.scm1
-rw-r--r--gnu/packages/ssh.scm4
-rw-r--r--gnu/packages/statistics.scm35
-rw-r--r--gnu/packages/text-editors.scm1
-rw-r--r--gnu/packages/version-control.scm16
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/vim.scm29
-rw-r--r--gnu/packages/web.scm12
-rw-r--r--gnu/packages/wm.scm28
-rw-r--r--gnu/packages/wxwidgets.scm30
-rw-r--r--gnu/services/base.scm2
-rw-r--r--gnu/services/ssh.scm110
-rw-r--r--gnu/system/file-systems.scm29
-rw-r--r--gnu/system/linux-initrd.scm23
-rw-r--r--gnu/tests/ssh.scm109
41 files changed, 1258 insertions, 762 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 256682effa..b8db8712d9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -778,7 +778,6 @@ dist_patch_DATA = \
%D%/packages/patches/netsurf-y2038-tests.patch \
%D%/packages/patches/netsurf-longer-test-timeout.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \
- %D%/packages/patches/ngircd-no-dns-in-tests.patch \
%D%/packages/patches/ninja-zero-mtime.patch \
%D%/packages/patches/node-9077.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
@@ -964,7 +963,6 @@ dist_patch_DATA = \
%D%/packages/patches/util-linux-CVE-2017-2616.patch \
%D%/packages/patches/upower-builddir.patch \
%D%/packages/patches/valgrind-enable-arm.patch \
- %D%/packages/patches/vim-CVE-2017-5953.patch \
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
%D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \
%D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \
diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index 2695530fee..9f5e4aeb78 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -143,6 +143,7 @@ programs for the manipulation and analysis of astronomical data.")
#:phases (modify-phases %standard-phases
(add-before 'check 'set-offscreen-display
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "HOME" "/tmp")
#t)))))
diff --git a/gnu/packages/audacity.scm b/gnu/packages/audacity.scm
index a70d0e3a69..c448d0c1f2 100644
--- a/gnu/packages/audacity.scm
+++ b/gnu/packages/audacity.scm
@@ -52,8 +52,8 @@
(inputs
;; TODO: Add portSMF and libwidgetextra once they're packaged. In-tree
;; versions shipping with Audacity are used for now.
- `(("wxwidgets" ,wxwidgets-gtk2)
- ("gtk" ,gtk+-2)
+ `(("wxwidgets" ,wxwidgets)
+ ("gtk" ,gtk+)
("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("expat" ,expat)
diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index 9e20b9f033..bdf8884ab2 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -639,7 +639,23 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
"0qlipsq50hca71zc0dp1mg9zs12qm0sbblw7qfzl0hj6mk2rv1by"))))
(build-system python-build-system)
(arguments
- `(#:python ,python-2))
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (substitute* "obnamlib/vfs_local_tests.py"
+ ;; Check for the nobody user instead of root
+ (("self.fs.get_username\\(0\\), 'root'")
+ "self.fs.get_username(65534), 'nobody'")
+ ;; Disable tests checking for root group
+ (("self.fs.get_groupname\\(0\\)") "'root'"))
+ (substitute* "obnamlib/vfs_local.py"
+ ;; Don't cover get_groupname function
+ (("def get_groupname\\(self, gid\\):")
+ "def get_groupname(self, gid): # pragma: no cover"))
+ ;; Can't run network tests
+ (zero? (system* "./check" "--unit-tests")))))))
(inputs
`(("python2-cliapp" ,python2-cliapp)
("python2-larch" ,python2-larch)
@@ -647,6 +663,12 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
("python2-pyaml" ,python2-pyaml)
("python2-tracing" ,python2-tracing)
("python2-ttystatus" ,python2-ttystatus)))
+ (native-inputs
+ `(("gnupg" ,gnupg)
+ ("python2-coverage" ,python2-coverage)
+ ("python2-coverage-test-runner" ,python2-coverage-test-runner)
+ ("python2-pep8" ,python2-pep8)
+ ("python2-pylint" ,python2-pylint)))
(home-page "https://obnam.org/")
(synopsis "Easy and secure backup program")
(description "Obnam is an easy, secure backup program. Features
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 5fc6bf2e29..a3f436373d 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -228,15 +228,15 @@ menu to select one of the installed operating systems.")
(define-public dtc
(package
(name "dtc")
- (version "1.4.2")
+ (version "1.4.4")
(source (origin
(method url-fetch)
(uri (string-append
- "https://www.kernel.org/pub/software/utils/dtc/"
+ "mirror://kernel.org/software/utils/dtc/"
"dtc-" version ".tar.xz"))
(sha256
(base32
- "1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
+ "1yygyvnnpdh241hl90n9p3kxcdvk3jxmsr4ndb961c8mq3ak21s7"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)
diff --git a/gnu/packages/compton.scm b/gnu/packages/compton.scm
index a0a644db7b..323807091a 100644
--- a/gnu/packages/compton.scm
+++ b/gnu/packages/compton.scm
@@ -50,7 +50,6 @@
(build-system gnu-build-system)
(inputs
`(("dbus" ,dbus)
- ("docbook-xml" ,docbook-xml)
("libconfig" ,libconfig)
("libx11" ,libx11)
("libxcomposite" ,libxcomposite)
@@ -58,10 +57,8 @@
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxinerama" ,libxinerama)
- ("libxml2" ,libxml2)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
- ("libxslt" ,libxslt)
("mesa" ,mesa)
("xprop" ,xprop)
("xwininfo" ,xwininfo)))
diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index 80b45af103..307bc864ec 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -41,7 +41,7 @@
(define-public greenisland
(package
(name "greenisland")
- (version "0.8.1")
+ (version "0.9.0.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -50,7 +50,7 @@
"greenisland-" version ".tar.xz"))
(sha256
(base32
- "1c9rlq7fqrsd5nb37anjvnp9xspqjz1kc0fvydv5xdy3abg8mw40"))))
+ "1flmha31hmii6m2mdvmn1q5dc0fhnvgc4lp1b4wgkz20y7x4f1fm"))))
(build-system cmake-build-system)
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
@@ -100,6 +100,7 @@
(add-before 'check 'check-setup
(lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "XDG_RUNTIME_DIR" (getcwd))
#t))
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index d09abc1366..ec89abc670 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -294,8 +294,10 @@ asynchronous fashion.")
(arguments
`(#:phases (modify-phases %standard-phases
(add-before 'configure 'omit-example-configurations
- (lambda _ (substitute* "Makefile.in"
- ((" (etc|var)") "")))))
+ (lambda _
+ (substitute* "Makefile.in"
+ ((" (etc|var)") ""))
+ #t)))
#:configure-flags (list "--sysconfdir=/etc" "--localstatedir=/var"
"--enable-shared" "--disable-static"
"--enable-messages" "--enable-ctrl"
@@ -334,7 +336,8 @@ Extensions} (DNSSEC).")
(("contrib/dnstap ") ""))
(with-directory-excursion "src/contrib"
(for-each delete-file-recursively
- (list "dnstap" "lmdb")))))))
+ (list "dnstap" "lmdb")))
+ #t))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -354,7 +357,8 @@ Extensions} (DNSSEC).")
(add-before 'configure 'disable-directory-pre-creation
(lambda _
;; Don't install empty directories like ‘/etc’ outside the store.
- (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))))
+ (substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 908ce48347..6525f94304 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
+;;; Copyright © 2016, 2017 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Julian Graham <joolean@gmail.com>
;;;
@@ -95,6 +95,55 @@
is used in some video games and movies.")
(license license:zlib)))
+(define-public deutex
+ (package
+ (name "deutex")
+ (version "4.4.902")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/Doom-Utils/" name
+ "/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0rwz1yzgd539x4h25kzhar4q02xyxjwfrcpz4m8ixi312a82p7cn"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no check target
+ #:phases
+ (modify-phases %standard-phases
+ ;; The provided configure script takes a restricted number of arguments.
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (zero? (system* "./configure" "--prefix"
+ (assoc-ref %outputs "out")))))
+ ;; "make install" is broken for this package.
+ ;; Notably, the binaries overrwrite one another upon installation as
+ ;; they are all installed to the "bin" file in the output directory,
+ ;; and the manual page fails to install because the directory for the
+ ;; manual page is not created.
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref %outputs "out"))
+ (bin (string-append out "/bin"))
+ (share (string-append out "/share")))
+ (install-file "deusf" bin)
+ (install-file "deutex" bin)
+ (install-file "deutex.6" (string-append share "/man/man6")))
+ #t)))))
+ (home-page "https://github.com/Doom-Utils/deutex")
+ (synopsis "WAD file composer for Doom and related games")
+ (description
+ "DeuTex is a wad composer for Doom, Heretic, Hexen and Strife. It can be
+used to extract the lumps of a wad and save them as individual files.
+Conversely, it can also build a wad from separate files. When extracting a
+lump to a file, it does not just copy the raw data, it converts it to an
+appropriate format (such as PPM for graphics, Sun audio for samples, etc.).
+Conversely, when it reads files for inclusion in pwads, it does the necessary
+conversions (for example, from PPM to Doom picture format). In addition,
+DeuTex has functions such as merging wads, etc.")
+ (license license:gpl2+)))
+
(define-public gzochi
(package
(name "gzochi")
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index f264ef206f..67fcb7b496 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -25,6 +25,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016 Steve Webber <webber.sl@gmail.com>
;;; Copyright © 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
+;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -58,6 +59,7 @@
#:use-module (gnu packages audio)
#:use-module (gnu packages avahi)
#:use-module (gnu packages boost)
+ #:use-module (gnu packages documentation)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages game-development)
@@ -69,6 +71,7 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages imagemagick)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages haskell)
@@ -107,12 +110,85 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages pcre)
#:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages messaging)
+ #:use-module (gnu packages upnp)
+ #:use-module (gnu packages wxwidgets)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
#:use-module (guix build-system python)
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial))
+(define-public freedoom
+ (package
+ (name "freedoom")
+ (version "0.11.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/" name "/" name
+ "/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "060dqppd9fi079yw6c82klsjaslcabq6xan67wf9hs0cy39i0kpv"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:make-flags `(,(string-append "prefix=" (assoc-ref %outputs "out")))
+ #:parallel-build? #f
+ #:tests? #f ; no check target
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'unpack 'no (lambda _ #t))
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((dejavu (assoc-ref inputs "font-dejavu"))
+ (freedoom (assoc-ref outputs "out"))
+ (wad-dir (string-append freedoom "/share/games/doom")))
+ ;; Replace the font-searching function in a shell
+ ;; script with a direct path to the required font.
+ ;; This is necessary because ImageMagick can only find the
+ ;; most basic fonts while in the build environment.
+ (substitute* "graphics/titlepic/create_caption"
+ (("font=\\$\\(find_font.*$")
+ (string-append
+ "font=" dejavu
+ "/share/fonts/truetype/DejaVuSansCondensed-Bold.ttf\n")))
+ ;; Make icon creation reproducible.
+ (substitute* "dist/Makefile"
+ (("freedm.png")
+ "-define png:exclude-chunks=date freedm.png")
+ (("freedoom1.png")
+ "-define png:exclude-chunks=date freedoom1.png")
+ (("freedoom2.png")
+ "-define png:exclude-chunks=date freedoom2.png"))
+ ;; Make sure that the install scripts know where to find
+ ;; the appropriate WAD files.
+ (substitute* "dist/freedoom"
+ (("IWAD=freedm.wad")
+ (string-append "IWAD=" wad-dir "/freedm.wad"))
+ (("IWAD=freedoom1.wad")
+ (string-append "IWAD=" wad-dir "/freedoom1.wad"))
+ (("IWAD=freedoom2.wad")
+ (string-append "IWAD=" wad-dir "/freedoom2.wad")))
+ #t))))))
+ (native-inputs
+ `(("asciidoc" ,asciidoc)
+ ("deutex" ,deutex)
+ ("font-dejavu" ,font-dejavu)
+ ("imagemagick" ,imagemagick)
+ ("python" ,python-2)))
+ (inputs
+ `(("prboom-plus" ,prboom-plus)))
+ (home-page "https://freedoom.github.io/")
+ (synopsis "Free content game based on the Doom engine")
+ (description
+ "The Freedoom project aims to create a complete free content first person
+shooter game. Freedoom by itself is just the raw material for a game: it must
+be paired with a compatible game engine (such as @code{prboom-plus}) to be
+played. Freedoom complements the Doom engine with free levels, artwork, sound
+effects and music to make a completely free game.")
+ (license license:bsd-3)))
+
(define-public gnubg
(package
(name "gnubg")
@@ -3267,3 +3343,81 @@ This command works on piped data. Pipe any ASCII or UTF-8 text to nms, and
it will apply the hollywood effect, initially showing encrypted data, then
starting a decryption sequence to reveal the original plaintext characters.")
(license license:expat)))
+
+(define-public megaglest-data
+ (package
+ (name "megaglest-data")
+ (version "3.13.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/MegaGlest/megaglest-data"
+ "/releases/download/" version "/megaglest-data-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0ipgza33z89fw3si32iafm981f3fvm0zldvbxj29whghd2k3rpj3"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f))
+ (home-page "https://megaglest.org/")
+ (synopsis "Data files for MegaGlest")
+ (description "This package contains the data files required for MegaGlest.")
+ (license license:cc-by-sa3.0)))
+
+(define-public megaglest
+ (package
+ (name "megaglest")
+ (version "3.13.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/MegaGlest/megaglest-source"
+ "/releases/download/" version "/megaglest-source-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "1ffck3ii1wp5k3nn5p0ga06jgp7pzk4zw0xln3xim2w7qrxzdzh9"))))
+ (build-system cmake-build-system)
+ (inputs
+ `(("curl" ,curl)
+ ("fontconfig" ,fontconfig)
+ ("ftgl" ,ftgl)
+ ("glew" ,glew)
+ ("libjpeg-turbo" ,libjpeg-turbo)
+ ("megaglest-data" ,megaglest-data)
+ ("mesa" ,mesa)
+ ("miniupnpc" ,miniupnpc)
+ ("openal" ,openal)
+ ("libircclient" ,libircclient)
+ ("libpng" ,libpng)
+ ("libvorbis" ,libvorbis)
+ ("lua" ,lua)
+ ("sdl2" ,sdl2)
+ ("wxwidgets" ,wxwidgets)))
+ (native-inputs
+ `(("cppunit" ,cppunit)
+ ("pkg-config" ,pkg-config)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DCUSTOM_DATA_INSTALL_PATH="
+ (assoc-ref %build-inputs "megaglest-data")
+ "/share/megaglest")
+ "-DBUILD_MEGAGLEST_TESTS=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-ini-search-path
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "source/glest_game/global/config.cpp"
+ (("/usr/share/megaglest/")
+ (string-append (assoc-ref outputs "out")
+ "/share/megaglest/"))))))
+ #:test-target "megaglest_tests"))
+ (home-page "https://megaglest.org/")
+ (synopsis "3D real-time strategy (RTS) game")
+ (description "MegaGlest is a cross-platform 3D real-time strategy (RTS)
+game, where you control the armies of one of seven different factions: Tech,
+Magic, Egypt, Indians, Norsemen, Persian or Romans.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index cfd8b24290..f8fafdbc7a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3658,7 +3658,7 @@ USB transfers with your high-level application or system daemon.")
(define-public simple-scan
(package
(name "simple-scan")
- (version "3.22.0.1")
+ (version "3.24.0")
(source (origin
(method url-fetch)
(uri (string-append "https://launchpad.net/simple-scan/"
@@ -3667,7 +3667,7 @@ USB transfers with your high-level application or system daemon.")
version ".tar.xz"))
(sha256
(base32
- "0l1b3llkdlqq0bcjx1cadba67l2zb4zfykdaprpjbjbr6gkbc1f5"))))
+ "19klldnbnknpq6ikz9x93861ywcyg0pg9ngijvw66ncbnb7lx912"))))
(build-system glib-or-gtk-build-system)
(inputs
`(("gtk" ,gtk+)
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 9c0e695f9a..fb6536b8c0 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -932,7 +932,7 @@ ISO/IEC 15444-1).")
(define-public zimg
(package
(name "zimg")
- (version "2.3")
+ (version "2.5")
(source
(origin
(method url-fetch)
@@ -941,7 +941,7 @@ ISO/IEC 15444-1).")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1yh6kkq8596a9cxcmcxzqvwbwmxwqapwsq31xpccznw6z62j75h9"))))
+ "0kbq2dy659645fmgxpzg38b6y6x82kwkydhc380kdkaikv2brcjh"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm
index 7b90c1436b..1001813db3 100644
--- a/gnu/packages/kde-frameworks.scm
+++ b/gnu/packages/kde-frameworks.scm
@@ -650,6 +650,7 @@ infrastructure.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -984,7 +985,8 @@ represented by a QPoint or a QSize.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
- (setenv "QT_QPA_PLATFORM" "offscreen") ; a better solution to Xvfb
+ ;; make Qt render "offscreen", required for tests
+ (setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; enable debug info
(setenv "DBUS_FATAL_WARNINGS" "0")
#t))
@@ -1307,6 +1309,7 @@ utilities.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -1692,6 +1695,7 @@ gallons).")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t))
(replace 'check
@@ -1816,6 +1820,7 @@ by which applications, and what documents have been linked to which activity.")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -1894,6 +1899,7 @@ KCModules can be created with the KConfigWidgets framework.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2024,6 +2030,7 @@ started on demand.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2096,6 +2103,7 @@ with su and ssh respectively.")
(lambda _
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2139,6 +2147,7 @@ emoticons coming from different providers.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2188,6 +2197,7 @@ window does not need focus for them to be activated.")
"/share"))
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2297,6 +2307,7 @@ makes starting KDE applications faster and reduces memory consumption.")
(setenv "HOME" (getcwd))
(setenv "XDG_RUNTIME_DIR" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
;;(replace 'check
@@ -2361,6 +2372,7 @@ KIO enabled infrastructure.")
(lambda _ ; XDG_DATA_DIRS isn't set
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2454,6 +2466,7 @@ notifications which can be embedded in your application.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2494,6 +2507,7 @@ widgets with a user-interface defined in terms of actions.")
(add-before 'check 'check-setup
(lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2550,6 +2564,7 @@ to easily extend the contacts collection.")
(add-before 'check 'check-setup
(lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2595,6 +2610,7 @@ typed.")
(lambda _
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2661,6 +2677,7 @@ types or handled by application specific code.")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
#t)))))
@@ -2708,6 +2725,7 @@ library.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@@ -2798,6 +2816,7 @@ the passwords on KDE work spaces.")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
#t)))))
@@ -2910,6 +2929,7 @@ setUrl, setUserAgent and call.")
(lambda _
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm
index 929894d61e..a60e2c0548 100644
--- a/gnu/packages/kodi.scm
+++ b/gnu/packages/kodi.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 David Thompson <davet@gnu.org>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,13 +23,13 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
- #:use-module (gnu packages boost)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
@@ -52,6 +53,7 @@
#:use-module (gnu packages mp3)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages samba)
@@ -119,153 +121,301 @@ generator library for C++.")
(home-page "https://github.com/graeme-hill/crossguid")
(license license:expat))))
+;; Kodi requires using their own special forks of these libraries.
+;; In addition, it insists on downloading and building these as part
+;; of the standard build process. To make things easier, we bootstrap
+;; and patch shebangs here, so we don't have to worry about it later.
+(define libdvdnav/kodi
+ (let ((commit "981488f7f27554b103cca10c1fbeba027396c94a"))
+ (package
+ (name "libdvdnav-bootstrapped")
+ (version commit)
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xbmc/libdvdnav.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "089pswc51l3avh95zl4cpsh7gh1innh7b2y4xgx840mcmy46ycr8"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _ (zero? (system* "autoreconf" "-vif"))))
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (copy-recursively "." (assoc-ref outputs "out"))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/xbmc/libdvdnav")
+ (synopsis (package-synopsis libdvdnav))
+ (description (package-description libdvdnav))
+ (license license:gpl2+))))
+
+(define libdvdread/kodi
+ (let ((commit "17d99db97e7b8f23077b342369d3c22a6250affd"))
+ (package
+ (name "libdvdread-bootstrapped")
+ (version commit)
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xbmc/libdvdread.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1gr5aq1cjr3as9mnwrw29cxn4m6f6pfrxdahkdcjy70q3ldg90sl"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _ (zero? (system* "autoreconf" "-vif"))))
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (copy-recursively "." (assoc-ref outputs "out"))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/xbmc/libdvdread")
+ (synopsis (package-synopsis libdvdread))
+ (description (package-description libdvdread))
+ (license (list license:gpl2+ license:lgpl2.1+)))))
+
+(define libdvdcss/kodi
+ (let ((commit "2f12236bc1c92f73c21e973363f79eb300de603f"))
+ (package
+ (name "libdvdcss-bootstrapped")
+ (version commit)
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xbmc/libdvdcss.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "198r0q73i55ga1dvyqq9nfcri0zq08b94hy8671lg14i3izx44dd"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'bootstrap
+ (lambda _ (zero? (system* "autoreconf" "-vif"))))
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (copy-recursively "." (assoc-ref outputs "out"))
+ #t)))))
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
+ (home-page "https://github.com/xbmc/libdvdcss")
+ (synopsis (package-synopsis libdvdcss))
+ (description (package-description libdvdcss))
+ (license license:gpl2+))))
+
(define-public kodi
+ ;; We package the git version because the current released
+ ;; version was cut while the cmake transition was in turmoil.
+ (let ((commit "b35147e2bec41ce332b9788f4a6ac94d2e5999e3")
+ (revision "0"))
(package
(name "kodi")
- (version "16.0")
+ (version (string-append "18.0_alpha-" revision "-" (string-take commit 7)))
(source (origin
- (method url-fetch)
- (uri (string-append "http://mirrors.kodi.tv/releases/source/"
- version "-Jarvis.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/xbmc/xbmc.git")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
(sha256
(base32
- "0iirspvv7czf785l2lqf232dvdaj87srbn9ni97ngvnd6w9yl884"))
+ "0rhb9rcz5h8mky8mx6idzybnpgjh2lxcjkh16z1x6fr4pis2jcbj"))
(snippet
- ;; Delete bundled ffmpeg.
- ;; TODO: Delete every other bundled library.
'(begin
(use-modules (guix build utils))
- (delete-file-recursively "tools/depends/target/ffmpeg")))
+ (for-each delete-file-recursively
+ '("project/BuildDependencies/bin/"
+ ;; TODO: Purge these jars.
+ ;;"tools/codegenerator/groovy"
+ ;; And these sources:
+ ;; "tools/depend/native/JsonSchemaBuilder"
+ ;; "tools/depend/native/TexturePacker"
+ ;; "lib/UnrarXlib"
+ ;; "lib/gtest"
+ ;; "lib/cpluff"
+ ;; "lib/libexif"
+ ;; "lib/libUPnP"
+ "lib/libUPnP/Neptune/ThirdParty"
+ "project/Win32BuildSetup/tools/7z"))
+ #t))
(modules '((guix build utils)))))
- (build-system gnu-build-system)
+ (build-system cmake-build-system)
(arguments
- '(#:configure-flags '("--with-ffmpeg=shared") ; don't use bundled ffmpeg
+ '(#:modules ((srfi srfi-1)
+ (guix build cmake-build-system)
+ (guix build utils))
+ #:configure-flags
+ (list "-DENABLE_INTERNAL_FFMPEG=OFF"
+ "-DENABLE_INTERNAL_CROSSGUID=OFF"
+ (string-append "-Dlibdvdread_URL="
+ (assoc-ref %build-inputs "libdvdread-bootstrapped"))
+ (string-append "-Dlibdvdnav_URL="
+ (assoc-ref %build-inputs "libdvdnav-bootstrapped"))
+ (string-append "-Dlibdvdcss_URL="
+ (assoc-ref %build-inputs "libdvdcss-bootstrapped"))
+ "-DENABLE_NONFREE=OFF")
#:phases
(modify-phases %standard-phases
- ;; JsonSchemaBuilder is a small tool needed by the build system that
- ;; comes bundled with the source. The build system tries to build it
- ;; during the bootstrapping phase, which causes serious issues
+ ;; The build system tries to bootstrap these bundled components
+ ;; during the regular build phase, which causes serious issues
;; because there's no time for shebangs to be patched. So, we
;; bootstrap it on our own instead.
- (add-after 'unpack 'bootstrap-jsonschemabuilder
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((dir "tools/depends/native/JsonSchemaBuilder/src"))
- (with-directory-excursion dir
- (zero? (system* "sh" "autogen.sh"))))))
- ;; Now we can do the regular bootstrapping process, but only after
- ;; the first round of shebang patching. We must repeat the patching
- ;; after bootstrapping so that all of the files generated by the
- ;; Autotools et al. are patched appropriately.
- (add-after 'patch-source-shebangs 'bootstrap
- (lambda* (#:key inputs #:allow-other-keys)
- ;; We bootstrapped JsonSchemaBuilder in the previous phase, so we
- ;; need to make sure it isn't done a second time. Otherwise, it
- ;; would undo the shebang patching that we worked so hard for.
- (substitute* '("tools/depends/native/JsonSchemaBuilder/Makefile")
- (("\\./autogen\\.sh") ""))
- ;; This essentially does what their 'bootstrap' script does, but
- ;; additionally passes the correct CONFIG_SHELL.
- (let ((bash (string-append (assoc-ref inputs "bash") "/bin/sh")))
- (define (run-make makefile)
- (zero? (system* "make" "-f" makefile
- "BOOTSTRAP_STANDALONE=1"
- (string-append "CONFIG_SHELL=" bash))))
- (and (run-make "bootstrap.mk")
- (run-make "codegenerator.mk")))))
- (add-after 'bootstrap 'patch-source-shebangs-again
- (assoc-ref %standard-phases 'patch-source-shebangs))
- ;; 3 tests fail that appear harmless, so we disable them.
- (add-before 'check 'disable-some-tests
+ (add-after 'unpack 'bootstrap-bundled-software
+ (lambda _
+ (let ((dirs '("tools/depends/native/JsonSchemaBuilder/src"
+ "lib/cpluff")))
+ (every (lambda (third-party)
+ (with-directory-excursion third-party
+ (zero? (system* "autoreconf" "-vif"))))
+ dirs))))
+ (add-after 'bootstrap-bundled-software 'patch-stuff
(lambda _
+ ;; Prevent the build scripts from calling autoreconf in the
+ ;; build stage. Otherwise, it would undo the bootstrapping
+ ;; and shebang patching that we worked so hard for.
+ (substitute* "cmake/modules/FindCpluff.cmake"
+ (("autoreconf -vif") "true"))
+ (substitute* "lib/cpluff/po/Makefile.in.in"
+ (("/bin/sh") (which "sh")))
+ (substitute* "cmake/modules/FindLibDvd.cmake"
+ ;; The libdvd* sources that we bootstrapped separately are
+ ;; unpacked in the build phase. This is our best opportunity
+ ;; to make them writable before the build process starts.
+ (("autoreconf -vif") "chmod -R u+w ."))
+
+ ;; Let's disable some tests that are known not to work here.
+ ;; Doing this later while in the cmake "../build" directory
+ ;; is trickier.
(substitute* '("xbmc/utils/test/TestSystemInfo.cpp")
(("TEST_F\\(TestSystemInfo, GetOsPrettyNameWithVersion\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsPrettyNameWithVersion)")
(("TEST_F\\(TestSystemInfo, GetOsName\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsName)")
(("TEST_F\\(TestSystemInfo, GetOsVersion\\)")
- "TEST_F(TestSystemInfo, DISABLED_GetOsVersion)")))))))
+ "TEST_F(TestSystemInfo, DISABLED_GetOsVersion)"))
+ ;; FIXME: Why are these failing.
+ (substitute* "xbmc/network/test/TestWebServer.cpp"
+ (("TEST_F\\(TestWebServer, Can")
+ "TEST_F(TestWebServer, DISABLED_Can"))
+ #t))
+ (add-before 'build 'set-build-environment
+ (lambda _
+ ;; Some bundled build scripts fall back to /bin/sh
+ ;; if this is not set.
+ (setenv "CONFIG_SHELL" (which "sh"))
+ #t))
+ (add-before 'check 'build-kodi-test
+ (lambda _
+ (zero? (system* "make" "kodi-test"))))
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (curl (string-append (assoc-ref inputs "curl") "/lib")))
+ (wrap-program (string-append out "/bin/kodi")
+ `("LD_LIBRARY_PATH" suffix (,curl)))
+ #t))))))
;; TODO: Add dependencies for:
- ;; - vdpau
;; - nfs
- ;;
- ;; FIXME: libusb detection fails.
- ;;
- ;; FIXME: As you can see, we use a lot of external libraries, but it seems
- ;; that a few bundled ones are still being used.
+ ;; - cec
+ ;; - plist
+ ;; - shairplay
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
- ("cmake" ,cmake)
- ("doxygen" ,doxygen)
- ("gawk" ,gawk)
("gettext" ,gettext-minimal)
("icedtea" ,icedtea) ; needed at build-time only, mandatory
+ ("libdvdcss-bootstrapped" ,libdvdcss/kodi)
+ ("libdvdnav-bootstrapped" ,libdvdnav/kodi)
+ ("libdvdread-bootstrapped" ,libdvdread/kodi)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("swig" ,swig)
- ("which" ,which)
("yasm" ,yasm)))
(inputs
`(("alsa-lib" ,alsa-lib)
("avahi" ,avahi)
("bluez" ,bluez)
- ("boost" ,boost)
- ("bzip2" ,bzip2)
("crossguid" ,crossguid)
("curl" ,curl)
("dcadec" ,dcadec)
("dbus" ,dbus)
- ("enca" ,enca)
("eudev" ,eudev)
("ffmpeg" ,ffmpeg)
("flac" ,flac)
+ ("fmt" ,fmt)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("fribidi" ,fribidi)
+ ("giflib" ,giflib)
("glew" ,glew)
("gnutls" ,gnutls)
- ("gperf" ,gperf)
- ("jasper" ,jasper)
("lame" ,lame)
+ ("lcms" ,lcms)
("libass" ,libass)
("libbluray" ,libbluray)
("libcap" ,libcap)
("libcdio" ,libcdio)
+ ("libdrm" ,libdrm)
("libgcrypt" ,libgcrypt)
("libjpeg" ,libjpeg)
("libltdl" ,libltdl)
("libmad" ,libmad)
("libmicrohttpd" ,libmicrohttpd)
- ("libmodplug" ,libmodplug)
("libmpeg2" ,libmpeg2)
("libogg" ,libogg)
("libpng" ,libpng)
- ("libsamplerate" ,libsamplerate)
("libssh" ,libssh)
("libtiff" ,libtiff)
("libva" ,libva)
("libvorbis" ,libvorbis)
("libxml2" ,libxml2)
- ("libxmu" ,libxmu)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxslt" ,libxslt)
- ("libxt" ,libxt)
("libyajl" ,libyajl)
("lzo" ,lzo)
- ("mesa-utils" ,mesa-utils)
("mysql" ,mysql)
("openssl" ,openssl)
("pcre" ,pcre)
("pulseaudio" ,pulseaudio)
("python" ,python-2)
("samba" ,samba)
- ("sdl2" ,sdl2)
("sqlite" ,sqlite)
("taglib" ,taglib)
("tinyxml" ,tinyxml)
- ("unzip" ,unzip)
("util-linux" ,util-linux)
("zip" ,zip)
("zlib" ,zlib)))
@@ -274,4 +424,11 @@ generator library for C++.")
music, games, etc. Kodi is highly customizable and features a theme and
plug-in system.")
(home-page "http://kodi.tv")
- (license license:gpl2+)))
+ ;; XBMC is largely GPL2+, with some library components as LGPL2.1+, but
+ ;; there are some other licenses spread throughout.
+ (license (list license:gpl2+ license:lgpl2.1+
+ license:gpl3+ ;WiiRemote client
+ license:expat ;cpluff, dbwrappers
+ license:public-domain ;cpluff/examples
+ license:bsd-3 ;misc, gtest
+ license:bsd-2))))) ;xbmc/freebsd
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 8f13a38b5f..ea7be23d74 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -2222,8 +2222,6 @@ in a digital read-out.")
;; Documentation.
("libxml2" ,libxml2) ;for $XML_CATALOG_FILES
- ("libxslt" ,libxslt)
- ("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("xmlto" ,xmlto)
("asciidoc" ,asciidoc)))
@@ -2801,7 +2799,6 @@ and copy/paste text in the console and in xterm.")
("xmlto" ,xmlto)
;; For building documentation.
("libxml2" ,libxml2)
- ("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
;; For tests.
("which" ,which)))
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index f387204d06..369fb69d9b 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -17,7 +17,7 @@
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016, 2017 <contact.ng0@cryptolab.net>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
-;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
@@ -423,8 +423,7 @@ and corrections. It is based on a Bayesian filter.")
"0i5dvygps1ai2qwgamab8kngrp0c5m3bgaw0jk34l8ypsk54wj8r"))))
(build-system python-build-system)
(native-inputs
- `(("asciidoc" ,asciidoc)
- ("libxslt" ,libxslt))) ; for xsltproc
+ `(("asciidoc" ,asciidoc)))
(inputs `(("python2-pysqlite" ,python2-pysqlite)
("python2-six" ,python2-six)))
(arguments
@@ -2099,3 +2098,52 @@ indexed mbox files. There are two programs: @code{bindex} and @code{bit}.
are supported). @code{bit} is a CGI/SSI program that generates web pages
on the fly. Both programs are written in C and are very fast.")
(license license:expat)))
+
+(define-public swaks
+ (package
+ (name "swaks")
+ (version "20170101.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://jetmore.org/john/code/swaks/files/swaks-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0pli4mlhasnqqxmmxalwyg3x7n2vhcbgsnp2xgddamjavv82vrl4"))))
+ (build-system perl-build-system)
+ (inputs
+ `(("perl-net-dns" ,perl-net-dns)
+ ("perl-net-ssleay" ,perl-net-ssleay)))
+ (arguments
+ `(#:tests? #f ; No tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda _
+ (zero? (system* "pod2man" "doc/ref.pod" "swaks.1"))))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "swaks" (string-append out "/bin"))
+ (install-file "swaks.1" (string-append out "/share/man/man1")))
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/swaks")
+ `("PERL5LIB" ":" = (,(getenv "PERL5LIB"))))
+ #t)))))
+ (home-page "http://jetmore.org/john/code/swaks/")
+ (synopsis "Featureful SMTP test tool")
+ (description "Swaks is a flexible, scriptable, transaction-oriented SMTP
+test tool. It handles SMTP features and extensions such as TLS,
+authentication, and pipelining; multiple versions of the SMTP protocol
+including SMTP, ESMTP, and LMTP; and multiple transport methods including
+unix-domain sockets, internet-domain sockets, and pipes to spawned processes.
+Options can be specified in environment variables, configuration files, and
+the command line allowing maximum configurability and ease of use for
+operators and scripters.")
+ (license gpl2+)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 7aa7b7bfe5..c32bffcb89 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -9,6 +9,8 @@
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
+;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -201,16 +203,15 @@ dictionaries. HexChat can be extended with multiple addons.")
(define-public ngircd
(package
(name "ngircd")
- (version "22")
+ (version "24")
(source (origin
(method url-fetch)
- (uri (string-append "http://arthur.barton.de/pub/ngircd/ngircd-"
+ (uri (string-append "https://arthur.barton.de/pub/ngircd/ngircd-"
version ".tar.xz"))
(sha256
(base32
- "17k3g9qd9d010czk5846qxvzkmw4fihv8l6m2a2287crbxm3xhd4"))
- (patches (search-patches "ngircd-no-dns-in-tests.patch"
- "ngircd-handle-zombies.patch"))))
+ "020h9d1awyxqr0l42x1fhs47q7cmm17fdxzjish8p2kq23ma0gqp"))
+ (patches (search-patches "ngircd-handle-zombies.patch"))))
(build-system gnu-build-system)
;; Needed for the test suite.
(native-inputs `(("procps" ,procps)
@@ -234,34 +235,34 @@ dictionaries. HexChat can be extended with multiple addons.")
'("--with-pam")
'()))
#:phases
- ;; Necessary for the test suite.
- (alist-cons-after
- 'configure 'post-configure
- (lambda _
- (substitute* "src/ngircd/Makefile"
- (("/bin/sh") (which "sh")))
- ;; The default getpid.sh does a sloppy grep over 'ps -ax' output,
- ;; which fails arbitrarily.
- (with-output-to-file "src/testsuite/getpid.sh"
- (lambda ()
- (display
- (string-append
- "#!" (which "sh") "\n"
- "ps -C \"$1\" -o pid=\n"))))
- ;; Our variant of getpid.sh does not work for interpreter names if a
- ;; shebang script is run directly as "./foo", so patch cases where
- ;; the test suite relies on this.
- (substitute* "src/testsuite/start-server.sh"
- ;; It runs 'getpid.sh sh' to test if it works at all. Run it on
- ;; 'make' instead.
- (("getpid.sh sh") "getpid.sh make")))
- %standard-phases)))
- (home-page "http://ngircd.barton.de/")
+ (modify-phases %standard-phases
+ ;; Necessary for the test suite.
+ (add-after 'configure 'post-configure
+ (lambda _
+ (substitute* "src/ngircd/Makefile"
+ (("/bin/sh") (which "sh")))
+ ;; The default getpid.sh does a sloppy grep over 'ps -ax' output,
+ ;; which fails arbitrarily.
+ (with-output-to-file "src/testsuite/getpid.sh"
+ (lambda ()
+ (display
+ (string-append
+ "#!" (which "sh") "\n"
+ "ps -C \"$1\" -o pid=\n"))))
+ ;; Our variant of getpid.sh does not match interpreter names
+ ;; when the script's shebang is invoked directly as "./foo".
+ ;; Patch cases where the test suite relies on this.
+ (substitute* "src/testsuite/start-server.sh"
+ ;; It runs 'getpid.sh sh' to test if it works at all. Run it on
+ ;; 'make' instead.
+ (("getpid.sh sh") "getpid.sh make")))))))
+ (home-page "https://ngircd.barton.de/")
(synopsis "Lightweight Internet Relay Chat server for small networks")
(description
- "ngIRCd is a lightweight Internet Relay Chat server for small or private
-networks. It is easy to configure, can cope with dynamic IP addresses, and
-supports IPv6, SSL-protected connections as well as PAM for authentication.")
+ "ngIRCd is a lightweight @dfn{Internet Relay Chat} (IRC) server for small
+or private networks. It is easy to configure, can cope with dynamic IP
+addresses, and supports IPv6, SSL-protected connections, as well as PAM for
+authentication.")
(license license:gpl2+)))
(define-public pidgin
@@ -398,12 +399,23 @@ compromised.")
"1jia6kq6bp8yxfj02d5vj9vqb4pylqcldspyjj6iz82kkka2a0ig"))))
(build-system gnu-build-system)
(arguments
- '(#:tests? #f ; tries to download GoogleTest with wget
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-googletest
+ (lambda* (#:key inputs #:allow-other-keys)
+ (zero? (system* "tar" "xf"
+ (assoc-ref inputs "googletest-source"))))))
#:configure-flags '("--enable-python"
"--enable-perl"
- "--enable-cyrus")))
+ "--enable-cyrus"
+ ,(string-append "--with-gtest="
+ "googletest-release-"
+ (package-version googletest)
+ "/googletest"))
+ #:test-target "test"))
(native-inputs
- `(("pkg-config" ,pkg-config)
+ `(("googletest-source" ,(package-source googletest))
+ ("pkg-config" ,pkg-config)
("perl" ,perl)
("python" ,python)))
(inputs
@@ -1329,4 +1341,36 @@ using ncurses and libmesode, inspired by Irssi.")
(home-page "http://www.profanity.im")
(license license:gpl3+)))
+(define-public libircclient
+ (package
+ (name "libircclient")
+ (version "1.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/libircclient/libircclient/"
+ version "/libircclient-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0r60i76jh4drjh2jgp5sx71chagqllmkaq49zv67nrhqwvp9ghw1"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("openssl" ,openssl)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "--libdir="
+ (assoc-ref %outputs "out") "/lib")
+ "--enable-shared"
+ "--enable-ipv6"
+ "--enable-openssl")
+ ;; no test suite
+ #:tests? #f))
+ (home-page "https://www.ulduzsoft.com/libircclient/")
+ (synopsis "Library implementing the client IRC protocol")
+ (description "Libircclient is a library which implements the client IRC
+protocol. It is designed to be small, fast, portable and compatible with the
+RFC standards as well as non-standard but popular features. It can be used for
+building the IRC clients and bots.")
+ (license license:lgpl3+)))
+
;;; messaging.scm ends here
diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm
index b817f1cf27..db37814463 100644
--- a/gnu/packages/mpd.scm
+++ b/gnu/packages/mpd.scm
@@ -75,7 +75,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd
(package
(name "mpd")
- (version "0.20.4")
+ (version "0.20.6")
(source (origin
(method url-fetch)
(uri
@@ -84,7 +84,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz"))
(sha256
(base32
- "0a4psqsf71vc6hfgyv55jclsx8yb7lf4w840qlq6cq8j3hsjaavi"))))
+ "0isbpa79m7zf09w3s1ry638cw96rxasy1ch66zl01k75i48mw1gl"))))
(build-system gnu-build-system)
(arguments
`(#:phases
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 5067ee8afa..416a3304ff 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -9,6 +9,7 @@
;;; Copyright © 2016 John J. Foerch <jjfoerch@earthlink.net>
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
+;;; Copyright © 2017 Rodger Fox <thylakoid@openmailbox.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2827,3 +2828,55 @@ collections and wantlists, inventory, and orders.")
conversions between time and pulses, tempo map handling and more. The only dependencies
are a C compiler and glib. Full API documentation and examples are included.")
(license license:bsd-2)))
+
+(define-public lmms
+ (package
+ (name "lmms")
+ (version "1.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/LMMS/lmms/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1g76z7ha3hd53vbqaq9n1qg6s3lw8zzaw51iny6y2bz0j1xqwcsr"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (add-before
+ 'configure 'set-ldflags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (setenv "LDFLAGS"
+ (string-append
+ "-Wl,-rpath=\""
+ (assoc-ref outputs "out") "/lib/lmms"
+ ":"
+ (assoc-ref outputs "out") "/lib/lmms/ladspa"
+ "\"")))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("sdl" ,sdl)
+ ("qt" ,qt-4)
+ ("fltk" ,fltk)
+ ("libogg" ,libogg)
+ ("libsamplerate" ,libsamplerate)
+ ("fluidsynth" ,fluidsynth)
+ ("libvorbis" ,libvorbis)
+ ("alsa-lib" ,alsa-lib)
+ ("portaudio" ,portaudio)
+ ("ladspa" ,ladspa)
+ ("libsndfile1" ,libsndfile)
+ ("libxft" ,libxft)
+ ("freetype2" ,freetype)
+ ("fftw3f" ,fftwf)))
+ (home-page "https://lmms.io/")
+ (synopsis "Music composition tool")
+ (description "LMMS is a digital audio workstation. It includes tools for sequencing
+melodies and beats and for mixing and arranging songs. LMMS includes instruments based on
+audio samples and various soft sythesizers. It can receive input from a MIDI keyboard.")
+ (license license:gpl2+)))
diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm
index 13781fbdad..00526f526f 100644
--- a/gnu/packages/ntp.scm
+++ b/gnu/packages/ntp.scm
@@ -39,7 +39,7 @@
(define-public ntp
(package
(name "ntp")
- (version "4.2.8p9")
+ (version "4.2.8p10")
(source
(origin
(method url-fetch)
@@ -53,7 +53,7 @@
"/ntp-" version ".tar.gz")))
(sha256
(base32
- "0whbyf82lrczbri4adbsa4hg1ppfa6c7qcj7nhjwdfp1g1vjh95p"))
+ "17xrk7gxrl3hgg0i73n8qm53knyh01lf0f3l1zx9x6r1cip3dlnx"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/ots.scm b/gnu/packages/ots.scm
index f1900746b6..73dd5e4832 100644
--- a/gnu/packages/ots.scm
+++ b/gnu/packages/ots.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -35,9 +36,13 @@
(source
(origin
(method url-fetch)
- (uri (string-append "mirror://sourceforge/libots/libots/"
- name "-" version "/" name "-" version
- ".tar.gz"))
+ ;; libots seems to have left sourceforge and taken their release
+ ;; tarballs with them
+ (uri (list (string-append "mirror://debian/pool/main/o/ots/ots_"
+ version ".orig.tar.gz")
+ (string-append "mirror://sourceforge/libots/libots/"
+ name "-" version "/" name "-" version
+ ".tar.gz")))
(sha256
(base32 "0dz1ccd7ymzk4swz1aly4im0k3pascnshmgg1whd2rk14li8v47a"))
(patches (search-patches "ots-no-include-missing-file.patch"))))
@@ -48,17 +53,18 @@
;; before libots-1.la has been built.
'(#:parallel-build? #f
- #:phases (alist-cons-after
- 'configure 'set-shared-lib-extension
- (lambda _
- ;; For some reason, the 'libtool' script (from Libtool
- ;; 1.5.2, Debian variant) sets 'shrext_cmds' instead of
- ;; 'shrext' for the shared library file name extension.
- ;; This leads to the creation of 'libots-1' instead of
- ;; 'libots-1.so'. Fix that.
- (substitute* "libtool"
- (("shrext_cmds") "shrext")))
- %standard-phases)))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'configure 'set-shared-lib-extension
+ (lambda _
+ ;; For some reason, the 'libtool' script (from Libtool
+ ;; 1.5.2, Debian variant) sets 'shrext_cmds' instead of
+ ;; 'shrext' for the shared library file name extension.
+ ;; This leads to the creation of 'libots-1' instead of
+ ;; 'libots-1.so'. Fix that.
+ (substitute* "libtool"
+ (("shrext_cmds") "shrext"))
+ #t)))))
(inputs
`(("glib" ,glib)
("popt" ,popt)
diff --git a/gnu/packages/patches/ngircd-no-dns-in-tests.patch b/gnu/packages/patches/ngircd-no-dns-in-tests.patch
deleted file mode 100644
index 748661de45..0000000000
--- a/gnu/packages/patches/ngircd-no-dns-in-tests.patch
+++ /dev/null
@@ -1,368 +0,0 @@
-From 3f807e104572b38143a1015be57d875088ceaebb Mon Sep 17 00:00:00 2001
-From: Alexander Barton <alex@barton.de>
-Date: Thu, 17 Apr 2014 23:57:38 +0200
-Subject: [PATCH] Test suite: Don't use DNS lookups
-
-Different operating systems do behave quite differently when doing DNS
-lookups, for example "127.0.0.1" sometimes resolves to "localhost" and
-sometimes to "localhost.localdomain" (for example OpenBSD). And other
-systems resolve "localhost" to the real host name (for example Cygwin).
-
-So not using DNS at all makes the test site much more portable.
----
- src/testsuite/channel-test.e | 2 +-
- src/testsuite/check-idle.e | 2 +-
- src/testsuite/connect-test.e | 2 +-
- src/testsuite/invite-test.e | 2 +-
- src/testsuite/join-test.e | 2 +-
- src/testsuite/kick-test.e | 2 +-
- src/testsuite/message-test.e | 31 ++++++++++++-------------------
- src/testsuite/misc-test.e | 8 ++++----
- src/testsuite/mode-test.e | 2 +-
- src/testsuite/ngircd-test1.conf | 1 +
- src/testsuite/ngircd-test2.conf | 1 +
- src/testsuite/opless-channel-test.e | 2 +-
- src/testsuite/server-link-test.e | 2 +-
- src/testsuite/stress-A.e | 2 +-
- src/testsuite/who-test.e | 6 +++---
- src/testsuite/whois-test.e | 14 +++++++-------
- 16 files changed, 38 insertions(+), 43 deletions(-)
-
-diff --git a/src/testsuite/channel-test.e b/src/testsuite/channel-test.e
-index dd7eb66..39ad16a 100644
---- a/src/testsuite/channel-test.e
-+++ b/src/testsuite/channel-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # Channel test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/check-idle.e b/src/testsuite/check-idle.e
-index 41b8eb4..ad112b2 100644
---- a/src/testsuite/check-idle.e
-+++ b/src/testsuite/check-idle.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # Idle test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/connect-test.e b/src/testsuite/connect-test.e
-index 662f5f7..b51be0d 100644
---- a/src/testsuite/connect-test.e
-+++ b/src/testsuite/connect-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # Server connect test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/invite-test.e b/src/testsuite/invite-test.e
-index 3716d19..5179d8a 100644
---- a/src/testsuite/invite-test.e
-+++ b/src/testsuite/invite-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # INVITE test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/join-test.e b/src/testsuite/join-test.e
-index 28b4c54..c088f5c 100644
---- a/src/testsuite/join-test.e
-+++ b/src/testsuite/join-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # JOIN test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/kick-test.e b/src/testsuite/kick-test.e
-index 3d3c1ee..89da611 100644
---- a/src/testsuite/kick-test.e
-+++ b/src/testsuite/kick-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # KICK test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/message-test.e b/src/testsuite/message-test.e
-index 0e70640..5dc325d 100644
---- a/src/testsuite/message-test.e
-+++ b/src/testsuite/message-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # PRIVMSG and NOTICE test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-@@ -72,24 +72,17 @@ expect {
- "MODE nick :-b"
- }
-
--# The following two tests using "localhost" as host name
--# had to be disabled, because there are operating systems
--# out there, that use "localhost.<domain>" as host name
--# for 127.0.0.1 instead of just "localhost".
--# (for example OpenBSD 4, OpenSolaris, ...)
--#
--#send "privmsg ~user\%localhost :test\r"
--#expect {
--# timeout { exit 1 }
--# "@* PRIVMSG nick :test"
--#}
--#
--#send "privmsg Nick!~User@LocalHost :test\r"
--#expect {
--# timeout { exit 1 }
--# "@* PRIVMSG nick :test"
--# "401"
--#}
-+send "privmsg ~user\%127.0.0.1 :test\r"
-+expect {
-+ timeout { exit 1 }
-+ "@* PRIVMSG nick :test"
-+}
-+
-+send "privmsg Nick!~User@127.0.0.1 :test\r"
-+expect {
-+ timeout { exit 1 }
-+ "@* PRIVMSG nick :test"
-+}
-
- send "away :away\r"
- expect {
-diff --git a/src/testsuite/misc-test.e b/src/testsuite/misc-test.e
-index a83bc5b..f69e7c3 100644
---- a/src/testsuite/misc-test.e
-+++ b/src/testsuite/misc-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # Misc test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-@@ -130,7 +130,7 @@ expect {
- send "userhost nick\r"
- expect {
- timeout { exit 1 }
-- -re ":ngircd.test.server 302 nick :?nick=+.*@(localhos.*|127.0.0.1)"
-+ -re ":ngircd.test.server 302 nick :?nick=+.*@127.0.0.1"
- }
-
- send "userhost doesnotexist\r"
-@@ -142,7 +142,7 @@ expect {
- send "userhost nick doesnotexist nick doesnotexist\r"
- expect {
- timeout { exit 1 }
-- -re ":ngircd.test.server 302 nick :nick=+.*@(localhos.*|127.0.0.1) nick=+.*@(localhos.*|127.0.0.1)"
-+ -re ":ngircd.test.server 302 nick :nick=+.*@127.0.0.1 nick=+.*@127.0.0.1"
- }
-
- send "away :testing\r"
-@@ -154,7 +154,7 @@ expect {
- send "userhost nick nick nick nick nick nick\r"
- expect {
- timeout { exit 1 }
-- -re ":ngircd.test.server 302 nick :nick=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1) nick=-.*@(localhos.*|127.0.0.1)\r"
-+ -re ":ngircd.test.server 302 nick :nick=-.*@127.0.0.1 nick=-.*@127.0.0.1 nick=-.*@127.0.0.1 nick=-.*@127.0.0.1 nick=-.*@127.0.0.1\r"
- }
-
- send "quit\r"
-diff --git a/src/testsuite/mode-test.e b/src/testsuite/mode-test.e
-index d6726a4..86e4f2d 100644
---- a/src/testsuite/mode-test.e
-+++ b/src/testsuite/mode-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # MODE test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/ngircd-test1.conf b/src/testsuite/ngircd-test1.conf
-index 0d0cccc..4dec533 100644
---- a/src/testsuite/ngircd-test1.conf
-+++ b/src/testsuite/ngircd-test1.conf
-@@ -17,6 +17,7 @@
- OperCanUseMode = yes
- Ident = no
- IncludeDir = /var/empty
-+ DNS = no
- PAM = no
-
- [Operator]
-diff --git a/src/testsuite/ngircd-test2.conf b/src/testsuite/ngircd-test2.conf
-index c9d7f6c..0d24c4a 100644
---- a/src/testsuite/ngircd-test2.conf
-+++ b/src/testsuite/ngircd-test2.conf
-@@ -17,6 +17,7 @@
- OperCanUseMode = yes
- Ident = no
- IncludeDir = /var/empty
-+ DNS = no
- PAM = no
-
- [Operator]
-diff --git a/src/testsuite/opless-channel-test.e b/src/testsuite/opless-channel-test.e
-index 7d94172..4611fe1 100644
---- a/src/testsuite/opless-channel-test.e
-+++ b/src/testsuite/opless-channel-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # Op-less channel test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/server-link-test.e b/src/testsuite/server-link-test.e
-index cf3fae8..910f8c8 100644
---- a/src/testsuite/server-link-test.e
-+++ b/src/testsuite/server-link-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # server-server link test
-
--spawn telnet localhost 6790
-+spawn telnet 127.0.0.1 6790
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/stress-A.e b/src/testsuite/stress-A.e
-index 256d5d1..d51adaa 100644
---- a/src/testsuite/stress-A.e
-+++ b/src/testsuite/stress-A.e
-@@ -3,7 +3,7 @@
-
- set timeout 30
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-diff --git a/src/testsuite/who-test.e b/src/testsuite/who-test.e
-index a41e6b6..39d50ed 100644
---- a/src/testsuite/who-test.e
-+++ b/src/testsuite/who-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # WHO test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-@@ -62,7 +62,7 @@ expect {
- ":ngircd.test.server 352 nick #channel * * ngircd.test.server nick G@ :0 Real Name"
- }
-
--send "who localhos*\r"
-+send "who 127.0.0.*\r"
- expect {
- timeout { exit 1 }
- ":ngircd.test.server 352 nick \* * * ngircd.test.server nick G :0 Real Name"
-@@ -120,7 +120,7 @@ expect {
- "305 nick"
- }
-
--send "who ??cal*ho*\r"
-+send "who ??7.*0*\r"
- expect {
- timeout { exit 1 }
- ":ngircd.test.server 352 nick \* * * ngircd.test.server nick H* :0 Real Name"
-diff --git a/src/testsuite/whois-test.e b/src/testsuite/whois-test.e
-index 16b1184..44eee66 100644
---- a/src/testsuite/whois-test.e
-+++ b/src/testsuite/whois-test.e
-@@ -1,7 +1,7 @@
- # ngIRCd test suite
- # WHOIS test
-
--spawn telnet localhost 6789
-+spawn telnet 127.0.0.1 6789
- expect {
- timeout { exit 1 }
- "Connected"
-@@ -17,7 +17,7 @@ expect {
- send "whois nick\r"
- expect {
- timeout { exit 1 }
-- "311 nick nick ~user localhost* \* :Real Name\r"
-+ "311 nick nick ~user 127.0.0.1 \* :Real Name\r"
- }
- expect {
- timeout { exit 1 }
-@@ -27,25 +27,25 @@ expect {
- send "whois *\r"
- expect {
- timeout { exit 1 }
-- "311 nick nick ~user localhost* \* :Real Name\r"
-+ "311 nick nick ~user 127.0.0.1* \* :Real Name\r"
- }
-
- send "whois n*\r"
- expect {
- timeout { exit 1 }
-- "311 nick nick ~user localhost* \* :Real Name\r"
-+ "311 nick nick ~user 127.0.0.1* \* :Real Name\r"
- }
-
- send "whois ?ick\r"
- expect {
- timeout { exit 1 }
-- "311 nick nick ~user localhost* \* :Real Name\r"
-+ "311 nick nick ~user 127.0.0.1* \* :Real Name\r"
- }
-
- send "whois ????,n?*k\r"
- expect {
- timeout { exit 1 }
-- "311 nick nick ~user localhost* \* :Real Name\r"
-+ "311 nick nick ~user 127.0.0.1* \* :Real Name\r"
- }
-
- send "whois unknown\r"
-@@ -61,7 +61,7 @@ expect {
- send "whois ngircd.test.server2 nick\r"
- expect {
- timeout { exit 1 }
-- ":ngircd.test.server2 311 nick nick ~user localhost* \* :Real Name\r"
-+ ":ngircd.test.server2 311 nick nick ~user 127.0.0.1* \* :Real Name\r"
- }
-
- send "whois nosuchserver unknown\r"
---
-1.9.1
-
diff --git a/gnu/packages/patches/vim-CVE-2017-5953.patch b/gnu/packages/patches/vim-CVE-2017-5953.patch
deleted file mode 100644
index 070f98c2cb..0000000000
--- a/gnu/packages/patches/vim-CVE-2017-5953.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Fix CVE-2017-5953:
-
-https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5953
-https://groups.google.com/forum/#!topic/vim_dev/t-3RSdEnrHY
-
-This change is adapted from the upstream source repository:
-
-https://github.com/vim/vim/commit/6d3c8586fc81b022e9f06c611b9926108fb878c7
-
-diff --git a/src/spellfile.c b/src/spellfile.c
-index c7d87c6..00ef019 100644
---- a/src/spellfile.c
-+++ b/src/spellfile.c
-@@ -1585,7 +1585,7 @@ spell_read_tree(
- int prefixtree, /* TRUE for the prefix tree */
- int prefixcnt) /* when "prefixtree" is TRUE: prefix count */
- {
-- int len;
-+ long len;
- int idx;
- char_u *bp;
- idx_T *ip;
-@@ -1595,6 +1595,9 @@ spell_read_tree(
- len = get4c(fd);
- if (len < 0)
- return SP_TRUNCERROR;
-+ if (len >= LONG_MAX / (long)sizeof(int))
-+ /* Invalid length, multiply with sizeof(int) would overflow. */
-+ return SP_FORMERROR;
- if (len > 0)
- {
- /* Allocate the byte array. */
diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm
index 840e0b763e..086e1fae03 100644
--- a/gnu/packages/perl.scm
+++ b/gnu/packages/perl.scm
@@ -14,6 +14,7 @@
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Raoul J.P. Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017 humanitiesNerd <catonano@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -1369,6 +1370,26 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated
Password Generator\".")
(license (package-license perl))))
+(define-public perl-crypt-rc4
+ (package
+ (name "perl-crypt-rc4")
+ (version "2.02")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/S/SI/SIFUKURT/Crypt-RC4-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "1sp099cws0q225h6j4y68hmfd1lnv5877gihjs40f8n2ddf45i2y"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/Crypt-RC4")
+ (synopsis "Perl implementation of the RC4 encryption algorithm")
+ (description "A pure Perl implementation of the RC4 algorithm.")
+ (license (package-license perl))))
+
(define-public perl-cwd-guard
(package
(name "perl-cwd-guard")
@@ -5157,6 +5178,29 @@ inherit from in order to allow your objects to generate unique cryptographic
signatures.")
(license (package-license perl))))
+(define-public perl-ole-storage-lite
+ (package
+ (name "perl-ole-storage-lite")
+ (version "0.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://cpan/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-"
+ version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "179cxwqxb0f9dpx8954nvwjmggxxi5ndnang41yav1dx6mf0abp7"))))
+ (build-system perl-build-system)
+ (home-page "http://search.cpan.org/dist/OLE-Storage_Lite")
+ (synopsis "Read and write OLE storage files")
+ (description "This module allows you to read and write
+an OLE-Structured file. @dfn{OLE} (Object Linking and Embedding) is a
+technology to store hierarchical information such as links to other
+documents within a single file.")
+ (license (package-license perl))))
+
(define-public perl-package-anon
(package
(name "perl-package-anon")
diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm
index 8819b8adaf..3af7777304 100644
--- a/gnu/packages/pretty-print.scm
+++ b/gnu/packages/pretty-print.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +23,7 @@
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix download)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages ghostscript)
@@ -34,7 +36,8 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages lua)
#:use-module (gnu packages perl)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages zip))
(define-public a2ps
(package
@@ -147,6 +150,30 @@ It also includes the capability to perform syntax highlighting for several
different programming languages.")
(license gpl3+)))
+(define-public fmt
+ (package
+ (name "fmt")
+ (version "3.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/fmtlib/fmt/releases/download/"
+ version "/fmt-" version ".zip"))
+ (sha256
+ (base32
+ "0l4514mk83cjimynci3ghrfdchjy8cya1qa45c1fg2lsj7fg16jc"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("unzip" ,unzip)))
+ (home-page "http://fmtlib.net/latest/")
+ (synopsis "Small and fast C++ formatting library")
+ (description
+ "@code{fmt} (formerly @code{cppformat}) is a formatting library for C++.
+It can be used as a safe alternative to @code{printf} or as a fast alternative
+to @code{IOStreams}.")
+ ;; The library is bsd-2, but documentation and tests include other licenses.
+ (license (list bsd-2 bsd-3 psfl))))
+
(define-public source-highlight
(package
(name "source-highlight")
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 1903247d77..ea1d691c18 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -1749,14 +1749,14 @@ standard library.")
(define-public python-py
(package
(name "python-py")
- (version "1.4.31")
+ (version "1.4.32")
(source
(origin
(method url-fetch)
(uri (pypi-uri "py" version))
(sha256
(base32
- "0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56"))))
+ "19s1pql9pq85h1qzsdwgyb8a3k1qgkvh33b02m8kfqhizz8rzf64"))))
(build-system python-build-system)
(arguments
;; FIXME: "ImportError: 'test' module incorrectly imported from
@@ -3144,14 +3144,14 @@ augment the changelog, but it can be used for other documents, too.")
(define-public python-feedgenerator
(package
(name "python-feedgenerator")
- (version "1.8")
+ (version "1.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "feedgenerator" version))
(sha256
(base32
- "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0"))
+ "01mirwkm7xfx539hmvj7g9da1j51gw5lsx74dr0glizskjm5vq2s"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -5873,6 +5873,9 @@ of the structure, dynamics, and functions of complex networks.")
(arguments
;; TODO: Package missing test dependencies.
'(#:tests? #f))
+ (propagated-inputs
+ `(("python-wrapt" ,python-wrapt)
+ ("python-requests" ,python-requests)))
(home-page "https://bitbucket.org/snakemake/snakemake/wiki/Home")
(synopsis "Python-based execution environment for make-like workflows")
(description
@@ -6491,14 +6494,14 @@ Python.")
(define-public python-markdown
(package
(name "python-markdown")
- (version "2.6.7")
+ (version "2.6.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Markdown" version))
(sha256
(base32
- "1h055llfd0ps0ig7qb3v1j9068xv90dc9s7xkhkgz9zg8r4g5sys"))))
+ "0cqfhr1km2s5d8jm6hbwgkrrj9hvkjf2gab3s2axlrw1clgaij0a"))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -6858,17 +6861,14 @@ and MAC network addresses.")
(define-public python-wrapt
(package
(name "python-wrapt")
- (version "1.10.5")
+ (version "1.10.8")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/source/w/wrapt/wrapt-"
- version
- ".tar.gz"))
+ (uri (pypi-uri "wrapt" version))
(sha256
(base32
- "0cq8rlpzkxzk48b50yrfhzn1d1hrq4gjcdqlrgq4v5palgiv9jwr"))))
+ "0wrcm1mydvfivbkzz0h81ygzdchnscshi6xvy5n3r21r9s0px8af"))))
(build-system python-build-system)
(arguments
;; Tests are not included in the tarball, they are only available in the
@@ -8247,15 +8247,14 @@ security policies on Python objects.")
(define-public python-zope-component
(package
(name "python-zope-component")
- (version "4.2.2")
+ (version "4.3.0")
(source
(origin
(method url-fetch)
- (uri (string-append "https://pypi.python.org/packages/source/z"
- "/zope.component/zope.component-" version ".tar.gz"))
+ (uri (pypi-uri "zope.component" version))
(sha256
(base32
- "06pqr8m5jv12xjyy5b59hh9anl61cxkzhw9mka33r3nxalmi2b18"))))
+ "1hlvzwj1kcfz1qms1dzhwsshpsf38z9clmyksb1gh41n8k3kchdv"))))
(build-system python-build-system)
(arguments
;; Skip tests due to circular dependency with python-zope-security.
@@ -8497,14 +8496,14 @@ the standard library.")
(define-public python-texttable
(package
(name "python-texttable")
- (version "0.8.4")
+ (version "0.8.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "texttable" version))
(sha256
(base32
- "0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5"))))
+ "1liiiydgkg37i46a418aw19fyf6z3ds51wdwwpyjbs12x0phhf4a"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; no tests
(home-page "https://github.com/foutaise/texttable/")
@@ -8542,13 +8541,13 @@ WebSocket usage in Python programs.")
(define-public python-atomicwrites
(package
(name "python-atomicwrites")
- (version "1.1.0")
+ (version "1.1.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "atomicwrites" version))
(sha256
(base32
- "1s01dci8arsl9d9vr5nz1fk9znldp1z3l4yl43f0c27z12b8yxl0"))))
+ "11bm90fwm2avvf4f3ib8g925w7jr4m11vcsinn1bi6ns4bm32214"))))
(build-system python-build-system)
(synopsis "Atomic file writes in Python")
(description "Library for atomic file writes using platform dependent tools
@@ -10053,14 +10052,14 @@ introspection of @code{zope.interface} instances in code.")
(define-public python-psycopg2
(package
(name "python-psycopg2")
- (version "2.6.1")
+ (version "2.6.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psycopg2" version))
(sha256
(base32
- "0k4hshvrwsh8yagydyxgmd0pjm29lwdxkngcq9fzfzkmpsxrmkva"))))
+ "0p60z2gwfcal30y2w8gprflchp1kcg9qblc5rn782p4wxl90wjbh"))))
(build-system python-build-system)
(arguments
;; Tests would require a postgresql database "psycopg2_test"
@@ -11163,17 +11162,14 @@ are optionally backed by a C extension built on librdkafka.")
(define-public python-wcwidth
(package
(name "python-wcwidth")
- (version "0.1.6")
+ (version "0.1.7")
(source
(origin
(method url-fetch)
- (uri (string-append
- "https://pypi.python.org/packages/"
- "c2/d1/7689293086a8d5320025080cde0e3155b94ae0a7496fb89a3fbaa92c354a/"
- "wcwidth-" version ".tar.gz"))
+ (uri (pypi-uri "wcwidth" version))
(sha256
(base32
- "02wjrpf001gjdjsaxxbzcwfg19crlk2dbddayrfc2v06f53yrcyw"))))
+ "0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx"))))
(build-system python-build-system)
(home-page "https://github.com/jquast/wcwidth")
(synopsis "Measure number of terminal column cells of wide-character codes")
@@ -12542,13 +12538,13 @@ English stemmer.")
(define-public python-sphinx-cloud-sptheme
(package
(name "python-sphinx-cloud-sptheme")
- (version "1.7.1")
+ (version "1.8.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "cloud_sptheme" version))
(sha256
(base32
- "0zm9ap4p5dzln8f1m2immadaxv2xpg8jg4w53y52rhfl7pdb58vy"))))
+ "1dniqb6a39yh786f86c4jn666rwnyi1jvzn4616zhcchb7sfdshd"))))
(build-system python-build-system)
;; FIXME: The 'pypi' release archive does not contain tests.
(arguments '(#:tests? #f))
@@ -13671,3 +13667,212 @@ users' sessions over extended periods of time.")
(define-public python2-flask-login
(package-with-python2 python-flask-login))
+
+(define-public python-astroid
+ (package
+ (name "python-astroid")
+ (version "1.4.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/PyCQA/astroid/archive/astroid-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0j0wgy54d13a470vm4b9rdjk99n1hmdxpf34x9k3pbmi9w9b566z"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-lazy-object-proxy" ,python-lazy-object-proxy)
+ ("python-six" ,python-six)
+ ("python-wrapt" ,python-wrapt)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (zero? (system* "python" "-m" "unittest" "discover"
+ "-p" "unittest*.py")))))))
+ (home-page "https://github.com/PyCQA/astroid")
+ (synopsis "Common base representation of python source code for pylint and
+other projects")
+ (description "@code{python-astroid} provides a common base representation
+of python source code for projects such as pychecker, pyreverse, pylint, etc.
+
+It provides a compatible representation which comes from the _ast module. It
+rebuilds the tree generated by the builtin _ast module by recursively walking
+down the AST and building an extended ast. The new node classes have
+additional methods and attributes for different usages. They include some
+support for static inference and local name scopes. Furthermore, astroid
+builds partial trees by inspecting living objects.")
+ (license license:lgpl2.1+)))
+
+(define-public python2-astroid
+ (package-with-python2 python-astroid))
+
+(define-public python-isort
+ (package
+ (name "python-isort")
+ (version "4.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/timothycrosley/isort/archive/"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0zsrgkb0krn5476yncy5dd56k7dk34zqb4bnlvwy44ixgilyjmfh"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)))
+ (home-page "https://github.com/timothycrosley/isort")
+ (synopsis "Python utility/library to sort python imports")
+ (description "@code{python-isort} is a python utility/library to sort
+imports alphabetically, and automatically separated into sections. It
+provides a command line utility, a python library and plugins for various
+editors.")
+ (license license:expat)))
+
+(define-public python2-isort
+ (package-with-python2 python-isort))
+
+(define-public python2-backports-functools-lru-cache
+ (package
+ (name "python2-backports-functools-lru-cache")
+ (version "1.3")
+ (source
+ (origin
+ (method url-fetch)
+ ;; only the pypi tarballs contain the necessary metadata
+ (uri (pypi-uri "backports.functools_lru_cache" version))
+ (sha256
+ (base32
+ "158ysf2hb0q4p4695abfiym9x1ywg0dgh8a3apd7gqaaxjy22jj4"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python2-setuptools-scm" ,python2-setuptools-scm)))
+ (arguments
+ `(#:python ,python-2))
+ (home-page "https://github.com/jaraco/backports.functools_lru_cache")
+ (synopsis "Backport of functools.lru_cache from Python 3.3")
+ (description "@code{python2-backports-functools-lru-cache} is a backport
+of @code{functools.lru_cache} from python 3.3.")
+ (license license:expat)))
+
+(define-public python-configparser
+ (package
+ (name "python-configparser")
+ (version "3.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://bitbucket.org/ambv/configparser/get/"
+ version ".tar.bz2"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0waq40as14abwzbb321hfz4vr1fi363nscy32ga14qvfygrg96wa"))))
+ (build-system python-build-system)
+ (home-page "http://docs.python.org/py3k/library/configparser.html")
+ (synopsis "Backport of configparser from python 3.5")
+ (description "@code{python-configparser} is a backport of
+@code{configparser} from Python 3.5 so that it can be used directly
+in other versions.")
+ (license license:expat)))
+
+(define-public python2-configparser
+ (package-with-python2 python-configparser))
+
+(define-public python2-coverage-test-runner
+ (package
+ (name "python2-coverage-test-runner")
+ (version "1.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://git.liw.fi/cgi-bin/cgit/cgit.cgi/"
+ "coverage-test-runner/snapshot/coverage-test-runner-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0y1m7z3dl63kmhcmydl1mwg0hacnf6ghrx9dah17j9iasssfa3g7"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ (zero? (system* "./testrun")))))))
+ (propagated-inputs
+ `(("python2-coverage" ,python2-coverage)))
+ (home-page "https://liw.fi/coverage-test-runner/")
+ (synopsis "Python module for running unit tests")
+ (description "@code{CoverageTestRunner} is a python module for running
+unit tests and failing them if the unit test module does not excercise all
+statements in the module it tests.")
+ (license license:gpl3+)))
+
+(define-public python-pylint
+ (package
+ (name "python-pylint")
+ (version "1.6.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/PyCQA/pylint/archive/pylint-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "08pmgflmq2zrzrn9nkfadzwa5vybz46wvwxhrsd2mjlcgsh4rzbm"))))
+ (build-system python-build-system)
+ (native-inputs
+ `(("python-tox" ,python-tox)))
+ (propagated-inputs
+ `(("python-astroid" ,python-astroid)
+ ("python-isort" ,python-isort)
+ ("python-mccabe" ,python-mccabe)
+ ("python-six" ,python-six)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda _
+ ;; Somehow, tests for python2-pylint
+ ;; fail if run from the build directory
+ (let ((work "/tmp/work"))
+ (mkdir-p work)
+ (setenv "PYTHONPATH"
+ (string-append (getenv "PYTHONPATH") ":" work))
+ (copy-recursively "." work)
+ (with-directory-excursion "/tmp"
+ (zero? (system* "python" "-m" "unittest" "discover"
+ "-s" (string-append work "/pylint/test")
+ "-p" "*test_*.py")))))))))
+ (home-page "https://github.com/PyCQA/pylint")
+ (synopsis "Python source code analyzer which looks for coding standard
+errors")
+ (description "Pylint is a Python source code analyzer which looks
+for programming errors, helps enforcing a coding standard and sniffs
+for some code smells (as defined in Martin Fowler's Refactoring book).
+
+Pylint has many rules enabled by default, way too much to silence them
+all on a minimally sized program. It's highly configurable and handle
+pragmas to control it from within your code. Additionally, it is
+possible to write plugins to add your own checks.")
+ (license license:gpl2+)))
+
+(define-public python2-pylint
+ (let ((pylint (package-with-python2 python-pylint)))
+ (package (inherit pylint)
+ (propagated-inputs
+ `(("python2-backports-functools-lru-cache"
+ ,python2-backports-functools-lru-cache)
+ ("python2-configparser" ,python2-configparser)
+ ,@(package-propagated-inputs pylint))))))
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 47a7caae48..fb242a01da 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -568,6 +568,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
#t)))
(add-before 'check 'set-display
(lambda _
+ ;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 068e870f93..5501dd722c 100644
--- a/gnu/packages/ssh.scm
+++ b/gnu/packages/ssh.scm
@@ -120,7 +120,7 @@ a server that supports the SSH-2 protocol.")
(define-public openssh
(package
(name "openssh")
- (version "7.4p1")
+ (version "7.5p1")
(source (origin
(method url-fetch)
(uri (let ((tail (string-append name "-" version ".tar.gz")))
@@ -131,7 +131,7 @@ a server that supports the SSH-2 protocol.")
(string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/"
tail))))
(sha256 (base32
- "1l8r3x4fr2kb6xm95s7kjdif1wp6f94d4kljh4qjj9109shw87qv"))))
+ "1w7rb5gbrikxdkp8w7zxnci4549gk4bw1lml01s59w5rzb2y6ilq"))))
(build-system gnu-build-system)
(inputs `(("groff" ,groff)
("openssl" ,openssl)
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index d0bed4dd7f..a90ac2f427 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -5151,3 +5151,38 @@ genome-wide association studies can be analyzed efficiently.")
(description
"This package provides a pure R implementation of the t-SNE algorithm.")
(license license:gpl2+)))
+
+(define-public r-cairo
+ (package
+ (name "r-cairo")
+ (version "1.5-9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "Cairo" version))
+ (sha256
+ (base32
+ "1x1q99r3r978rlkkm5gixkv03p0mcr6k7ydcqdmisrwnmrn7p1ia"))))
+ (properties `((upstream-name . "Cairo")))
+ (build-system r-build-system)
+ (inputs
+ `(("cairo" ,cairo)
+ ("libxt" ,libxt)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://www.rforge.net/Cairo/")
+ (synopsis "R graphics device using Cairo graphics library")
+ (description
+ "This package provides a Cairo graphics device that can be use to
+create high-quality vector (PDF, PostScript and SVG) and bitmap
+output (PNG,JPEG,TIFF), and high-quality rendering in displays (X11
+and Win32). Since it uses the same back-end for all output, copying
+across formats is WYSIWYG. Files are created without the dependence
+on X11 or other external programs. This device supports alpha
+channel (semi-transparent drawing) and resulting images can contain
+transparent and semi-transparent regions. It is ideal for use in
+server environments (file output) and as a replacement for other
+devices that don't have Cairo's capabilities such as alpha support or
+anti-aliasing. Backends are modular such that any subset of backends
+is supported.")
+ (license license:gpl2)))
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index 4b6aa07ee8..a093baa3bd 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -137,7 +137,6 @@ based command language.")
;; without them the tests fail.
(zero? (system* "chmod" "-R" "u+w" "../test")))))))
(native-inputs `(("gcc" ,gcc-5)
- ("libxslt" ,libxslt)
("asciidoc" ,asciidoc)
("ruby" ,ruby)))
(inputs `(("gcc:lib" ,gcc-5 "lib")
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index aee424fbc9..71e499085f 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -112,14 +112,14 @@ as well as the classic centralized workflow.")
(define-public git
(package
(name "git")
- (version "2.12.0")
+ (version "2.12.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
- "09r0lcjj5v2apj39f0ziqzjq2bi1jpnhszc9q4n0ab86g5j7c88q"))))
+ "18mdlg4ws78s4asfrn6licm9v6qw4wp9m0kdjq0y2r5pci1nf4fv"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@@ -132,7 +132,7 @@ as well as the classic centralized workflow.")
version ".tar.xz"))
(sha256
(base32
- "0ws7h04ijqr2l0pp9qbds65v9cd70v0qfpnhqncn9zqfspw5d0wb"))))))
+ "1km0sbrqgni0q88abh4zb1m7xa9ld3d4qi36095b11a3vr6w7xgv"))))))
(inputs
`(("curl" ,curl)
("expat" ,expat)
@@ -451,11 +451,7 @@ to lock down your entire repository.")
#t)))))))
(native-inputs
;; For building manpage.
- `(("asciidoc" ,asciidoc)
- ("docbook-xml" ,docbook-xml)
- ("docbook-xsl" ,docbook-xsl)
- ("xmllint" ,libxml2)
- ("xsltprot" ,libxslt)))
+ `(("asciidoc" ,asciidoc)))
(inputs
`(("git:src" ,(package-source git@2.9))
("openssl" ,openssl)
@@ -857,10 +853,6 @@ RCS, PRCS, and Aegis packages.")
(list "CC=gcc" (string-append "prefix?=" (assoc-ref %outputs "out")))))
(inputs `(("git" ,git)))
(native-inputs `(("asciidoc" ,asciidoc)
- ("docbook-xml" ,docbook-xml)
- ("docbook-xsl" ,docbook-xsl)
- ("xmllint" ,libxml2)
- ("xsltproc" ,libxslt)
;; These are needed for the tests.
("cvs" ,cvs)
("python" ,python-2)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 0d2803dd64..cf54bbf9a4 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1311,7 +1311,7 @@ capabilities.")
(define-public vapoursynth
(package
(name "vapoursynth")
- (version "35")
+ (version "37")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1320,7 +1320,7 @@ capabilities.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0629ys2lf618n9cc644xlvx0vx52v2fp3sx14p4mx5rg9nlasb3n"))))
+ "1g3hc079jw4mz1cmkv2y28pdb556wqc8ql7iravgh1rg8j3f1zi5"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index 82403feb1d..3dbd6d952b 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,6 +23,7 @@
(define-module (gnu packages vim)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
+ #:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
@@ -58,16 +60,15 @@
(define-public vim
(package
(name "vim")
- (version "8.0.0300")
+ (version "8.0.0494")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/vim/vim/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
- (patches (search-patches "vim-CVE-2017-5953.patch"))
(sha256
(base32
- "04samk2bakyixbxyc3p0g6ypls45105sikibg0wc6lmak9bqjs85"))))
+ "08kzimdyla35ndrbn68jf8pmzm7nd2qrydnvk57j089m6ajic62r"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@@ -128,9 +129,27 @@ configuration files.")
"--enable-xim"
"--disable-selinux"
"--enable-gui")
- ,@(package-arguments vim)))
+ ,@(substitute-keyword-arguments (package-arguments vim)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'build 'drop-failing-tests
+ (lambda _
+ ;; These tests fail mysteriously with GUI enabled.
+ ;; https://github.com/vim/vim/issues/1460
+ (substitute* "src/testdir/test_cmdline.vim"
+ (("call assert_equal\\(.+getcmd.+\\(\\)\\)") ""))
+ #t))
+ (add-before 'check 'start-xserver
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Some tests require an X server, but does not start one.
+ (let ((xorg-server (assoc-ref inputs "xorg-server"))
+ (display ":1"))
+ (setenv "DISPLAY" display)
+ (zero? (system (string-append xorg-server "/bin/Xvfb "
+ display " &")))))))))))
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("pkg-config" ,pkg-config)
+ ("xorg-server" ,xorg-server)))
(inputs
`(("acl" ,acl)
("atk" ,atk)
diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm
index a0e76d52c4..7fb94005e8 100644
--- a/gnu/packages/web.scm
+++ b/gnu/packages/web.scm
@@ -626,11 +626,7 @@ used to validate and fix HTML data.")
%standard-phases)))
;; All of the below are used to generate the documentation
;; (Should they be propagated inputs of asciidoc ??)
- (native-inputs `(("asciidoc" ,asciidoc)
- ("libxml2" ,libxml2)
- ("docbook-xml" ,docbook-xml)
- ("docbook-xsl" ,docbook-xsl)
- ("libxslt" ,libxslt)))
+ (native-inputs `(("asciidoc" ,asciidoc)))
(home-page "https://tinyproxy.github.io/")
(synopsis "Light-weight HTTP/HTTPS proxy daemon")
(description "Tinyproxy is a light-weight HTTP/HTTPS proxy
@@ -4479,11 +4475,7 @@ exploit attempts.")
"0pf91nc0xcykahc3x7ww525c9czm8zpg80nxl8n2mrzc4ilgvass"))))
(build-system python-build-system)
(native-inputs
- `(("asciidoc" ,asciidoc)
- ("docbook-xsl" ,docbook-xsl)
- ("docbook-xml" ,docbook-xml)
- ("libxml2" ,libxml2) ;for xmllint
- ("libxslt" ,libxslt))) ;for xsltproc
+ `(("asciidoc" ,asciidoc)))
(inputs
`(("python-colorama" ,python-colorama)
("python-cssutils" ,python-cssutils)
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 7d76a2d202..b95f2e7a6f 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -177,26 +177,12 @@ commands would.")
(build-system gnu-build-system)
(arguments
`(#:make-flags
- (let* ((docbook-xsl-name-version ,(string-append
- (package-name docbook-xsl) "-"
- (package-version docbook-xsl)))
- (docbook-xsl-catalog-file (string-append
- (assoc-ref %build-inputs "docbook-xsl")
- "/xml/xsl/"
- docbook-xsl-name-version
- "/catalog.xml"))
- (docbook-xml-catalog-file (string-append
- (assoc-ref %build-inputs "docbook-xml")
- "/xml/dtd/docbook/catalog.xml")))
- ;; Reference the catalog files required to build the manpages.
- (list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " "
- docbook-xml-catalog-file)
- "CC=gcc"
- (string-append "PREFIX=" %output)
- ;; This works around the following error:
- ;; 'error: ‘for’ loop initial declarations are only allowed in C99
- ;; or C11 mode'
- "CFLAGS=-std=c11"))
+ (list "CC=gcc"
+ (string-append "PREFIX=" %output)
+ ;; This works around the following error:
+ ;; 'error: ‘for’ loop initial declarations are only allowed in C99
+ ;; or C11 mode'
+ "CFLAGS=-std=c11")
;; The build system tries to build in a separate directory, but that
;; seems to be unnecessary.
#:configure-flags '("--disable-builddir")
@@ -215,7 +201,6 @@ commands would.")
("asciidoc" ,asciidoc)
("xmlto" ,xmlto)
("perl-pod-simple" ,perl-pod-simple)
- ("docbook-xml" ,docbook-xml)
("libx11" ,libx11)
("pcre" ,pcre)
("startup-notification" ,startup-notification)
@@ -226,6 +211,7 @@ commands would.")
("perl" ,perl)
("pkg-config" ,pkg-config)
;; For building the documentation.
+ ("libxml2" ,libxml2)
("docbook-xsl" ,docbook-xsl)))
(home-page "https://i3wm.org/")
(synopsis "Improved tiling window manager")
diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm
index 52fa8184dd..077195cca7 100644
--- a/gnu/packages/wxwidgets.scm
+++ b/gnu/packages/wxwidgets.scm
@@ -65,7 +65,7 @@
("libsm" ,libsm)
("libtiff" ,libtiff)
("mesa" ,mesa)
- ("webkitgtk" ,webkitgtk-2.4)
+ ("webkitgtk" ,webkitgtk)
("sdl" ,sdl)))
(native-inputs
`(("pkg-config" ,pkg-config)))
@@ -89,34 +89,6 @@ a graphical user interface. It has language bindings for Python, Perl, Ruby
and many other languages.")
(license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt")))))
-(define-public wxwidgets-2
- (package
- (inherit wxwidgets)
- (version "2.8.12")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "https://github.com/wxWidgets/wxWidgets/"
- "releases/download/v" version
- "/wxGTK-" version ".tar.gz"))
- (sha256
- (base32 "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk"))))
- (inputs
- `(("gtk" ,gtk+-2)
- ("libjpeg" ,libjpeg)
- ("libtiff" ,libtiff)
- ("libmspack" ,libmspack)
- ("sdl" ,sdl)
- ("unixodbc" ,unixodbc)))
- (arguments
- `(#:configure-flags
- '("--enable-unicode" "--with-regex=sys" "--with-sdl")
- #:make-flags
- (list (string-append "LDFLAGS=-Wl,-rpath="
- (assoc-ref %outputs "out") "/lib"))
- ;; No 'check' target.
- #:tests? #f))))
-
(define-public wxwidgets-gtk2
(package (inherit wxwidgets)
(inputs `(("gtk+" ,gtk+-2)
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index dad1911d31..77efef15eb 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -31,6 +31,8 @@
#:use-module (gnu system shadow) ; 'user-account', etc.
#:use-module (gnu system file-systems) ; 'file-system', etc.
#:use-module (gnu system mapped-devices)
+ #:use-module ((gnu system linux-initrd)
+ #:select (file-system-packages))
#:use-module (gnu packages admin)
#:use-module ((gnu packages linux)
#:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools))
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index d8a3ad35ad..b7f9887b30 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -260,28 +260,42 @@ The other options should be self-descriptive."
(define-record-type* <openssh-configuration>
openssh-configuration make-openssh-configuration
openssh-configuration?
- (openssh openssh-configuration-openssh ;package
+ ;; <package>
+ (openssh openssh-configuration-openssh
(default openssh))
+ ;; string
(pid-file openssh-configuration-pid-file
(default "/var/run/sshd.pid"))
- (port-number openssh-configuration-port-number ;integer
+ ;; integer
+ (port-number openssh-configuration-port-number
(default 22))
- (permit-root-login openssh-configuration-permit-root-login ;Boolean | 'without-password
+ ;; Boolean | 'without-password
+ (permit-root-login openssh-configuration-permit-root-login
(default #f))
- (allow-empty-passwords? openssh-configuration-allow-empty-passwords? ;Boolean
+ ;; Boolean
+ (allow-empty-passwords? openssh-configuration-allow-empty-passwords?
(default #f))
- (password-authentication? openssh-configuration-password-authentication? ;Boolean
+ ;; Boolean
+ (password-authentication? openssh-configuration-password-authentication?
(default #t))
+ ;; Boolean
(public-key-authentication? openssh-configuration-public-key-authentication?
- (default #t)) ;Boolean
- (x11-forwarding? openssh-configuration-x11-forwarding? ;Boolean
+ (default #t))
+ ;; Boolean
+ (x11-forwarding? openssh-configuration-x11-forwarding?
(default #f))
+ ;; Boolean
(challenge-response-authentication? openssh-challenge-response-authentication?
- (default #f)) ;Boolean
+ (default #f))
+ ;; Boolean
(use-pam? openssh-configuration-use-pam?
- (default #t)) ;Boolean
+ (default #t))
+ ;; Boolean
(print-last-log? openssh-configuration-print-last-log?
- (default #t))) ;Boolean
+ (default #t))
+ ;; list of two-element lists
+ (subsystems openssh-configuration-subsystems
+ (default '(("sftp" "internal-sftp")))))
(define %openssh-accounts
(list (user-group (name "sshd") (system? #t))
@@ -316,40 +330,48 @@ The other options should be self-descriptive."
"Return the sshd configuration file corresponding to CONFIG."
(computed-file
"sshd_config"
- #~(call-with-output-file #$output
- (lambda (port)
- (display "# Generated by 'openssh-service'.\n" port)
- (format port "Port ~a\n"
- #$(number->string (openssh-configuration-port-number config)))
- (format port "PermitRootLogin ~a\n"
- #$(match (openssh-configuration-permit-root-login config)
- (#t "yes")
- (#f "no")
- ('without-password "without-password")))
- (format port "PermitEmptyPasswords ~a\n"
- #$(if (openssh-configuration-allow-empty-passwords? config)
- "yes" "no"))
- (format port "PasswordAuthentication ~a\n"
- #$(if (openssh-configuration-password-authentication? config)
- "yes" "no"))
- (format port "PubkeyAuthentication ~a\n"
- #$(if (openssh-configuration-public-key-authentication? config)
- "yes" "no"))
- (format port "X11Forwarding ~a\n"
- #$(if (openssh-configuration-x11-forwarding? config)
- "yes" "no"))
- (format port "PidFile ~a\n"
- #$(openssh-configuration-pid-file config))
- (format port "ChallengeResponseAuthentication ~a\n"
- #$(if (openssh-challenge-response-authentication? config)
- "yes" "no"))
- (format port "UsePAM ~a\n"
- #$(if (openssh-configuration-use-pam? config)
- "yes" "no"))
- (format port "PrintLastLog ~a\n"
- #$(if (openssh-configuration-print-last-log? config)
- "yes" "no"))
- #t))))
+ #~(begin
+ (use-modules (ice-9 match))
+ (call-with-output-file #$output
+ (lambda (port)
+ (display "# Generated by 'openssh-service'.\n" port)
+ (format port "Port ~a\n"
+ #$(number->string
+ (openssh-configuration-port-number config)))
+ (format port "PermitRootLogin ~a\n"
+ #$(match (openssh-configuration-permit-root-login config)
+ (#t "yes")
+ (#f "no")
+ ('without-password "without-password")))
+ (format port "PermitEmptyPasswords ~a\n"
+ #$(if (openssh-configuration-allow-empty-passwords? config)
+ "yes" "no"))
+ (format port "PasswordAuthentication ~a\n"
+ #$(if (openssh-configuration-password-authentication? config)
+ "yes" "no"))
+ (format port "PubkeyAuthentication ~a\n"
+ #$(if (openssh-configuration-public-key-authentication?
+ config)
+ "yes" "no"))
+ (format port "X11Forwarding ~a\n"
+ #$(if (openssh-configuration-x11-forwarding? config)
+ "yes" "no"))
+ (format port "PidFile ~a\n"
+ #$(openssh-configuration-pid-file config))
+ (format port "ChallengeResponseAuthentication ~a\n"
+ #$(if (openssh-challenge-response-authentication? config)
+ "yes" "no"))
+ (format port "UsePAM ~a\n"
+ #$(if (openssh-configuration-use-pam? config)
+ "yes" "no"))
+ (format port "PrintLastLog ~a\n"
+ #$(if (openssh-configuration-print-last-log? config)
+ "yes" "no"))
+ (for-each
+ (match-lambda
+ ((name command) (format port "Subsystem\t~a\t~a\n" name command)))
+ '#$(openssh-configuration-subsystems config))
+ #t)))))
(define (openssh-shepherd-service config)
"Return a <shepherd-service> for openssh with CONFIG."
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index 8107722c74..bbac23fbdf 100644
--- a/gnu/system/file-systems.scm
+++ b/gnu/system/file-systems.scm
@@ -22,8 +22,6 @@
#:use-module (guix records)
#:use-module ((gnu build file-systems)
#:select (string->uuid uuid->string))
- #:use-module (gnu packages linux)
- #:use-module (gnu packages disk)
#:re-export (string->uuid
uuid->string)
#:export (<file-system>
@@ -41,6 +39,8 @@
file-system-create-mount-point?
file-system-dependencies
+ file-system-type-predicate
+
file-system->spec
spec->file-system
specification->file-system-mapping
@@ -67,8 +67,6 @@
file-system-mapping->bind-mount
- file-system-packages
-
%store-mapping
%network-configuration-files
%network-file-mappings))
@@ -77,6 +75,9 @@
;;;
;;; Declaring file systems to be mounted.
;;;
+;;; Note: this file system is used both in the Shepherd and on the "host
+;;; side", so it must not include (gnu packages …) modules.
+;;;
;;; Code:
;; File system declaration.
@@ -416,25 +417,9 @@ a bind mount."
%network-configuration-files))
(define (file-system-type-predicate type)
+ "Return a predicate that, when passed a file system, returns #t if that file
+system has the given TYPE."
(lambda (fs)
(string=? (file-system-type fs) type)))
-(define* (file-system-packages file-systems #:key (volatile-root? #f))
- `(,@(if (find (lambda (fs)
- (string-prefix? "ext" (file-system-type fs)))
- file-systems)
- (list e2fsck/static)
- '())
- ,@(if (find (lambda (fs)
- (string-suffix? "fat" (file-system-type fs)))
- file-systems)
- (list fatfsck/static)
- '())
- ,@(if (find (file-system-type-predicate "btrfs") file-systems)
- (list btrfs-progs/static)
- '())
- ,@(if volatile-root?
- (list unionfs-fuse/static)
- '())))
-
;;; file-systems.scm ends here
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index 1f1c306828..dfe198e43e 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@@ -43,6 +43,7 @@
#:use-module (srfi srfi-26)
#:export (expression->initrd
raw-initrd
+ file-system-packages
base-initrd))
@@ -199,6 +200,26 @@ to it are lost."
#:volatile-root? '#$volatile-root?)))
#:name "raw-initrd")))
+(define* (file-system-packages file-systems #:key (volatile-root? #f))
+ "Return the list of statically-linked, stripped packages to check
+FILE-SYSTEMS."
+ `(,@(if (find (lambda (fs)
+ (string-prefix? "ext" (file-system-type fs)))
+ file-systems)
+ (list e2fsck/static)
+ '())
+ ,@(if (find (lambda (fs)
+ (string-suffix? "fat" (file-system-type fs)))
+ file-systems)
+ (list fatfsck/static)
+ '())
+ ,@(if (find (file-system-type-predicate "btrfs") file-systems)
+ (list btrfs-progs/static)
+ '())
+ ,@(if volatile-root?
+ (list unionfs-fuse/static)
+ '())))
+
(define* (base-initrd file-systems
#:key
(linux linux-libre)
diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm
index 456476e69d..c1582c4737 100644
--- a/gnu/tests/ssh.scm
+++ b/gnu/tests/ssh.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -54,10 +55,12 @@
(services (cons service
(operating-system-user-services %base-os)))))
-(define (run-ssh-test name ssh-service pid-file)
+(define* (run-ssh-test name ssh-service pid-file #:key (sftp? #f))
"Run a test of an OS running SSH-SERVICE, which writes its PID to PID-FILE.
SSH-SERVICE must be configured to listen on port 22 and to allow for root and
-empty-password logins."
+empty-password logins.
+
+When SFTP? is true, run an SFTP server test."
(mlet* %store-monad ((os -> (marionette-operating-system
(os-with-service ssh-service)
#:imported-modules '((gnu services herd)
@@ -80,7 +83,8 @@ empty-password logins."
(ice-9 match)
(ssh session)
(ssh auth)
- (ssh channel))
+ (ssh channel)
+ (ssh sftp))
(define marionette
;; Enable TCP forwarding of the guest's port 22.
@@ -101,6 +105,47 @@ empty-password logins."
(error "file didn't show up" ,file))))
marionette))
+ (define (make-session-for-test)
+ "Make a session with predefined parameters for a test."
+ (make-session #:user "root"
+ #:port 2222
+ #:host "localhost"
+ #:log-verbosity 'protocol))
+
+ (define (call-with-connected-session proc)
+ "Call the one-argument procedure PROC with a freshly created and
+connected SSH session object, return the result of the procedure call. The
+session is disconnected when the PROC is finished."
+ (let ((session (make-session-for-test)))
+ (dynamic-wind
+ (lambda ()
+ (let ((result (connect! session)))
+ (unless (equal? result 'ok)
+ (error "Could not connect to a server"
+ session result))))
+ (lambda () (proc session))
+ (lambda () (disconnect! session)))))
+
+ (define (call-with-connected-session/auth proc)
+ "Make an authenticated session. We should be able to connect as
+root with an empty password."
+ (call-with-connected-session
+ (lambda (session)
+ ;; Try the simple authentication methods. Dropbear requires
+ ;; 'none' when there are no passwords, whereas OpenSSH accepts
+ ;; 'password' with an empty password.
+ (let loop ((methods (list (cut userauth-password! <> "")
+ (cut userauth-none! <>))))
+ (match methods
+ (()
+ (error "all the authentication methods failed"))
+ ((auth rest ...)
+ (match (pk 'auth (auth session))
+ ('success
+ (proc session))
+ ('denied
+ (loop rest)))))))))
+
(mkdir #$output)
(chdir #$output)
@@ -131,37 +176,34 @@ empty-password logins."
(current-services))))
marionette))
- ;; Connect to the guest over SSH. We should be able to connect as
- ;; "root" with an empty password. Make sure we can run a shell
+ ;; Connect to the guest over SSH. Make sure we can run a shell
;; command there.
- (test-equal "connect"
+ (test-equal "shell command"
+ 'hello
+ (call-with-connected-session/auth
+ (lambda (session)
+ ;; FIXME: 'get-server-public-key' segfaults.
+ ;; (get-server-public-key session)
+ (let ((channel (make-channel session)))
+ (channel-open-session channel)
+ (channel-request-exec channel "echo hello > /root/witness")
+ (and (zero? (channel-get-exit-status channel))
+ (wait-for-file "/root/witness"))))))
+
+ ;; Connect to the guest over SFTP. Make sure we can write and
+ ;; read a file there.
+ (unless #$sftp?
+ (test-skip 1))
+ (test-equal "SFTP file writing and reading"
'hello
- (let* ((session (make-session #:user "root"
- #:port 2222 #:host "localhost"
- #:log-verbosity 'protocol)))
- (match (connect! session)
- ('ok
- ;; Try the simple authentication methods. Dropbear
- ;; requires 'none' when there are no passwords, whereas
- ;; OpenSSH accepts 'password' with an empty password.
- (let loop ((methods (list (cut userauth-password! <> "")
- (cut userauth-none! <>))))
- (match methods
- (()
- (error "all the authentication methods failed"))
- ((auth rest ...)
- (match (pk 'auth (auth session))
- ('success
- ;; FIXME: 'get-server-public-key' segfaults.
- ;; (get-server-public-key session)
- (let ((channel (make-channel session)))
- (channel-open-session channel)
- (channel-request-exec channel
- "echo hello > /root/witness")
- (and (zero? (channel-get-exit-status channel))
- (wait-for-file "/root/witness"))))
- ('denied
- (loop rest))))))))))
+ (call-with-connected-session/auth
+ (lambda (session)
+ (let ((sftp-session (make-sftp-session session))
+ (witness "/root/sftp-witness"))
+ (call-with-remote-output-file sftp-session witness
+ (cut display "hello" <>))
+ (call-with-remote-input-file sftp-session witness
+ read)))))
(test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
@@ -179,7 +221,8 @@ empty-password logins."
(openssh-configuration
(permit-root-login #t)
(allow-empty-passwords? #t)))
- "/var/run/sshd.pid"))))
+ "/var/run/sshd.pid"
+ #:sftp? #t))))
(define %test-dropbear
(system-test