Merge branch 'master' into core-updates

master
Mark H Weaver 2018-05-08 18:45:39 -04:00
commit aedc6e9fc9
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
23 changed files with 464 additions and 132 deletions

View File

@ -11626,7 +11626,7 @@ Script to run after starting xorg-server.
@item @code{xdisplay-stop} (default @code{#~(string-append #$sddm "/share/sddm/scripts/Xstop")})
Script to run before stopping xorg-server.
@item @code{xsession-command} (default: @code{xinitr })
@item @code{xsession-command} (default: @code{xinitrc})
Script to run before starting a X session.
@item @code{xsessions-directory} (default: "/run/current-system/profile/share/xsessions")
@ -12632,7 +12632,7 @@ profile, and extends polkit with the actions from
@end deffn
Because the GNOME, XFCE and MATE desktop services pull in so many packages,
the default @code{%desktop-services} variable doesn't include either of
the default @code{%desktop-services} variable doesn't include any of
them by default. To add GNOME, XFCE or MATE, just @code{cons} them onto
@code{%desktop-services} in the @code{services} field of your
@code{operating-system}:

View File

@ -1094,6 +1094,7 @@ dist_patch_DATA = \
%D%/packages/patches/slim-login.patch \
%D%/packages/patches/sooperlooper-build-with-wx-30.patch \
%D%/packages/patches/steghide-fixes.patch \
%D%/packages/patches/strace-kernel-4.16.patch \
%D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \
@ -1154,6 +1155,7 @@ dist_patch_DATA = \
%D%/packages/patches/wavpack-CVE-2018-7253.patch \
%D%/packages/patches/wavpack-CVE-2018-7254.patch \
%D%/packages/patches/weechat-python.patch \
%D%/packages/patches/wesnoth-fix-std-bad-cast.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \
%D%/packages/patches/wicd-urwid-1.3.patch \

View File

@ -50,8 +50,11 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dns)
#:use-module (gnu packages file)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages linux)
@ -70,6 +73,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt)
@ -97,7 +101,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages boost)
#:use-module (gnu packages elf)
#:use-module (gnu packages mpi))
#:use-module (gnu packages mpi)
#:use-module (gnu packages web))
(define-public aide
(package
@ -2661,3 +2666,117 @@ Python loading in HPC environments.")
;; This package supports x86_64 and PowerPC64
(supported-systems '("x86_64-linux"))
(license license:lgpl2.1)))
(define-public inxi-minimal
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.0.04-1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/smxi/inxi"
"/archive/" version "/inxi.tar.gz"))
(file-name (string-append real-name "-" version ".tar.gz"))
(sha256
(base32
"14zxdsjgh9dbijmpp0hhvg2yiqqfwnqgcc6x8dpl1v15z1h1r7pc"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash)
("perl" ,perl)))
(native-inputs
`(("gzip" ,gzip)
("tar" ,tar)))
(arguments
`(#:modules
((guix build utils)
(ice-9 match)
(srfi srfi-26))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 match)
(srfi srfi-26))
(setenv "PATH" (string-append
(assoc-ref %build-inputs "bash") "/bin" ":"
(assoc-ref %build-inputs "gzip") "/bin" ":"
(assoc-ref %build-inputs "perl") "/bin" ":"
(assoc-ref %build-inputs "tar") "/bin" ":"))
(invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
(with-directory-excursion ,(string-append real-name "-" version)
(with-fluids ((%default-port-encoding #f))
(substitute* "inxi" (("/usr/bin/env perl") (which "perl"))))
(let ((bin (string-append %output "/bin")))
(install-file "inxi" bin)
(wrap-program (string-append bin "/inxi")
`("PATH" ":" =
("$PATH"
,@(map (lambda (input)
(match input
((name . store)
(let ((store-append
(cut string-append store <>)))
(cond
((member name '("util-linux"))
(string-append (store-append "/bin") ":"
(store-append "/sbin")))
((member name '("dmidecode" "iproute2"))
(store-append "/sbin"))
(else (store-append "/bin")))))))
%build-inputs)))
`("PERL5LIB" ":" =
,(delete
""
(map (match-lambda
(((? (cut string-prefix? "perl-" <>) name) . dir)
(string-append dir "/lib/perl5/site_perl"))
(_ ""))
%build-inputs)))))
(invoke "gzip" "inxi.1")
(install-file "inxi.1.gz"
(string-append %output "/share/doc/man/man1")))
#t)))
(home-page "https://smxi.org/docs/inxi.htm")
(synopsis "Full featured system information script")
(description "Inxi is a system information script that can display
various things about your hardware and software to users in an IRC chatroom or
support forum. It runs with the /exec command in most IRC clients.")
(license license:gpl3+))))
(define-public inxi
(package
(inherit inxi-minimal)
(name "inxi")
(inputs
`(("dmidecode" ,dmidecode)
("file" ,file)
("bind:utils" ,isc-bind "utils") ; dig
("gzip" ,gzip)
("iproute2" ,iproute) ; ip
("kmod" ,kmod) ; modinfo
("lm-sensors" ,lm-sensors)
("mesa-utils" ,mesa-utils)
("pciutils" ,pciutils)
("procps" ,procps)
("tar" ,tar)
("tree" ,tree)
("util-linux" ,util-linux) ; lsblk
("usbutils" ,usbutils) ; lsusb
("wmctrl" ,wmctrl)
("xdpyinfo" ,xdpyinfo)
("xprop" ,xprop)
("xrandr" ,xrandr)
("coreutils" ,coreutils) ; uptime
("inetutils" ,inetutils) ; ifconfig
("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
("perl-http-tiny" ,perl-http-tiny)
("perl-io-socket-ssl" ,perl-io-socket-ssl)
("perl-json-xs" ,perl-json-xs)
("perl-time-hires" ,perl-time-hires)
;; TODO: Add more inputs:
;; ipmi-sensors
;; hddtemp
;; perl-xml-dumper
;; ipmitool
,@(package-inputs inxi-minimal)))))

View File

@ -8396,6 +8396,8 @@ arXiv, Google Scholar, Library of Congress, etc.
(base32
"1a10snhg6nnnan6w9a7mcziy26vxbsr3c35i0gcarnkdp2yqng36"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-helm" ,emacs-helm)))
(home-page "https://github.com/syohex/emacs-helm-gtags")
(synopsis "Emacs Helm interface to GNU Global")
(description
@ -9196,6 +9198,8 @@ CSS, JavaScript, JSON.")
("(defvar helm-shell-history-file"
`(expand-file-name "~/.bash_history"))))
#t)))))
(propagated-inputs
`(("emacs-helm" ,emacs-helm)))
(home-page "https://github.com/yuutayamada/helm-shell-history")
(synopsis "Find shell history with Emacs Helm")
(description "This package provides an Emacs Helm interface to search
@ -9561,6 +9565,8 @@ functions for defining emms simple players of mpv.")
(sha256
(base32
"0kdp7k7jnnrkhsg0xh1c3h7iz0vgi120gf5xwl1hxy61avivnxrn"))))
(propagated-inputs
`(("magit" ,magit)))
(build-system emacs-build-system)
(home-page "https://github.com/danielma/magit-org-todos.el")
(synopsis "Get todo.org into Emacs Magit status")
@ -9594,35 +9600,6 @@ buffer with each of your todos.")
"The Fantastic File Finder for Emacs. Find files fast, using helm.")
(license license:gpl3+)))
(define-public emacs-dumb-jump
(package
(name "emacs-dumb-jump")
(version "0.5.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/jacktasia/dumb-jump/archive/"
"v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"07n0xjgpxjpf3vp9gxchkjpydyj0zm166930as0kwiwkhjlsirsf"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-f" ,emacs-f)
("emacs-s" ,emacs-s)
("emacs-dash" ,emacs-dash)
("emacs-popup" ,emacs-popup)))
(home-page "https://github.com/jacktasia/dumb-jump")
(synopsis "Jump to definition for multiple languages without configuration")
(description "Dumb Jump is an Emacs \"jump to definition\" package with
support for multiple programming languages that favors \"just working\" over
speed or accuracy. This means minimal -- and ideally zero -- configuration
with absolutely no stored indexes (TAGS) or persistent background processes.
Dumb Jump performs best with The Silver Searcher `ag` or ripgrep `rg`
installed. Dumb Jump requires at least GNU Emacs 24.3. ")
(license license:gpl3+)))
(define-public emacs-lice-el
(let ((commit "4339929927c62bd636f89bb39ea999d18d269250"))
(package
@ -9786,8 +9763,8 @@ split to display more windows and more buffers, the buffer exits
(synopsis "Improved expressions that interactively evaluate Emacs Lisp")
(description "This package improves and replaces the GNU Emacs commands
that interactively evaluate Emacs Lisp expressions. The new commands replace
standard key bindings and are all prefixed with rsw-elisp-. They work the
same way as the old commands when called non-interactively; only the
standard key bindings and are all prefixed with @code{rsw-elisp-}. They work
the same way as the old commands when called non-interactively; only the
interactive behavior should be different.")
(license license:gpl3+)))
@ -9934,6 +9911,8 @@ compilation/grep buffers. Works with @code{wgrep}, @code{ack}, @code{ag},
(sha256
(base32
"08mjsi2f9s29fkk35cj1rrparjnkm836qmbfdwdz7y51f9varjbs"))))
(propagated-inputs
`(("emacs-helm" ,emacs-helm)))
(build-system emacs-build-system)
(home-page "https://github.com/emacs-helm/helm-firefox")
(synopsis "Display firefox bookmarks with Emacs Helm interface")
@ -10041,6 +10020,8 @@ keep Parens and Indentation inline with one another.")
(sha256
(base32
"1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
(propagated-inputs
`(("emacs-helm" ,emacs-helm)))
(build-system emacs-build-system)
(home-page "https://github.com/emacs-helm/helm-eww/")
(synopsis "Helm interface to EWW")

