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

master
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 @@ programs for the manipulation and analysis of astronomical data.")
#:phases (modify-phases %standard-phases
(add-before 'check 'set-offscreen-display
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "HOME" "/tmp")
#t)))))

View File

@ -52,8 +52,8 @@
(inputs
;; TODO: Add portSMF and libwidgetextra once they're packaged. In-tree
;; versions shipping with Audacity are used for now.
`(("wxwidgets" ,wxwidgets-gtk2)
("gtk" ,gtk+-2)
`(("wxwidgets" ,wxwidgets)
("gtk" ,gtk+)
("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("expat" ,expat)

View File

@ -639,7 +639,23 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
"0qlipsq50hca71zc0dp1mg9zs12qm0sbblw7qfzl0hj6mk2rv1by"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2))
`(#:python ,python-2
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(substitute* "obnamlib/vfs_local_tests.py"
;; Check for the nobody user instead of root
(("self.fs.get_username\\(0\\), 'root'")
"self.fs.get_username(65534), 'nobody'")
;; Disable tests checking for root group
(("self.fs.get_groupname\\(0\\)") "'root'"))
(substitute* "obnamlib/vfs_local.py"
;; Don't cover get_groupname function
(("def get_groupname\\(self, gid\\):")
"def get_groupname(self, gid): # pragma: no cover"))
;; Can't run network tests
(zero? (system* "./check" "--unit-tests")))))))
(inputs
`(("python2-cliapp" ,python2-cliapp)
("python2-larch" ,python2-larch)
@ -647,6 +663,12 @@ NTFS volumes using @code{ntfs-3g}, preserving NTFS-specific attributes.")
("python2-pyaml" ,python2-pyaml)
("python2-tracing" ,python2-tracing)
("python2-ttystatus" ,python2-ttystatus)))
(native-inputs
`(("gnupg" ,gnupg)
("python2-coverage" ,python2-coverage)
("python2-coverage-test-runner" ,python2-coverage-test-runner)
("python2-pep8" ,python2-pep8)
("python2-pylint" ,python2-pylint)))
(home-page "https://obnam.org/")
(synopsis "Easy and secure backup program")
(description "Obnam is an easy, secure backup program. Features

View File

@ -228,15 +228,15 @@ menu to select one of the installed operating systems.")
(define-public dtc
(package
(name "dtc")
(version "1.4.2")
(version "1.4.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://www.kernel.org/pub/software/utils/dtc/"
"mirror://kernel.org/software/utils/dtc/"
"dtc-" version ".tar.xz"))
(sha256
(base32
"1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
"1yygyvnnpdh241hl90n9p3kxcdvk3jxmsr4ndb961c8mq3ak21s7"))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison)

View File

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

View File

@ -41,7 +41,7 @@
(define-public greenisland
(package
(name "greenisland")
(version "0.8.1")
(version "0.9.0.1")
(source (origin
(method url-fetch)
(uri (string-append
@ -50,7 +50,7 @@
"greenisland-" version ".tar.xz"))
(sha256
(base32
"1c9rlq7fqrsd5nb37anjvnp9xspqjz1kc0fvydv5xdy3abg8mw40"))))
"1flmha31hmii6m2mdvmn1q5dc0fhnvgc4lp1b4wgkz20y7x4f1fm"))))
(build-system cmake-build-system)
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
@ -100,6 +100,7 @@
(add-before 'check 'check-setup
(lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "XDG_RUNTIME_DIR" (getcwd))
#t))

View File

@ -294,8 +294,10 @@ asynchronous fashion.")
(arguments
`(#:phases (modify-phases %standard-phases
(add-before 'configure 'omit-example-configurations
(lambda _ (substitute* "Makefile.in"
((" (etc|var)") "")))))
(lambda _
(substitute* "Makefile.in"
((" (etc|var)") ""))
#t)))
#:configure-flags (list "--sysconfdir=/etc" "--localstatedir=/var"
"--enable-shared" "--disable-static"
"--enable-messages" "--enable-ctrl"
@ -334,7 +336,8 @@ Extensions} (DNSSEC).")
(("contrib/dnstap ") ""))
(with-directory-excursion "src/contrib"
(for-each delete-file-recursively
(list "dnstap" "lmdb")))))))
(list "dnstap" "lmdb")))
#t))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -354,7 +357,8 @@ Extensions} (DNSSEC).")
(add-before 'configure 'disable-directory-pre-creation
(lambda _
;; Don't install empty directories like /etc outside the store.
(substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))))
(substitute* "src/Makefile.in" (("\\$\\(INSTALL\\) -d") "true"))
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))

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 @@
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 @@
#:use-module (gnu packages audio)
#:use-module (gnu packages avahi)
#:use-module (gnu packages boost)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fltk)
#:use-module (gnu packages fribidi)
#:use-module (gnu packages game-development)
@ -69,6 +71,7 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages haskell)
@ -107,12 +110,85 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages pcre)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages messaging)
#:use-module (gnu packages upnp)
#:use-module (gnu packages wxwidgets)
#:use-module (guix build-system gnu)
#:use-module (guix build-system haskell)
#:use-module (guix build-system python)
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial))
(define-public freedoom
(package
(name "freedoom")
(version "0.11.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/" name "/" name
"/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"060dqppd9fi079yw6c82klsjaslcabq6xan67wf9hs0cy39i0kpv"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags `(,(string-append "prefix=" (assoc-ref %outputs "out")))
#:parallel-build? #f
#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(add-before 'unpack 'no (lambda _ #t))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((dejavu (assoc-ref inputs "font-dejavu"))
(freedoom (assoc-ref outputs "out"))
(wad-dir (string-append freedoom "/share/games/doom")))
;; Replace the font-searching function in a shell
;; script with a direct path to the required font.
;; This is necessary because ImageMagick can only find the
;; most basic fonts while in the build environment.
(substitute* "graphics/titlepic/create_caption"
(("font=\\$\\(find_font.*$")
(string-append
"font=" dejavu
"/share/fonts/truetype/DejaVuSansCondensed-Bold.ttf\n")))
;; Make icon creation reproducible.
(substitute* "dist/Makefile"
(("freedm.png")
"-define png:exclude-chunks=date freedm.png")
(("freedoom1.png")
"-define png:exclude-chunks=date freedoom1.png")
(("freedoom2.png")
"-define png:exclude-chunks=date freedoom2.png"))
;; Make sure that the install scripts know where to find
;; the appropriate WAD files.
(substitute* "dist/freedoom"
(("IWAD=freedm.wad")
(string-append "IWAD=" wad-dir "/freedm.wad"))
(("IWAD=freedoom1.wad")
(string-append "IWAD=" wad-dir "/freedoom1.wad"))
(("IWAD=freedoom2.wad")
(string-append "IWAD=" wad-dir "/freedoom2.wad")))
#t))))))
(native-inputs
`(("asciidoc" ,asciidoc)
("deutex" ,deutex)
("font-dejavu" ,font-dejavu)
("imagemagick" ,imagemagick)
("python" ,python-2)))
(inputs
`(("prboom-plus" ,prboom-plus)))
(home-page "https://freedoom.github.io/")
(synopsis "Free content game based on the Doom engine")
(description
"The Freedoom project aims to create a complete free content first person
shooter game. Freedoom by itself is just the raw material for a game: it must
be paired with a compatible game engine (such as @code{prboom-plus}) to be
played. Freedoom complements the Doom engine with free levels, artwork, sound
effects and music to make a completely free game.")
(license license:bsd-3)))
(define-public gnubg
(package
(name "gnubg")
@ -3267,3 +3343,81 @@ This command works on piped data. Pipe any ASCII or UTF-8 text to nms, and
it will apply the hollywood effect, initially showing encrypted data, then
starting a decryption sequence to reveal the original plaintext characters.")
(license license:expat)))
(define-public megaglest-data
(package
(name "megaglest-data")
(version "3.13.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/MegaGlest/megaglest-data"
"/releases/download/" version "/megaglest-data-"
version ".tar.xz"))
(sha256
(base32
"0ipgza33z89fw3si32iafm981f3fvm0zldvbxj29whghd2k3rpj3"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f))
(home-page "https://megaglest.org/")
(synopsis "Data files for MegaGlest")
(description "This package contains the data files required for MegaGlest.")
(license license:cc-by-sa3.0)))
(define-public megaglest
(package
(name "megaglest")
(version "3.13.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/MegaGlest/megaglest-source"
"/releases/download/" version "/megaglest-source-"
version ".tar.xz"))
(sha256
(base32
"1ffck3ii1wp5k3nn5p0ga06jgp7pzk4zw0xln3xim2w7qrxzdzh9"))))
(build-system cmake-build-system)
(inputs
`(("curl" ,curl)
("fontconfig" ,fontconfig)
("ftgl" ,ftgl)
("glew" ,glew)
("libjpeg-turbo" ,libjpeg-turbo)
("megaglest-data" ,megaglest-data)
("mesa" ,mesa)
("miniupnpc" ,miniupnpc)
("openal" ,openal)
("libircclient" ,libircclient)
("libpng" ,libpng)
("libvorbis" ,libvorbis)
("lua" ,lua)
("sdl2" ,sdl2)
("wxwidgets" ,wxwidgets)))
(native-inputs
`(("cppunit" ,cppunit)
("pkg-config" ,pkg-config)))
(arguments
`(#:configure-flags
(list (string-append "-DCUSTOM_DATA_INSTALL_PATH="
(assoc-ref %build-inputs "megaglest-data")
"/share/megaglest")
"-DBUILD_MEGAGLEST_TESTS=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-ini-search-path
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "source/glest_game/global/config.cpp"
(("/usr/share/megaglest/")
(string-append (assoc-ref outputs "out")
"/share/megaglest/"))))))
#:test-target "megaglest_tests"))
(home-page "https://megaglest.org/")
(synopsis "3D real-time strategy (RTS) game")
(description "MegaGlest is a cross-platform 3D real-time strategy (RTS)
game, where you control the armies of one of seven different factions: Tech,
Magic, Egypt, Indians, Norsemen, Persian or Romans.")
(license license:gpl2+)))

View File

@ -3658,7 +3658,7 @@ USB transfers with your high-level application or system daemon.")
(define-public simple-scan
(package
(name "simple-scan")
(version "3.22.0.1")
(version "3.24.0")
(source (origin
(method url-fetch)
(uri (string-append "https://launchpad.net/simple-scan/"
@ -3667,7 +3667,7 @@ USB transfers with your high-level application or system daemon.")
version ".tar.xz"))
(sha256
(base32
"0l1b3llkdlqq0bcjx1cadba67l2zb4zfykdaprpjbjbr6gkbc1f5"))))
"19klldnbnknpq6ikz9x93861ywcyg0pg9ngijvw66ncbnb7lx912"))))
(build-system glib-or-gtk-build-system)
(inputs
`(("gtk" ,gtk+)

View File

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

View File

@ -650,6 +650,7 @@ infrastructure.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -984,7 +985,8 @@ represented by a QPoint or a QSize.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
(setenv "QT_QPA_PLATFORM" "offscreen") ; a better solution to Xvfb
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; enable debug info
(setenv "DBUS_FATAL_WARNINGS" "0")
#t))
@ -1307,6 +1309,7 @@ utilities.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -1692,6 +1695,7 @@ gallons).")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t))
(replace 'check
@ -1816,6 +1820,7 @@ by which applications, and what documents have been linked to which activity.")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -1894,6 +1899,7 @@ KCModules can be created with the KConfigWidgets framework.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2024,6 +2030,7 @@ started on demand.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2096,6 +2103,7 @@ with su and ssh respectively.")
(lambda _
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2139,6 +2147,7 @@ emoticons coming from different providers.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2188,6 +2197,7 @@ window does not need focus for them to be activated.")
"/share"))
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2297,6 +2307,7 @@ makes starting KDE applications faster and reduces memory consumption.")
(setenv "HOME" (getcwd))
(setenv "XDG_RUNTIME_DIR" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
;;(replace 'check
@ -2361,6 +2372,7 @@ KIO enabled infrastructure.")
(lambda _ ; XDG_DATA_DIRS isn't set
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2454,6 +2466,7 @@ notifications which can be embedded in your application.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2494,6 +2507,7 @@ widgets with a user-interface defined in terms of actions.")
(add-before 'check 'check-setup
(lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2550,6 +2564,7 @@ to easily extend the contacts collection.")
(add-before 'check 'check-setup
(lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2595,6 +2610,7 @@ typed.")
(lambda _
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2661,6 +2677,7 @@ types or handled by application specific code.")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
#t)))))
@ -2708,6 +2725,7 @@ library.")
(modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")
@ -2798,6 +2816,7 @@ the passwords on KDE work spaces.")
(add-before 'check 'check-setup
(lambda _
(setenv "HOME" (getcwd))
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "CTEST_OUTPUT_ON_FAILURE" "1")
#t)))))
@ -2910,6 +2929,7 @@ setUrl, setUserAgent and call.")
(lambda _
(setenv "HOME" (getcwd))
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))
(home-page "https://community.kde.org/Frameworks")

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 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
@ -52,6 +53,7 @@
#:use-module (gnu packages mp3)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages samba)
@ -119,153 +121,301 @@ generator library for C++.")
(home-page "https://github.com/graeme-hill/crossguid")
(license license:expat))))
;; Kodi requires using their own special forks of these libraries.
;; In addition, it insists on downloading and building these as part
;; of the standard build process. To make things easier, we bootstrap
;; and patch shebangs here, so we don't have to worry about it later.
(define libdvdnav/kodi
(let ((commit "981488f7f27554b103cca10c1fbeba027396c94a"))
(package
(name "libdvdnav-bootstrapped")
(version commit)
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xbmc/libdvdnav.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"089pswc51l3avh95zl4cpsh7gh1innh7b2y4xgx840mcmy46ycr8"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _ (zero? (system* "autoreconf" "-vif"))))
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "." (assoc-ref outputs "out"))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/xbmc/libdvdnav")
(synopsis (package-synopsis libdvdnav))
(description (package-description libdvdnav))
(license license:gpl2+))))
(define libdvdread/kodi
(let ((commit "17d99db97e7b8f23077b342369d3c22a6250affd"))
(package
(name "libdvdread-bootstrapped")
(version commit)
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xbmc/libdvdread.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1gr5aq1cjr3as9mnwrw29cxn4m6f6pfrxdahkdcjy70q3ldg90sl"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _ (zero? (system* "autoreconf" "-vif"))))
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "." (assoc-ref outputs "out"))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/xbmc/libdvdread")
(synopsis (package-synopsis libdvdread))
(description (package-description libdvdread))
(license (list license:gpl2+ license:lgpl2.1+)))))
(define libdvdcss/kodi
(let ((commit "2f12236bc1c92f73c21e973363f79eb300de603f"))
(package
(name "libdvdcss-bootstrapped")
(version commit)
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/xbmc/libdvdcss.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"198r0q73i55ga1dvyqq9nfcri0zq08b94hy8671lg14i3izx44dd"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _ (zero? (system* "autoreconf" "-vif"))))
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(copy-recursively "." (assoc-ref outputs "out"))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(home-page "https://github.com/xbmc/libdvdcss")
(synopsis (package-synopsis libdvdcss))
(description (package-description libdvdcss))
(license license:gpl2+))))
(define-public kodi
;; We package the git version because the current released
;; version was cut while the cmake transition was in turmoil.
(let ((commit "b35147e2bec41ce332b9788f4a6ac94d2e5999e3")
(revision "0"))
(package
(name "kodi")
(version "16.0")
(version (string-append "18.0_alpha-" revision "-" (string-take commit 7)))
(source (origin
(method url-fetch)
(uri (string-append "http://mirrors.kodi.tv/releases/source/"
version "-Jarvis.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/xbmc/xbmc.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0iirspvv7czf785l2lqf232dvdaj87srbn9ni97ngvnd6w9yl884"))
"0rhb9rcz5h8mky8mx6idzybnpgjh2lxcjkh16z1x6fr4pis2jcbj"))
(snippet
;; Delete bundled ffmpeg.
;; TODO: Delete every other bundled library.
'(begin
(use-modules (guix build utils))
(delete-file-recursively "tools/depends/target/ffmpeg")))
(for-each delete-file-recursively
'("project/BuildDependencies/bin/"
;; TODO: Purge these jars.
;;"tools/codegenerator/groovy"
;; And these sources:
;; "tools/depend/native/JsonSchemaBuilder"
;; "tools/depend/native/TexturePacker"
;; "lib/UnrarXlib"
;; "lib/gtest"
;; "lib/cpluff"
;; "lib/libexif"
;; "lib/libUPnP"
"lib/libUPnP/Neptune/ThirdParty"
"project/Win32BuildSetup/tools/7z"))
#t))
(modules '((guix build utils)))))
(build-system gnu-build-system)
(build-system cmake-build-system)
(arguments
'(#:configure-flags '("--with-ffmpeg=shared") ; don't use bundled ffmpeg
'(#:modules ((srfi srfi-1)
(guix build cmake-build-system)
(guix build utils))
#:configure-flags
(list "-DENABLE_INTERNAL_FFMPEG=OFF"
"-DENABLE_INTERNAL_CROSSGUID=OFF"
(string-append "-Dlibdvdread_URL="
(assoc-ref %build-inputs "libdvdread-bootstrapped"))
(string-append "-Dlibdvdnav_URL="
(assoc-ref %build-inputs "libdvdnav-bootstrapped"))
(string-append "-Dlibdvdcss_URL="
(assoc-ref %build-inputs "libdvdcss-bootstrapped"))
"-DENABLE_NONFREE=OFF")
#:phases
(modify-phases %standard-phases
;; JsonSchemaBuilder is a small tool needed by the build system that
;; comes bundled with the source. The build system tries to build it
;; during the bootstrapping phase, which causes serious issues
;; The build system tries to bootstrap these bundled components
;; during the regular build phase, which causes serious issues
;; because there's no time for shebangs to be patched. So, we
;; bootstrap it on our own instead.
(add-after 'unpack 'bootstrap-jsonschemabuilder
(lambda* (#:key inputs #:allow-other-keys)
(let ((dir "tools/depends/native/JsonSchemaBuilder/src"))
(with-directory-excursion dir
(zero? (system* "sh" "autogen.sh"))))))
;; Now we can do the regular bootstrapping process, but only after
;; the first round of shebang patching. We must repeat the patching
;; after bootstrapping so that all of the files generated by the
;; Autotools et al. are patched appropriately.
(add-after 'patch-source-shebangs 'bootstrap
(lambda* (#:key inputs #:allow-other-keys)
;; We bootstrapped JsonSchemaBuilder in the previous phase, so we
;; need to make sure it isn't done a second time. Otherwise, it
;; would undo the shebang patching that we worked so hard for.
(substitute* '("tools/depends/native/JsonSchemaBuilder/Makefile")
(("\\./autogen\\.sh") ""))
;; This essentially does what their 'bootstrap' script does, but
;; additionally passes the correct CONFIG_SHELL.
(let ((bash (string-append (assoc-ref inputs "bash") "/bin/sh")))
(define (run-make makefile)
(zero? (system* "make" "-f" makefile
"BOOTSTRAP_STANDALONE=1"
(string-append "CONFIG_SHELL=" bash))))
(and (run-make "bootstrap.mk")
(run-make "codegenerator.mk")))))
(add-after 'bootstrap 'patch-source-shebangs-again
(assoc-ref %standard-phases 'patch-source-shebangs))
;; 3 tests fail that appear harmless, so we disable them.
(add-before 'check 'disable-some-tests
(add-after 'unpack 'bootstrap-bundled-software
(lambda _
(let ((dirs '("tools/depends/native/JsonSchemaBuilder/src"
"lib/cpluff")))
(every (lambda (third-party)
(with-directory-excursion third-party
(zero? (system* "autoreconf" "-vif"))))
dirs))))
(add-after 'bootstrap-bundled-software 'patch-stuff
(lambda _
;; Prevent the build scripts from calling autoreconf in the
;; build stage. Otherwise, it would undo the bootstrapping
;; and shebang patching that we worked so hard for.
(substitute* "cmake/modules/FindCpluff.cmake"
(("autoreconf -vif") "true"))
(substitute* "lib/cpluff/po/Makefile.in.in"
(("/bin/sh") (which "sh")))
(substitute* "cmake/modules/FindLibDvd.cmake"
;; The libdvd* sources that we bootstrapped separately are
;; unpacked in the build phase. This is our best opportunity
;; to make them writable before the build process starts.
(("autoreconf -vif") "chmod -R u+w ."))
;; Let's disable some tests that are known not to work here.
;; Doing this later while in the cmake "../build" directory
;; is trickier.
(substitute* '("xbmc/utils/test/TestSystemInfo.cpp")
(("TEST_F\\(TestSystemInfo, GetOsPrettyNameWithVersion\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsPrettyNameWithVersion)")
(("TEST_F\\(TestSystemInfo, GetOsName\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsName)")
(("TEST_F\\(TestSystemInfo, GetOsVersion\\)")
"TEST_F(TestSystemInfo, DISABLED_GetOsVersion)")))))))
"TEST_F(TestSystemInfo, DISABLED_GetOsVersion)"))
;; FIXME: Why are these failing.
(substitute* "xbmc/network/test/TestWebServer.cpp"
(("TEST_F\\(TestWebServer, Can")
"TEST_F(TestWebServer, DISABLED_Can"))
#t))
(add-before 'build 'set-build-environment
(lambda _
;; Some bundled build scripts fall back to /bin/sh
;; if this is not set.
(setenv "CONFIG_SHELL" (which "sh"))
#t))
(add-before 'check 'build-kodi-test
(lambda _
(zero? (system* "make" "kodi-test"))))
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(curl (string-append (assoc-ref inputs "curl") "/lib")))
(wrap-program (string-append out "/bin/kodi")
`("LD_LIBRARY_PATH" suffix (,curl)))
#t))))))
;; TODO: Add dependencies for:
;; - vdpau
;; - nfs
;;
;; FIXME: libusb detection fails.
;;
;; FIXME: As you can see, we use a lot of external libraries, but it seems
;; that a few bundled ones are still being used.
;; - cec
;; - plist
;; - shairplay
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("cmake" ,cmake)
("doxygen" ,doxygen)
("gawk" ,gawk)
("gettext" ,gettext-minimal)
("icedtea" ,icedtea) ; needed at build-time only, mandatory
("libdvdcss-bootstrapped" ,libdvdcss/kodi)
("libdvdnav-bootstrapped" ,libdvdnav/kodi)
("libdvdread-bootstrapped" ,libdvdread/kodi)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("swig" ,swig)
("which" ,which)
("yasm" ,yasm)))
(inputs
`(("alsa-lib" ,alsa-lib)
("avahi" ,avahi)
("bluez" ,bluez)
("boost" ,boost)
("bzip2" ,bzip2)
("crossguid" ,crossguid)
("curl" ,curl)
("dcadec" ,dcadec)
("dbus" ,dbus)
("enca" ,enca)
("eudev" ,eudev)
("ffmpeg" ,ffmpeg)
("flac" ,flac)
("fmt" ,fmt)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("fribidi" ,fribidi)
("giflib" ,giflib)
("glew" ,glew)
("gnutls" ,gnutls)
("gperf" ,gperf)
("jasper" ,jasper)
("lame" ,lame)
("lcms" ,lcms)
("libass" ,libass)
("libbluray" ,libbluray)
("libcap" ,libcap)
("libcdio" ,libcdio)
("libdrm" ,libdrm)
("libgcrypt" ,libgcrypt)
("libjpeg" ,libjpeg)
("libltdl" ,libltdl)
("libmad" ,libmad)
("libmicrohttpd" ,libmicrohttpd)
("libmodplug" ,libmodplug)
("libmpeg2" ,libmpeg2)
("libogg" ,libogg)
("libpng" ,libpng)
("libsamplerate" ,libsamplerate)
("libssh" ,libssh)
("libtiff" ,libtiff)
("libva" ,libva)
("libvorbis" ,libvorbis)
("libxml2" ,libxml2)
("libxmu" ,libxmu)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxslt" ,libxslt)
("libxt" ,libxt)
("libyajl" ,libyajl)
("lzo" ,lzo)
("mesa-utils" ,mesa-utils)
("mysql" ,mysql)
("openssl" ,openssl)
("pcre" ,pcre)
("pulseaudio" ,pulseaudio)
("python" ,python-2)
("samba" ,samba)
("sdl2" ,sdl2)
("sqlite" ,sqlite)
("taglib" ,taglib)
("tinyxml" ,tinyxml)
("unzip" ,unzip)
("util-linux" ,util-linux)
("zip" ,zip)
("zlib" ,zlib)))
@ -274,4 +424,11 @@ generator library for C++.")
music, games, etc. Kodi is highly customizable and features a theme and
plug-in system.")
(home-page "http://kodi.tv")
(license license:gpl2+)))
;; XBMC is largely GPL2+, with some library components as LGPL2.1+, but
;; there are some other licenses spread throughout.
(license (list license:gpl2+ license:lgpl2.1+
license:gpl3+ ;WiiRemote client
license:expat ;cpluff, dbwrappers
license:public-domain ;cpluff/examples
license:bsd-3 ;misc, gtest
license:bsd-2))))) ;xbmc/freebsd

