Merge branch 'master' into core-updates
This commit is contained in:
commit
82b695b834
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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))))
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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.")))))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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).")))
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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 )
|
|
@ -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 )
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)))
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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?)))))
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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)))
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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)))))
|
||||
|
|
Loading…
Reference in New Issue