View File

@ -139,7 +139,7 @@ TrueType (TTF) files.")
"/share/fontconfig/conf.avail")))
(copy-recursively "fontconfig" conf-dir)
#t))))))
(home-page "http://dejavu-fonts.org/")
(home-page "https://dejavu-fonts.github.io/")
(synopsis "Vera font family derivate with additional characters")
(description "DejaVu provides an expanded version of the Vera font family
aiming for quality and broader Unicode coverage while retaining the original

View File

@ -557,8 +557,7 @@ archive on a per-file basis.")
"love-" version "-linux-src.tar.gz"))
(sha256
(base32
"1pkwiszmjs0xrwk0wqbc5cp9108b1y8gwsid0gqk1s0x09q9lpmw"))
(modules '((guix build utils)))))
"1pkwiszmjs0xrwk0wqbc5cp9108b1y8gwsid0gqk1s0x09q9lpmw"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -1819,7 +1819,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth
(package
(name "wesnoth")
(version "1.12.6")
(version "1.14.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@ -1828,17 +1828,11 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2"))
(sha256
(base32
"0kifp6g1dsr16m6ngjq2hx19h851fqg326ps3krnhpyix963h3x5"))))
"09niq53y17faizhmd98anx3dha7hvacvj9a0a64lg8wn915cm0bw"))
(patches (search-patches "wesnoth-fix-std-bad-cast.patch"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no check target
#:configure-flags
;; XXX: Failed to compile with '-Werror=old-style-cast'.
;; boost/mpl/assert.hpp:313:58: error:
;; use of old-style cast [-Werror=old-style-cast]
;; [...]
;; cc1plus: all warnings being treated as errors
'("-DENABLE_STRICT_COMPILATION=OFF")))
`(#:tests? #f)) ; no check target
(native-inputs
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
@ -1847,12 +1841,10 @@ falling, themeable graphics and sounds, and replays.")
("dbus" ,dbus)
("fribidi" ,fribidi)
("libvorbis" ,libvorbis)
("openssl" ,openssl)
("pango" ,pango)
("sdl-image" ,sdl-image)
("sdl-mixer" ,sdl-mixer)
("sdl-net" ,sdl-net)
("sdl-ttf" ,sdl-ttf)))
(home-page "http://www.wesnoth.org/")
("sdl-union" ,(sdl-union (list sdl2 sdl2-image sdl2-mixer sdl2-ttf)))))
(home-page "https://www.wesnoth.org/")
(synopsis "Turn-based strategy game")
(description
"The Battle for Wesnoth is a fantasy, turn based tactical strategy game,
@ -1871,19 +1863,12 @@ next campaign.")
(name "wesnoth-server")
(inputs
`(("boost" ,boost)
("sdl-net" ,sdl-net)))
("icu4c" ,icu4c)
("openssl" ,openssl)
("sdl2" ,sdl2)))
(arguments
(append
(substitute-keyword-arguments (package-arguments wesnoth)
((#:configure-flags configure-flags)
`(append ,configure-flags (list "-DENABLE_GAME=OFF"))))
`(#:phases
(modify-phases %standard-phases
;; Delete game assets not required by the server.
(add-after 'install 'delete-data
(lambda* (#:key outputs #:allow-other-keys)
(delete-file-recursively (string-append (assoc-ref outputs "out")
"/share/wesnoth"))))))))
`(#:configure-flags '("-DENABLE_GAME=OFF")
,@(package-arguments wesnoth)))
(synopsis "Dedicated @emph{Battle for Wesnoth} server")
(description "This package contains a dedicated server for @emph{The
Battle for Wesnoth}.")))

View File

@ -485,7 +485,17 @@ Go. It also includes runtime support libraries for these languages.")
#t))))
(inputs
`(("isl" ,isl)
,@(package-inputs gcc-4.7)))))
,@(package-inputs gcc-4.7)))
(native-search-paths
;; We have to use 'CPATH' for GCC > 5, not 'C_INCLUDE_PATH' & co., due to
;; <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129>.
(list (search-path-specification
(variable "CPATH")
(files '("include")))
(search-path-specification
(variable "LIBRARY_PATH")
(files '("lib" "lib64")))))))
(define-public gcc-7
(package

View File

@ -2457,7 +2457,7 @@ libxml to ease remote use of the RESTful API.")
(define-public libsoup
(package
(name "libsoup")
(version "2.62.1")
(version "2.62.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsoup/"
@ -2465,7 +2465,7 @@ libxml to ease remote use of the RESTful API.")
name "-" version ".tar.xz"))
(sha256
(base32
"1mw3b3j4f4ln7hl03jd296rx78dy35hzlq005a21r6qg5sndsdzh"))))
"1dkrz1iwsswscayfmjxqv2q00b87snlq9nxdccn5vck0vbinylwy"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments

View File

@ -926,6 +926,7 @@ Zerofree requires the file system to be unmounted or mounted read-only.")
(method url-fetch)
(uri (string-append home-page "/files/" version
"/strace-" version ".tar.xz"))
(patches (search-patches "strace-kernel-4.16.patch"))
(sha256
(base32
"17dkpnsjxmys1ydidm9wcvc3wscsz44fmlxw3dclspn9cj9d1306"))))

View File

@ -1373,7 +1373,7 @@ hashing schemes plugin for @code{Dovecot}.")
(home-page "http://isync.sourceforge.net/")
(synopsis "Mailbox synchronization program")
(description
"isync/mbsync is command line tool for two-way synchronization of
"isync/mbsync is a command-line tool for two-way synchronization of
mailboxes. Currently Maildir and IMAP are supported types.")
(license gpl2+)))

View File

@ -5,7 +5,6 @@
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -82,19 +81,11 @@ a flexible and convenient way.")
(remove file-is-directory?
(find-files "src/tests" ".*")))
#t)))
(add-after 'unpack 'patch-absolute-paths
(add-after 'unpack 'patch-iconv-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/man.c"
(("\"iconv\"")
(string-append "\"" (which "iconv") "\"")))
;; Embed an absolute reference to "preconv", otherwise it
;; falls back to searching in PATH and ultimately fails
;; to render unicode data (see <https://bugs.gnu.org/30785>).
(substitute* "lib/encodings.c"
(("groff_preconv = NULL")
(string-append "groff_preconv = \""
(assoc-ref inputs "groff-minimal")
"/bin/preconv\"")))
#t)))
#:configure-flags
(let ((groff (assoc-ref %build-inputs "groff"))

View File

@ -14,6 +14,7 @@
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -181,6 +182,9 @@ end-to-end encryption.")
(add-after 'install 'install-etc
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "install-etc" make-flags))))
(add-after 'install-etc 'install-lib
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "install-dev" make-flags))))
(replace 'configure
;; bitlbee's configure script does not tolerate many of the
;; variable settings that Guix would pass to it.
@ -199,6 +203,49 @@ identi.ca and status.net).")
(home-page "http://www.bitlbee.org/")
(license (list license:gpl2+ license:bsd-2))))
(define-public bitlbee-discord
(package
(name "bitlbee-discord")
(version "0.4.1")
(source (origin
(method url-fetch)
(uri
(string-append "https://github.com/sm00th/bitlbee-discord/"
"archive/" version ".tar.gz"))
(file-name (git-file-name name version))
(sha256
(base32
"1bwqxlg6fwj3749y7w69n9jwsdzf5nl9xqiszbpv9k8x1422i1y1"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(let ((sh (which "sh")))
(substitute* "autogen.sh" (("/bin/sh") sh))
(setenv "CONFIG_SHELL" sh)
(zero? (system* "./autogen.sh")))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(invoke "./configure"
(string-append "--with-plugindir="
(assoc-ref outputs "out")
"/lib/bitlbee/")))))))
(inputs `(("glib" ,glib)))
(native-inputs `(("pkg-config" ,pkg-config)
("autoconf" ,autoconf)
("automake" ,automake)
("texinfo" ,texinfo)
("libtool" ,libtool)
("bitlbee" ,bitlbee) ;needs bitlbee headers
("bash" ,bash)))
(synopsis "Discord plugin for Bitlbee")
(description "Bitlbee-discord is a plugin for Bitlbee witch provides
access to servers running the Discord protocol.")
(home-page "https://github.com/sm00th/bitlbee-discord/")
(license license:gpl2+)))
(define-public hexchat
(package
(name "hexchat")

View File

@ -162,7 +162,7 @@ protocol.")
(define-public mpd-mpc
(package
(name "mpd-mpc")
(version "0.29")
(version "0.30")
(source (origin
(method url-fetch)
(uri
@ -171,7 +171,7 @@ protocol.")
"/mpc-" version ".tar.xz"))
(sha256
(base32
"1lxr0z5i5yx4lcvy9nyxj6q32qlz473j3zm6va68zd1cj3ndmw82"))))
"1kkzhrypkp0v6xv4d6db415pd0h6jqki29kfpsnfkvrhhh55pz35"))))
(build-system meson-build-system)
(inputs `(("libmpdclient" ,libmpdclient)))
(native-inputs `(("pkg-config" ,pkg-config)))

