Merge branch 'master' into core-updates

This commit is contained in:
Mark H Weaver 2018-05-28 20:45:37 -04:00
commit 82b695b834
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
41 changed files with 1425 additions and 394 deletions

View File

@ -2843,6 +2843,7 @@ they can be placed anywhere in the file system hierarchy: in the example
above, users can unpack your tarball in their home directory and
directly run @file{./opt/gnu/bin/guile}.
@cindex Docker, build an image with guix pack
Alternatively, you can produce a pack in the Docker image format using
the following command:
@ -2856,6 +2857,22 @@ command. See the
@uref{https://docs.docker.com/engine/reference/commandline/load/, Docker
documentation} for more information.
@cindex Singularity, build an image with guix pack
@cindex SquashFS, build an image with guix pack
Yet another option is to produce a SquashFS image with the following
command:
@example
guix pack -f squashfs guile emacs geiser
@end example
@noindent
The result is a SquashFS file system image that can either be mounted or
directly be used as a file system container image with the
@uref{http://singularity.lbl.gov, Singularity container execution
environment}, using commands like @command{singularity shell} or
@command{singularity exec}.
Several command-line options allow you to customize your pack:
@table @code
@ -2874,6 +2891,11 @@ specified binaries and symlinks.
This produces a tarball that follows the
@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md,
Docker Image Specification}.
@item squashfs
This produces a SquashFS image containing all the specified binaries and
symlinks, as well as empty mount points for virtual file systems like
procfs.
@end table
@item --relocatable
@ -9210,20 +9232,31 @@ This is a string specifying the type of the file system---e.g.,
This designates the place where the file system is to be mounted.
@item @code{device}
This names the ``source'' of the file system. By default it is the name
of a node under @file{/dev}, but its meaning depends on the @code{title}
field described below.
This names the ``source'' of the file system. It can be one of three
things: a file system label, a file system UUID, or the name of a
@file{/dev} node. Labels and UUIDs offer a way to refer to file
systems without having to hard-code their actual device
name@footnote{Note that, while it is tempting to use
@file{/dev/disk/by-uuid} and similar device names to achieve the same
result, this is not recommended: These special device nodes are created
by the udev daemon and may be unavailable at the time the device is
mounted.}.
@item @code{title} (default: @code{'device})
This is a symbol that specifies how the @code{device} field is to be
interpreted.
@findex file-system-label
File system labels are created using the @code{file-system-label}
procedure, UUIDs are created using @code{uuid}, and @file{/dev} node are
plain strings. Here's an example of a file system referred to by its
label, as shown by the @command{e2label} command:
When it is the symbol @code{device}, then the @code{device} field is
interpreted as a file name; when it is @code{label}, then @code{device}
is interpreted as a file system label name; when it is @code{uuid},
@code{device} is interpreted as a file system unique identifier (UUID).
@example
(file-system
(mount-point "/home")
(type "ext4")
(device (file-system-label "my-home")))
@end example
UUIDs may be converted from their string representation (as shown by the
@findex uuid
UUIDs are converted from their string representation (as shown by the
@command{tune2fs -l} command) using the @code{uuid} form@footnote{The
@code{uuid} form expects 16-byte UUIDs as defined in
@uref{https://tools.ietf.org/html/rfc4122, RFC@tie{}4122}. This is the
@ -9235,22 +9268,13 @@ like this:
(file-system
(mount-point "/home")
(type "ext4")
(title 'uuid)
(device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))
@end example
The @code{label} and @code{uuid} options offer a way to refer to file
systems without having to hard-code their actual device
name@footnote{Note that, while it is tempting to use
@file{/dev/disk/by-uuid} and similar device names to achieve the same
result, this is not recommended: These special device nodes are created
by the udev daemon and may be unavailable at the time the device is
mounted.}.
However, when the source of a file system is a mapped device (@pxref{Mapped
When the source of a file system is a mapped device (@pxref{Mapped
Devices}), its @code{device} field @emph{must} refer to the mapped
device name---e.g., @file{/dev/mapper/root-partition}---and consequently
@code{title} must be set to @code{'device}. This is required so that
device name---e.g., @file{"/dev/mapper/root-partition"}.
This is required so that
the system knows that mounting the file system depends on having the
corresponding device mapping established.

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@ -31,6 +31,7 @@
#:use-module (gnu system)
#:use-module (gnu bootloader)
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages compression) (gzip)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
@ -303,9 +304,10 @@ code."
((? uuid? uuid)
(format #f "search --fs-uuid --set ~a"
(uuid->string device)))
((? string? label)
(format #f "search --label --set ~a" label))
(#f
((? file-system-label? label)
(format #f "search --label --set ~a"
(file-system-label->string label)))
((or #f (? string?))
#~(format #f "search --file --set ~a" #$file)))))
(define* (grub-configuration-file config entries

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
@ -473,17 +473,9 @@ were found."
(find-partition luks-partition-uuid-predicate))
(define* (canonicalize-device-spec spec #:optional (title 'any))
"Return the device name corresponding to SPEC. TITLE is a symbol, one of
the following:
'device', in which case SPEC is known to designate a device node--e.g.,
\"/dev/sda1\";
'label', in which case SPEC is known to designate a partition label--e.g.,
\"my-root-part\";
'uuid', in which case SPEC must be a UUID designating a partition;
'any', in which case SPEC can be anything.
"
(define (canonicalize-device-spec spec)
"Return the device name corresponding to SPEC, which can be a <uuid>, a
<file-system-label>, or a string (typically a /dev file name)."
(define max-trials
;; Number of times we retry partition label resolution, 1 second per
;; trial. Note: somebody reported a delay of 16 seconds (!) before their
@ -491,19 +483,6 @@ the following:
;; this long.
20)
(define canonical-title
;; The realm of canonicalization.
(if (eq? title 'any)
(if (string? spec)
;; The "--root=SPEC" kernel command-line option always provides a
;; string, but the string can represent a device, a UUID, or a
;; label. So check for all three.
(cond ((string-prefix? "/" spec) 'device)
((string->uuid spec) 'uuid)
(else 'label))
'uuid)
title))
(define (resolve find-partition spec fmt)
(let loop ((count 0))
(let ((device (find-partition spec)))
@ -518,23 +497,19 @@ the following:
(sleep 1)
(loop (+ 1 count))))))))
(case canonical-title
((device)
(match spec
((? string?)
;; Nothing to do.
spec)
((label)
((? file-system-label?)
;; Resolve the label.
(resolve find-partition-by-label spec identity))
((uuid)
(resolve find-partition-by-label
(file-system-label->string spec)
identity))
((? uuid?)
(resolve find-partition-by-uuid
(cond ((string? spec)
(string->uuid spec))
((uuid? spec)
(uuid-bytevector spec))
(else spec))
uuid->string))
(else
(error "unknown device title" title))))
(uuid-bytevector spec)
uuid->string))))
(define (check-file-system device type)
"Run a file system check of TYPE on DEVICE."
@ -615,8 +590,7 @@ run a file system check."
"")))))
(let ((type (file-system-type fs))
(options (file-system-options fs))
(source (canonicalize-device-spec (file-system-device fs)
(file-system-title fs)))
(source (canonicalize-device-spec (file-system-device fs)))
(mount-point (string-append root "/"
(file-system-mount-point fs)))
(flags (mount-flags->bit-mask (file-system-flags fs))))

View File

@ -507,9 +507,15 @@ upon error."
(error "pre-mount actions failed")))
(if root
;; The "--root=SPEC" kernel command-line option always provides a
;; string, but the string can represent a device, a UUID, or a
;; label. So check for all three.
(let ((root (cond ((string-prefix? "/" root) root)
((uuid root) => identity)
(else (file-system-label root)))))
(mount-root-file-system (canonicalize-device-spec root)
root-fs-type
#:volatile-root? volatile-root?)
#:volatile-root? volatile-root?))
(mount "none" "/root" "tmpfs"))
;; Mount the specified file systems.

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -55,7 +55,6 @@
(define (tmpfs directory)
(file-system
(device "none")
(title 'device)
(mount-point directory)
(type "tmpfs")
(check? #f)))

View File

@ -664,6 +664,8 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \
%D%/packages/patches/fcgi-2.4.0-poll.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
%D%/packages/patches/fifo-map-remove-catch.hpp.patch \
%D%/packages/patches/file-CVE-2017-1000249.patch \
%D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-test-xargs.patch \
@ -865,6 +867,8 @@ dist_patch_DATA = \
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \
%D%/packages/patches/libmad-frame-length.patch \
%D%/packages/patches/libmad-mips-newgcc.patch \
%D%/packages/patches/libmygpo-qt-fix-qt-5.11.patch \
%D%/packages/patches/libmygpo-qt-missing-qt5-modules.patch \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \

View File

@ -27,7 +27,9 @@
(define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages documentation)
#:use-module (gnu packages ed)
#:use-module (gnu packages flex)
@ -755,3 +757,37 @@ features, and more.")
;; Most of the code is MPLv2, with a few files under LGPLv2.1+ or BSD-3.
;; See 'COPYING.README' for details.
(license license:mpl2.0)))
(define-public xtensor
(package
(name "xtensor")
(version "0.15.9")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/QuantStack/xtensor/archive/"
version ".tar.gz"))
(sha256
(base32
"0mlsw4p1w5mh7pscddfdamz27zq3wml5qla3vbzgvif34vsqc8ra"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(native-inputs
`(("googletest" ,googletest)
("xtl" ,xtl)))
(arguments
`(#:configure-flags
'("-DBUILD_TESTS=ON")
#:test-target "xtest"))
(home-page "http://quantstack.net/xtensor")
(synopsis "C++ tensors with broadcasting and lazy computing")
(description "xtensor is a C++ library meant for numerical analysis with
multi-dimensional array expressions.
xtensor provides:
@itemize
@item an extensible expression system enabling lazy broadcasting.
@item an API following the idioms of the C++ standard library.
@item tools to manipulate array expressions and build upon xtensor.
@end itemize")
(license license:bsd-3)))

View File

@ -12,6 +12,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 okapi <okapi@firemail.cc>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -2069,6 +2070,7 @@ background file post-processing.")
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DSYSTEM_BOOST=on" "-DSYSTEM_YAMLCPP=on"
"-DSC_QT=off"
"-DSC_EL=off") ;scel is packaged individually as
;emacs-scel.
#:modules ((guix build utils)
@ -2129,8 +2131,7 @@ set(YAMLCPP_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/\
external_libraries/yaml-cpp/include)"))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
("qttools" ,qttools)))
`(("pkg-config" ,pkg-config)))
(inputs
`(("jack" ,jack-1)
("libsndfile" ,libsndfile)
@ -2143,12 +2144,7 @@ external_libraries/yaml-cpp/include)"))
("icu4c" ,icu4c)
("boost" ,boost)
("boost-sync" ,boost-sync)
("yaml-cpp" ,yaml-cpp)
("qtbase" ,qtbase) ;IDE support
("qtwebkit" ,qtwebkit)
("qtsensors" ,qtsensors)
("qtdeclarative" ,qtdeclarative)
("qtlocation" ,qtlocation)))
("yaml-cpp" ,yaml-cpp)))
(home-page "https://github.com/supercollider/supercollider")
(synopsis "Synthesis engine and programming language")
(description "SuperCollider is a synthesis engine (@code{scsynth} or

View File

@ -33,6 +33,7 @@
#:use-module (gnu packages disk)
#:use-module (gnu packages bison)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages disk)
#:use-module (gnu packages firmware)
@ -49,6 +50,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages sdl)
#:use-module (gnu packages swig)
#:use-module (gnu packages virtualization)
#:use-module (gnu packages web)
@ -350,7 +352,11 @@ tree binary files. These are board description files used by Linux and BSD.")
(native-inputs
`(("bc" ,bc)
("dtc" ,dtc)
("openssl" ,openssl)
("python-2" ,python-2)
("python2-coverage" ,python2-coverage)
("python2-pytest" ,python2-pytest)
("sdl" ,sdl)
("swig" ,swig)))
(build-system gnu-build-system)
(home-page "http://www.denx.de/wiki/U-Boot/")
@ -364,10 +370,34 @@ also initializes the boards (RAM etc).")
(inherit u-boot)
(name "u-boot-tools")
(arguments
`(#:make-flags '("HOSTCC=gcc" "NO_SDL=1")
#:test-target "test"
`(#:make-flags '("HOSTCC=gcc")
#:test-target "tests"
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile"
(("/bin/pwd") (which "pwd"))
(("/bin/false") (which "false")))
(substitute* "tools/dtoc/fdt_util.py"
(("'cc'") "'gcc'"))
(substitute* "test/run"
;; Make it easier to find test failures.
(("#!/bin/bash") "#!/bin/bash -x")
;; pytest doesn't find it otherwise.
(("test/py/tests/test_ofplatdata.py")
"tests/test_ofplatdata.py")
;; This test would require git.
(("\\./tools/patman/patman") (which "true"))
;; This test would require internet access.
(("\\./tools/buildman/buildman") (which "true")))
(substitute* "test/py/tests/test_sandbox_exit.py"
(("def test_ctrl_c")
"@pytest.mark.skip(reason='Guix has problems with SIGINT')
def test_ctrl_c"))
(substitute* "tools/binman/binman.py"
(("100%") "99%")) ; TODO: Find out why that is needed.
#t))
(replace 'configure
(lambda* (#:key make-flags #:allow-other-keys)
(call-with-output-file "configs/tools_defconfig"
@ -395,7 +425,16 @@ also initializes the boards (RAM etc).")
"tools/proftool"
"tools/fdtgrep"
"tools/env/fw_printenv"))
#t))))))
#t)))
(delete 'check)
(add-after 'install 'check
(lambda* (#:key make-flags test-target #:allow-other-keys)
(apply invoke "make" "mrproper" make-flags)
(setenv "SDL_VIDEODRIVER" "dummy")
(setenv "PAGER" "cat")
(apply invoke "make" test-target make-flags)
(symlink "build-sandbox_spl" "sandbox")
(invoke "test/image/test-imagetools.sh"))))))
(description "U-Boot is a bootloader used mostly for ARM boards. It
also initializes the boards (RAM etc). This package provides its
board-independent tools.")))
@ -443,7 +482,7 @@ board-independent tools.")))
"- ~A\n"
(string-drop-right file-name
suffix-len))))
(sort entries string<)))
(sort entries string-ci<)))
#f)))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -163,6 +163,8 @@ supervised tests.")
(base32
"1027cyfx5gsjkdkaf6c2wnjh68882grw8n672018cj3vs9lrhmix"))))))
;; When dependent packages upgraded to use newer version of catch, this one should
;; be removed.
(define-public catch-framework
(package
(name "catch")
@ -201,6 +203,24 @@ supervised tests.")
multi-paradigm automated test framework for C++ and Objective-C.")
(license license:boost1.0)))
(define-public catch-framework2
(package
(name "catch2")
(version "1.12.2")
(home-page "https://github.com/catchorg/Catch2")
(source (origin
(method url-fetch)
(uri (string-append home-page "/archive/v" version ".tar.gz"))
(sha256
(base32
"0g2ysxc6adqca5wh7nsicnxb9wkxg75cd5izjsl39rcj0v903gr7"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(synopsis "Automated test framework for C++ and Objective-C")
(description "Catch2 stands for C++ Automated Test Cases in Headers and is
a multi-paradigm automated test framework for C++ and Objective-C.")
(license license:boost1.0)))
(define-public cmdtest
(package
(name "cmdtest")

View File

@ -30,12 +30,16 @@
(define-module (gnu packages code)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages autogen)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages databases)
@ -43,15 +47,13 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages autogen)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages autotools)
#:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages bash))
#:use-module (gnu packages lua))
;;; Tools to deal with source code: metrics, cross-references, etc.
@ -648,3 +650,49 @@ deal with incomplete or malformed syntax. GNU indent offers several
extensions over the standard utility.")
(license license:gpl3+)
(home-page "https://www.gnu.org/software/indent/")))
(define-public amalgamate
(let* ((commit "c91f07eea1133aa184f652b8f1398eaf03586208")
(revision "0")
(version (git-version "1.1.1" revision commit)))
(package
(name "amalgamate")
(version version)
(home-page "https://github.com/edlund/amalgamate")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"0cllaraw8mxs8q2nr28nhgzkb417gj2wcklqg59w84f4lc78k3yb"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet
'(substitute* "test.sh"
(("test_command \"cc -Wall -Wextra -o source.out source.c\"" all)
"test_command \"gcc -Wall -Wextra -o source.out source.c\"")))))
(build-system gnu-build-system)
(inputs
`(("python" ,python-wrapper)))
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "amalgamate.py" bin))))
(replace 'check
(lambda _
(invoke "./test.sh"))))))
(synopsis "Tool for amalgamating C source and header files")
;; The package is indeed a script file, and the term "amalgamate.py" is
;; used by upstream.
(description "amalgamate.py aims to make it easy to use SQLite-style C
source and header amalgamation in projects.")
(license license:bsd-3))))

View File

@ -4,7 +4,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015 Jeff Mickey <j@codemac.net>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
@ -856,6 +856,23 @@ systems where low overhead is needed. This package allows you to create and
extract such file systems.")
(license license:gpl2+)))
;; We need this for building squashfs images with symlinks.
(define-public squashfs-tools-next
(let ((commit "fb33dfc32b131a1162dcf0e35bd88254ae10e265")
(revision "1"))
(package (inherit squashfs-tools)
(name "squashfs-tools-next")
(version (string-append "4.3-" revision (string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/plougher/squashfs-tools.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1x2skf8hxzfch978nzx5mh46d4hhi6gl22270hiarjszsjk3bnsx")))))))
(define-public pigz
(package
(name "pigz")

View File

@ -29,7 +29,9 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages llvm)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls))
@ -151,3 +153,121 @@ the same arithmetic operators as for single values. It also provides
accelerated implementation of common mathematical functions operating on
batches.")
(license license:bsd-3)))
(define-public fifo-map
(let* ((commit "0dfbf5dacbb15a32c43f912a7e66a54aae39d0f9")
(revision "0")
(version (git-version "1.1.1" revision commit)))
(package
(name "fifo-map")
(version version)
(home-page "https://github.com/nlohmann/fifo_map")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"0pi77b75kp0l7z454ihcd14nzpi3nc5m4nyjbsgy5f9bw3676196"))
(patches (search-patches "fifo-map-remove-catch.hpp.patch"
"fifo-map-fix-flags-for-gcc.patch"))
(file-name (git-file-name name version))
(modules '((guix build utils)))
(snippet '(delete-file-recursively "./test/thirdparty"))))
(native-inputs
`(("catch2" ,catch-framework2)))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "./unit")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(inc (string-append out "/include/fifo_map")))
(with-directory-excursion
(string-append "../" ,name "-" ,version "-checkout")
(install-file "src/fifo_map.hpp" inc)
#t)))))))
(synopsis "FIFO-ordered associative container for C++")
(description "Fifo_map is a C++ header only library for associative
container which uses the order in which keys were inserted to the container
as ordering relation.")
(license license:expat))))
(define-public json-modern-cxx
(package
(name "json-modern-cxx")
(version "3.1.2")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/nlohmann/json/archive/v" version ".tar.gz"))
(sha256
(base32
"0m5fhdpx2qll933db2nsi30nns3cifavzvijzz6mxhdkpmngmzz8"))
(file-name (string-append name "-" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file-recursively "./third_party")
(delete-file-recursively "./test/thirdparty")
(delete-file-recursively "./benchmarks/thirdparty")
;; Splits catch and fifo_map
(with-directory-excursion "test/src"
(let ((files (find-files "." ".*\\.cpp")))
(substitute* files
(("#include ?\"(catch.hpp)\"" all catch-hpp)
(string-append "#include <catch/" catch-hpp ">")))
(substitute* files
(("#include ?\"(fifo_map.hpp)\"" all fifo-map-hpp)
(string-append
"#include <fifo_map/" fifo-map-hpp ">")))))))))
(native-inputs
`(("amalgamate" ,amalgamate)))
(inputs
`(("catch2" ,catch-framework2)
("fifo-map" ,fifo-map)))
(home-page "https://github.com/nlohmann/json")
(build-system cmake-build-system)
(synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides
intutive syntax and trivial integration.")
(license license:expat)))
(define-public xtl
(package
(name "xtl")
(version "0.4.8")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/QuantStack/xtl/archive/"
version ".tar.gz"))
(sha256
(base32
"05bcz9y590b77bxcip0k31rgsapmkwqi1smvsvc84zz7m87d4jvy"))
(file-name (string-append name "-" version ".tar.gz"))))
(native-inputs
`(("googletest" ,googletest)
("json-modern-cxx" ,json-modern-cxx)))
(arguments
`(#:configure-flags
'("-DBUILD_TESTS=ON")
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* _
(with-directory-excursion "test"
(invoke "./test_xtl")
#t))))))
(home-page "https://github.com/QuantStack/xtl")
(build-system cmake-build-system)
(synopsis "C++ template library providing some basic tools")
(description "xtl is a C++ header-only template library providing basic
tools (containers, algorithms) used by other QuantStack packages.")
(license license:bsd-3)))

View File

@ -4968,7 +4968,7 @@ quotation from a collection of quotes.")
(description
"Xonotic-data provides the data files required by the game Xonotic.")
(license (list license:gpl2+
license:x11)))) ; server/rcon.pl
(license:x11-style "file://server/rcon.pl")))))
(define-public xonotic
(package
@ -5167,4 +5167,4 @@ development between them, and it aims to become the best possible
open-source FPS of its kind.")
(license (list license:gpl2+
license:bsd-3 ; /source/d0_blind_id folder and others
license:x11-style))))
(license:x11-style "" "See file rcon.pl.")))))

View File

@ -481,7 +481,15 @@ security standards.")
(mozilla-patch "icecat-bug-1452619.patch" "2b75d55ccf0e" "1g87aybw6ggv6hyk385bplv0lx63n020gwyq0d6d4pqld48hsm1i")
(mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9")
(mozilla-patch "icecat-CVE-2018-5150-pt10.patch" "3f2ec03c0405" "0w02952dlxd2gmwghck2nm4rjjmc5ylg62bw6m1rvi35kcr134lr")
(mozilla-patch "icecat-CVE-2018-5183.patch" "f729bf78fb3a" "0xkj6jwxwdqkvb5c7wi16b8cm8qrnlrd3s9jnd46jg03iykrx56f")))
(mozilla-patch "icecat-CVE-2018-5183.patch" "f729bf78fb3a" "0xkj6jwxwdqkvb5c7wi16b8cm8qrnlrd3s9jnd46jg03iykrx56f")
(mozilla-patch "icecat-bug-1437842.patch" "eb896089db47" "10lppk4x2d3pim71a36ky1dmg08rs5ckfiljwvfnr1cw6934qxl4")
(mozilla-patch "icecat-bug-1458270.patch" "2374dca97bde" "0y1g55wvj44nzb1qfkl271jcf8s1ik8lcl1785z0zim4qzn7qkpa")
(mozilla-patch "icecat-bug-1452576.patch" "70b6298e0c9e" "0n5jfy6c421dkybk8m18vd61y95zz0r64g1p1zlya3fps5knfaqi")
(mozilla-patch "icecat-bug-1459206-pt1.patch" "4ef79fe9b3b7" "1c32z1ki1i6xj1nbb0xlxwqnmz48ikmy8dmp37rkjz8ssn04wgfg")
(mozilla-patch "icecat-bug-1459206-pt2.patch" "9ad16112044a" "0ayya67sx7avcb8bplfdxb92l9g4mjrb1s3hby283llhqv0ikg9b")
(mozilla-patch "icecat-bug-1459162.patch" "11d8a87fb6d6" "1rkmdk18llw0x1jakix75hlhy0hpsmlminnflagbzrzjli81gwm1")
(mozilla-patch "icecat-bug-1451297.patch" "407b10ad1273" "16qzsfirw045xag96f1qvpdlibm8lwdj9l1mlli4n1vz0db91v9q")
(mozilla-patch "icecat-bug-1462682.patch" "e76e2e481b17" "0hnx13msjy28n3bpa2c24kpzalam4bdk5gnp0f9k671l48rs9yb3")))
(modules '((guix build utils)))
(snippet
'(begin

View File

@ -3,7 +3,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@ -53,6 +53,7 @@
#:use-module (gnu packages gnuzilla) ;nss
#:use-module (gnu packages ghostscript) ;lcms
#:use-module (gnu packages gnome)
#:use-module (gnu packages groovy)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages icu4c)
@ -4268,6 +4269,64 @@ from within Java, as well as an object registry that exposes Java objects to
these scripting language engines.")
(license license:asl2.0)))
(define-public java-commons-jxpath
(package
(name "java-commons-jxpath")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://apache/commons/jxpath/source/"
"commons-jxpath-" version "-src.tar.gz"))
(sha256
(base32
"1rpgg31ayn9fwr4bfi2i1ij0npcg79ad2fv0w9hacvawsyc42cfs"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "commons-jxpath.jar"
;; tests require more dependencies, including mockrunner which depends on old software
#:tests? #f
#:source-dir "src/java"))
(inputs
`(("java-tomcat" ,java-tomcat)
("java-jdom" ,java-jdom)
("java-commons-beanutils" ,java-commons-beanutils)))
(native-inputs
`(("java-junit" ,java-junit)))
(home-page "http://commons.apache.org/jxpath/")
(synopsis "Simple interpreter of an expression language called XPath.")
(description "The org.apache.commons.jxpath package defines a simple
interpreter of an expression language called XPath. JXPath applies XPath
expressions to graphs of objects of all kinds: JavaBeans, Maps, Servlet
contexts, DOM etc, including mixtures thereof.")
(license license:asl2.0)))
(define-public java-jsr250
(package
(name "java-jsr250")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://repo1.maven.org/maven2/"
"javax/annotation/javax.annotation-api/"
version "/javax.annotation-api-"
version "-sources.jar"))
(sha256
(base32
"08clh8n4n9wfglf75qsqfjs6yf79f7x6hqx38cn856pksszv50kz"))))
(build-system ant-build-system)
(arguments
`(#:tests? #f ; no tests included
#:jdk ,icedtea-8
#:jar-name "jsr250.jar"))
(home-page "https://jcp.org/en/jsr/detail?id=250")
(synopsis "Security-related annotations")
(description "This package provides annotations for security. It provides
packages in the @code{javax.annotation} and @code{javax.annotation.security}
namespaces.")
;; either cddl or gpl2 only, with classpath exception
(license (list license:cddl1.0
license:gpl2))))
(define-public java-jsr305
(package
(name "java-jsr305")
@ -9811,3 +9870,278 @@ and reporting) project dependencies. It is characterized by the following:
reporting and publication.
@end itemize")
(license license:asl2.0)))
(define-public java-eclipse-sisu-inject
(package
(name "java-eclipse-sisu-inject")
(version "0.3.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/eclipse/sisu.inject/"
"archive/releases/" version ".tar.gz"))
(sha256
(base32
"11rg6yw5nl13i65xsp4jxxgr341qcnnaan48p767h28kb07s0ajn"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "eclipse-sisu-inject.jar"
#:source-dir "org.eclipse.sisu.inject/src"
#:jdk ,icedtea-8
#:tests? #f)); no tests
(inputs
`(("java-guice" ,java-guice)
("java-guice-servlet" ,java-guice-servlet)
("java-javax-inject" ,java-javax-inject)
("java-tomcat" ,java-tomcat)
("java-junit" ,java-junit)
("java-slf4j-api" ,java-slf4j-api)
("java-jsr305" ,java-jsr305)
("java-jsr250" ,java-jsr250)
("java-cdi-api" ,java-cdi-api)
("java-osgi-framework" ,java-osgi-framework)
("java-osgi-util-tracker" ,java-osgi-util-tracker)
("java-testng" ,java-testng)))
(home-page "https://www.eclipse.org/sisu/")
(synopsis "Classpath scanning, auto-binding, and dynamic auto-wiring")
(description "Sisu is a modular JSR330-based container that supports
classpath scanning, auto-binding, and dynamic auto-wiring. Sisu uses
Google-Guice to perform dependency injection and provide the core JSR330
support, but removes the need to write explicit bindings in Guice modules.
Integration with other containers via the Eclipse Extension Registry and the
OSGi Service Registry is a goal of this project.")
(license license:epl1.0)))
(define-public java-eclipse-sisu-plexus
(package
(name "java-eclipse-sisu-plexus")
(version "0.3.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/eclipse/sisu.plexus/"
"archive/releases/" version ".tar.gz"))
(sha256
(base32
"0lbj7nxy5j0z71k407zbb82icfqh7midrfk0fb3fa3jzdjz0d9d9"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file (find-files "." ".*.jar"))
(rename-file "org.eclipse.sisu.plexus.tests/src"
"org.eclipse.sisu.plexus.tests/java")
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name "eclipse-sisu-plexus.jar"
#:source-dir "org.eclipse.sisu.plexus/src"
#:test-dir "org.eclipse.sisu.plexus.tests"
#:test-exclude
(list
;; This test fails probably because we can't generate the necessary
;; meta-inf files.
"**/PlexusLoggingTest.*"
;; FIXME: This test fails because of some injection error
"**/PlexusRequirementTest.*")
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-before 'build 'copy-resources
(lambda _
(install-file "org.eclipse.sisu.plexus/META-INF/plexus/components.xml"
"build/classes/META-INF/plexus")
#t))
(add-before 'check 'build-test-jar
(lambda _
(with-directory-excursion "org.eclipse.sisu.plexus.tests/resources/component-jar/src/main/"
(mkdir "build")
(with-directory-excursion "java"
(apply invoke "javac" "-cp"
(string-append (getenv "CLASSPATH")
":../../../../../build/classes")
(find-files "." ".*.java"))
(for-each (lambda (file) (install-file file (string-append "../build/" file)))
(find-files "." ".*.jar")))
(mkdir-p "build/META-INF/plexus")
(copy-file "resources/META-INF/plexus/components.xml"
"build/META-INF/plexus/components.xml")
(with-directory-excursion "build"
(invoke "jar" "cf" "../../../component-jar-0.1.jar" ".")))
(with-directory-excursion "org.eclipse.sisu.plexus.tests/"
(copy-recursively "META-INF" "../build/test-classes/META-INF")
(substitute* "java/org/eclipse/sisu/plexus/DefaultPlexusContainerTest.java"
(("resources/component-jar")
"org.eclipse.sisu.plexus.tests/resources/component-jar")))
#t)))))
(inputs
`(("java-plexus-classworlds" ,java-plexus-classworlds)
("java-plexus-util" ,java-plexus-utils)
("java-plexus-component-annotations" ,java-plexus-component-annotations)
("java-osgi-framework" ,java-osgi-framework)
("java-eclipse-sisu-inject" ,java-eclipse-sisu-inject)
("java-guice" ,java-guice)
("java-javax-inject" ,java-javax-inject)
("java-slf4j-api" ,java-slf4j-api)
("java-junit" ,java-junit)))
(native-inputs
`(("java-guava" ,java-guava)
("java-aopalliance" ,java-aopalliance)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)))
(home-page "https://www.eclipse.org/sisu/")
(synopsis "Plexus support for the sisu container")
(description "Sisu is a modular JSR330-based container that supports
classpath scanning, auto-binding, and dynamic auto-wiring. This package
adds Plexus support to the Sisu-Inject container.")
(license license:epl1.0)))
(define-public java-commons-compiler
(package
(name "java-commons-compiler")
(version "3.0.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/janino-compiler/janino")
(commit "91aa95686d1e4ca3b16a984a03a38686572331b2")))
(file-name (string-append name "-" version))
(sha256
(base32
"04hfdl59sgh20qkxzgnibvs8f9hy6n7znxwpk611y5d89977y62r"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file
(find-files "." "\\.jar$"))
#t))))
(build-system ant-build-system)
(arguments
`(#:jar-name "commons-compiler.jar"
#:source-dir "commons-compiler/src/main"
#:tests? #f)); no tests
(home-page "https://github.com/janino-compiler/janino")
(synopsis "Java compiler")
(description "Commons-compiler contains an API for janino, including the
@code{IExpressionEvaluator}, @code{IScriptEvaluator}, @code{IClassBodyEvaluator}
and @code{ISimpleCompiler} interfaces.")
(license license:bsd-3)))
(define-public java-janino
(package
(inherit java-commons-compiler)
(name "java-janino")
(arguments
`(#:jar-name "janino.jar"
#:source-dir "src/main/java"
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "janino"))))))
(inputs
`(("java-commons-compiler" ,java-commons-compiler)))
(native-inputs
`(("java-junit" ,java-junit)
("java-hamcrest-core" ,java-hamcrest-core)))
(description "Janino is a Java compiler. Janino can compile a set of
source files to a set of class files like @code{javac}, but also compile a
Java expression, block, class body or source file in memory, load the bytecode
and execute it directly in the same JVM. @code{janino} can also be used for
static code analysis or code manipulation.")))
(define-public java-logback-core
(package
(name "java-logback-core")
(version "1.2.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/qos-ch/logback/archive/v_"
version ".tar.gz"))
(sha256
(base32
"1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi"))
(modules '((guix build utils)))
(snippet
'(delete-file-recursively "logback-access/lib"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "logback.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:test-exclude
;; These tests fail with Unable to set MockitoNamingPolicy on cglib generator
;; which creates FastClasses
(list "**/AllCoreTest.*"
"**/AutoFlushingObjectWriterTest.*"
"**/PackageTest.*"
"**/ResilientOutputStreamTest.*"
;; And we still don't want to run abstract classes
"**/Abstract*.*")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "logback-core")
#t)))))
(inputs
`(("java-javax-mail" ,java-javax-mail)
("java-tomcat" ,java-tomcat)
("java-commons-compiler" ,java-commons-compiler)
("java-janino" ,java-janino)))
(native-inputs
`(("java-junit" ,java-junit)
("java-hamcrest-core" ,java-hamcrest-core)
("java-mockito-1" ,java-mockito-1)
("java-cglib" ,java-cglib)
("java-asm" ,java-asm)
("java-objenesis" ,java-objenesis)
("java-joda-time" ,java-joda-time)))
(home-page "https://logback.qos.ch")
(synopsis "Logging for java")
(description "Logback is intended as a successor to the popular log4j project.
This module lays the groundwork for the other two modules.")
;; Either epl1.0 or lgpl2.1
(license (list license:epl1.0
license:lgpl2.1))))
(define-public java-logback-classic
(package
(inherit java-logback-core)
(name "java-logback-classic")
(arguments
`(#:jar-name "logback-classic.jar"
#:source-dir "src/main/java"
#:test-dir "src/test"
#:tests? #f; tests require more packages: h2, greenmail, hsql, subethamail, slf4j, log4j, felix
#:jdk ,icedtea-8
#:phases
(modify-phases %standard-phases
(add-before 'configure 'chdir
(lambda _
(chdir "logback-classic")
#t))
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "build/classes")
(setenv "CLASSPATH"
(string-join
(apply append (map (lambda (input)
(find-files (assoc-ref inputs input)
".*.jar"))
'("java-logback-core" "java-slf4j-api"
"java-commons-compiler" "java-tomcat"
"groovy")))
":"))
(apply invoke "groovyc" "-d" "build/classes" "-j"
(find-files "src/main/" ".*\\.(groovy|java)$"))
(invoke "ant" "jar")
#t)))))
(inputs
`(("java-logback-core" ,java-logback-core)
("java-slf4j-api" ,java-slf4j-api)
,@(package-inputs java-logback-core)))
(native-inputs
`(("groovy" ,groovy)))
(description "Logback is intended as a successor to the popular log4j project.
This module can be assimilated to a significantly improved version of log4j.
Moreover, @code{logback-classic} natively implements the slf4j API so that you
can readily switch back and forth between logback and other logging frameworks
such as log4j or @code{java.util.logging} (JUL).")))

View File

@ -12,7 +12,7 @@
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
@ -80,6 +80,7 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages perl)
@ -2573,6 +2574,52 @@ similar in functionality to chroot, although pflask provides better isolation
thanks to the use of namespaces.")
(license license:bsd-2)))
(define-public singularity
(package
(name "singularity")
(version "2.5.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/singularityware/singularity/"
"releases/download/" version
"/singularity-" version ".tar.gz"))
(sha256
(base32
"0f28dgf2qcy8ljjfix7p9q36q12j7rxyicfzzi4n0fl8zr8ab88g"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--disable-suid"
"--localstatedir=/var")
#:phases
(modify-phases %standard-phases
;; Do not create directories in /var.
(add-after 'unpack 'disable-install-hook
(lambda _
(substitute* "Makefile.in"
(("\\$\\(MAKE\\) .*install-data-hook") ""))
#t))
(add-after 'unpack 'patch-reference-to-squashfs-tools
(lambda _
(substitute* "libexec/cli/build.exec"
(("if ! singularity_which mksquashfs") "if 0")
(("if ! mksquashfs")
(string-append "if ! " (which "mksquashfs"))))
#t)))))
(inputs
`(("libarchive" ,libarchive)
("python" ,python-wrapper)
("nettle" ,nettle)
("zlib" ,zlib)
("squashfs-tools" ,squashfs-tools)))
(home-page "https://singularity.lbl.gov/")
(synopsis "Container platform")
(description "Singularity is a container platform supporting a number of
container image formats. It can build SquashFS container images or import
existing Docker images. Singularity requires kernel support for container
isolation or root privileges.")
(license license:bsd-3)))
(define-public hdparm
(package
(name "hdparm")

View File

@ -548,14 +548,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
(define-public python-nbxmpp
(package
(name "python-nbxmpp")
(version "0.6.5")
(version "0.6.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbxmpp" version))
(sha256
(base32
"162dk6q4g61riam1p78bxwddwy4y2x1si34g5j9jv3rlc9xmhdcv"))))
"0bp60syqc3qp2i28phvadxlpwizjbr6bxw4m363p9yn5fl687qnh"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; no tests
@ -573,7 +573,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
(define-public gajim
(package
(name "gajim")
(version "1.0.2")
(version "1.0.3")
(source (origin
(method url-fetch)
(uri (string-append "https://gajim.org/downloads/"
@ -581,7 +581,7 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
"/gajim-" version ".tar.bz2"))
(sha256
(base32
"0wyyy3wrk7ka5xrsbafnajzf7iacg8vg3hi16pl4c5p104hdhjdw"))))
"0ds4rqwfrpj89a489w6yih8gx5zi7qa4ffgld950fk7s0qxvcfnb"))))
(build-system python-build-system)
(arguments
`(#:phases

View File

@ -187,20 +187,20 @@ score, keyboard, guitar, drum and controller views.")
;; We don't use the latest release because it depends on Qt4. Instead we
;; download the sources from the tip of the "qt5" branch.
(define-public clementine
(let ((commit "0a59257dc334b8df60a4d7d90b04f1766747efcf")
(revision "1"))
(let ((commit "4619a4c1ab3b17b13d4b2327ad477912917eaf36")
(revision "2"))
(package
(name "clementine")
(version (string-append "1.3.1-" revision "." (string-take commit 7)))
(version (git-version "1.3.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/clementine-player/Clementine.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(file-name (git-file-name name version))
(sha256
(base32
"0cdcj7di7j9jgzc1ihjna1a5df64f9hnmx7b9kh8rlg76hc0l0hi"))
"1hximk3q0p8nw8is5w7215xgkb7k4flnfyr0pdz9svfwvcm05w1i"))
(modules '((guix build utils)))
(snippet
'(begin
@ -264,7 +264,6 @@ score, keyboard, guitar, drum and controller views.")
("gst-plugins-base" ,gst-plugins-base)
("libcdio" ,libcdio)
("libmygpo-qt" ,libmygpo-qt)
("libechonest" ,libechonest)
;; TODO: Package libgpod.
("libmtp" ,libmtp)
("libxml2" ,libxml2)
@ -3814,33 +3813,6 @@ OSC connections.")
the electronic or dubstep genre.")
(license license:gpl3+)))
(define-public libechonest
(package
(name "libechonest")
(version "2.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://anongit.kde.org/libechonest.git")
(commit version)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0xbavf9f355dl1d3qv59x4ryypqrdanh9xdvw2d0q66l008crdkq"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; Tests require Internet access
#:configure-flags '("-DBUILD_WITH_QT4=OFF")))
(inputs
`(("qtbase" ,qtbase)
("qjson" ,qjson)))
(home-page "https://projects.kde.org/projects/playground/libs/libechonest")
(synopsis "C++/Qt classes to interface with The Echo Nest API")
(description "@code{libechonest} is a collection of C++/Qt classes
designed to make a developer's life easy when trying to use the APIs provided
by The Echo Nest.")
(license license:gpl2+)))
(define-public libmygpo-qt
(package
(name "libmygpo-qt")
@ -3851,12 +3823,19 @@ by The Echo Nest.")
"libmygpo-qt/libmygpo-qt." version ".tar.gz"))
(sha256
(base32
"1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))))
"1kg18qrq2rsswgzhl65r3mlyx7kpqg4wwnbp4yiv6svvmadmlxl2"))
(patches (search-patches "libmygpo-qt-fix-qt-5.11.patch"
"libmygpo-qt-missing-qt5-modules.patch"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("qt" ,qtbase)))
(arguments
`(#:configure-flags '("-DMYGPO_BUILD_TESTS=ON")
;; TODO: Enable tests when https://github.com/gpodder/gpodder/issues/446
;; is fixed.
#:tests? #f))
(home-page "http://wiki.gpodder.org/wiki/Libmygpo-qt")
(synopsis "Qt/C++ library wrapping the gpodder web service")
(description "@code{libmygpo-qt} is a Qt/C++ library wrapping the

View File

@ -21,6 +21,7 @@
;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Tonton <tonton@riseup.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -590,7 +591,21 @@ of the same name.")
(assoc-ref %build-inputs "portaudio"))
(string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
(string-append "--with-snappy=" (assoc-ref %build-inputs "snappy"))
(string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))))
(string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda _
;; Fix build against Qt 5.11.
(substitute* "ui/qt/packet_format_group_box.cpp"
(("#include <QStyle>") "#include <QStyle>
#include <QStyleOption>"))
(substitute* "ui/qt/time_shift_dialog.cpp"
(("#include <ui/time_shift.h>") "#include <ui/time_shift.h>
#include <QStyleOption>"))
(substitute* "ui/qt/wireless_frame.cpp"
(("#include <QProcess>") "#include <QProcess>
#include <QAbstractItemView>")))))))
(synopsis "Network traffic analyzer")
(description "Wireshark is a network protocol analyzer, or @dfn{packet
sniffer}, that lets you capture and interactively browse the contents of

View File

@ -0,0 +1,39 @@
From 0871db30bd73d112a434f54572d34cca28de61c5 Mon Sep 17 00:00:00 2001
From: fis <ybbs.daans@hotmail.com>
Date: Sat, 26 May 2018 22:58:37 +0800
Subject: [PATCH 2/2] * CMakeLists.txt: Fix flags for gcc.
---
CMakeLists.txt | 18 ++----------------
1 file changed, 2 insertions(+), 16 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eba147b..d60dcef 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,20 +6,6 @@ add_executable(unit src/fifo_map.hpp test/unit.cpp)
target_include_directories(unit PRIVATE "test" "src")
-if(MSVC)
- set(CMAKE_CXX_FLAGS
- "/EHsc"
- )
+set(CMAKE_CXX_FLAGS "-std=c++11 -fpermissive")
- STRING(REPLACE "/O2" "/Od" CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
-
- add_definitions(-D_SCL_SECURE_NO_WARNINGS)
-else(MSVC)
- set(CMAKE_CXX_FLAGS
- "-std=c++11 -stdlib=libc++"
- )
-endif(MSVC)
-
-include_directories(
- src test
-)
+include_directories(src test)
--
2.14.3

View File

@ -0,0 +1,30 @@
From 20dcf90fd02511f8d78ea7cc8ac82c121fd2f6cf Mon Sep 17 00:00:00 2001
From: fis <ybbs.daans@hotmail.com>
Date: Sat, 26 May 2018 22:56:29 +0800
Subject: [PATCH 1/2] * CMakeLists.txt: Remove catch.hpp.
---
CMakeLists.txt | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6603c7f..eba147b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,11 +2,9 @@ cmake_minimum_required(VERSION 2.8)
project(fifo_map LANGUAGES CXX)
-add_executable(unit
- src/fifo_map.hpp test/thirdparty/catch/catch.hpp test/unit.cpp
-)
+add_executable(unit src/fifo_map.hpp test/unit.cpp)
-target_include_directories(unit PRIVATE "test" "src" "test/thirdparty")
+target_include_directories(unit PRIVATE "test" "src")
if(MSVC)
set(CMAKE_CXX_FLAGS
--
2.14.3

View File

@ -0,0 +1,78 @@
From 1b53767b988b339aac8b353327a1542b2a0c0610 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
Date: Sun, 15 Apr 2018 22:29:33 +0200
Subject: [PATCH] Fix build with Qt 5.11_beta3 (dropping qt5_use_modules)
---
CMakeLists.txt | 3 ---
src/CMakeLists.txt | 8 ++++++--
tests/CMakeLists.txt | 12 +++++++++---
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index eb006d9..fa4b0cb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -34,9 +34,6 @@ else()
set( QT_DONT_USE_QTGUI TRUE )
include( ${QT_USE_FILE} )
- macro(qt5_use_modules)
- endmacro()
-
macro(qt_wrap_cpp)
qt4_wrap_cpp(${ARGN})
endmacro()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 802125b..253e81e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -79,9 +79,13 @@ QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${LIBMYGPO_QT_MOC_H} )
add_library( ${MYGPO_QT_TARGET_NAME} SHARED ${LIBMYGPO_QT_SRC} ${LIBMYGPO_QT_MOC_SRC} )
-target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QJSON_LIBRARIES} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} )
set_target_properties( ${MYGPO_QT_TARGET_NAME} PROPERTIES VERSION ${MYGPO_QT_VERSION} SOVERSION ${MYGPO_QT_SONAME} DEFINE_SYMBOL MYGPO_MAKEDLL)
-qt5_use_modules( ${MYGPO_QT_TARGET_NAME} Core Network )
+
+if( NOT BUILD_WITH_QT4 )
+ target_link_libraries( ${MYGPO_QT_TARGET_NAME} Qt5::Core Qt5::Network)
+else()
+ target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QJSON_LIBRARIES})
+endif()
install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${LIB_INSTALL_DIR} )
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index a3e3223..4f77158 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -11,11 +11,15 @@ include_directories( ${QJSON_INCLUDE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CU
# UrlBuilder library
add_library( UrlBuilder ${TESTOBJECTS_SRCDIR}/UrlBuilder.cpp ${TESTOBJECTS_SRCDIR}/Config.cpp )
-qt5_use_modules( UrlBuilder Core )
+if( NOT BUILD_WITH_QT4 )
+ target_link_libraries( UrlBuilder Qt5::Core )
+endif()
# JSONCreator library
QT_WRAP_CPP(LIBMYGPO_QT_MOC_SRC ${TESTOBJECTS_SRCDIR}/EpisodeAction.h ${TESTOBJECTS_SRCDIR}/EpisodeAction_p.h )
add_library( JsonCreator ${TESTOBJECTS_SRCDIR}/JsonCreator.cpp ${TESTOBJECTS_SRCDIR}/EpisodeAction.cpp ${TESTOBJECTS_SRCDIR}/qjsonwrapper/Json.cpp ${LIBMYGPO_QT_MOC_SRC})
-qt5_use_modules( JsonCreator Core Network )
+if( NOT BUILD_WITH_QT4 )
+ target_link_libraries( JsonCreator Qt5::Core Qt5::Network )
+endif()
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
@@ -25,7 +29,9 @@ macro(add_libmygpo_test _source)
add_executable(${_name} ${_source} ${${_name}_MOC_SRC})
target_link_libraries(${_name} ${QT_QTCORE_LIBRARY} ${QT_QTTEST_LIBRARY} ${QT_QTNETWORK_LIBRARY})
add_test(${_name}-test ${EXECUTABLE_OUTPUT_PATH}/${_name})
- qt5_use_modules(${_name} Network Test)
+ if( NOT BUILD_WITH_QT4 )
+ target_link_libraries(${_name} Qt5::Network Qt5::Test)
+ endif()
endmacro(add_libmygpo_test)
add_libmygpo_test( UrlBuilderTest.cpp )

View File

@ -0,0 +1,51 @@
From 0d76d960727018bddf04c6cc89552af69aaa7e55 Mon Sep 17 00:00:00 2001
From: Andreas Sturmlechner <andreas.sturmlechner@gmail.com>
Date: Sun, 15 Apr 2018 22:20:34 +0200
Subject: [PATCH] Add missing Qt5Network, Qt5Test, make BUILD_WITH_QT4 more
strict
---
CMakeLists.txt | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2a1f652..eb006d9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,25 +5,25 @@ project( libmygpo-qt )
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII" )
-option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4 no matter if Qt5 was found" OFF)
+option(BUILD_WITH_QT4 "Build libmygpo-qt with Qt4" OFF)
if( NOT BUILD_WITH_QT4 )
- find_package(Qt5Core QUIET)
- if( Qt5Core_DIR )
- set(MYGPO_QT_VERSION_SUFFIX 5)
-
- macro(qt_wrap_cpp)
- qt5_wrap_cpp(${ARGN})
- endmacro()
+ if( MYGPO_BUILD_TESTS )
+ find_package(Qt5 REQUIRED COMPONENTS Core Network Test CONFIG)
+ else()
+ find_package(Qt5 REQUIRED COMPONENTS Core Network CONFIG)
endif()
+ set(MYGPO_QT_VERSION_SUFFIX 5)
+
+ macro(qt_wrap_cpp)
+ qt5_wrap_cpp(${ARGN})
+ endmacro()
# pkg-config names of QtCore and QtNetwork are Qt5Core and Qt5Network for
# Qt5
set(MYGPO_QT_MAJOR_VERSION "5")
set(MYGPO_QT4_QJSON_DEP "")
-endif()
-
-if( NOT Qt5Core_DIR )
+else()
message(STATUS "Could not find Qt5, searching for Qt4 instead...")
message(STATUS "Qt4 Support is deprecated, building with Qt4 is no longer officially supported")
if( MYGPO_BUILD_TESTS )

View File

@ -372,16 +372,16 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(define-public qtbase
(package
(name "qtbase")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1kq422vb2zaic099pgzwk7c0qzgc3xap6qahw5vklrq0mgivvrk9"))
"0rny87ypnkkvyp9p76nim77v6np0cdf1dbjfmcilklzphkdlcvpd"))
;; Use TZDIR to avoid depending on package "tzdata".
(patches (search-patches "qtbase-use-TZDIR.patch"))
(modules '((guix build utils)))
@ -392,7 +392,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(lambda (dir)
(delete-file-recursively (string-append "src/3rdparty/" dir)))
(list "double-conversion" "freetype" "harfbuzz-ng"
"libpng" "libjpeg" "pcre2" "sqlite" "xcb"
"libpng" "libjpeg" "pcre2" "xcb"
"xkbcommon" "zlib"))
#t))))
(build-system gnu-build-system)
@ -434,7 +434,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
("pcre2" ,pcre2)
("postgresql" ,postgresql)
("pulseaudio" ,pulseaudio)
("sqlite" ,sqlite)
;("sqlite" ,sqlite)
("unixodbc" ,unixodbc)
("xcb-util" ,xcb-util)
("xcb-util-image" ,xcb-util-image)
@ -477,7 +477,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(("NO_DEFAULT_PATH") ""))
;; do not pass "--enable-fast-install", which makes the
;; configure process fail
(zero? (system*
(invoke
"./configure"
"-verbose"
"-prefix" out
@ -495,7 +495,10 @@ developers using C++ or QML, a CSS & JavaScript like language.")
"-no-compile-examples"
;; Most "-system-..." are automatic, but some use
;; the bundled copy by default.
"-system-sqlite"
;; System sqlite fails on 5.10+
;;.obj/qsql_sqlite.o: In function `QSQLiteResultPrivate::initColumns(bool)':
;;qsql_sqlite.cpp:(.text+0x190c): undefined reference to `sqlite3_column_table_name16'
;"-system-sqlite"
"-system-harfbuzz"
"-system-pcre"
;; explicitly link with openssl instead of dlopening it
@ -512,7 +515,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
'()
'("-no-sse2"))
"-no-mips_dsp"
"-no-mips_dspr2")))))
"-no-mips_dspr2"))))
(add-after 'install 'patch-mkspecs
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -602,16 +605,16 @@ developers using C++ or QML, a CSS & JavaScript like language.")
(define-public qtsvg
(package (inherit qtbase)
(name "qtsvg")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0yh3an9rc7fh013cw3bm318ap6428icsmnj38hhg1w6lpwr2gwm2"))))
"0m0zglp0m5gv75ivma6l3hm8brb0cf44dhbc6lqwfdwacxhgx3jb"))))
(propagated-inputs `())
(native-inputs `(("perl" ,perl)))
(inputs
@ -664,7 +667,7 @@ HostData=lib/qt5
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Valid QT_BUILD_PARTS variables are:
;; libs tools tests examples demos docs translations
(zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests"))))
(invoke "qmake" "QT_BUILD_PARTS = libs tools tests")))
(add-before 'check 'set-display
(lambda _
;; make Qt render "offscreen", required for tests
@ -677,18 +680,20 @@ HostData=lib/qt5
(define-public qtimageformats
(package (inherit qtsvg)
(name "qtimageformats")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1nfxvf96wh1smdmcsk4m9f7zg69fgp844f8772qpv6v4m20p1qb9"))
"0w0yy7zzln3v7dm7ksjxkzhq8r0a9nwk823wv4f1x7vsa3pnyh2q"))
(modules '((guix build utils)))
(snippet '(begin (delete-file-recursively "src/3rdparty")
(snippet
'(begin
(delete-file-recursively "src/3rdparty")
#t))))
(native-inputs `())
(inputs
@ -706,16 +711,16 @@ support for MNG, TGA, TIFF and WBMP image formats.")))
(define-public qtx11extras
(package (inherit qtsvg)
(name "qtx11extras")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1a125fi7lbxfps207i12jammm4cjbiawmp4sqa3bxqah8p21i6w7"))))
"13vbx61wcd8pnpgk3j5r665pm03s7jp2s98apvc6fhp1njlr0rhi"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -730,16 +735,16 @@ from within Qt 5.")))
(define-public qtxmlpatterns
(package (inherit qtsvg)
(name "qtxmlpatterns")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0ybz0i3wblvrm958s9ykp3a79bakjbb7k74q71mqaaswkv9imxgs"))))
"13nj2pa706sy874bqbv7y94ypicr4k09x6n2jyxkw93flb5pi8qr"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:phases phases)
@ -759,16 +764,16 @@ xmlpatternsvalidator.")))
(define-public qtdeclarative
(package (inherit qtsvg)
(name "qtdeclarative")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0r9dhfc6qmxlzn2v9r6z6n2mcq6pv1nmyh91g9hcdlkx40xqlqyw"))))
"1h2pbyr7dnak4q96373xpa6gk6rl528rnqima8xnvhdi2y5kgagf"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -791,27 +796,16 @@ with JavaScript and C++.")))
(define-public qtconnectivity
(package (inherit qtsvg)
(name "qtconnectivity")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"12qckqz6ldvn1czkkigadmgl07yk4gs74hy4ifh4hmpm7cv519yv"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'disable-failing-tests
;; this test fails on armhf and aarch64
(lambda _
(substitute* "tests/auto/qndefnfcsmartposterrecord/tst_qndefnfcsmartposterrecord.cpp"
(("QCOMPARE\\(record.action\\(\\), QNdefNfcSmartPosterRecord::UnspecifiedAction")
"//QCOMPARE(record.action(), QNdefNfcSmartPosterRecord::UnspecifiedAction"))
#t))))))
"0wqq5q5saf007aphvpn5pvj6l0qp0z7wxvfba6v9iq5ylyqm6bnd"))))
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)
@ -826,16 +820,16 @@ with Bluetooth and NFC.")))
(define-public qtwebsockets
(package (inherit qtsvg)
(name "qtwebsockets")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"00786d9m8skj68n5x9d8151zmmskx7ckhgcdd08hs9nly04h55vj"))))
"1drr6nxxbkwpmz39bhyfmmsqjhy11bj3w1nc3q9dwhpcbf04an3x"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -853,16 +847,16 @@ consume data received from the server, or both.")))
(define-public qtsensors
(package (inherit qtsvg)
(name "qtsensors")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0n6lkkn7c9x8vcplmfvkx7jq6najh2mrwnfb3blrmkmpash3lgvr"))))
"1az22rdkpc1m44qb3dyh7cpiprplkvynzjr629ai05i8ngbfdi0g"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:parallel-tests? _ #f) #f) ; can lead to race condition
@ -886,16 +880,16 @@ recognition API for devices.")))
(define-public qtmultimedia
(package (inherit qtsvg)
(name "qtmultimedia")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0x2f3vpax7rq0lxnncbp5b248bxdicrwn8hv4hsas2g2283s0lj9"))
"0g4x1w251imq58zp1px6yschwj6icsxzwl3fy7pjfbgd27qjhlzg"))
(modules '((guix build utils)))
(snippet
'(begin
@ -912,9 +906,9 @@ recognition API for devices.")))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests"
(invoke "qmake" "QT_BUILD_PARTS = libs tools tests"
(string-append "QMAKE_LFLAGS_RPATH=-Wl,-rpath," out "/lib -Wl,-rpath,")
(string-append "PREFIX=" out))))))))
(string-append "PREFIX=" out)))))))
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(native-inputs
`(("perl" ,perl)
@ -937,20 +931,21 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
(define-public qtwayland
(package (inherit qtsvg)
(name "qtwayland")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0x4q17k23akf14i3pyllr96s8lvprk1x006wp0mi5rhk4199cx1z"))
"09s1ckqj0cgjmmi7jylsf039vgzlq7i9rr4swb590fkz427lx0b8"))
(modules '((guix build utils)))
(snippet
;; The examples try to build and cause the build to fail
'(begin (delete-file-recursively "examples")
'(begin
(delete-file-recursively "examples")
#t))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
@ -988,16 +983,16 @@ compositor libraries.")))
(define-public qtserialport
(package (inherit qtsvg)
(name "qtserialport")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"172i5cpqnk0c3m0hg08hgj15qvsyd1xvw9yf2dqicg3l10lqwg8c"))))
"1cbf1jsginp5p3y17cyb6dfhsafxal0bn9pya6aybz0q799zgvl5"))))
(native-inputs `(("perl" ,perl)))
(inputs
`(("qtbase" ,qtbase)
@ -1022,16 +1017,16 @@ interacting with serial ports from within Qt.")))
(define-public qtserialbus
(package (inherit qtsvg)
(name "qtserialbus")
(version "5.9.5")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0gz5xsskv02yy078yffxyn8rdlklf4rsgnqrziyz5ywxwdh96gn5"))))
"0r3crk7gw0xs6wk1gvw2k8r9s9vam3sfwrji1njhswavii9fbp85"))))
(inputs
`(("qtbase" ,qtbase)
("qtserialport" ,qtserialport)))
@ -1043,16 +1038,16 @@ and others.")))
(define-public qtwebchannel
(package (inherit qtsvg)
(name "qtwebchannel")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1acs0fa5rxm3cir0lydc9a8685qagf1786vkssv51wk3v9r3lc4h"))))
"05fa5pwvk24cjp8m6pbw3ma95vnls762crpjdgvygfk0h8xilxmh"))))
(native-inputs
`(("perl" ,perl)
("qtdeclarative" ,qtdeclarative)
@ -1067,16 +1062,16 @@ popular web engines, Qt WebKit 2 and Qt WebEngine.")))
(define-public qtlocation
(package (inherit qtsvg)
(name "qtlocation")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"186jzv19v674n8jmm13v5xwv211lygih5657rlvbhc1s4jq6iv9p"))))
"074cjqhr14mqlsqj9rzagzdcqnayyichp31lq02k05q07wg93xi8"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -1097,16 +1092,16 @@ positioning and geolocation plugins.")))
(define-public qttools
(package (inherit qtsvg)
(name "qttools")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"11vfk6c8snsqwqj1xk53c0h2mkqr4gfa9kinp8py56x7sn15galm"))))
"1nb77bfs63nyy0wkhsci9qbqmahncy3sdcrwj4qr1prc4y2cm4wx"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -1124,16 +1119,16 @@ that helps in Qt development.")))
(define-public qtscript
(package (inherit qtsvg)
(name "qtscript")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0lz0iv1baah7cxrpyiqzqp4fxxf75i21qd06ha7r5d80hq3xlia0"))
"1ib8a5gsxarbm2j94j5d097ly3ap4snqkx2imz3sl6xk6gknm4i5"))
(patches (search-patches "qtscript-disable-tests.patch"))))
(native-inputs
`(("perl" ,perl)
@ -1148,16 +1143,16 @@ ECMAScript and Qt.")))
(define-public qtquickcontrols
(package (inherit qtsvg)
(name "qtquickcontrols")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"12yrmv6afjbd1fw3r8zjdrbq5l7cy7k5bxcyiv1m97gykfh0b8hn"))))
"01ziibf4afdhb5b3gfci8maprmviqwhdvma2z1jlq2ck45cpsqi6"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -1172,16 +1167,16 @@ can be used to build complete interfaces in Qt Quick.")))
(define-public qtquickcontrols2
(package (inherit qtsvg)
(name "qtquickcontrols2")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0334ayansm743kf113rs3k9hi9qb6giscfx9xig3y1z7asisfa0m"))))
"1hsa8n4dlqpyz9xq2kq1hsxrxsjc7ywzzfhqijylgzzclvlqgb7y"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -1197,16 +1192,16 @@ not available.")))
(define-public qtgraphicaleffects
(package (inherit qtsvg)
(name "qtgraphicaleffects")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1vxq4j7cb5cya1g234rxhfb361n45gp8c70gj8pc03njswkm7xwp"))))
"0xzr4421w7idlgndxnd68wwc2asabycjiskkyl1f8nwqv34lcy3j"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -1230,14 +1225,15 @@ coloring, and many more.")))
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0zwch9vn17f3bpy300jcfxx6cx9qymk5j7khx0x9k1xqid4166c3"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "tools/opengldummy/3rdparty")
'(begin
(delete-file-recursively "tools/opengldummy/3rdparty")
#t))))
(native-inputs `())
(inputs
@ -1251,16 +1247,16 @@ backend for QtQuick scene graph.")
(define-public qtgamepad
(package (inherit qtsvg)
(name "qtgamepad")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1ci6aapq0i8qbzkn9xxvxn1n81z3y28yrlyzw0anqzj9qp97cl6f"))))
"0g52c03gdgz57h7szdxvc5hdy45l7q7m29yfzhwqc57hwdfl98bi"))))
(native-inputs
`(("perl" ,perl)
("pkg-config" ,pkg-config)))
@ -1281,16 +1277,16 @@ and mobile applications targeting TV-like form factors.")))
(define-public qtscxml
(package (inherit qtsvg)
(name "qtscxml")
(version "5.9.5")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0knp328cinawz6xbhf9wd6h6gbwp74rb5cpmlr8gv3g5a7fjlsh1"))
"00wb89ris8fyivhz9qpqn72mzpkh6mqdjss82j3q10g3c142072k"))
(modules '((guix build utils)))
(snippet
'(begin
@ -1312,16 +1308,16 @@ also contains functionality to support data models and executable content.")))
(define-public qtpurchasing
(package (inherit qtsvg)
(name "qtpurchasing")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"08sk8vw16pa1qv36rfr9dsbzlwlv6kznfpsq8wfabhkgbfl6awqs"))))
"1c92yv2yi38sic06nyr9r6zpq3y4sxnasmj14d3jmg50gc1ncqfs"))))
(inputs
`(("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)))
@ -1332,19 +1328,20 @@ purchasing goods and services.")))
(define-public qtcanvas3d
(package (inherit qtsvg)
(name "qtcanvas3d")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0agdxgk7knf6zkjdi6316y2k9zq72wcg5zn3cbhw4hzjw81qadgg"))
"1kqcaks6lkz8cp9s3pwrvgrr8381rjzf5fbf2bzshdw7psphxiiz"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "examples/canvas3d/3rdparty")
'(begin
(delete-file-recursively "examples/canvas3d/3rdparty")
#t))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
@ -1356,8 +1353,8 @@ purchasing goods and services.")))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "qmake" "QT_BUILD_PARTS = libs tools"
(string-append "PREFIX=" out))))))))
(invoke "qmake" "QT_BUILD_PARTS = libs tools"
(string-append "PREFIX=" out)))))))
((#:tests? _ #f) #f))) ; TODO: Enable the tests
(native-inputs `())
(inputs
@ -1370,16 +1367,16 @@ drawing calls from Qt Quick JavaScript.")))
(define-public qtcharts
(package (inherit qtsvg)
(name "qtcharts")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1rykb72gr95rxd0rvbl846ys8xvyyhrms1jz7l4hlwp6zn1jkxvm"))))
"0lg39vd6i0l76spjz6bhb1kkpbk2mgc0hxccj7733xxbxaz14vn4"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -1397,16 +1394,16 @@ selecting one of the charts themes.")
(define-public qtdatavis3d
(package (inherit qtsvg)
(name "qtdatavis3d")
(version "5.9.5")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0i1zd7lcakhicfpqj7dlw8hzk8x5i4ddk1427jhxcpja48l4jxy5"))))
"1s7gmgh6g3aia74yiqahffrc6n8f4491vb7g3i4i10ilandipg34"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:tests? _ #f) #f))) ; TODO: Enable the tests
@ -1424,16 +1421,16 @@ customized by using themes or by adding custom items and labels to them.")
(define-public qtnetworkauth
(package (inherit qtsvg)
(name "qtnetworkauth")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"0mqcqkp9h5bgzb3wfy239wh1c9s9zxd7mww11c0jyp56wk5balcx"))))
"1kr8hwjsb8a5cypvqj48vrnkcvm2rcni102dh6i909i70a7hcsym"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:phases phases)
@ -1453,16 +1450,26 @@ implementation of OAuth and OAuth2 authenticathon methods for Qt.")))
(define-public qtremoteobjects
(package (inherit qtsvg)
(name "qtremoteobjects")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"1wb50dapv0l45c0rfmpiaddvwv9na50lmd5zmm052q9d1xb15f6b"))))
"1chn1xxhapfwvhrlv4chwfgf2dw8x8kn1lssdmpmg5s420z3pbq9"))))
(arguments
(substitute-keyword-arguments (package-arguments qtsvg)
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'remove-failing-test
(lambda _
;; This test can't find its imports.
(substitute* "tests/auto/qml/qml.pro"
(("integration") "# integration"))
#t))))))
(inputs
`(("qtbase" ,qtbase)
("qtdeclarative" ,qtdeclarative)))
@ -1475,16 +1482,16 @@ processes or computers.")))
(define-public qtspeech
(package (inherit qtsvg)
(name "qtspeech")
(version "5.9.4")
(version "5.11.0")
(source (origin
(method url-fetch)
(uri (string-append "https://download.qt.io/official_releases/qt/"
(version-major+minor version) "/" version
"/submodules/" name "-opensource-src-"
"/submodules/" name "-everywhere-src-"
version ".tar.xz"))
(sha256
(base32
"17h8hrixxcsn7pd5iipbj2hxpp5m2dhfq3w04wkamambb49qs80x"))))
"1bgfg0akqf1nfzm28n8dhvhj0p1niwxrfs763gj7m0g6vpwjbhd1"))))
(inputs
`(("qtbase" ,qtbase)))
(native-inputs

View File

@ -885,6 +885,13 @@ audio/video codec library.")
;; XXX Likely not needed for >2.2.6.
(substitute* "modules/gui/qt4/components/interface_widgets.cpp"
(("<qx11info_x11.h>") "<QtX11Extras/qx11info_x11.h>"))
;; Fix build against Qt 5.11.
(substitute* "modules/gui/qt4/actions_manager.cpp"
(("#include <vlc_keys.h>") "#include <vlc_keys.h>
#include <QAction>"))
(substitute* "modules/gui/qt4/components/simple_preferences.cpp"
(("#include <QFont>") "#include <QFont>
#include <QButtonGroup>"))
#t)))
(add-after 'install 'regenerate-plugin-cache
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -303,15 +303,14 @@ seconds after @code{SIGTERM} has been sent are terminated with
(define (file-system->fstab-entry file-system)
"Return a @file{/etc/fstab} entry for @var{file-system}."
(string-append (case (file-system-title file-system)
((label)
(string-append "LABEL=" (file-system-device file-system)))
((uuid)
(string-append
"UUID="
(uuid->string (file-system-device file-system))))
(else
(file-system-device file-system)))
(string-append (match (file-system-device file-system)
((? file-system-label? label)
(string-append "LABEL="
(file-system-label->string file-system)))
((? uuid? uuid)
(string-append "UUID=" (uuid->string uuid)))
((? string? device)
device))
"\t"
(file-system-mount-point file-system) "\t"
(file-system-type file-system) "\t"

View File

@ -131,13 +131,16 @@
"Prepend extra arguments to KERNEL-ARGUMENTS that allow SYSTEM.DRV to be
booted from ROOT-DEVICE"
(cons* (string-append "--root="
(if (uuid? root-device)
(cond ((uuid? root-device)
;; Note: Always use the DCE format because that's
;; what (gnu build linux-boot) expects for the
;; '--root' kernel command-line option.
(uuid->string (uuid-bytevector root-device) 'dce)
root-device))
(uuid->string (uuid-bytevector root-device)
'dce))
((file-system-label? root-device)
(file-system-label->string root-device))
(else root-device)))
#~(string-append "--system=" #$system.drv)
#~(string-append "--load=" #$system.drv "/boot")
kernel-arguments))
@ -251,10 +254,16 @@ file system labels."
(match-lambda
(('uuid (? symbol? type) (? bytevector? bv))
(bytevector->uuid bv type))
(('file-system-label (? string? label))
(file-system-label label))
((? bytevector? bv) ;old format
(bytevector->uuid bv 'dce))
((? string? device)
device)))
;; It used to be that we would not distinguish between labels and
;; device names. Try to infer the right thing here.
(if (string-prefix? "/dev/" device)
device
(file-system-label device)))))
(match (read port)
(('boot-parameters ('version 0)
@ -377,7 +386,7 @@ marked as 'needed-for-boot'."
(let ((target (string-append "/dev/mapper/" (mapped-device-target device))))
(find (lambda (fs)
(or (member device (file-system-dependencies fs))
(and (eq? 'device (file-system-title fs))
(and (string? (file-system-device fs))
(string=? (file-system-device fs) target))))
file-systems)))
@ -933,13 +942,6 @@ listed in OS. The C library expects to find it under
(bootloader-configuration-bootloader bootloader-conf))
bootloader-conf (list entry) #:old-entries old-entries)))
(define (fs->boot-device fs)
"Given FS, a <file-system> object, return a value suitable for use as the
device in a <menu-entry>."
(case (file-system-title fs)
((uuid label device) (file-system-device fs))
(else #f)))
(define (operating-system-boot-parameters os system.drv root-device)
"Return a monadic <boot-parameters> record that describes the boot parameters
of OS. SYSTEM.DRV is either a derivation or #f. If it's a derivation, adds
@ -961,7 +963,7 @@ kernel arguments for that derivation to <boot-parameters>."
(operating-system-user-kernel-arguments os)))
(initrd initrd)
(bootloader-name bootloader-name)
(store-device (ensure-not-/dev (fs->boot-device store)))
(store-device (ensure-not-/dev (file-system-device store)))
(store-mount-point (file-system-mount-point store))))))
(define (device->sexp device)
@ -969,6 +971,8 @@ kernel arguments for that derivation to <boot-parameters>."
(match device
((? uuid? uuid)
`(uuid ,(uuid-type uuid) ,(uuid-bytevector uuid)))
((? file-system-label? label)
`(file-system-label ,(file-system-label->string label)))
(_
device)))

View File

@ -16,8 +16,7 @@
(bootloader grub-bootloader)
(target "/dev/sdX")))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))

View File

@ -20,8 +20,7 @@
(initrd-modules (cons "omap_hsmmc" %base-initrd-modules))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))

View File

@ -20,13 +20,11 @@
;; Assume the target root file system is labelled "my-root",
;; and the EFI System Partition has UUID 1234-ABCD.
(file-systems (cons* (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
(file-system
(device (uuid "1234-ABCD" 'fat))
(title 'uuid)
(mount-point "/boot/efi")
(type "vfat"))
%base-file-systems))

View File

@ -31,8 +31,7 @@ partprobe, and then 2) resizing the filesystem with resize2fs.\n"))
(target "/dev/sda")
(terminal-outputs '(console))))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))

View File

@ -20,6 +20,8 @@
#:use-module (ice-9 match)
#:use-module (rnrs bytevectors)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:use-module (guix records)
#:use-module (gnu system uuid)
#:re-export (uuid ;backward compatibility
@ -28,7 +30,7 @@
#:export (file-system
file-system?
file-system-device
file-system-title
file-system-title ;deprecated
file-system-mount-point
file-system-type
file-system-needed-for-boot?
@ -42,6 +44,10 @@
file-system-type-predicate
file-system-label
file-system-label?
file-system-label->string
file-system->spec
spec->file-system
specification->file-system-mapping
@ -82,12 +88,10 @@
;;; Code:
;; File system declaration.
(define-record-type* <file-system> file-system
(define-record-type* <file-system> %file-system
make-file-system
file-system?
(device file-system-device) ; string
(title file-system-title ; 'device | 'label | 'uuid
(default 'device))
(device file-system-device) ; string | <uuid> | <file-system-label>
(mount-point file-system-mount-point) ; string
(type file-system-type) ; string
(flags file-system-flags ; list of symbols
@ -108,6 +112,83 @@
(default (current-source-location))
(innate)))
;; A file system label for use in the 'device' field.
(define-record-type <file-system-label>
(file-system-label label)
file-system-label?
(label file-system-label->string))
(set-record-type-printer! <file-system-label>
(lambda (obj port)
(format port "#<file-system-label ~s>"
(file-system-label->string obj))))
(define-syntax report-deprecation
(lambda (s)
"Report the use of the now-deprecated 'title' field."
(syntax-case s ()
((_ field)
(let* ((source (syntax-source #'field))
(file (and source (assq-ref source 'filename)))
(line (and source
(and=> (assq-ref source 'line) 1+)))
(column (and source (assq-ref source 'column))))
(format (current-error-port)
"~a:~a:~a: warning: 'title' field is deprecated~%"
file line column)
#t)))))
;; Helper for 'process-file-system-declaration'.
(define-syntax device-expression
(syntax-rules (quote label uuid device)
((_ (quote label) dev)
(file-system-label dev))
((_ (quote uuid) dev)
(if (uuid? dev) dev (uuid dev)))
((_ (quote device) dev)
dev)
((_ title dev)
(case title
((label) (file-system-label dev))
((uuid) (uuid dev))
(else dev)))))
;; Helper to interpret the now-deprecated 'title' field. Detect forms like
;; (title 'label), remove them, and adjust the 'device' field accordingly.
;; TODO: Remove this once 'title' has been deprecated long enough.
(define-syntax process-file-system-declaration
(syntax-rules (device title)
((_ () (rest ...) #f #f) ;no 'title' and no 'device' field
(%file-system rest ...))
((_ () (rest ...) dev #f) ;no 'title' field
(%file-system rest ... (device dev)))
((_ () (rest ...) dev titl) ;got a 'title' field
(%file-system rest ...
(device (device-expression titl dev))))
((_ ((title titl) rest ...) (previous ...) dev _)
(begin
(report-deprecation (title titl))
(process-file-system-declaration (rest ...)
(previous ...)
dev titl)))
((_ ((device dev) rest ...) (previous ...) _ titl)
(process-file-system-declaration (rest ...)
(previous ...)
dev titl))
((_ (field rest ...) (previous ...) dev titl)
(process-file-system-declaration (rest ...)
(previous ... field)
dev titl))))
(define-syntax-rule (file-system fields ...)
(process-file-system-declaration (fields ...) () #f #f))
(define (file-system-title fs) ;deprecated
(match (file-system-device fs)
((? file-system-label?) 'label)
((? uuid?) 'uuid)
((? string?) 'device)))
;; Note: This module is used both on the build side and on the host side.
;; Arrange not to pull (guix store) and (guix config) because the latter
;; differs from user to user.
@ -160,23 +241,26 @@ store--e.g., if FS is the root file system."
"Return a list corresponding to file-system FS that can be passed to the
initrd code."
(match fs
(($ <file-system> device title mount-point type flags options _ _ check?)
(list (if (uuid? device)
`(uuid ,(uuid-type device) ,(uuid-bytevector device))
device)
title mount-point type flags options check?))))
(($ <file-system> device mount-point type flags options _ _ check?)
(list (cond ((uuid? device)
`(uuid ,(uuid-type device) ,(uuid-bytevector device)))
((file-system-label? device)
`(file-system-label ,(file-system-label->string device)))
(else device))
mount-point type flags options check?))))
(define (spec->file-system sexp)
"Deserialize SEXP, a list, to the corresponding <file-system> object."
(match sexp
((device title mount-point type flags options check?)
((device mount-point type flags options check?)
(file-system
(device (match device
(('uuid (? symbol? type) (? bytevector? bv))
(bytevector->uuid bv type))
(('file-system-label (? string? label))
(file-system-label label))
(_
device)))
(title title)
(mount-point mount-point) (type type)
(flags flags) (options options)
(check? check?)))))

View File

@ -328,8 +328,7 @@ You have been warned. Thanks for being so brave.\x1b[0m
;; the appropriate one.
(cons* (file-system
(mount-point "/")
(device "GuixSD_image")
(title 'label)
(device (file-system-label "GuixSD_image"))
(type "ext4"))
;; Make /tmp a tmpfs instead of keeping the overlayfs. This
@ -341,7 +340,6 @@ You have been warned. Thanks for being so brave.\x1b[0m
(file-system
(mount-point "/tmp")
(device "none")
(title 'device)
(type "tmpfs")
(check? #f))

View File

@ -571,7 +571,6 @@ to USB sticks meant to be read-only."
(file-systems (cons (file-system
(mount-point "/")
(device root-uuid)
(title 'uuid)
(type file-system-type))
file-systems-to-keep)))))
@ -636,7 +635,6 @@ of the GNU system as described by OS."
(file-systems (cons (file-system
(mount-point "/")
(device root-uuid)
(title 'uuid)
(type file-system-type))
file-systems-to-keep)))))
(mlet* %store-monad
@ -693,13 +691,12 @@ environment with the store shared with the host. MAPPINGS is a list of
(source (file-system-device fs)))
(or (string=? target (%store-prefix))
(string=? target "/")
(and (eq? 'device (file-system-title fs))
(and (string? source)
(string-prefix? "/dev/" source))
;; Labels and UUIDs are necessarily invalid in the VM.
(and (file-system-mount? fs)
(or (eq? 'label (file-system-title fs))
(eq? 'uuid (file-system-title fs))
(or (file-system-label? source)
(uuid? source))))))
(operating-system-file-systems os)))

View File

@ -208,8 +208,7 @@ the system under test."
(bootloader grub-bootloader)
(target "/dev/sdX")))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))

View File

@ -66,8 +66,7 @@
(target "/dev/vdb")))
(kernel-arguments '("console=ttyS0"))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))
@ -105,8 +104,7 @@
(target "/dev/vdb")))
(kernel-arguments '("console=ttyS0"))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))
@ -351,8 +349,7 @@ per %test-installed-os, this test is expensive in terms of CPU and storage.")
(target "/dev/vda")))
(kernel-arguments '("console=ttyS0"))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))
@ -428,13 +425,11 @@ reboot\n")
(target "/dev/vdb")))
(kernel-arguments '("console=ttyS0"))
(file-systems (cons* (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4"))
(file-system
(device "none")
(title 'device)
(type "tmpfs")
(mount-point "/home")
(type "tmpfs"))
@ -488,13 +483,11 @@ partition. In particular, home directories must be correctly created (see
(target "/dev/vdb")))
(kernel-arguments '("console=ttyS0"))
(file-systems (cons* (file-system
(device "root-fs")
(title 'label)
(device (file-system-label "root-fs"))
(mount-point "/")
(type "ext4"))
(file-system
(device "store-fs")
(title 'label)
(device (file-system-label "store-fs"))
(mount-point "/gnu")
(type "ext4"))
%base-file-systems))
@ -574,8 +567,7 @@ where /gnu lives on a separate partition.")
(target "/dev/md0")
(type raid-device-mapping))))
(file-systems (cons (file-system
(device "root-fs")
(title 'label)
(device (file-system-label "root-fs"))
(mount-point "/")
(type "ext4")
(dependencies mapped-devices))
@ -658,7 +650,6 @@ by 'mdadm'.")
(type luks-device-mapping))))
(file-systems (cons (file-system
(device "/dev/mapper/the-root-device")
(title 'device)
(mount-point "/")
(type "ext4"))
%base-file-systems))
@ -779,8 +770,7 @@ build (current-guix) and then store a couple of full system images.")
(target "/dev/vdb")))
(kernel-arguments '("console=ttyS0"))
(file-systems (cons (file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "btrfs"))
%base-file-systems))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;;
@ -93,7 +93,7 @@ found."
(compressor (first %compressors))
localstatedir?
(symlinks '())
(tar tar))
(archiver tar))
"Return a self-contained tarball containing a store initialized with the
closure of PROFILE, a derivation. The tarball contains /gnu/store; if
LOCALSTATEDIR? is true, it also contains /var/guix, including /var/guix/db
@ -142,7 +142,7 @@ added to the pack."
;; 2014-07-28. For testing, we use the bootstrap tar, which is
;; older and doesn't support it.
(define tar-supports-sort?
(zero? (system* (string-append #+tar "/bin/tar")
(zero? (system* (string-append #+archiver "/bin/tar")
"cf" "/dev/null" "--files-from=/dev/null"
"--sort=name")))
@ -151,7 +151,7 @@ added to the pack."
(string-append #$(if localstatedir?
(file-append guix "/sbin:")
"")
#$tar "/bin"))
#$archiver "/bin"))
;; Note: there is not much to gain here with deduplication and there
;; is the overhead of the '.links' directory, so turn it off.
@ -214,13 +214,97 @@ added to the pack."
build
#:references-graphs `(("profile" ,profile))))
(define* (squashfs-image name profile
#:key target
deduplicate?
(compressor (first %compressors))
localstatedir?
(symlinks '())
(archiver squashfs-tools-next))
"Return a squashfs image containing a store initialized with the closure of
PROFILE, a derivation. The image contains a subset of /gnu/store, empty mount
points for virtual file systems (like procfs), and optional symlinks.
SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be
added to the pack."
(define build
(with-imported-modules '((guix build utils)
(guix build store-copy)
(gnu build install))
#~(begin
(use-modules (guix build utils)
(gnu build install)
(guix build store-copy)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 match))
(setenv "PATH" (string-append #$archiver "/bin"))
;; We need an empty file in order to have a valid file argument when
;; we reparent the root file system. Read on for why that's
;; necessary.
(with-output-to-file ".empty" (lambda () (display "")))
;; Create the squashfs image in several steps.
;; Add all store items. Unfortunately mksquashfs throws away all
;; ancestor directories and only keeps the basename. We fix this
;; in the following invocations of mksquashfs.
(apply invoke "mksquashfs"
`(,@(call-with-input-file "profile"
read-reference-graph)
,#$output
;; Do not perform duplicate checking because we
;; don't have any dupes.
"-no-duplicates"
"-comp"
,#+(compressor-name compressor)))
;; Here we reparent the store items. For each sub-directory of
;; the store prefix we need one invocation of "mksquashfs".
(for-each (lambda (dir)
(apply invoke "mksquashfs"
`(".empty"
,#$output
"-root-becomes" ,dir)))
(reverse (string-tokenize (%store-directory)
(char-set-complement (char-set #\/)))))
;; Add symlinks and mount points.
(apply invoke "mksquashfs"
`(".empty"
,#$output
;; Create SYMLINKS via pseudo file definitions.
,@(append-map
(match-lambda
((source '-> target)
(list "-p"
(string-join
;; name s mode uid gid symlink
(list source
"s" "777" "0" "0"
(string-append #$profile "/" target))))))
'#$symlinks)
;; Create empty mount points.
"-p" "/proc d 555 0 0"
"-p" "/sys d 555 0 0"
"-p" "/dev d 555 0 0")))))
(gexp->derivation (string-append name
(compressor-extension compressor)
".squashfs")
build
#:references-graphs `(("profile" ,profile))))
(define* (docker-image name profile
#:key target
deduplicate?
(compressor (first %compressors))
localstatedir?
(symlinks '())
(tar tar))
(archiver tar))
"Return a derivation to construct a Docker image of PROFILE. The
image is a tarball conforming to the Docker Image Specification, compressed
with COMPRESSOR. It can be passed to 'docker load'. If TARGET is true, it
@ -268,7 +352,7 @@ the image."
(use-modules (guix docker) (srfi srfi-19) (guix build store-copy))
(setenv "PATH" (string-append #$tar "/bin"))
(setenv "PATH" (string-append #$archiver "/bin"))
(build-docker-image #$output
(call-with-input-file "profile"
@ -462,6 +546,7 @@ please email '~a'~%")
(define %formats
;; Supported pack formats.
`((tarball . ,self-contained-tarball)
(squashfs . ,squashfs-image)
(docker . ,docker-image)))
(define %options
@ -626,9 +711,11 @@ Create a bundle of PACKAGE.\n"))
(compressor (if bootstrap?
bootstrap-xz
(assoc-ref opts 'compressor)))
(tar (if bootstrap?
(archiver (if (equal? pack-format 'squashfs)
squashfs-tools-next
(if bootstrap?
%bootstrap-coreutils&co
tar))
tar)))
(symlinks (assoc-ref opts 'symlinks))
(build-image (match (assq-ref %formats pack-format)
((? procedure? proc) proc)
@ -654,8 +741,8 @@ Create a bundle of PACKAGE.\n"))
symlinks
#:localstatedir?
localstatedir?
#:tar
tar)))
#:archiver
archiver)))
(mbegin %store-monad
(show-what-to-build* (list drv)
#:use-substitutes?

View File

@ -590,17 +590,17 @@ any, are available. Raise an error if they're not."
(define labeled
(filter (lambda (fs)
(eq? (file-system-title fs) 'label))
(file-system-label? (file-system-device fs)))
relevant))
(define literal
(filter (lambda (fs)
(eq? (file-system-title fs) 'device))
(string? (file-system-device fs)))
relevant))
(define uuid
(filter (lambda (fs)
(eq? (file-system-title fs) 'uuid))
(uuid? (file-system-device fs)))
relevant))
(define fail? #f)
@ -628,15 +628,15 @@ any, are available. Raise an error if they're not."
(strerror errno))
(unless (string-prefix? "/" device)
(display-hint (format #f (G_ "If '~a' is a file system
label, you need to add @code{(title 'label)} to your @code{file-system}
definition.")
device)))))))
label, write @code{(file-system-label ~s)} in your @code{device} field.")
device device)))))))
literal)
(for-each (lambda (fs)
(unless (find-partition-by-label (file-system-device fs))
(error (G_ "~a: error: file system with label '~a' not found~%")
(file-system-location* fs)
(let ((label (file-system-label->string
(file-system-device fs))))
(unless (find-partition-by-label label)
(error (G_ "~a: error: file system with label '~a' not found~%")
(file-system-location* fs) label))))
labeled)
(for-each (lambda (fs)
(unless (find-partition-by-uuid (file-system-device fs))
@ -677,10 +677,13 @@ available in the initrd. Note that mapped devices are responsible for
checking this by themselves in their 'check' procedure."
(define (file-system-/dev fs)
(let ((device (file-system-device fs)))
(match (file-system-title fs)
('device device)
('uuid (find-partition-by-uuid device))
('label (find-partition-by-label device)))))
(match device
((? string?)
device)
((? uuid?)
(find-partition-by-uuid device))
((? file-system-label?)
(find-partition-by-label (file-system-label->string device))))))
(define file-systems
(filter file-system-needed-for-boot?

View File

@ -111,8 +111,7 @@ cat > "$tmpfile" <<EOF
(bootloader (GRUB-config (device "/dev/sdX"))) ; 9
(file-systems (cons (file-system
(device "root")
(title 'label)
(device (file-system-label "root"))
(mount-point "/")
(type "ext4"))
%base-file-systems)))
@ -140,8 +139,7 @@ OS_BASE='
(bootloader grub-bootloader)
(device "/dev/sdX")))
(file-systems (cons (file-system
(device "root")
(title (string->symbol "label"))
(device (file-system-label "root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))
@ -213,8 +211,7 @@ make_user_config ()
(bootloader grub-bootloader)
(device "/dev/sdX")))
(file-systems (cons (file-system
(device "root")
(title 'label)
(device (file-system-label "root"))
(mount-point "/")
(type "ext4"))
%base-file-systems))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
@ -27,8 +27,7 @@
(define %root-fs
(file-system
(device "my-root")
(title 'label)
(device (file-system-label "my-root"))
(mount-point "/")
(type "ext4")))
@ -114,7 +113,6 @@
(inherit %os-with-mapped-device)
(file-systems (cons (file-system
(device "/dev/mapper/my-luks-device")
(title 'device)
(mount-point "/")
(type "ext4"))
%base-file-systems)))))