Merge remote-tracking branch 'origin/master' into core-updates

This commit is contained in:
Efraim Flashner 2017-03-22 12:57:37 +02:00
commit 378de69c59
No known key found for this signature in database
GPG key ID: F4C1D3917EACEE93
49 changed files with 1318 additions and 775 deletions

View file

@ -221,7 +221,8 @@ GOBJECTS = $(MODULES:%.scm=%.go) guix/config.go $(dist_noinst_DATA:%.scm=%.go)
nobase_dist_guilemodule_DATA = \
$(MODULES) $(AUX_FILES) $(EXAMPLES) \
$(MISC_DISTRO_FILES)
nobase_nodist_guilemodule_DATA = $(GOBJECTS) guix/config.scm
nobase_nodist_guilemodule_DATA = guix/config.scm
nobase_nodist_guileobject_DATA = $(GOBJECTS)
# Do we need to provide our own non-broken (srfi srfi-37) module?
if INSTALL_SRFI_37
@ -456,14 +457,14 @@ SUFFIXES = .go
# files. See
# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
# for details.
guix_install_go_files = install-nobase_nodist_guilemoduleDATA
guix_install_go_files = install-nobase_nodist_guileobjectDATA
$(guix_install_go_files): install-nobase_dist_guilemoduleDATA
# The above trick doesn't work for 'config.go' because both 'config.scm' and
# 'config.go' are listed in $(nobase_nodist_guilemodule_DATA). Thus, give it
# 'config.go' are listed in $(nobase_nodist_guileobject_DATA). Thus, give it
# special treatment.
install-data-hook: set-bootstrap-executable-permissions
touch "$(DESTDIR)$(guilemoduledir)/guix/config.go"
touch "$(DESTDIR)$(guileobjectdir)/guix/config.go"
SUBDIRS = po/guix po/packages

View file

@ -85,9 +85,11 @@ if test "x$GUILE_EFFECTIVE_VERSION" = "x2.0"; then
PKG_CHECK_MODULES([GUILE], [guile-2.0 >= 2.0.9])
fi
dnl Installation directory for .scm and .go files.
dnl Installation directories for .scm and .go files.
guilemoduledir="${datarootdir}/guile/site/$GUILE_EFFECTIVE_VERSION"
guileobjectdir="${libdir}/guile/$GUILE_EFFECTIVE_VERSION/site-ccache"
AC_SUBST([guilemoduledir])
AC_SUBST([guileobjectdir])
dnl The GnuTLS bindings are necessary for substitutes over HTTPS and for 'guix
dnl pull', among other things.

View file