View File

@ -545,7 +545,7 @@ of the same name.")
(define-public wireshark
(package
(name "wireshark")
(version "2.4.5")
(version "2.6.0")
(source
(origin
(method url-fetch)
@ -553,7 +553,7 @@ of the same name.")
version ".tar.xz"))
(sha256
(base32
"1mvgy67rvnwj2kbc43s4il81jvz5ai0bx2j3j2js7x50zclyrcmk"))))
"0zqip4ai18iar7sgialc3jmpng1yxxy4i9bphbaig23ss80py73i"))))
(build-system gnu-build-system)
(inputs `(("c-ares" ,c-ares)
("glib" ,glib)
@ -564,12 +564,14 @@ of the same name.")
("libpcap" ,libpcap)
("libssh" ,libssh)
("libxml2" ,libxml2)
("lz4" ,lz4)
("lua" ,lua-5.2) ;Lua 5.3 unsupported
("krb5" ,mit-krb5)
("openssl" ,openssl)
("portaudio" ,portaudio)
("qtbase" ,qtbase)
("qtmultimedia" ,qtmultimedia)
("sbc" ,sbc)
("snappy" ,snappy)
("zlib" ,zlib)))
(native-inputs `(("perl" ,perl)
("pkg-config" ,pkg-config)
@ -582,11 +584,12 @@ of the same name.")
(string-append "--with-libcap=" (assoc-ref %build-inputs "libcap"))
(string-append "--with-libssh=" (assoc-ref %build-inputs "libssh"))
(string-append "--with-lua=" (assoc-ref %build-inputs "lua"))
(string-append "--with-lz4=" (assoc-ref %build-inputs "lz4"))
(string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap"))
(string-append "--with-portaudio="
(assoc-ref %build-inputs "portaudio"))
(string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
(string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))
(string-append "--with-snappy=" (assoc-ref %build-inputs "snappy"))
(string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))))
(synopsis "Network traffic analyzer")
(description "Wireshark is a network protocol analyzer, or @dfn{packet

View File

@ -0,0 +1,92 @@
Fix test failure when using Linux-Libre >= 4.16.
Taken from upstream:
https://github.com/strace/strace/commit/bcff87c31c0f27c678a43d6b7f67dab363a974fa
From bcff87c31c0f27c678a43d6b7f67dab363a974fa Mon Sep 17 00:00:00 2001
From: Masatake YAMATO <yamato@redhat.com>
Date: Wed, 2 May 2018 17:11:07 +0900
Subject: [PATCH] tests/ioctl_kvm_run.c: handle cpuid at the end of vcpu dentry
Since Linux 4.16, kernel appends the cpuid as suffix to the entry
for a kvm vcpu in /proc/$pid/fd like:
anon_inode:kvm-vcpu:0
That was
anon_inode:kvm-vcpu
This kernel change causes the test case failure on newer kernels.
Update the test to deal with the new name as well as the old one.
* tests/ioctl_kvm_run.c: Include unistd.h for using readlink(2).
(vcpu_dev_should_have_cpuid): New function for detecting whether
a proc entry for given fd has the cpuid suffix or not.
(main): Trim vcpu_dev to remove the cpuid suffix if needed.
(vcpu_dev): Remove const modifier.
---
tests/ioctl_kvm_run.c | 29 ++++++++++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/tests/ioctl_kvm_run.c b/tests/ioctl_kvm_run.c
index 179461430..e1bef5796 100644
--- a/tests/ioctl_kvm_run.c
+++ b/tests/ioctl_kvm_run.c
@@ -40,6 +40,7 @@
# include <string.h>
# include <sys/ioctl.h>
# include <sys/mman.h>
+# include <unistd.h>
# include <linux/kvm.h>
static int
@@ -56,7 +57,7 @@ kvm_ioctl(int fd, unsigned long cmd, const char *cmd_str, void *arg)
static const char dev[] = "/dev/kvm";
static const char vm_dev[] = "anon_inode:kvm-vm";
-static const char vcpu_dev[] = "anon_inode:kvm-vcpu";
+static char vcpu_dev[] = "anon_inode:kvm-vcpu:0";
static size_t page_size;
extern const char code[];
@@ -165,6 +166,23 @@ run_kvm(const int vcpu_fd, struct kvm_run *const run, const size_t mmap_size,
}
}
+static int
+vcpu_dev_should_have_cpuid(int fd)
+{
+ int r = 0;
+ char *filename = NULL;
+ char buf[sizeof(vcpu_dev)];
+
+ if (asprintf(&filename, "/proc/%d/fd/%d", getpid(), fd) < 0)
+ error_msg_and_fail("asprintf");
+
+ if (readlink(filename, buf, sizeof(buf)) == sizeof(buf) - 1
+ && (memcmp(buf, vcpu_dev, sizeof(buf) - 1) == 0))
+ r = 1;
+ free(filename);
+ return r;
+}
+
int
main(void)
{
@@ -208,6 +226,15 @@ main(void)
(unsigned long) page_size, (unsigned long) page_size, mem);
int vcpu_fd = KVM_IOCTL(vm_fd, KVM_CREATE_VCPU, NULL);
+ if (!vcpu_dev_should_have_cpuid(vcpu_fd))
+ /*
+ * This is an older kernel that doesn't place a cpuid
+ * at the end of the dentry associated with vcpu_fd.
+ * Trim the cpuid part of vcpu_dev like:
+ * "anon_inode:kvm-vcpu:0" -> "anon_inode:kvm-vcpu"
+ */
+ vcpu_dev[strlen (vcpu_dev) - 2] = '\0';
+
printf("ioctl(%d<%s>, KVM_CREATE_VCPU, 0) = %d<%s>\n",
vm_fd, vm_dev, vcpu_fd, vcpu_dev);