View File

@ -2222,8 +2222,6 @@ in a digital read-out.")
;; Documentation.
("libxml2" ,libxml2) ;for $XML_CATALOG_FILES
("libxslt" ,libxslt)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("xmlto" ,xmlto)
("asciidoc" ,asciidoc)))
@ -2801,7 +2799,6 @@ and copy/paste text in the console and in xterm.")
("xmlto" ,xmlto)
;; For building documentation.
("libxml2" ,libxml2)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
;; For tests.
("which" ,which)))

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 @@ and corrections. It is based on a Bayesian filter.")
"0i5dvygps1ai2qwgamab8kngrp0c5m3bgaw0jk34l8ypsk54wj8r"))))
(build-system python-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)
("libxslt" ,libxslt))) ; for xsltproc
`(("asciidoc" ,asciidoc)))
(inputs `(("python2-pysqlite" ,python2-pysqlite)
("python2-six" ,python2-six)))
(arguments
@ -2099,3 +2098,52 @@ indexed mbox files. There are two programs: @code{bindex} and @code{bit}.
are supported). @code{bit} is a CGI/SSI program that generates web pages
on the fly. Both programs are written in C and are very fast.")
(license license:expat)))
(define-public swaks
(package
(name "swaks")
(version "20170101.0")
(source
(origin
(method url-fetch)
(uri (string-append
"http://jetmore.org/john/code/swaks/files/swaks-"
version ".tar.gz"))
(sha256
(base32
"0pli4mlhasnqqxmmxalwyg3x7n2vhcbgsnp2xgddamjavv82vrl4"))))
(build-system perl-build-system)
(inputs
`(("perl-net-dns" ,perl-net-dns)
("perl-net-ssleay" ,perl-net-ssleay)))
(arguments
`(#:tests? #f ; No tests
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(zero? (system* "pod2man" "doc/ref.pod" "swaks.1"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "swaks" (string-append out "/bin"))
(install-file "swaks.1" (string-append out "/share/man/man1")))
#t))
(add-after 'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/swaks")
`("PERL5LIB" ":" = (,(getenv "PERL5LIB"))))
#t)))))
(home-page "http://jetmore.org/john/code/swaks/")
(synopsis "Featureful SMTP test tool")
(description "Swaks is a flexible, scriptable, transaction-oriented SMTP
test tool. It handles SMTP features and extensions such as TLS,
authentication, and pipelining; multiple versions of the SMTP protocol
including SMTP, ESMTP, and LMTP; and multiple transport methods including
unix-domain sockets, internet-domain sockets, and pipes to spawned processes.
Options can be specified in environment variables, configuration files, and
the command line allowing maximum configurability and ease of use for
operators and scripters.")
(license gpl2+)))

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 @@ dictionaries. HexChat can be extended with multiple addons.")
(define-public ngircd
(package
(name "ngircd")
(version "22")
(version "24")
(source (origin
(method url-fetch)
(uri (string-append "http://arthur.barton.de/pub/ngircd/ngircd-"
(uri (string-append "https://arthur.barton.de/pub/ngircd/ngircd-"
version ".tar.xz"))
(sha256
(base32
"17k3g9qd9d010czk5846qxvzkmw4fihv8l6m2a2287crbxm3xhd4"))
(patches (search-patches "ngircd-no-dns-in-tests.patch"
"ngircd-handle-zombies.patch"))))
"020h9d1awyxqr0l42x1fhs47q7cmm17fdxzjish8p2kq23ma0gqp"))
(patches (search-patches "ngircd-handle-zombies.patch"))))
(build-system gnu-build-system)
;; Needed for the test suite.
(native-inputs `(("procps" ,procps)
@ -234,34 +235,34 @@ dictionaries. HexChat can be extended with multiple addons.")
'("--with-pam")
'()))
#:phases
;; Necessary for the test suite.
(alist-cons-after
'configure 'post-configure
(lambda _
(substitute* "src/ngircd/Makefile"
(("/bin/sh") (which "sh")))
;; The default getpid.sh does a sloppy grep over 'ps -ax' output,
;; which fails arbitrarily.
(with-output-to-file "src/testsuite/getpid.sh"
(lambda ()
(display
(string-append
"#!" (which "sh") "\n"
"ps -C \"$1\" -o pid=\n"))))
;; Our variant of getpid.sh does not work for interpreter names if a
;; shebang script is run directly as "./foo", so patch cases where
;; the test suite relies on this.
(substitute* "src/testsuite/start-server.sh"
;; It runs 'getpid.sh sh' to test if it works at all. Run it on
;; 'make' instead.
(("getpid.sh sh") "getpid.sh make")))
%standard-phases)))
(home-page "http://ngircd.barton.de/")
(modify-phases %standard-phases
;; Necessary for the test suite.
(add-after 'configure 'post-configure
(lambda _
(substitute* "src/ngircd/Makefile"
(("/bin/sh") (which "sh")))
;; The default getpid.sh does a sloppy grep over 'ps -ax' output,
;; which fails arbitrarily.
(with-output-to-file "src/testsuite/getpid.sh"
(lambda ()
(display
(string-append
"#!" (which "sh") "\n"
"ps -C \"$1\" -o pid=\n"))))
;; Our variant of getpid.sh does not match interpreter names
;; when the script's shebang is invoked directly as "./foo".
;; Patch cases where the test suite relies on this.
(substitute* "src/testsuite/start-server.sh"
;; It runs 'getpid.sh sh' to test if it works at all. Run it on
;; 'make' instead.
(("getpid.sh sh") "getpid.sh make")))))))
(home-page "https://ngircd.barton.de/")
(synopsis "Lightweight Internet Relay Chat server for small networks")
(description
"ngIRCd is a lightweight Internet Relay Chat server for small or private
networks. It is easy to configure, can cope with dynamic IP addresses, and
supports IPv6, SSL-protected connections as well as PAM for authentication.")
"ngIRCd is a lightweight @dfn{Internet Relay Chat} (IRC) server for small
or private networks. It is easy to configure, can cope with dynamic IP
addresses, and supports IPv6, SSL-protected connections, as well as PAM for
authentication.")
(license license:gpl2+)))
(define-public pidgin
@ -398,12 +399,23 @@ compromised.")
"1jia6kq6bp8yxfj02d5vj9vqb4pylqcldspyjj6iz82kkka2a0ig"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; tries to download GoogleTest with wget
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'unpack-googletest
(lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "tar" "xf"
(assoc-ref inputs "googletest-source"))))))
#:configure-flags '("--enable-python"
"--enable-perl"
"--enable-cyrus")))
"--enable-cyrus"
,(string-append "--with-gtest="
"googletest-release-"
(package-version googletest)
"/googletest"))
#:test-target "test"))
(native-inputs
`(("pkg-config" ,pkg-config)
`(("googletest-source" ,(package-source googletest))
("pkg-config" ,pkg-config)
("perl" ,perl)
("python" ,python)))
(inputs
@ -1329,4 +1341,36 @@ using ncurses and libmesode, inspired by Irssi.")
(home-page "http://www.profanity.im")
(license license:gpl3+)))
(define-public libircclient
(package
(name "libircclient")
(version "1.9")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libircclient/libircclient/"
version "/libircclient-" version ".tar.gz"))
(sha256
(base32
"0r60i76jh4drjh2jgp5sx71chagqllmkaq49zv67nrhqwvp9ghw1"))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)))
(arguments
`(#:configure-flags
(list (string-append "--libdir="
(assoc-ref %outputs "out") "/lib")
"--enable-shared"
"--enable-ipv6"
"--enable-openssl")
;; no test suite
#:tests? #f))
(home-page "https://www.ulduzsoft.com/libircclient/")
(synopsis "Library implementing the client IRC protocol")
(description "Libircclient is a library which implements the client IRC
protocol. It is designed to be small, fast, portable and compatible with the
RFC standards as well as non-standard but popular features. It can be used for
building the IRC clients and bots.")
(license license:lgpl3+)))
;;; messaging.scm ends here

View File

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

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 @@ collections and wantlists, inventory, and orders.")
conversions between time and pulses, tempo map handling and more. The only dependencies
are a C compiler and glib. Full API documentation and examples are included.")
(license license:bsd-2)))
(define-public lmms
(package
(name "lmms")
(version "1.1.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/LMMS/lmms/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1g76z7ha3hd53vbqaq9n1qg6s3lw8zzaw51iny6y2bz0j1xqwcsr"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-before
'configure 'set-ldflags
(lambda* (#:key outputs #:allow-other-keys)
(setenv "LDFLAGS"
(string-append
"-Wl,-rpath=\""
(assoc-ref outputs "out") "/lib/lmms"
":"
(assoc-ref outputs "out") "/lib/lmms/ladspa"
"\"")))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("sdl" ,sdl)
("qt" ,qt-4)
("fltk" ,fltk)
("libogg" ,libogg)
("libsamplerate" ,libsamplerate)
("fluidsynth" ,fluidsynth)
("libvorbis" ,libvorbis)
("alsa-lib" ,alsa-lib)
("portaudio" ,portaudio)
("ladspa" ,ladspa)
("libsndfile1" ,libsndfile)
("libxft" ,libxft)
("freetype2" ,freetype)
("fftw3f" ,fftwf)))
(home-page "https://lmms.io/")
(synopsis "Music composition tool")
(description "LMMS is a digital audio workstation. It includes tools for sequencing
melodies and beats and for mixing and arranging songs. LMMS includes instruments based on
audio samples and various soft sythesizers. It can receive input from a MIDI keyboard.")
(license license:gpl2+)))

View File

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

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 @@
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/libots/libots/"
name "-" version "/" name "-" version
".tar.gz"))
;; libots seems to have left sourceforge and taken their release
;; tarballs with them
(uri (list (string-append "mirror://debian/pool/main/o/ots/ots_"
version ".orig.tar.gz")
(string-append "mirror://sourceforge/libots/libots/"
name "-" version "/" name "-" version
".tar.gz")))
(sha256
(base32 "0dz1ccd7ymzk4swz1aly4im0k3pascnshmgg1whd2rk14li8v47a"))
(patches (search-patches "ots-no-include-missing-file.patch"))))
@ -48,17 +53,18 @@
;; before libots-1.la has been built.
'(#:parallel-build? #f
#:phases (alist-cons-after
'configure 'set-shared-lib-extension
(lambda _
;; For some reason, the 'libtool' script (from Libtool
;; 1.5.2, Debian variant) sets 'shrext_cmds' instead of
;; 'shrext' for the shared library file name extension.
;; This leads to the creation of 'libots-1' instead of
;; 'libots-1.so'. Fix that.
(substitute* "libtool"
(("shrext_cmds") "shrext")))
%standard-phases)))
#:phases
(modify-phases %standard-phases
(add-after 'configure 'set-shared-lib-extension
(lambda _
;; For some reason, the 'libtool' script (from Libtool
;; 1.5.2, Debian variant) sets 'shrext_cmds' instead of
;; 'shrext' for the shared library file name extension.
;; This leads to the creation of 'libots-1' instead of
;; 'libots-1.so'. Fix that.
(substitute* "libtool"
(("shrext_cmds") "shrext"))
#t)))))
(inputs
`(("glib" ,glib)
("popt" ,popt)

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 @@ contained in Appendix A of FIPS Publication 181, \"Standard for Automated
Password Generator\".")
(license (package-license perl))))
(define-public perl-crypt-rc4
(package
(name "perl-crypt-rc4")
(version "2.02")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/S/SI/SIFUKURT/Crypt-RC4-"
version
".tar.gz"))
(sha256
(base32
"1sp099cws0q225h6j4y68hmfd1lnv5877gihjs40f8n2ddf45i2y"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Crypt-RC4")
(synopsis "Perl implementation of the RC4 encryption algorithm")
(description "A pure Perl implementation of the RC4 algorithm.")
(license (package-license perl))))
(define-public perl-cwd-guard
(package
(name "perl-cwd-guard")
@ -5157,6 +5178,29 @@ inherit from in order to allow your objects to generate unique cryptographic
signatures.")
(license (package-license perl))))
(define-public perl-ole-storage-lite
(package
(name "perl-ole-storage-lite")
(version "0.19")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://cpan/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-"
version
".tar.gz"))
(sha256
(base32
"179cxwqxb0f9dpx8954nvwjmggxxi5ndnang41yav1dx6mf0abp7"))))
(build-system perl-build-system)
(home-page "http://search.cpan.org/dist/OLE-Storage_Lite")
(synopsis "Read and write OLE storage files")
(description "This module allows you to read and write
an OLE-Structured file. @dfn{OLE} (Object Linking and Embedding) is a
technology to store hierarchical information such as links to other
documents within a single file.")
(license (package-license perl))))
(define-public perl-package-anon
(package
(name "perl-package-anon")

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 @@
#:use-module (guix packages)
#:use-module (guix licenses)
#:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages ghostscript)
@ -34,7 +36,8 @@
#:use-module (gnu packages gperf)
#:use-module (gnu packages lua)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config))
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages zip))
(define-public a2ps
(package
@ -147,6 +150,30 @@ It also includes the capability to perform syntax highlighting for several
different programming languages.")
(license gpl3+)))
(define-public fmt
(package
(name "fmt")
(version "3.0.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/fmtlib/fmt/releases/download/"
version "/fmt-" version ".zip"))
(sha256
(base32
"0l4514mk83cjimynci3ghrfdchjy8cya1qa45c1fg2lsj7fg16jc"))))
(build-system cmake-build-system)
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://fmtlib.net/latest/")
(synopsis "Small and fast C++ formatting library")
(description
"@code{fmt} (formerly @code{cppformat}) is a formatting library for C++.
It can be used as a safe alternative to @code{printf} or as a fast alternative
to @code{IOStreams}.")
;; The library is bsd-2, but documentation and tests include other licenses.
(license (list bsd-2 bsd-3 psfl))))
(define-public source-highlight
(package
(name "source-highlight")

View File

@ -1749,14 +1749,14 @@ standard library.")
(define-public python-py
(package
(name "python-py")
(version "1.4.31")
(version "1.4.32")
(source
(origin
(method url-fetch)
(uri (pypi-uri "py" version))
(sha256
(base32
"0561gz2w3i825gyl42mcq14y3dcgkapfiv5zv9a2bz15qxiijl56"))))
"19s1pql9pq85h1qzsdwgyb8a3k1qgkvh33b02m8kfqhizz8rzf64"))))
(build-system python-build-system)
(arguments
;; FIXME: "ImportError: 'test' module incorrectly imported from
@ -3144,14 +3144,14 @@ augment the changelog, but it can be used for other documents, too.")
(define-public python-feedgenerator
(package
(name "python-feedgenerator")
(version "1.8")
(version "1.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "feedgenerator" version))
(sha256
(base32
"0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0"))
"01mirwkm7xfx539hmvj7g9da1j51gw5lsx74dr0glizskjm5vq2s"))
(modules '((guix build utils)))
(snippet
'(begin
@ -5873,6 +5873,9 @@ of the structure, dynamics, and functions of complex networks.")
(arguments
;; TODO: Package missing test dependencies.
'(#:tests? #f))
(propagated-inputs
`(("python-wrapt" ,python-wrapt)
("python-requests" ,python-requests)))
(home-page "https://bitbucket.org/snakemake/snakemake/wiki/Home")
(synopsis "Python-based execution environment for make-like workflows")
(description
@ -6491,14 +6494,14 @@ Python.")
(define-public python-markdown
(package
(name "python-markdown")
(version "2.6.7")
(version "2.6.8")
(source
(origin
(method url-fetch)
(uri (pypi-uri "Markdown" version))
(sha256
(base32
"1h055llfd0ps0ig7qb3v1j9068xv90dc9s7xkhkgz9zg8r4g5sys"))))
"0cqfhr1km2s5d8jm6hbwgkrrj9hvkjf2gab3s2axlrw1clgaij0a"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -6858,17 +6861,14 @@ and MAC network addresses.")
(define-public python-wrapt
(package
(name "python-wrapt")
(version "1.10.5")
(version "1.10.8")
(source
(origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/source/w/wrapt/wrapt-"
version
".tar.gz"))
(uri (pypi-uri "wrapt" version))
(sha256
(base32
"0cq8rlpzkxzk48b50yrfhzn1d1hrq4gjcdqlrgq4v5palgiv9jwr"))))
"0wrcm1mydvfivbkzz0h81ygzdchnscshi6xvy5n3r21r9s0px8af"))))
(build-system python-build-system)
(arguments
;; Tests are not included in the tarball, they are only available in the
@ -8247,15 +8247,14 @@ security policies on Python objects.")
(define-public python-zope-component
(package
(name "python-zope-component")
(version "4.2.2")
(version "4.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://pypi.python.org/packages/source/z"
"/zope.component/zope.component-" version ".tar.gz"))
(uri (pypi-uri "zope.component" version))
(sha256
(base32
"06pqr8m5jv12xjyy5b59hh9anl61cxkzhw9mka33r3nxalmi2b18"))))
"1hlvzwj1kcfz1qms1dzhwsshpsf38z9clmyksb1gh41n8k3kchdv"))))
(build-system python-build-system)
(arguments
;; Skip tests due to circular dependency with python-zope-security.
@ -8497,14 +8496,14 @@ the standard library.")
(define-public python-texttable
(package
(name "python-texttable")
(version "0.8.4")
(version "0.8.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "texttable" version))
(sha256
(base32
"0bkhs4dx9s6g7fpb969hygq56hyz4ncfamlynw72s0n6nqfbd1w5"))))
"1liiiydgkg37i46a418aw19fyf6z3ds51wdwwpyjbs12x0phhf4a"))))
(build-system python-build-system)
(arguments '(#:tests? #f)) ; no tests
(home-page "https://github.com/foutaise/texttable/")
@ -8542,13 +8541,13 @@ WebSocket usage in Python programs.")
(define-public python-atomicwrites
(package
(name "python-atomicwrites")
(version "1.1.0")
(version "1.1.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "atomicwrites" version))
(sha256
(base32
"1s01dci8arsl9d9vr5nz1fk9znldp1z3l4yl43f0c27z12b8yxl0"))))
"11bm90fwm2avvf4f3ib8g925w7jr4m11vcsinn1bi6ns4bm32214"))))
(build-system python-build-system)
(synopsis "Atomic file writes in Python")
(description "Library for atomic file writes using platform dependent tools
@ -10053,14 +10052,14 @@ introspection of @code{zope.interface} instances in code.")
(define-public python-psycopg2
(package
(name "python-psycopg2")
(version "2.6.1")
(version "2.6.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "psycopg2" version))
(sha256
(base32
"0k4hshvrwsh8yagydyxgmd0pjm29lwdxkngcq9fzfzkmpsxrmkva"))))
"0p60z2gwfcal30y2w8gprflchp1kcg9qblc5rn782p4wxl90wjbh"))))
(build-system python-build-system)
(arguments
;; Tests would require a postgresql database "psycopg2_test"
@ -11163,17 +11162,14 @@ are optionally backed by a C extension built on librdkafka.")
(define-public python-wcwidth
(package
(name "python-wcwidth")
(version "0.1.6")
(version "0.1.7")
(source
(origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/"
"c2/d1/7689293086a8d5320025080cde0e3155b94ae0a7496fb89a3fbaa92c354a/"
"wcwidth-" version ".tar.gz"))
(uri (pypi-uri "wcwidth" version))
(sha256
(base32
"02wjrpf001gjdjsaxxbzcwfg19crlk2dbddayrfc2v06f53yrcyw"))))
"0pn6dflzm609m4r3i8ik5ni9ijjbb5fa3vg1n7hn6vkd49r77wrx"))))
(build-system python-build-system)
(home-page "https://github.com/jquast/wcwidth")
(synopsis "Measure number of terminal column cells of wide-character codes")
@ -12542,13 +12538,13 @@ English stemmer.")
(define-public python-sphinx-cloud-sptheme
(package
(name "python-sphinx-cloud-sptheme")
(version "1.7.1")
(version "1.8.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "cloud_sptheme" version))
(sha256
(base32
"0zm9ap4p5dzln8f1m2immadaxv2xpg8jg4w53y52rhfl7pdb58vy"))))
"1dniqb6a39yh786f86c4jn666rwnyi1jvzn4616zhcchb7sfdshd"))))
(build-system python-build-system)
;; FIXME: The 'pypi' release archive does not contain tests.
(arguments '(#:tests? #f))
@ -13671,3 +13667,212 @@ users' sessions over extended periods of time.")
(define-public python2-flask-login
(package-with-python2 python-flask-login))
(define-public python-astroid
(package
(name "python-astroid")
(version "1.4.9")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/PyCQA/astroid/archive/astroid-"
version ".tar.gz"))
(sha256
(base32
"0j0wgy54d13a470vm4b9rdjk99n1hmdxpf34x9k3pbmi9w9b566z"))))
(build-system python-build-system)
(propagated-inputs
`(("python-lazy-object-proxy" ,python-lazy-object-proxy)
("python-six" ,python-six)
("python-wrapt" ,python-wrapt)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "python" "-m" "unittest" "discover"
"-p" "unittest*.py")))))))
(home-page "https://github.com/PyCQA/astroid")
(synopsis "Common base representation of python source code for pylint and
other projects")
(description "@code{python-astroid} provides a common base representation
of python source code for projects such as pychecker, pyreverse, pylint, etc.
It provides a compatible representation which comes from the _ast module. It
rebuilds the tree generated by the builtin _ast module by recursively walking
down the AST and building an extended ast. The new node classes have
additional methods and attributes for different usages. They include some
support for static inference and local name scopes. Furthermore, astroid
builds partial trees by inspecting living objects.")
(license license:lgpl2.1+)))
(define-public python2-astroid
(package-with-python2 python-astroid))
(define-public python-isort
(package
(name "python-isort")
(version "4.2.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/timothycrosley/isort/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0zsrgkb0krn5476yncy5dd56k7dk34zqb4bnlvwy44ixgilyjmfh"))))
(build-system python-build-system)
(native-inputs
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)))
(home-page "https://github.com/timothycrosley/isort")
(synopsis "Python utility/library to sort python imports")
(description "@code{python-isort} is a python utility/library to sort
imports alphabetically, and automatically separated into sections. It
provides a command line utility, a python library and plugins for various
editors.")
(license license:expat)))
(define-public python2-isort
(package-with-python2 python-isort))
(define-public python2-backports-functools-lru-cache
(package
(name "python2-backports-functools-lru-cache")
(version "1.3")
(source
(origin
(method url-fetch)
;; only the pypi tarballs contain the necessary metadata
(uri (pypi-uri "backports.functools_lru_cache" version))
(sha256
(base32
"158ysf2hb0q4p4695abfiym9x1ywg0dgh8a3apd7gqaaxjy22jj4"))))
(build-system python-build-system)
(native-inputs
`(("python2-setuptools-scm" ,python2-setuptools-scm)))
(arguments
`(#:python ,python-2))
(home-page "https://github.com/jaraco/backports.functools_lru_cache")
(synopsis "Backport of functools.lru_cache from Python 3.3")
(description "@code{python2-backports-functools-lru-cache} is a backport
of @code{functools.lru_cache} from python 3.3.")
(license license:expat)))
(define-public python-configparser
(package
(name "python-configparser")
(version "3.5.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://bitbucket.org/ambv/configparser/get/"
version ".tar.bz2"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0waq40as14abwzbb321hfz4vr1fi363nscy32ga14qvfygrg96wa"))))
(build-system python-build-system)
(home-page "http://docs.python.org/py3k/library/configparser.html")
(synopsis "Backport of configparser from python 3.5")
(description "@code{python-configparser} is a backport of
@code{configparser} from Python 3.5 so that it can be used directly
in other versions.")
(license license:expat)))
(define-public python2-configparser
(package-with-python2 python-configparser))
(define-public python2-coverage-test-runner
(package
(name "python2-coverage-test-runner")
(version "1.11")
(source
(origin
(method url-fetch)
(uri (string-append
"http://git.liw.fi/cgi-bin/cgit/cgit.cgi/"
"coverage-test-runner/snapshot/coverage-test-runner-"
version ".tar.gz"))
(sha256
(base32
"0y1m7z3dl63kmhcmydl1mwg0hacnf6ghrx9dah17j9iasssfa3g7"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "./testrun")))))))
(propagated-inputs
`(("python2-coverage" ,python2-coverage)))
(home-page "https://liw.fi/coverage-test-runner/")
(synopsis "Python module for running unit tests")
(description "@code{CoverageTestRunner} is a python module for running
unit tests and failing them if the unit test module does not excercise all
statements in the module it tests.")
(license license:gpl3+)))
(define-public python-pylint
(package
(name "python-pylint")
(version "1.6.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/PyCQA/pylint/archive/pylint-"
version ".tar.gz"))
(sha256
(base32
"08pmgflmq2zrzrn9nkfadzwa5vybz46wvwxhrsd2mjlcgsh4rzbm"))))
(build-system python-build-system)
(native-inputs
`(("python-tox" ,python-tox)))
(propagated-inputs
`(("python-astroid" ,python-astroid)
("python-isort" ,python-isort)
("python-mccabe" ,python-mccabe)
("python-six" ,python-six)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
;; Somehow, tests for python2-pylint
;; fail if run from the build directory
(let ((work "/tmp/work"))
(mkdir-p work)
(setenv "PYTHONPATH"
(string-append (getenv "PYTHONPATH") ":" work))
(copy-recursively "." work)
(with-directory-excursion "/tmp"
(zero? (system* "python" "-m" "unittest" "discover"
"-s" (string-append work "/pylint/test")
"-p" "*test_*.py")))))))))
(home-page "https://github.com/PyCQA/pylint")
(synopsis "Python source code analyzer which looks for coding standard
errors")
(description "Pylint is a Python source code analyzer which looks
for programming errors, helps enforcing a coding standard and sniffs
for some code smells (as defined in Martin Fowler's Refactoring book).
Pylint has many rules enabled by default, way too much to silence them
all on a minimally sized program. It's highly configurable and handle
pragmas to control it from within your code. Additionally, it is
possible to write plugins to add your own checks.")
(license license:gpl2+)))
(define-public python2-pylint
(let ((pylint (package-with-python2 python-pylint)))
(package (inherit pylint)
(propagated-inputs
`(("python2-backports-functools-lru-cache"
,python2-backports-functools-lru-cache)
("python2-configparser" ,python2-configparser)
,@(package-propagated-inputs pylint))))))

View File

@ -568,6 +568,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
#t)))
(add-before 'check 'set-display
(lambda _
;; make Qt render "offscreen", required for tests
(setenv "QT_QPA_PLATFORM" "offscreen")
#t)))))))

View File

@ -120,7 +120,7 @@ a server that supports the SSH-2 protocol.")
(define-public openssh
(package
(name "openssh")
(version "7.4p1")
(version "7.5p1")
(source (origin
(method url-fetch)
(uri (let ((tail (string-append name "-" version ".tar.gz")))
@ -131,7 +131,7 @@ a server that supports the SSH-2 protocol.")
(string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/"
tail))))
(sha256 (base32
"1l8r3x4fr2kb6xm95s7kjdif1wp6f94d4kljh4qjj9109shw87qv"))))
"1w7rb5gbrikxdkp8w7zxnci4549gk4bw1lml01s59w5rzb2y6ilq"))))
(build-system gnu-build-system)
(inputs `(("groff" ,groff)
("openssl" ,openssl)

View File

@ -5151,3 +5151,38 @@ genome-wide association studies can be analyzed efficiently.")
(description
"This package provides a pure R implementation of the t-SNE algorithm.")
(license license:gpl2+)))
(define-public r-cairo
(package
(name "r-cairo")
(version "1.5-9")
(source
(origin
(method url-fetch)
(uri (cran-uri "Cairo" version))
(sha256
(base32
"1x1q99r3r978rlkkm5gixkv03p0mcr6k7ydcqdmisrwnmrn7p1ia"))))
(properties `((upstream-name . "Cairo")))
(build-system r-build-system)
(inputs
`(("cairo" ,cairo)
("libxt" ,libxt)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.rforge.net/Cairo/")
(synopsis "R graphics device using Cairo graphics library")
(description
"This package provides a Cairo graphics device that can be use to
create high-quality vector (PDF, PostScript and SVG) and bitmap
output (PNG,JPEG,TIFF), and high-quality rendering in displays (X11
and Win32). Since it uses the same back-end for all output, copying
across formats is WYSIWYG. Files are created without the dependence
on X11 or other external programs. This device supports alpha
channel (semi-transparent drawing) and resulting images can contain
transparent and semi-transparent regions. It is ideal for use in
server environments (file output) and as a replacement for other
devices that don't have Cairo's capabilities such as alpha support or
anti-aliasing. Backends are modular such that any subset of backends
is supported.")
(license license:gpl2)))

View File

@ -137,7 +137,6 @@ based command language.")
;; without them the tests fail.
(zero? (system* "chmod" "-R" "u+w" "../test")))))))
(native-inputs `(("gcc" ,gcc-5)
("libxslt" ,libxslt)
("asciidoc" ,asciidoc)
("ruby" ,ruby)))
(inputs `(("gcc:lib" ,gcc-5 "lib")

View File

@ -112,14 +112,14 @@ as well as the classic centralized workflow.")
(define-public git
(package
(name "git")
(version "2.12.0")
(version "2.12.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz"))
(sha256
(base32
"09r0lcjj5v2apj39f0ziqzjq2bi1jpnhszc9q4n0ab86g5j7c88q"))))
"18mdlg4ws78s4asfrn6licm9v6qw4wp9m0kdjq0y2r5pci1nf4fv"))))
(build-system gnu-build-system)
(native-inputs
`(("native-perl" ,perl)
@ -132,7 +132,7 @@ as well as the classic centralized workflow.")
version ".tar.xz"))
(sha256
(base32
"0ws7h04ijqr2l0pp9qbds65v9cd70v0qfpnhqncn9zqfspw5d0wb"))))))
"1km0sbrqgni0q88abh4zb1m7xa9ld3d4qi36095b11a3vr6w7xgv"))))))
(inputs
`(("curl" ,curl)
("expat" ,expat)
@ -451,11 +451,7 @@ to lock down your entire repository.")
#t)))))))
(native-inputs
;; For building manpage.
`(("asciidoc" ,asciidoc)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("xmllint" ,libxml2)
("xsltprot" ,libxslt)))
`(("asciidoc" ,asciidoc)))
(inputs
`(("git:src" ,(package-source git@2.9))
("openssl" ,openssl)
@ -857,10 +853,6 @@ RCS, PRCS, and Aegis packages.")
(list "CC=gcc" (string-append "prefix?=" (assoc-ref %outputs "out")))))
(inputs `(("git" ,git)))
(native-inputs `(("asciidoc" ,asciidoc)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("xmllint" ,libxml2)
("xsltproc" ,libxslt)
;; These are needed for the tests.
("cvs" ,cvs)
("python" ,python-2)

View File

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

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-public vim
(package
(name "vim")
(version "8.0.0300")
(version "8.0.0494")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/vim/vim/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(patches (search-patches "vim-CVE-2017-5953.patch"))
(sha256
(base32
"04samk2bakyixbxyc3p0g6ypls45105sikibg0wc6lmak9bqjs85"))))
"08kzimdyla35ndrbn68jf8pmzm7nd2qrydnvk57j089m6ajic62r"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
@ -128,9 +129,27 @@ configuration files.")
"--enable-xim"
"--disable-selinux"
"--enable-gui")
,@(package-arguments vim)))
,@(substitute-keyword-arguments (package-arguments vim)
((#:phases phases)
`(modify-phases ,phases
(add-after 'build 'drop-failing-tests
(lambda _
;; These tests fail mysteriously with GUI enabled.
;; https://github.com/vim/vim/issues/1460
(substitute* "src/testdir/test_cmdline.vim"
(("call assert_equal\\(.+getcmd.+\\(\\)\\)") ""))
#t))
(add-before 'check 'start-xserver
(lambda* (#:key inputs #:allow-other-keys)
;; Some tests require an X server, but does not start one.
(let ((xorg-server (assoc-ref inputs "xorg-server"))
(display ":1"))
(setenv "DISPLAY" display)
(zero? (system (string-append xorg-server "/bin/Xvfb "
display " &")))))))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
`(("pkg-config" ,pkg-config)
("xorg-server" ,xorg-server)))
(inputs
`(("acl" ,acl)
("atk" ,atk)

View File

@ -626,11 +626,7 @@ used to validate and fix HTML data.")
%standard-phases)))
;; All of the below are used to generate the documentation
;; (Should they be propagated inputs of asciidoc ??)
(native-inputs `(("asciidoc" ,asciidoc)
("libxml2" ,libxml2)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("libxslt" ,libxslt)))
(native-inputs `(("asciidoc" ,asciidoc)))
(home-page "https://tinyproxy.github.io/")
(synopsis "Light-weight HTTP/HTTPS proxy daemon")
(description "Tinyproxy is a light-weight HTTP/HTTPS proxy
@ -4479,11 +4475,7 @@ exploit attempts.")
"0pf91nc0xcykahc3x7ww525c9czm8zpg80nxl8n2mrzc4ilgvass"))))
(build-system python-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)
("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml)
("libxml2" ,libxml2) ;for xmllint
("libxslt" ,libxslt))) ;for xsltproc
`(("asciidoc" ,asciidoc)))
(inputs
`(("python-colorama" ,python-colorama)
("python-cssutils" ,python-cssutils)

View File

@ -177,26 +177,12 @@ commands would.")
(build-system gnu-build-system)
(arguments
`(#:make-flags
(let* ((docbook-xsl-name-version ,(string-append
(package-name docbook-xsl) "-"
(package-version docbook-xsl)))
(docbook-xsl-catalog-file (string-append
(assoc-ref %build-inputs "docbook-xsl")
"/xml/xsl/"
docbook-xsl-name-version
"/catalog.xml"))
(docbook-xml-catalog-file (string-append
(assoc-ref %build-inputs "docbook-xml")
"/xml/dtd/docbook/catalog.xml")))
;; Reference the catalog files required to build the manpages.
(list (string-append "XML_CATALOG_FILES=" docbook-xsl-catalog-file " "
docbook-xml-catalog-file)
"CC=gcc"
(string-append "PREFIX=" %output)
;; This works around the following error:
;; 'error: for loop initial declarations are only allowed in C99
;; or C11 mode'
"CFLAGS=-std=c11"))
(list "CC=gcc"
(string-append "PREFIX=" %output)
;; This works around the following error:
;; 'error: for loop initial declarations are only allowed in C99
;; or C11 mode'
"CFLAGS=-std=c11")
;; The build system tries to build in a separate directory, but that
;; seems to be unnecessary.
#:configure-flags '("--disable-builddir")
@ -215,7 +201,6 @@ commands would.")
("asciidoc" ,asciidoc)
("xmlto" ,xmlto)
("perl-pod-simple" ,perl-pod-simple)
("docbook-xml" ,docbook-xml)
("libx11" ,libx11)
("pcre" ,pcre)
("startup-notification" ,startup-notification)
@ -226,6 +211,7 @@ commands would.")
("perl" ,perl)
("pkg-config" ,pkg-config)
;; For building the documentation.
("libxml2" ,libxml2)
("docbook-xsl" ,docbook-xsl)))
(home-page "https://i3wm.org/")
(synopsis "Improved tiling window manager")

View File

@ -65,7 +65,7 @@
("libsm" ,libsm)
("libtiff" ,libtiff)
("mesa" ,mesa)
("webkitgtk" ,webkitgtk-2.4)
("webkitgtk" ,webkitgtk)
("sdl" ,sdl)))
(native-inputs
`(("pkg-config" ,pkg-config)))
@ -89,34 +89,6 @@ a graphical user interface. It has language bindings for Python, Perl, Ruby
and many other languages.")
(license (list l:lgpl2.0+ (l:fsf-free "file://doc/license.txt")))))
(define-public wxwidgets-2
(package
(inherit wxwidgets)
(version "2.8.12")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/wxWidgets/wxWidgets/"
"releases/download/v" version
"/wxGTK-" version ".tar.gz"))
(sha256
(base32 "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk"))))
(inputs
`(("gtk" ,gtk+-2)
("libjpeg" ,libjpeg)
("libtiff" ,libtiff)
("libmspack" ,libmspack)
("sdl" ,sdl)
("unixodbc" ,unixodbc)))
(arguments
`(#:configure-flags
'("--enable-unicode" "--with-regex=sys" "--with-sdl")
#:make-flags
(list (string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib"))
;; No 'check' target.
#:tests? #f))))
(define-public wxwidgets-gtk2
(package (inherit wxwidgets)
(inputs `(("gtk+" ,gtk+-2)

View File

@ -31,6 +31,8 @@
#:use-module (gnu system shadow) ; 'user-account', etc.
#:use-module (gnu system file-systems) ; 'file-system', etc.
#:use-module (gnu system mapped-devices)
#:use-module ((gnu system linux-initrd)
#:select (file-system-packages))
#:use-module (gnu packages admin)
#:use-module ((gnu packages linux)
#:select (alsa-utils crda eudev e2fsprogs fuse gpm kbd lvm2 rng-tools))

View File

@ -260,28 +260,42 @@ The other options should be self-descriptive."
(define-record-type* <openssh-configuration>
openssh-configuration make-openssh-configuration
openssh-configuration?
(openssh openssh-configuration-openssh ;package
;; <package>
(openssh openssh-configuration-openssh
(default openssh))
;; string
(pid-file openssh-configuration-pid-file
(default "/var/run/sshd.pid"))
(port-number openssh-configuration-port-number ;integer
;; integer
(port-number openssh-configuration-port-number
(default 22))
(permit-root-login openssh-configuration-permit-root-login ;Boolean | 'without-password
;; Boolean | 'without-password
(permit-root-login openssh-configuration-permit-root-login
(default #f))
(allow-empty-passwords? openssh-configuration-allow-empty-passwords? ;Boolean
;; Boolean
(allow-empty-passwords? openssh-configuration-allow-empty-passwords?
(default #f))
(password-authentication? openssh-configuration-password-authentication? ;Boolean
;; Boolean
(password-authentication? openssh-configuration-password-authentication?
(default #t))
;; Boolean
(public-key-authentication? openssh-configuration-public-key-authentication?
(default #t)) ;Boolean
(x11-forwarding? openssh-configuration-x11-forwarding? ;Boolean
(default #t))
;; Boolean
(x11-forwarding? openssh-configuration-x11-forwarding?
(default #f))
;; Boolean
(challenge-response-authentication? openssh-challenge-response-authentication?
(default #f)) ;Boolean
(default #f))
;; Boolean
(use-pam? openssh-configuration-use-pam?
(default #t)) ;Boolean
(default #t))
;; Boolean
(print-last-log? openssh-configuration-print-last-log?
(default #t))) ;Boolean
(default #t))
;; list of two-element lists
(subsystems openssh-configuration-subsystems
(default '(("sftp" "internal-sftp")))))
(define %openssh-accounts
(list (user-group (name "sshd") (system? #t))
@ -316,40 +330,48 @@ The other options should be self-descriptive."
"Return the sshd configuration file corresponding to CONFIG."
(computed-file
"sshd_config"
#~(call-with-output-file #$output
(lambda (port)
(display "# Generated by 'openssh-service'.\n" port)
(format port "Port ~a\n"
#$(number->string (openssh-configuration-port-number config)))
(format port "PermitRootLogin ~a\n"
#$(match (openssh-configuration-permit-root-login config)
(#t "yes")
(#f "no")
('without-password "without-password")))
(format port "PermitEmptyPasswords ~a\n"
#$(if (openssh-configuration-allow-empty-passwords? config)
"yes" "no"))
(format port "PasswordAuthentication ~a\n"
#$(if (openssh-configuration-password-authentication? config)
"yes" "no"))
(format port "PubkeyAuthentication ~a\n"
#$(if (openssh-configuration-public-key-authentication? config)
"yes" "no"))
(format port "X11Forwarding ~a\n"
#$(if (openssh-configuration-x11-forwarding? config)
"yes" "no"))
(format port "PidFile ~a\n"
#$(openssh-configuration-pid-file config))
(format port "ChallengeResponseAuthentication ~a\n"
#$(if (openssh-challenge-response-authentication? config)
"yes" "no"))
(format port "UsePAM ~a\n"
#$(if (openssh-configuration-use-pam? config)
"yes" "no"))
(format port "PrintLastLog ~a\n"
#$(if (openssh-configuration-print-last-log? config)
"yes" "no"))
#t))))
#~(begin
(use-modules (ice-9 match))
(call-with-output-file #$output
(lambda (port)
(display "# Generated by 'openssh-service'.\n" port)
(format port "Port ~a\n"
#$(number->string
(openssh-configuration-port-number config)))
(format port "PermitRootLogin ~a\n"
#$(match (openssh-configuration-permit-root-login config)
(#t "yes")
(#f "no")
('without-password "without-password")))
(format port "PermitEmptyPasswords ~a\n"
#$(if (openssh-configuration-allow-empty-passwords? config)
"yes" "no"))
(format port "PasswordAuthentication ~a\n"
#$(if (openssh-configuration-password-authentication? config)
"yes" "no"))
(format port "PubkeyAuthentication ~a\n"
#$(if (openssh-configuration-public-key-authentication?
config)
"yes" "no"))
(format port "X11Forwarding ~a\n"
#$(if (openssh-configuration-x11-forwarding? config)
"yes" "no"))
(format port "PidFile ~a\n"
#$(openssh-configuration-pid-file config))
(format port "ChallengeResponseAuthentication ~a\n"
#$(if (openssh-challenge-response-authentication? config)
"yes" "no"))
(format port "UsePAM ~a\n"
#$(if (openssh-configuration-use-pam? config)
"yes" "no"))
(format port "PrintLastLog ~a\n"
#$(if (openssh-configuration-print-last-log? config)
"yes" "no"))
(for-each
(match-lambda
((name command) (format port "Subsystem\t~a\t~a\n" name command)))
'#$(openssh-configuration-subsystems config))
#t)))))
(define (openssh-shepherd-service config)
"Return a <shepherd-service> for openssh with CONFIG."

View File

@ -22,8 +22,6 @@
#:use-module (guix records)
#:use-module ((gnu build file-systems)
#:select (string->uuid uuid->string))
#:use-module (gnu packages linux)
#:use-module (gnu packages disk)
#:re-export (string->uuid
uuid->string)
#:export (<file-system>
@ -41,6 +39,8 @@
file-system-create-mount-point?
file-system-dependencies
file-system-type-predicate
file-system->spec
spec->file-system
specification->file-system-mapping
@ -67,8 +67,6 @@
file-system-mapping->bind-mount
file-system-packages
%store-mapping
%network-configuration-files
%network-file-mappings))
@ -77,6 +75,9 @@
;;;
;;; Declaring file systems to be mounted.
;;;
;;; Note: this file system is used both in the Shepherd and on the "host
;;; side", so it must not include (gnu packages …) modules.
;;;
;;; Code:
;; File system declaration.
@ -416,25 +417,9 @@ a bind mount."
%network-configuration-files))
(define (file-system-type-predicate type)
"Return a predicate that, when passed a file system, returns #t if that file
system has the given TYPE."
(lambda (fs)
(string=? (file-system-type fs) type)))
(define* (file-system-packages file-systems #:key (volatile-root? #f))
`(,@(if (find (lambda (fs)
(string-prefix? "ext" (file-system-type fs)))
file-systems)
(list e2fsck/static)
'())
,@(if (find (lambda (fs)
(string-suffix? "fat" (file-system-type fs)))
file-systems)
(list fatfsck/static)
'())
,@(if (find (file-system-type-predicate "btrfs") file-systems)
(list btrfs-progs/static)
'())
,@(if volatile-root?
(list unionfs-fuse/static)
'())))
;;; file-systems.scm ends here

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 @@
#:use-module (srfi srfi-26)
#:export (expression->initrd
raw-initrd
file-system-packages
base-initrd))
@ -199,6 +200,26 @@ to it are lost."
#:volatile-root? '#$volatile-root?)))
#:name "raw-initrd")))
(define* (file-system-packages file-systems #:key (volatile-root? #f))
"Return the list of statically-linked, stripped packages to check
FILE-SYSTEMS."
`(,@(if (find (lambda (fs)
(string-prefix? "ext" (file-system-type fs)))
file-systems)
(list e2fsck/static)
'())
,@(if (find (lambda (fs)
(string-suffix? "fat" (file-system-type fs)))
file-systems)
(list fatfsck/static)
'())
,@(if (find (file-system-type-predicate "btrfs") file-systems)
(list btrfs-progs/static)
'())
,@(if volatile-root?
(list unionfs-fuse/static)
'())))
(define* (base-initrd file-systems
#:key
(linux linux-libre)

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 @@
(services (cons service
(operating-system-user-services %base-os)))))
(define (run-ssh-test name ssh-service pid-file)
(define* (run-ssh-test name ssh-service pid-file #:key (sftp? #f))
"Run a test of an OS running SSH-SERVICE, which writes its PID to PID-FILE.
SSH-SERVICE must be configured to listen on port 22 and to allow for root and
empty-password logins."
empty-password logins.
When SFTP? is true, run an SFTP server test."
(mlet* %store-monad ((os -> (marionette-operating-system
(os-with-service ssh-service)
#:imported-modules '((gnu services herd)
@ -80,7 +83,8 @@ empty-password logins."
(ice-9 match)
(ssh session)
(ssh auth)
(ssh channel))
(ssh channel)
(ssh sftp))
(define marionette
;; Enable TCP forwarding of the guest's port 22.
@ -101,6 +105,47 @@ empty-password logins."
(error "file didn't show up" ,file))))
marionette))
(define (make-session-for-test)
"Make a session with predefined parameters for a test."
(make-session #:user "root"
#:port 2222
#:host "localhost"
#:log-verbosity 'protocol))
(define (call-with-connected-session proc)
"Call the one-argument procedure PROC with a freshly created and
connected SSH session object, return the result of the procedure call. The
session is disconnected when the PROC is finished."
(let ((session (make-session-for-test)))
(dynamic-wind
(lambda ()
(let ((result (connect! session)))
(unless (equal? result 'ok)
(error "Could not connect to a server"
session result))))
(lambda () (proc session))
(lambda () (disconnect! session)))))
(define (call-with-connected-session/auth proc)
"Make an authenticated session. We should be able to connect as
root with an empty password."
(call-with-connected-session
(lambda (session)
;; Try the simple authentication methods. Dropbear requires
;; 'none' when there are no passwords, whereas OpenSSH accepts
;; 'password' with an empty password.
(let loop ((methods (list (cut userauth-password! <> "")
(cut userauth-none! <>))))
(match methods
(()
(error "all the authentication methods failed"))
((auth rest ...)
(match (pk 'auth (auth session))
('success
(proc session))
('denied
(loop rest)))))))))
(mkdir #$output)
(chdir #$output)
@ -131,37 +176,34 @@ empty-password logins."
(current-services))))
marionette))
;; Connect to the guest over SSH. We should be able to connect as
;; "root" with an empty password. Make sure we can run a shell
;; Connect to the guest over SSH. Make sure we can run a shell
;; command there.
(test-equal "connect"
(test-equal "shell command"
'hello
(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 @@ empty-password logins."
(openssh-configuration
(permit-root-login #t)
(allow-empty-passwords? #t)))
"/var/run/sshd.pid"))))
"/var/run/sshd.pid"
#:sftp? #t))))
(define %test-dropbear
(system-test

View File

@ -241,7 +241,18 @@ and 'guix publish', something like
(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 @@
"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 @@ seconds to wait for the connection to succeed."
(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 @@ TIMEOUT, an ETIMEDOUT error is raised."
(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 @@
#: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 @@
(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)