@ -9516,6 +9516,22 @@ equivalent role to password authentication, you should disable either
@item @code{print-last-log?} (default: @code{#t})
Specifies whether @command{sshd} should print the date and time of the
last user login when a user logs in interactively.
@item @code{subsystems} (default: @code{'(("sftp" "internal-sftp"))})
Configures external subsystems (e.g. file transfer daemon).
This is a list of two-element lists, each of which containing the
subsystem name and a command (with optional arguments) to execute upon
subsystem request.
The command @command{internal-sftp} implements an in-process SFTP
server. Alternately, one can specify the @command{sftp-server} command:
@example
(service openssh-service-type
(openssh-configuration
(subsystems
'(("sftp" ,(file-append openssh "/libexec/sftp-server"))))))
@end example
@end table
@end deftp

View file

@ -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 \

View file

@ -143,6 +143,7 @@ (define-public stellarium
#: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)))))

View file

@ -52,8 +52,8 @@ (define-public audacity
(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)

View file

@ -639,7 +639,23 @@ (define-public obnam
"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 @@ (define-public obnam
("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

View file

@ -228,15 +228,15 @@ (define-public syslinux
(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)

View file

@ -50,7 +50,6 @@ (define-public compton
(build-system gnu-build-system)
(inputs
`(("dbus" ,dbus)
("docbook-xml" ,docbook-xml)
("libconfig" ,libconfig)
("libx11" ,libx11)
("libxcomposite" ,libxcomposite)
@ -58,10 +57,8 @@ (define-public compton
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxinerama" ,libxinerama)
("libxml2" ,libxml2)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxslt" ,libxslt)
("mesa" ,mesa)
("xprop" ,xprop)
("xwininfo" ,xwininfo)))

View file

@ -41,7 +41,7 @@ (define-module (gnu packages display-managers)
(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 @@ (define-public greenisland
"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 @@ (define-public greenisland
(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))

View file

@ -294,8 +294,10 @@ (define-public yadifa
(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 @@ (define-public knot
(("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 @@ (define-public knot
(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"))

View file

@ -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 @@ (define-public bullet
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")

View file

@ -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 @@ (define-module (gnu packages games)
#: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 @@ (define-module (gnu packages games)
#: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 @@ (define-module (gnu packages games)
#: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 @@ (define-public no-more-secrets
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+)))

View file

@ -3658,7 +3658,7 @@ (define-public gusb
(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 @@ (define-public simple-scan
version ".tar.xz"))
(sha256
(base32
"0l1b3llkdlqq0bcjx1cadba67l2zb4zfykdaprpjbjbr6gkbc1f5"))))
"19klldnbnknpq6ikz9x93861ywcyg0pg9ngijvw66ncbnb7lx912"))))
(build-system glib-or-gtk-build-system)
(inputs
`(("gtk" ,gtk+)

View file

@ -932,7 +932,7 @@ (define-public jasper
(define-public zimg
(package
(name "zimg")
(version "2.3")
(version "2.5")
(source
(origin
(method url-fetch)
@ -941,7 +941,7 @@ (define-public zimg
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1yh6kkq8596a9cxcmcxzqvwbwmxwqapwsq31xpccznw6z62j75h9"))))
"0kbq2dy659645fmgxpzg38b6y6x82kwkydhc380kdkaikv2brcjh"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)

View file

@ -650,6 +650,7 @@ (define-public kguiaddons
(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 @@ (define-public kwidgetsaddons
(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 @@ (define-public kcompletion
(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 @@ (define-public baloo
(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 @@ (define-public kbookmarks
(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 @@ (define-public kconfigwidgets
(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 @@ (define-public kdesignerplugin
(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 @@ (define-public kemoticons
(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 @@ (define-public kglobalaccel
(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 @@ (define-public kiconthemes
"/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 @@ (define-public kio
(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 @@ (define-public knewstuff
(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 @@ (define-public kparts
(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 @@ (define-public kpeople
(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 @@ (define-public krunner
(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 @@ (define-public kservice
(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 @@ (define-public ktexteditor
(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 @@ (define-public ktextwidgets
(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 @@ (define-public kxmlgui
(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 @@ (define-public plasma-framework
(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")

View file

@ -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 @@ (define-module (gnu packages kodi)
#: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 @@ (define-module (gnu packages kodi)
#: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 @@ (define-public crossguid
(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 @@ (define (run-make makefile)
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

View file

@ -2222,8 +2222,6 @@ (define-public perf
;; 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 @@ (define-public btrfs-progs
("xmlto" ,xmlto)
;; For building documentation.
("libxml2" ,libxml2)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
;; For tests.
("which" ,which)))

View file

@ -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 @@ (define-public offlineimap
"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 @@ (define-public blists
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+)))

View file

@ -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 @@ (define-public hexchat
(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 @@ (define-public ngircd
'("--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 @@ (define-public znc
"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 @@ (define-public profanity
(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

View file

@ -75,7 +75,7 @@ (define-public libmpdclient
(define-public mpd
(package
(name "mpd")
(version "0.20.4")
(version "0.20.6")
(source (origin
(method url-fetch)
(uri
@ -84,7 +84,7 @@ (define-public mpd
"/mpd-" version ".tar.xz"))
(sha256
(base32
"0a4psqsf71vc6hfgyv55jclsx8yb7lf4w840qlq6cq8j3hsjaavi"))))
"0isbpa79m7zf09w3s1ry638cw96rxasy1ch66zl01k75i48mw1gl"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View file

@ -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 @@ (define-public libsmf
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+)))

View file

@ -39,7 +39,7 @@ (define-module (gnu packages ntp)
(define-public ntp
(package
(name "ntp")
(version "4.2.8p9")
(version "4.2.8p10")
(source
(origin
(method url-fetch)
@ -53,7 +53,7 @@ (define-public ntp
"/ntp-" version ".tar.gz")))
(sha256
(base32
"0whbyf82lrczbri4adbsa4hg1ppfa6c7qcj7nhjwdfp1g1vjh95p"))
"17xrk7gxrl3hgg0i73n8qm53knyh01lf0f3l1zx9x6r1cip3dlnx"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -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 @@ (define-public ots
(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 @@ (define-public ots
;; 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)

View file

@ -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

View file

@ -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. */

View file

@ -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 @@ (define-public perl-crypt-randpasswd
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 @@ (define-public perl-object-signature
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")

View file

@ -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 @@ (define-module (gnu packages pretty-print)
#: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 @@ (define-module (gnu packages pretty-print)
#: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 @@ (define-public enscript
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")

View file

@ -1749,14 +1749,14 @@ (define-public python-pafy
(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 @@ (define-public python2-rst.linker
(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 @@ (define-public snakemake
(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 @@ (define-public python2-mistune
(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 @@ (define-public python2-netaddr
(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 @@ (define-public python2-zope-security
(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 @@ (define-public python2-contextlib2
(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 @@ (define-public python2-websocket-client
(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 @@ (define-public python2-sphinx-repoze-autointerface
(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 @@ (define-public python2-pykafka
(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 @@ (define-public python2-snowballstemmer
(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 @@ (define-public python-flask-login
(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))))))

View file

@ -568,6 +568,7 @@ (define-public qtsvg
#t)))
(add-before 'check 'set-display
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))))

View file

@ -120,7 +120,7 @@ (define-public libssh2
(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 @@ (define-public openssh
(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)

View file

@ -5151,3 +5151,38 @@ (define-public r-tsne
(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)))

View file

@ -137,7 +137,6 @@ (define-public kakoune
;; 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")

View file

@ -112,14 +112,14 @@ (define-public bazaar
(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 @@ (define-public git
version ".tar.xz"))
(sha256
(base32
"0ws7h04ijqr2l0pp9qbds65v9cd70v0qfpnhqncn9zqfspw5d0wb"))))))
"1km0sbrqgni0q88abh4zb1m7xa9ld3d4qi36095b11a3vr6w7xgv"))))))
(inputs
`(("curl" ,curl)
("expat" ,expat)
@ -451,11 +451,7 @@ (define-public cgit
#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 @@ (define-public cvs-fast-export
(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)

View file

@ -1311,7 +1311,7 @@ (define-public avidemux
(define-public vapoursynth
(package
(name "vapoursynth")
(version "35")
(version "37")
(source (origin
(method url-fetch)
(uri (string-append
@ -1320,7 +1320,7 @@ (define-public vapoursynth
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0629ys2lf618n9cc644xlvx0vx52v2fp3sx14p4mx5rg9nlasb3n"))))
"1g3hc079jw4mz1cmkv2y28pdb556wqc8ql7iravgh1rg8j3f1zi5"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)

View file

@ -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-module (gnu packages vim)
(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 @@ (define-public vim-full
"--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)

View file

@ -626,11 +626,7 @@ (define-public tinyproxy
%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 @@ (define-public qutebrowser
"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)

View file

@ -177,26 +177,12 @@ (define-public i3-wm
(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 @@ (define-public i3-wm
("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 @@ (define-public i3-wm
("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")

View file

@ -65,7 +65,7 @@ (define-public wxwidgets
("libsm" ,libsm)
("libtiff" ,libtiff)
("mesa" ,mesa)
("webkitgtk" ,webkitgtk-2.4)
("webkitgtk" ,webkitgtk)
("sdl" ,sdl)))
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -89,34 +89,6 @@ (define-public wxwidgets
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)

View file

@ -31,6 +31,8 @@ (define-module (gnu services base)
#: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))

View file

@ -260,28 +260,42 @@ (define* (lsh-service #:key
(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 @@ (define (openssh-config-file config)
"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."

View file

@ -22,8 +22,6 @@ (define-module (gnu system file-systems)
#: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 @@ (define-module (gnu system file-systems)
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 @@ (define-module (gnu system file-systems)
file-system-mapping->bind-mount
file-system-packages
%store-mapping
%network-configuration-files
%network-file-mappings))
@ -77,6 +75,9 @@ (define-module (gnu system file-systems)
;;;
;;; 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 @@ (define %network-file-mappings
%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

View file

@ -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 @@ (define-module (gnu system linux-initrd)
#:use-module (srfi srfi-26)
#:export (expression->initrd
raw-initrd
file-system-packages
base-initrd))
@ -199,6 +200,26 @@ (define device-mapping-commands
#: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)

View file

@ -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 @@ (define (os-with-service service)
(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 @@ (define test
(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 @@ (define (wait-for-file file)
(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 @@ (define (wait-for-file file)
(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
(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)
;; 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
(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 @@ (define %test-openssh
(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

View file

@ -241,7 +241,18 @@ (define (nar-uri-abbreviation uri)
(define* (ftp-fetch uri file #:key timeout)
"Fetch data from URI and write it to FILE. Return FILE on success. Bail
out if the connection could not be established in less than TIMEOUT seconds."
(let* ((conn (ftp-open (uri-host uri) #:timeout timeout))
(let* ((userinfo (string-split (uri-userinfo uri) #\:))
(conn (match userinfo
(("")
(ftp-open (uri-host uri) #:timeout timeout))
(((? string? user))
(ftp-open (uri-host uri) #:timeout timeout
#:username user))
(((? string? user) (? string? pass))
(ftp-open (uri-host uri) #:timeout timeout
#:username user
#:password pass))
(_ (ftp-open (uri-host uri) #:timeout timeout))))
(size (false-if-exception (ftp-size conn (uri-path uri))))
(in (ftp-retr conn (basename (uri-path uri))
(dirname (uri-path uri)))))

View file

@ -125,7 +125,6 @@ (define %mirrors
"http://vorboss.dl.sourceforge.net/project/"
"http://netassist.dl.sourceforge.net/project/")
(kernel.org
"http://www.all.kernel.org/pub/"
"http://ramses.wh2.tu-dresden.de/pub/mirrors/kernel.org/"
"http://linux-kernel.uio.no/pub/"
"http://kernel.osuosl.org/pub/"

View file

@ -121,7 +121,10 @@ (define (raise-error errno)
(raise-error errno)))))
(connect s sockaddr)))
(define* (ftp-open host #:optional (port "ftp") #:key timeout)
(define* (ftp-open host #:optional (port "ftp")
#:key timeout
(username "anonymous")
(password "guix@example.com"))
"Open an FTP connection to HOST on PORT (a service-identifying string,
or a TCP port number), and return it.
@ -156,7 +159,7 @@ (define addresses
(if (eqv? code 220)
(begin
;;(%ftp-command "OPTS UTF8 ON" 200 s)
(%ftp-login "anonymous" "guix@example.com" s)
(%ftp-login username password s)
(%make-ftp-connection s ai))
(begin
(close s)

View file

@ -30,10 +30,12 @@
(define config-lookup
(let ((config '(("prefix" . "@prefix@")
("exec_prefix" . "@exec_prefix@")
("datarootdir" . "@datarootdir@")
("guilemoduledir" . "@guilemoduledir@")
("guileobjectdir" . "@guileobjectdir@")
("localedir" . "@localedir@")))
(var-ref-regexp (make-regexp "\\$\\{([a-z]+)\\}")))
(var-ref-regexp (make-regexp "\\$\\{([a-z_]+)\\}")))
(define (expand-var-ref match)
(lookup (match:substring match 1)))
(define (expand str)
@ -45,14 +47,17 @@
(define (maybe-augment-load-paths!)
(unless (getenv "GUIX_UNINSTALLED")
(let ((module-dir (config-lookup "guilemoduledir")))
(let ((module-dir (config-lookup "guilemoduledir"))
(object-dir (config-lookup "guileobjectdir")))
(push! module-dir %load-path)
(push! module-dir %load-compiled-path))
(push! object-dir %load-compiled-path))
(let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME")
(and=> (getenv "HOME")
(cut string-append <> "/.config")))
(cut string-append <> "/guix/latest"))))
(when (and updates-dir (file-exists? updates-dir))
;; XXX: Currently 'guix pull' puts both .scm and .go files in
;; UPDATES-DIR.
(push! updates-dir %load-path)
(push! updates-dir %load-compiled-path)))))

View file

@ -20,8 +20,10 @@ (define-module (test-file-systems)
#:use-module (guix store)
#:use-module (guix modules)
#:use-module (gnu system file-systems)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-64)
#:use-module (rnrs bytevectors))
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match))
;; Test the (gnu system file-systems) module.
@ -80,4 +82,12 @@ (define-module (test-file-systems)
(not (member '(guix config)
(source-module-closure '((gnu system file-systems))))))
(test-equal "does not pull (gnu packages …)"
;; Same story: (gnu packages …) should not be pulled.
#f
(find (match-lambda
(('gnu 'packages _ ..1) #t)
(_ #f))
(source-module-closure '((gnu system file-systems)))))
(test-end)