View File

@ -0,0 +1,67 @@
From 18e5ea50a7136cb3686c5a7c51c111ccce73dc54 Mon Sep 17 00:00:00 2001
From: Iris Morelle <shadowm@wesnoth.org>
Date: Sun, 6 May 2018 16:10:42 -0300
Subject: [PATCH] i18n: Blind fix attempt for std::bad_cast being thrown on
Windows
Several reports on Steam and our forums point at std::bad_cast being
thrown when accessing Preferences and the Multiplayer menu amongst
others. It's possible that the locale configuration on those systems is
not quite right, and compare() and icompare() are able to throw
std::bad_cast when this happens as they both use std::use_facet().
Note that much like the macOS/iOS version of icompare(), this stopgap
patch doesn't attempt to provide any form of case-insensitive fallback
and just uses a case-sensitive comparison instead.
---
src/gettext_boost.cpp | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/src/gettext_boost.cpp b/src/gettext_boost.cpp
index 3cc7690d5ef..fb04ffeea90 100644
--- a/src/gettext_boost.cpp
+++ b/src/gettext_boost.cpp
@@ -423,7 +423,19 @@ void set_language(const std::string& language, const std::vector<std::string>* /
int compare(const std::string& s1, const std::string& s2)
{
std::lock_guard<std::mutex> lock(get_mutex());
- return std::use_facet<std::collate<char>>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size());
+
+ try {
+ return std::use_facet<std::collate<char>>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size());
+ } catch(const std::bad_cast&) {
+ static bool bad_cast_once = false;
+
+ if(!bad_cast_once) {
+ ERR_G << "locale set-up for compare() is broken, falling back to std::string::compare()\n";
+ bad_cast_once = true;
+ }
+
+ return s1.compare(s2);
+ }
}
int icompare(const std::string& s1, const std::string& s2)
@@ -433,8 +445,21 @@ int icompare(const std::string& s1, const std::string& s2)
return compare(s1, s2);
#else
std::lock_guard<std::mutex> lock(get_mutex());
- return std::use_facet<bl::collator<char>>(get_manager().get_locale()).compare(
+
+ try {
+ return std::use_facet<bl::collator<char>>(get_manager().get_locale()).compare(
bl::collator_base::secondary, s1, s2);
+ } catch(const std::bad_cast&) {
+ static bool bad_cast_once = false;
+
+ if(!bad_cast_once) {
+ ERR_G << "locale set-up for icompare() is broken, falling back to std::string::compare()\n";
+ bad_cast_once = true;
+ }
+
+ // FIXME: not even lazily case-insensitive
+ return s1.compare(s2);
+ }
#endif
}

View File

@ -29,14 +29,14 @@
(define-public miniupnpc
(package
(name "miniupnpc")
(version "2.0.20180503")
(version "2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://miniupnp.tuxfamily.org/files/"
name "-" version ".tar.gz"))
(sha256
(base32 "0dv906ibjdrv4wfrccj36z3lvpvgmcg0dwakhi66fqg6y5l97a5k"))))
(base32 "1ik440yspbp3clr4m01xsl9skwyrzcvzb5nbm3i0g9x53vhbb7z1"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))

View File

@ -55,14 +55,14 @@
(define-public webkitgtk
(package
(name "webkitgtk")
(version "2.20.1")
(version "2.20.2")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
(base32
"0nc9dj05dbk31ciip08b3rdsfja7ckc5mgagrj030fafza2k5r23"))))
"1qi6nnj4qidzija1am9xscwjxwfqwhiy7x39ndriqgzh86i97znz"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no tests

View File

@ -44,7 +44,7 @@
(define-public wget
(package
(name "wget")
(version "1.19.4")
(version "1.19.5")
(source
(origin
(method url-fetch)
@ -52,7 +52,7 @@
version ".tar.lz"))
(sha256
(base32
"16jmcqcasx3q9k4azssryli9qyxfq0sfijw998g8zp58cnwzzh1g"))))
"0xfaxmlnih7dhkyks5wi4vrn0n1xshmy6gx6fb2k1120sprydyr9"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
@ -37,12 +37,13 @@
#:use-module (gnu packages bootstrap)
#:use-module (gnu packages compression)
#:use-module (gnu packages guile)
#:autoload (gnu packages base) (tar)
#:use-module (gnu packages base)
#:autoload (gnu packages package-management) (guix)
#:autoload (gnu packages gnupg) (libgcrypt)
#:autoload (gnu packages guile) (guile2.0-json guile-json)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:export (compressor?
@ -397,9 +398,15 @@ Create a bundle of PACKAGE.\n"))
(read/eval-package-expression exp))
(x #f)))
(define (manifest-from-args opts)
(let ((packages (filter-map maybe-package-argument opts))
(manifest-file (assoc-ref opts 'manifest)))
(define (manifest-from-args store opts)
(let* ((transform (options->transformation opts))
(packages (map (match-lambda
(((? package? package) output)
(list (transform store package) output))
((? package? package)
(list (transform store package) "out")))
(filter-map maybe-package-argument opts)))
(manifest-file (assoc-ref opts 'manifest)))
(cond
((and manifest-file (not (null? packages)))
(leave (G_ "both a manifest and a package list were given~%")))
@ -409,33 +416,34 @@ Create a bundle of PACKAGE.\n"))
(else (packages->manifest packages)))))
(with-error-handling
(let* ((dry-run? (assoc-ref opts 'dry-run?))
(manifest (manifest-from-args opts))
(pack-format (assoc-ref opts 'format))
(name (string-append (symbol->string pack-format)
"-pack"))
(target (assoc-ref opts 'target))
(bootstrap? (assoc-ref opts 'bootstrap?))
(compressor (if bootstrap?
bootstrap-xz
(assoc-ref opts 'compressor)))
(tar (if bootstrap?
%bootstrap-coreutils&co
tar))
(symlinks (assoc-ref opts 'symlinks))
(build-image (match (assq-ref %formats pack-format)
((? procedure? proc) proc)
(#f
(leave (G_ "~a: unknown pack format")
format))))
(localstatedir? (assoc-ref opts 'localstatedir?)))
(with-store store
(parameterize ((%graft? (assoc-ref opts 'graft?))
(%guile-for-build (package-derivation
store
(if (assoc-ref opts 'bootstrap?)
%bootstrap-guile
(canonical-package guile-2.2)))))
(with-store store
(parameterize ((%graft? (assoc-ref opts 'graft?))
(%guile-for-build (package-derivation
store
(if (assoc-ref opts 'bootstrap?)
%bootstrap-guile
(canonical-package guile-2.2))
#:graft? (assoc-ref opts 'graft?))))
(let* ((dry-run? (assoc-ref opts 'dry-run?))
(manifest (manifest-from-args store opts))
(pack-format (assoc-ref opts 'format))
(name (string-append (symbol->string pack-format)
"-pack"))
(target (assoc-ref opts 'target))
(bootstrap? (assoc-ref opts 'bootstrap?))
(compressor (if bootstrap?
bootstrap-xz
(assoc-ref opts 'compressor)))
(tar (if bootstrap?
%bootstrap-coreutils&co
tar))
(symlinks (assoc-ref opts 'symlinks))
(build-image (match (assq-ref %formats pack-format)
((? procedure? proc) proc)
(#f
(leave (G_ "~a: unknown pack format")
format))))
(localstatedir? (assoc-ref opts 'localstatedir?)))
;; Set the build options before we do anything else.
(set-build-options-from-command-line store opts)

View File

@ -260,13 +260,18 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
#:extensions dependencies
#:guile-for-build guile-for-build))
(define *package-modules*
(scheme-node "guix-packages"
(define *core-package-modules*
(scheme-node "guix-packages-base"
`((gnu packages)
,@(scheme-modules* source "gnu/packages"))
(gnu packages base))
(list *core-modules* *extra-modules*)
#:extensions dependencies
#:extra-files ;all the non-Scheme files
;; Add all the non-Scheme files here. We must do it here so
;; that 'search-patches' & co. can find them. Ideally we'd
;; keep them next to the .scm files that use them but it's
;; difficult to do (XXX).
#:extra-files
(file-imports source "gnu/packages"
(lambda (file stat)
(and (eq? 'regular (stat:type stat))
@ -276,13 +281,21 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(not (string-suffix? "~" file)))))
#:guile-for-build guile-for-build))
(define *package-modules*
(scheme-node "guix-packages"
(scheme-modules* source "gnu/packages")
(list *core-modules* *extra-modules* *core-package-modules*)
#:extensions dependencies
#:guile-for-build guile-for-build))
(define *system-modules*
(scheme-node "guix-system"
`((gnu system)
(gnu services)
,@(scheme-modules* source "gnu/system")
,@(scheme-modules* source "gnu/services"))
(list *package-modules* *extra-modules* *core-modules*)
(list *core-package-modules* *package-modules*
*extra-modules* *core-modules*)
#:extensions dependencies
#:extra-files
(file-imports source "gnu/system/examples" (const #t))
@ -292,7 +305,8 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
(define *cli-modules*
(scheme-node "guix-cli"
(scheme-modules* source "/guix/scripts")
(list *core-modules* *extra-modules* *package-modules*
(list *core-modules* *extra-modules*
*core-package-modules* *package-modules*
*system-modules*)
#:extensions dependencies
#:guile-for-build guile-for-build))
@ -330,6 +344,7 @@ list of file-name/file-like objects suitable as inputs to 'imported-files'."
*cli-modules*
*system-modules*
*package-modules*
*core-package-modules*
*extra-modules*
*core-modules*))

View File

@ -35,18 +35,23 @@ export GUIX_BUILD_OPTIONS
# Build a tarball with no compression.
guix pack --compression=none --bootstrap guile-bootstrap
# Build a tarball (with compression).
guix pack --bootstrap guile-bootstrap
# Build a tarball (with compression). Check that '-e' works as well.
out1="`guix pack --bootstrap guile-bootstrap`"
out2="`guix pack --bootstrap -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`"
test -n "$out1"
test "$out1" = "$out2"
# Build a tarball with a symlink.
the_pack="`guix pack --bootstrap -S /opt/gnu/bin=bin guile-bootstrap`"
# Try to extract it.
# Try to extract it. Note: we cannot test whether /opt/gnu/bin/guile itself
# exists because /opt/gnu/bin may be an absolute symlink to a store item that
# has been GC'd.
test_directory="`mktemp -d`"
trap 'rm -rf "$test_directory"' EXIT
cd "$test_directory"
tar -xf "$the_pack"
test -x opt/gnu/bin/guile
test -L opt/gnu/bin
is_available () {
# Use the "type" shell builtin to see if the program is on PATH.
@ -81,3 +86,10 @@ guix pack --dry-run --bootstrap -f docker -S /opt/gnu=/ guile-bootstrap
# Build a tarball pack of cross-compiled software. Use coreutils because
# guile-bootstrap is not intended to be cross-compiled.
guix pack --dry-run --bootstrap --target=arm-unknown-linux-gnueabihf coreutils
# Make sure package transformation options are honored.
mkdir -p "$test_directory"
drv1="`guix pack -n guile 2>&1 | grep pack.*\.drv`"
drv2="`guix pack -n --with-source=guile=$test_directory guile 2>&1 | grep pack.*\.drv`"
test -n "$drv1"
test "$drv1" != "$drv2"