Merge 'master' into core-updates
This commit is contained in:
commit
8cff2e7aed
@ -80,6 +80,7 @@ MODULES = \
|
||||
guix/build-system/dub.scm \
|
||||
guix/build-system/emacs.scm \
|
||||
guix/build-system/font.scm \
|
||||
guix/build-system/go.scm \
|
||||
guix/build-system/meson.scm \
|
||||
guix/build-system/minify.scm \
|
||||
guix/build-system/asdf.scm \
|
||||
@ -111,6 +112,7 @@ MODULES = \
|
||||
guix/build/meson-build-system.scm \
|
||||
guix/build/minify-build-system.scm \
|
||||
guix/build/font-build-system.scm \
|
||||
guix/build/go-build-system.scm \
|
||||
guix/build/asdf-build-system.scm \
|
||||
guix/build/git.scm \
|
||||
guix/build/hg.scm \
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2012, 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2017 Eric Bavier <bavier@cray.com>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
@ -50,13 +51,9 @@ NIX_LIBEXEC_DIR="@abs_top_builddir@/nix/scripts" # for 'guix-authenticate'
|
||||
export NIX_ROOT_FINDER NIX_SUBSTITUTERS NIX_LIBEXEC_DIR
|
||||
|
||||
NIX_BUILD_HOOK="$abs_top_builddir/nix/scripts/offload"
|
||||
if [ -x "$NIX_BUILD_HOOK" ]
|
||||
then
|
||||
export NIX_BUILD_HOOK
|
||||
else
|
||||
# No offloading support.
|
||||
unset NIX_BUILD_HOOK
|
||||
fi
|
||||
@BUILD_DAEMON_OFFLOAD_TRUE@export NIX_BUILD_HOOK
|
||||
@BUILD_DAEMON_OFFLOAD_FALSE@# No offloading support.
|
||||
@BUILD_DAEMON_OFFLOAD_FALSE@unset NIX_BUILD_HOOK
|
||||
|
||||
# The 'guix-register' program.
|
||||
GUIX_REGISTER="$abs_top_builddir/guix-register"
|
||||
|
@ -3576,6 +3576,24 @@ debugging information''), which roughly means that code is compiled with
|
||||
@code{-O2 -g}, as is the case for Autoconf-based packages by default.
|
||||
@end defvr
|
||||
|
||||
@defvr {Scheme Variable} go-build-system
|
||||
This variable is exported by @code{(guix build-system go)}. It
|
||||
implements a build procedure for Go packages using the standard
|
||||
@url{https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies,
|
||||
Go build mechanisms}.
|
||||
|
||||
The user is expected to provide a value for the key @code{#:import-path}
|
||||
and, in some cases, @code{#:unpack-path}. The
|
||||
@url{https://golang.org/doc/code.html#ImportPaths, import path}
|
||||
corresponds to the filesystem path expected by the package's build
|
||||
scripts and any referring packages, and provides a unique way to
|
||||
refer to a Go package. It is typically based on a combination of the
|
||||
package source code's remote URI and filesystem hierarchy structure. In
|
||||
some cases, you will need to unpack the package's source code to a
|
||||
different directory structure than the one indicated by the import path,
|
||||
and @code{#:unpack-path} should be used in such cases.
|
||||
@end defvr
|
||||
|
||||
@defvr {Scheme Variable} glib-or-gtk-build-system
|
||||
This variable is exported by @code{(guix build-system glib-or-gtk)}. It
|
||||
is intended for use with packages making use of GLib or GTK+.
|
||||
@ -8406,6 +8424,7 @@ management, power management, and more, would look like this:
|
||||
@include os-config-desktop.texi
|
||||
@end lisp
|
||||
|
||||
@cindex UEFI
|
||||
A graphical UEFI system with a choice of lightweight window managers
|
||||
instead of full-blown desktop environments would look like this:
|
||||
|
||||
@ -8413,6 +8432,10 @@ instead of full-blown desktop environments would look like this:
|
||||
@include os-config-lightweight-desktop.texi
|
||||
@end lisp
|
||||
|
||||
This example refers to the @file{/boot/efi} partition by its UUID,
|
||||
@code{1234-ABCD}. Replace this UUID with the right UUID on your system,
|
||||
as returned by the @command{blkid} command.
|
||||
|
||||
@xref{Desktop Services}, for the exact list of services provided by
|
||||
@var{%desktop-services}. @xref{X.509 Certificates}, for background
|
||||
information about the @code{nss-certs} package that is used here.
|
||||
@ -9767,8 +9790,32 @@ Return a service that runs the Guix build daemon according to
|
||||
@var{config}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Scheme Procedure} udev-service [#:udev udev]
|
||||
@cindex udev-service
|
||||
@cindex udev-rule
|
||||
@deffn {Scheme Procedure} udev-service [#:udev @var{udev}] [#:rules @var{'()}]
|
||||
Run @var{udev}, which populates the @file{/dev} directory dynamically.
|
||||
Additional udev rules can be provided as a list of files through the
|
||||
@var{rules} variable. The procedure @var{udev-rule} simplifies the
|
||||
creation of these rule files.
|
||||
|
||||
In the following example, a rule for a USB device is defined to be
|
||||
stored in the file @file{90-usb-thing.rules}, and the default
|
||||
@var{udev-service} is extended with it. The rule runs a script upon
|
||||
detecting a USB device with a given product identifier.
|
||||
|
||||
@example
|
||||
(define %example-udev-rule
|
||||
(udev-rule "90-usb-thing.rules"
|
||||
"ACTION==\"add\", SUBSYSTEM==\"usb\", ATTR@{product@}==\"Example\", RUN+=\"/path/to/script\""))
|
||||
|
||||
(operating-system
|
||||
;; @dots{}
|
||||
(services (modify-services %desktop-services
|
||||
(udev-service-type config =>
|
||||
(udev-configuration (inherit config)
|
||||
(rules (append (udev-configuration-rules config)
|
||||
(list %example-udev-rule))))))))
|
||||
@end example
|
||||
@end deffn
|
||||
|
||||
@deffn {Scheme Procedure} urandom-seed-service @var{#f}
|
||||
|
@ -20,9 +20,11 @@
|
||||
|
||||
(define-module (gnu build file-systems)
|
||||
#:use-module (gnu system uuid)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build bournish)
|
||||
#:use-module (guix build syscalls)
|
||||
#:use-module ((guix build syscalls)
|
||||
#:hide (file-system-type))
|
||||
#:use-module (rnrs io ports)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (ice-9 match)
|
||||
@ -192,7 +194,7 @@ if DEVICE does not contain a btrfs file system."
|
||||
Trailing spaces are trimmed."
|
||||
(string-trim-right (latin1->string (sub-bytevector sblock 71 11) (lambda (c) #f)) #\space))
|
||||
|
||||
(define (check-fat32-file-system device)
|
||||
(define (check-fat-file-system device)
|
||||
"Return the health of a fat file system on DEVICE."
|
||||
(match (status:exit-val
|
||||
(system* "fsck.vfat" "-v" "-a" device))
|
||||
@ -200,6 +202,33 @@ Trailing spaces are trimmed."
|
||||
(1 'errors-corrected)
|
||||
(_ 'fatal-error)))
|
||||
|
||||
|
||||
;;;
|
||||
;;; FAT16 file systems.
|
||||
;;;
|
||||
|
||||
(define (fat16-superblock? sblock)
|
||||
"Return #t when SBLOCK is a fat16 boot record."
|
||||
(bytevector=? (sub-bytevector sblock 54 8)
|
||||
(string->utf8 "FAT16 ")))
|
||||
|
||||
(define (read-fat16-superblock device)
|
||||
"Return the raw contents of DEVICE's fat16 superblock as a bytevector, or
|
||||
#f if DEVICE does not contain a fat16 file system."
|
||||
(read-superblock device 0 62 fat16-superblock?))
|
||||
|
||||
(define (fat16-superblock-uuid sblock)
|
||||
"Return the Volume ID of a fat superblock SBLOCK as a 4-byte bytevector."
|
||||
(sub-bytevector sblock 39 4))
|
||||
|
||||
(define (fat16-superblock-volume-name sblock)
|
||||
"Return the volume name of SBLOCK as a string of at most 11 characters, or
|
||||
#f if SBLOCK has no volume name. The volume name is a latin1 string.
|
||||
Trailing spaces are trimmed."
|
||||
(string-trim-right (latin1->string (sub-bytevector sblock 43 11)
|
||||
(lambda (c) #f))
|
||||
#\space))
|
||||
|
||||
|
||||
;;;
|
||||
;;; ISO9660 file systems.
|
||||
@ -384,7 +413,9 @@ partition field reader that returned a value."
|
||||
(partition-field-reader read-btrfs-superblock
|
||||
btrfs-superblock-volume-name)
|
||||
(partition-field-reader read-fat32-superblock
|
||||
fat32-superblock-volume-name)))
|
||||
fat32-superblock-volume-name)
|
||||
(partition-field-reader read-fat16-superblock
|
||||
fat16-superblock-volume-name)))
|
||||
|
||||
(define %partition-uuid-readers
|
||||
(list (partition-field-reader read-iso9660-superblock
|
||||
@ -394,7 +425,9 @@ partition field reader that returned a value."
|
||||
(partition-field-reader read-btrfs-superblock
|
||||
btrfs-superblock-uuid)
|
||||
(partition-field-reader read-fat32-superblock
|
||||
fat32-superblock-uuid)))
|
||||
fat32-superblock-uuid)
|
||||
(partition-field-reader read-fat16-superblock
|
||||
fat16-superblock-uuid)))
|
||||
|
||||
(define read-partition-label
|
||||
(cut read-partition-field <> %partition-label-readers))
|
||||
@ -448,8 +481,7 @@ the following:
|
||||
\"/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 (a 16-byte bytevector)
|
||||
designating a partition;
|
||||
• 'uuid', in which case SPEC must be a UUID designating a partition;
|
||||
• 'any', in which case SPEC can be anything.
|
||||
"
|
||||
(define max-trials
|
||||
@ -495,9 +527,11 @@ the following:
|
||||
(resolve find-partition-by-label spec identity))
|
||||
((uuid)
|
||||
(resolve find-partition-by-uuid
|
||||
(if (string? spec)
|
||||
(string->uuid spec)
|
||||
spec)
|
||||
(cond ((string? spec)
|
||||
(string->uuid spec))
|
||||
((uuid? spec)
|
||||
(uuid-bytevector spec))
|
||||
(else spec))
|
||||
uuid->string))
|
||||
(else
|
||||
(error "unknown device title" title))))
|
||||
@ -508,7 +542,7 @@ the following:
|
||||
(cond
|
||||
((string-prefix? "ext" type) check-ext2-file-system)
|
||||
((string-prefix? "btrfs" type) check-btrfs-file-system)
|
||||
((string-suffix? "fat" type) check-fat32-file-system)
|
||||
((string-suffix? "fat" type) check-fat-file-system)
|
||||
(else #f)))
|
||||
|
||||
(if check-procedure
|
||||
@ -552,11 +586,8 @@ corresponds to the symbols listed in FLAGS."
|
||||
(()
|
||||
0))))
|
||||
|
||||
(define* (mount-file-system spec #:key (root "/root"))
|
||||
"Mount the file system described by SPEC under ROOT. SPEC must have the
|
||||
form:
|
||||
|
||||
(DEVICE TITLE MOUNT-POINT TYPE (FLAGS ...) OPTIONS CHECK?)
|
||||
(define* (mount-file-system fs #:key (root "/root"))
|
||||
"Mount the file system described by FS, a <file-system> object, under ROOT.
|
||||
|
||||
DEVICE, MOUNT-POINT, and TYPE must be strings; OPTIONS can be a string or #f;
|
||||
FLAGS must be a list of symbols. CHECK? is a Boolean indicating whether to
|
||||
@ -582,34 +613,36 @@ run a file system check."
|
||||
(if options
|
||||
(string-append "," options)
|
||||
"")))))
|
||||
(match spec
|
||||
((source title mount-point type (flags ...) options check?)
|
||||
(let ((source (canonicalize-device-spec source title))
|
||||
(mount-point (string-append root "/" mount-point))
|
||||
(flags (mount-flags->bit-mask flags)))
|
||||
(when check?
|
||||
(check-file-system source type))
|
||||
(let ((type (file-system-type fs))
|
||||
(options (file-system-options fs))
|
||||
(source (canonicalize-device-spec (file-system-device fs)
|
||||
(file-system-title fs)))
|
||||
(mount-point (string-append root "/"
|
||||
(file-system-mount-point fs)))
|
||||
(flags (mount-flags->bit-mask (file-system-flags fs))))
|
||||
(when (file-system-check? fs)
|
||||
(check-file-system source type))
|
||||
|
||||
;; Create the mount point. Most of the time this is a directory, but
|
||||
;; in the case of a bind mount, a regular file or socket may be needed.
|
||||
(if (and (= MS_BIND (logand flags MS_BIND))
|
||||
(not (file-is-directory? source)))
|
||||
(unless (file-exists? mount-point)
|
||||
(mkdir-p (dirname mount-point))
|
||||
(call-with-output-file mount-point (const #t)))
|
||||
(mkdir-p mount-point))
|
||||
;; Create the mount point. Most of the time this is a directory, but
|
||||
;; in the case of a bind mount, a regular file or socket may be needed.
|
||||
(if (and (= MS_BIND (logand flags MS_BIND))
|
||||
(not (file-is-directory? source)))
|
||||
(unless (file-exists? mount-point)
|
||||
(mkdir-p (dirname mount-point))
|
||||
(call-with-output-file mount-point (const #t)))
|
||||
(mkdir-p mount-point))
|
||||
|
||||
(cond
|
||||
((string-prefix? "nfs" type)
|
||||
(mount-nfs source mount-point type flags options))
|
||||
(else
|
||||
(mount source mount-point type flags options)))
|
||||
(cond
|
||||
((string-prefix? "nfs" type)
|
||||
(mount-nfs source mount-point type flags options))
|
||||
(else
|
||||
(mount source mount-point type flags options)))
|
||||
|
||||
;; For read-only bind mounts, an extra remount is needed, as per
|
||||
;; <http://lwn.net/Articles/281157/>, which still applies to Linux 4.0.
|
||||
(when (and (= MS_BIND (logand flags MS_BIND))
|
||||
(= MS_RDONLY (logand flags MS_RDONLY)))
|
||||
(let ((flags (logior MS_BIND MS_REMOUNT MS_RDONLY)))
|
||||
(mount source mount-point type flags #f)))))))
|
||||
;; For read-only bind mounts, an extra remount is needed, as per
|
||||
;; <http://lwn.net/Articles/281157/>, which still applies to Linux 4.0.
|
||||
(when (and (= MS_BIND (logand flags MS_BIND))
|
||||
(= MS_RDONLY (logand flags MS_RDONLY)))
|
||||
(let ((flags (logior MS_BIND MS_REMOUNT MS_RDONLY)))
|
||||
(mount source mount-point type flags #f)))))
|
||||
|
||||
;;; file-systems.scm ends here
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -27,9 +27,11 @@
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix build syscalls)
|
||||
#:use-module ((guix build syscalls)
|
||||
#:hide (file-system-type))
|
||||
#:use-module (gnu build linux-modules)
|
||||
#:use-module (gnu build file-systems)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:export (mount-essential-file-systems
|
||||
linux-command-line
|
||||
find-long-option
|
||||
@ -349,19 +351,17 @@ supports kernel command-line options '--load', '--root', and '--repl'.
|
||||
Mount the root file system, specified by the '--root' command-line argument,
|
||||
if any.
|
||||
|
||||
MOUNTS must be a list suitable for 'mount-file-system'.
|
||||
MOUNTS must be a list of <file-system> objects.
|
||||
|
||||
When VOLATILE-ROOT? is true, the root file system is writable but any changes
|
||||
to it are lost."
|
||||
(define root-mount-point?
|
||||
(match-lambda
|
||||
((device _ "/" _ ...) #t)
|
||||
(_ #f)))
|
||||
(define (root-mount-point? fs)
|
||||
(string=? (file-system-mount-point fs) "/"))
|
||||
|
||||
(define root-fs-type
|
||||
(or (any (match-lambda
|
||||
((device _ "/" type _ ...) type)
|
||||
(_ #f))
|
||||
(or (any (lambda (fs)
|
||||
(and (root-mount-point? fs)
|
||||
(file-system-type fs)))
|
||||
mounts)
|
||||
"ext4"))
|
||||
|
||||
|
@ -152,8 +152,7 @@ for the process."
|
||||
|
||||
;; Mount user-specified file systems.
|
||||
(for-each (lambda (file-system)
|
||||
(mount-file-system (file-system->spec file-system)
|
||||
#:root root))
|
||||
(mount-file-system file-system #:root root))
|
||||
mounts)
|
||||
|
||||
;; Jail the process inside the container's root file system.
|
||||
|
@ -87,6 +87,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/check.scm \
|
||||
%D%/packages/chez.scm \
|
||||
%D%/packages/ci.scm \
|
||||
%D%/packages/cinnamon.scm \
|
||||
%D%/packages/cmake.scm \
|
||||
%D%/packages/cobol.scm \
|
||||
%D%/packages/code.scm \
|
||||
@ -382,6 +383,7 @@ GNU_SYSTEM_MODULES = \
|
||||
%D%/packages/suckless.scm \
|
||||
%D%/packages/swig.scm \
|
||||
%D%/packages/sync.scm \
|
||||
%D%/packages/syncthing.scm \
|
||||
%D%/packages/synergy.scm \
|
||||
%D%/packages/syndication.scm \
|
||||
%D%/packages/task-management.scm \
|
||||
@ -1048,6 +1050,7 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ttf2eot-cstddef.patch \
|
||||
%D%/packages/patches/ttfautohint-source-date-epoch.patch \
|
||||
%D%/packages/patches/tophat-build-with-later-seqan.patch \
|
||||
%D%/packages/patches/totem-meson-easy-codec.patch \
|
||||
%D%/packages/patches/tuxpaint-stamps-path.patch \
|
||||
%D%/packages/patches/unrtf-CVE-2016-10091.patch \
|
||||
%D%/packages/patches/unzip-CVE-2014-8139.patch \
|
||||
|
@ -961,21 +961,27 @@ follower.")
|
||||
(define-public fluidsynth
|
||||
(package
|
||||
(name "fluidsynth")
|
||||
(version "1.1.6")
|
||||
(version "1.1.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://sourceforge/fluidsynth/fluidsynth-"
|
||||
version "/fluidsynth-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/FluidSynth/fluidsynth.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
|
||||
(build-system gnu-build-system)
|
||||
"12q7hv0zvgylsdj1ipssv5zr7ap2y410dxsd63dz22y05fa2hwwd"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
'(#:tests? #f ; no check phase
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'remove-broken-symlinks
|
||||
(lambda _ (delete-file-recursively "m4") #t)))))
|
||||
(add-after 'unpack 'fix-libdir
|
||||
(lambda _
|
||||
(substitute* "CMakeLists.txt"
|
||||
(("LIB_SUFFIX \\$\\{_init_lib_suffix\\}")
|
||||
"LIB_SUFFIX \"\""))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("libsndfile" ,libsndfile)
|
||||
("alsa-lib" ,alsa-lib)
|
||||
@ -993,7 +999,7 @@ follower.")
|
||||
specifications. FluidSynth reads and handles MIDI events from the MIDI input
|
||||
device. It is the software analogue of a MIDI synthesizer. FluidSynth can
|
||||
also play midifiles using a Soundfont.")
|
||||
(license license:gpl2+)))
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public faad2
|
||||
(package
|
||||
|
@ -730,14 +730,14 @@ provide a coordinated and extensible framework to do computational biology.")
|
||||
(define-public python-biopython
|
||||
(package
|
||||
(name "python-biopython")
|
||||
(version "1.68")
|
||||
(version "1.70")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; use PyPi rather than biopython.org to ease updating
|
||||
(uri (pypi-uri "biopython" version))
|
||||
(sha256
|
||||
(base32
|
||||
"07qc7nz0k77y8hf8s18rscvibvm91zw0kkq7ylrhisf8vp8hkp6i"))))
|
||||
"0nz4n9d2y2dg849gn1z0vjlkwcpzzkzy3fij7x94a6ixy2c54z2a"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -1774,15 +1774,14 @@ collections of DNA motifs.")
|
||||
(define-public clustal-omega
|
||||
(package
|
||||
(name "clustal-omega")
|
||||
(version "1.2.1")
|
||||
(version "1.2.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.clustal.org/omega/clustal-omega-"
|
||||
version ".tar.gz"))
|
||||
(uri (string-append "http://www.clustal.org/omega/clustal-omega-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02ibkx0m0iwz8nscg998bh41gg251y56cgh86bvyrii5m8kjgwqf"))))
|
||||
"1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("argtable" ,argtable)))
|
||||
@ -4890,6 +4889,43 @@ subsequent visualization, annotation and storage of results.")
|
||||
;; LGPLv2.1+
|
||||
(license (list license:gpl2 license:lgpl2.1+))))
|
||||
|
||||
(define-public plink-ng
|
||||
(package (inherit plink)
|
||||
(name "plink-ng")
|
||||
(version "1.90b4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/chrchang/plink-ng/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "09ixrds009aczjswxr2alcb774mksq5g0v78dgjjn1h4dky0kf9a"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ;no "check" target
|
||||
#:make-flags (list "BLASFLAGS=-llapack -lopenblas"
|
||||
"CFLAGS=-Wall -O2 -DDYNAMIC_ZLIB=1"
|
||||
"ZLIB=-lz"
|
||||
"-f" "Makefile.std")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _ (chdir "1.9") #t))
|
||||
(delete 'configure) ; no "configure" script
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin (string-append (assoc-ref outputs "out")
|
||||
"/bin/")))
|
||||
(install-file "plink" bin)
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("zlib" ,zlib)
|
||||
("lapack" ,lapack)
|
||||
("openblas" ,openblas)))
|
||||
(home-page "https://www.cog-genomics.org/plink/")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public smithlab-cpp
|
||||
(let ((revision "1")
|
||||
(commit "728a097bec88c6f4b8528b685932049e660eff2e"))
|
||||
@ -8070,7 +8106,7 @@ library implementing most of the pipeline's features.")
|
||||
(define-public rcas-web
|
||||
(package
|
||||
(name "rcas-web")
|
||||
(version "0.0.3")
|
||||
(version "0.0.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -8079,7 +8115,7 @@ library implementing most of the pipeline's features.")
|
||||
"/rcas-web-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0d3my0g8i7js59n184zzzjdki7hgmhpi4rhfvk7i6jsw01ba04qq"))))
|
||||
"1p16frfys41a8yaa4gkm457nzkqhqs2pc3lkac0ds457w9w5j1gm"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
@ -9977,7 +10013,7 @@ browser.")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "f-seq")
|
||||
(version (string-append "1.1-" revision "." commit))
|
||||
(version (string-append "1.1-" revision "." (string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
@ -10086,3 +10122,51 @@ straight away. Its main features are:
|
||||
and CHH context
|
||||
@end itemize\n")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public paml
|
||||
(package
|
||||
(name "paml")
|
||||
(version "4.9e")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://abacus.gene.ucl.ac.uk/software/"
|
||||
"paml" version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13zf6h9fiqghwhch2h06x1zdr6s42plsnqahflp5g7myr3han3s6"))
|
||||
(modules '((guix build utils)))
|
||||
;; Remove Windows binaries
|
||||
(snippet
|
||||
'(begin
|
||||
(for-each delete-file (find-files "." "\\.exe$"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are no tests
|
||||
#:make-flags '("CC=gcc")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(substitute* "src/BFdriver.c"
|
||||
(("/bin/bash") (which "bash")))
|
||||
(chdir "src")
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((tools '("baseml" "basemlg" "codeml"
|
||||
"pamp" "evolver" "yn00" "chi2"))
|
||||
(bin (string-append (assoc-ref outputs "out") "/bin"))
|
||||
(docdir (string-append (assoc-ref outputs "out")
|
||||
"/share/doc/paml")))
|
||||
(mkdir-p bin)
|
||||
(for-each (lambda (file) (install-file file bin)) tools)
|
||||
(copy-recursively "../doc" docdir)
|
||||
#t))))))
|
||||
(home-page "http://abacus.gene.ucl.ac.uk/software/paml.html")
|
||||
(synopsis "Phylogentic analysis by maximum likelihood")
|
||||
(description "PAML (for Phylogentic Analysis by Maximum Likelihood)
|
||||
contains a few programs for model fitting and phylogenetic tree reconstruction
|
||||
using nucleotide or amino-acid sequence data.")
|
||||
;; GPLv3 only
|
||||
(license license:gpl3)))
|
||||
|
@ -70,15 +70,15 @@ makes a few sacrifices to acquire fast full and incremental build times.")
|
||||
(define-public meson
|
||||
(package
|
||||
(name "meson")
|
||||
(version "0.42.1")
|
||||
(version "0.43.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mesonbuild/meson/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
"releases/download/" version "/meson-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1494hdnd40g2v6pky34j0f2iwc6kwn51vck37qwz7nl2xr17b18q"))))
|
||||
"0h3k0m45004ay1hzz9r66fkl1kwizaigxahyrlabyw0d1slyq4y5"))))
|
||||
(build-system python-build-system)
|
||||
(inputs `(("ninja", ninja)))
|
||||
(propagated-inputs `(("python" ,python)))
|
||||
|
86
gnu/packages/cinnamon.scm
Normal file
86
gnu/packages/cinnamon.scm
Normal file
@ -0,0 +1,86 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017 ng0 <ng0@infotropique.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages cinnamon)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
(define-public cinnamon-desktop
|
||||
(package
|
||||
(name "cinnamon-desktop")
|
||||
(version "3.4.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/linuxmint/cinnamon-desktop/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jf24csrbfi9aiza1g70jpvsbjiqwphk0i5wilxq9kpjjsl99maq"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autoconf
|
||||
(lambda _
|
||||
(mkdir-p "m4")
|
||||
(zero?
|
||||
(and (system* "glib-gettextize" "--force" "--copy")
|
||||
(system* "intltoolize" "--force" "--copy" "--automake")
|
||||
(system* "autoreconf" "--verbose" "--force" "--install"))))))))
|
||||
;; TODO: package 'libgsystem'.
|
||||
(inputs
|
||||
`(("accountsservice" ,accountsservice)
|
||||
("gtk+" ,gtk+)
|
||||
("glib" ,glib)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("gnome-common" ,gnome-common)
|
||||
("libxkbfile" ,libxkbfile)
|
||||
("libxrandr" ,libxrandr)
|
||||
("python-2" ,python-2)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("xkeyboard-config" ,xkeyboard-config)))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("gettext" ,gettext-minimal)
|
||||
("glib" ,glib "bin") ; glib-gettextize
|
||||
("intltool" ,intltool)
|
||||
("libtool" ,libtool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(home-page "https://github.com/linuxmint/cinnamon-desktop/")
|
||||
(synopsis "Library for the Cinnamon Desktop")
|
||||
(description
|
||||
"The cinnamon-desktop package contains the libcinnamon-desktop library,
|
||||
as well as some desktop-wide documents.")
|
||||
(license (list license:gpl2+ license:lgpl2.0+
|
||||
license:expat)))) ;display-name.c , edid-parse.c
|
@ -4,7 +4,7 @@
|
||||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
|
||||
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
|
||||
;;; Copyright © 2016, 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -35,10 +35,12 @@
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages libbsd)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages nettle)
|
||||
#:use-module (gnu packages password-utils)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages search)
|
||||
#:use-module (gnu packages serialization)
|
||||
@ -594,3 +596,39 @@ or millenia for an attacker to try them all.
|
||||
data on your platform, so the seed itself will be as random as possible.
|
||||
@end enumerate\n")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public python-pynacl
|
||||
(package
|
||||
(name "python-pynacl")
|
||||
(version "1.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyNaCl" version))
|
||||
(modules '((guix build utils)))
|
||||
;; Remove bundled libsodium
|
||||
(snippet '(delete-file-recursively "src/libsodium"))
|
||||
(sha256
|
||||
(base32
|
||||
"135gz0020fqx8fbr9izpwyq49aww202nkqacq0cw61xz99sjpx9j"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'use-system-sodium
|
||||
(lambda _
|
||||
(setenv "SODIUM_INSTALL" "system")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(propagated-inputs
|
||||
`(("python-cffi" ,python-cffi)
|
||||
("python-six" ,python-six)
|
||||
("libsodium" ,libsodium)))
|
||||
(home-page "https://github.com/pyca/pynacl/")
|
||||
(synopsis "Python bindings to libsodium")
|
||||
(description
|
||||
"PyNaCl is a Python binding to libsodium, which is a fork of the
|
||||
Networking and Cryptography library. These libraries have a stated goal
|
||||
of improving usability, security and speed.")
|
||||
(license license:asl2.0)))
|
||||
|
@ -61,7 +61,7 @@
|
||||
(source(origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "http://openprinting.org/download/cups-filters/"
|
||||
(string-append "https://openprinting.org/download/cups-filters/"
|
||||
"cups-filters-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
@ -226,13 +226,13 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
|
||||
(home-page "https://www.cups.org")
|
||||
(synopsis "The Common Unix Printing System")
|
||||
(description
|
||||
"CUPS is a printing system that uses the Internet Printing
|
||||
Protocol (IPP). It provides System V and BSD command-line interfaces, as well
|
||||
"CUPS is a printing system that uses the Internet Printing Protocol
|
||||
(@dfn{IPP}). It provides System V and BSD command-line interfaces, as well
|
||||
as a Web interface and a C programming interface to manage printers and print
|
||||
jobs. It supports printing to both local (parallel, serial, USB) and
|
||||
networked printers, and printers can be shared from one computer to another.
|
||||
Internally, CUPS uses PostScript Printer Description (PPD) files to describe
|
||||
printer capabilities and features and a wide variety of generic and
|
||||
Internally, CUPS uses PostScript Printer Description (@dfn{PPD}) files to
|
||||
describe printer capabilities and features, and a wide variety of generic and
|
||||
device-specific programs to convert and print many types of files.")
|
||||
(license license:gpl2)))
|
||||
|
||||
|
@ -646,6 +646,19 @@ TIMESTAMP. It also supports storage of binary large objects, including
|
||||
pictures, sounds, or video.")
|
||||
(license (license:x11-style "file://COPYRIGHT"))))
|
||||
|
||||
(define-public postgresql-9.6
|
||||
(package
|
||||
(inherit postgresql)
|
||||
(name "postgresql")
|
||||
(version "9.6.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
|
||||
version "/postgresql-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k3ls2x182jz6djjiqj9kycddabdl2gk1y1ajq1vipnxwfki5nh6"))))))
|
||||
|
||||
(define-public qdbm
|
||||
(package
|
||||
(name "qdbm")
|
||||
|
@ -319,14 +319,14 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
|
||||
(define-public gparted
|
||||
(package
|
||||
(name "gparted")
|
||||
(version "0.28.1")
|
||||
(version "0.30.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
|
||||
version "/gparted-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0cyk8lpimm6wani8khw0szwqkgw5wpq2mfnfxkbgfm2774a1z2bn"))))
|
||||
(base32 "0jngbsbvg8k8vbpsphqbk8br2cbmxhabbm2c5bmxm2q5zvpr64fk"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; Tests require a network connection.
|
||||
|
@ -361,7 +361,7 @@ when typing parentheses directly or commenting out code line by line.")
|
||||
(define-public git-modes
|
||||
(package
|
||||
(name "git-modes")
|
||||
(version "1.2.4")
|
||||
(version "1.2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -370,7 +370,7 @@ when typing parentheses directly or commenting out code line by line.")
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xxrmf0jnyljxvllc22qa0v8lgi4k1ldnayjm5hf68m25jsr378l"))))
|
||||
"18z04wn5ird9l0h6n6x97v0kyzdj73832bj9qakm3fjjl7vcn0pw"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/magit/git-modes")
|
||||
(synopsis "Emacs major modes for Git configuration files")
|
||||
@ -382,7 +382,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
||||
(define-public emacs-with-editor
|
||||
(package
|
||||
(name "emacs-with-editor")
|
||||
(version "2.5.10")
|
||||
(version "2.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -391,7 +391,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lsxa1hghybkzvqhqvvym3hxbyp9vjcnnpb9j800z0vyhbnlka67"))))
|
||||
"0kah7pv211zx9fsb5g4hd51bqcq2bxd1chdykd488ihvfz1l5y14"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)))
|
||||
@ -407,7 +407,7 @@ on stdout instead of using a socket as the Emacsclient does.")
|
||||
(define-public magit
|
||||
(package
|
||||
(name "magit")
|
||||
(version "2.10.3")
|
||||
(version "2.11.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -415,7 +415,7 @@ on stdout instead of using a socket as the Emacsclient does.")
|
||||
version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03ln65ss420gc3h4pi56dayd1p163xfxrxrd9fkb9xnkl8mjglqk"))))
|
||||
"11xly5bma9jc1jhs8fqbqrci8kz1y26yfq7dqjkqfy956wvfg6hz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("texinfo" ,texinfo)
|
||||
("emacs" ,emacs-minimal)))
|
||||
@ -543,7 +543,7 @@ support for Git-SVN.")
|
||||
(file-name (string-append "magit-popup-" version ".el"))
|
||||
(sha256
|
||||
(base32
|
||||
"08b6ypfiq8zavjfq0wcdh26xziwq7rqvvv3lfpib9101146kzx6d"))))
|
||||
"0w750kwngq63hi9drad3jxldwkg83sldb9w9r2xl2mqm3hm4l8s6"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)))
|
||||
@ -1245,6 +1245,56 @@ written in the Go programming language.")
|
||||
Maps directly inside Emacs.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-graphviz-dot-mode
|
||||
(let ((commit "fdaabbcc95d9156e3dadc84f81a4750c5b692580")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-graphviz-dot-mode")
|
||||
(version (string-append "0.3.10-" revision "."
|
||||
(string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ppareit/graphviz-dot-mode.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1s1qh5r0xp6hs0rl5yz5mkmjhpg04bh449c7vgjbb1pjsl1dl714"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'make-info
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(with-directory-excursion "texinfo"
|
||||
(substitute* "Makefile"
|
||||
(("\\/usr\\/bin\\/gzip")
|
||||
(string-append (assoc-ref inputs "gzip") "/bin/gzip")))
|
||||
(zero?
|
||||
(system* "make"
|
||||
"clean"
|
||||
"info"
|
||||
(string-append "TEXINFODIR="
|
||||
(assoc-ref inputs "texinfo")
|
||||
"/bin"))))))
|
||||
(add-after 'install 'install-info
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(info (string-append out "/share/info")))
|
||||
(install-file "texinfo/graphviz-dot-mode.info.gz" info)
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)
|
||||
("gzip" ,gzip)))
|
||||
(home-page "http://ppareit.github.com/graphviz-dot-mode")
|
||||
(synopsis "Major mode for editing Graphviz Dot files")
|
||||
(description
|
||||
"This Emacs packages helps you to create @file{.dot} or @file{.gv}
|
||||
files using the dot syntax, and use Graphviz to convert these files to
|
||||
diagrams.")
|
||||
(license license:gpl2+))))
|
||||
|
||||
(define-public emacs-mmm-mode
|
||||
(package
|
||||
(name "emacs-mmm-mode")
|
||||
@ -2762,14 +2812,14 @@ package provides a light and a dark variant.")
|
||||
(define-public emacs-ahungry-theme
|
||||
(package
|
||||
(name "emacs-ahungry-theme")
|
||||
(version "1.4.0")
|
||||
(version "1.6.0")
|
||||
(source
|
||||
(origin (method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/ahungry-theme-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n8k12mfn01f20j0pyd7ycj77x0y3a008xc94frklaaqjc0v26s4"))))
|
||||
"1b0x7g753gn7mym8286b937zmxv50jgdish2h6wc05w1g1lygwsz"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/ahungry/color-theme-ahungry")
|
||||
(synopsis "Ahungry color theme for Emacs")
|
||||
@ -3197,14 +3247,14 @@ The purpose of this library is to wrap all the quirks and hassle of
|
||||
(define-public emacs-queue
|
||||
(package
|
||||
(name "emacs-queue")
|
||||
(version "0.1.1")
|
||||
(version "0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/queue-"
|
||||
version ".el"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jw24fxqnf9qcaf2nh09cnds1kqfk7hal35dw83x1ari95say391"))))
|
||||
"0cx2848sqnnkkr4zisvqadzxngjyhmb36mh0q3if7q19yjjhmrkb"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://www.dr-qubit.org/tags/computing-code-emacs.html")
|
||||
(synopsis "Queue data structure for Emacs")
|
||||
@ -3321,22 +3371,63 @@ that highlights non-conforming text. The subset of the English language called
|
||||
E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-julia-mode
|
||||
;; XXX: Upstream version remained stuck at 0.3. See
|
||||
;; <https://github.com/JuliaEditorSupport/julia-emacs/issues/46>.
|
||||
(let ((commit "115d4dc8a07445301772da8376b232fa8c7168f4")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-julia-mode")
|
||||
(version (string-append "0.3-" revision "." (string-take commit 8)))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/JuliaEditorSupport/julia-emacs.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1is4dcv6blslpzbjcg8l2jpxi8xj96q4cm0nxjxsyswpm8bw8ki0"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'check
|
||||
(lambda _
|
||||
(zero? (system* "emacs" "-batch"
|
||||
"-l" "julia-mode.el"
|
||||
"-l" "julia-mode-tests.el"
|
||||
"-f" "ert-run-tests-batch-and-exit")))))))
|
||||
(home-page "https://github.com/JuliaEditorSupport/julia-emacs")
|
||||
(synopsis "Major mode for Julia")
|
||||
(description "This Emacs package provides a mode for the Julia
|
||||
programming language.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public emacs-ess
|
||||
(package
|
||||
(name "emacs-ess")
|
||||
(version "16.04")
|
||||
(version "16.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0w7mbbajn377gdmvnd21mpyr368b2ia46gq6cb99y4y5rspf9pcg"))))
|
||||
"04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Stop ESS from trying to bundle an external julia-mode.el.
|
||||
(substitute* "lisp/Makefile"
|
||||
(("^\tjulia-mode.elc\\\\\n") "")
|
||||
(("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
|
||||
"all: $(ELC) ess-custom.el"))))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(let ((base-directory "/share/emacs/site-lisp/guix.d/ess"))
|
||||
`(#:tests? #f ; There is no test suite.
|
||||
#:make-flags (list (string-append "PREFIX=" %output)
|
||||
`(#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "ETCDIR=" %output "/"
|
||||
,base-directory "/etc")
|
||||
(string-append "LISPDIR=" %output "/"
|
||||
@ -3352,7 +3443,10 @@ E-Prime forbids the use of the \"to be\" form to strengthen your writing.")
|
||||
;; FIXME: the texlive-union insists on regenerating fonts. It stores
|
||||
;; them in HOME, so it needs to be writeable.
|
||||
(add-before 'build 'set-HOME
|
||||
(lambda _ (setenv "HOME" "/tmp") #t))))))
|
||||
(lambda _ (setenv "HOME" "/tmp") #t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(zero? (system* "make" "test"))))))))
|
||||
(inputs
|
||||
`(("emacs" ,emacs-minimal)
|
||||
("r-minimal" ,r-minimal)))
|
||||
@ -3717,7 +3811,7 @@ the file buffer.")
|
||||
(define-public emacs-helm
|
||||
(package
|
||||
(name "emacs-helm")
|
||||
(version "2.7.1")
|
||||
(version "2.8.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -3726,7 +3820,7 @@ the file buffer.")
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pay8pi3fszykgskfbxsp4byad497cgfz4m886mxnkba1naxf6h7"))))
|
||||
"15xlnjm9rsbn0xq7xc09y52h2kn41zwn7ldryammf6i46wl02kq3"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-async" ,emacs-async)
|
||||
@ -3988,14 +4082,14 @@ passive voice.")
|
||||
(define-public emacs-org
|
||||
(package
|
||||
(name "emacs-org")
|
||||
(version "20170917")
|
||||
(version "20171016")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://elpa.gnu.org/packages/org-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0qyis5ph3h99zn9kx7sgraddz41c1cf6yjkwi4im6ikwxk9x8cgc"))))
|
||||
"1196kv83p953nd9c5gxkn8ndw2kmm2kfw34dldap6m89khqflz5a"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://orgmode.org/")
|
||||
(synopsis "Outline-based notes management and organizer")
|
||||
@ -4005,6 +4099,50 @@ also is an authoring system with unique support for literate programming and
|
||||
reproducible research.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-org-contrib
|
||||
(package
|
||||
(inherit emacs-org)
|
||||
(name "emacs-org-contrib")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://orgmode.org/elpa/org-plus-contrib-"
|
||||
(package-version emacs-org) ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xy2xrndlhs4kyvh6mmv24dnh3fn5p63d2gaimnrypf1p8znwzh4"))))
|
||||
(arguments
|
||||
`(#:modules ((guix build emacs-build-system)
|
||||
(guix build utils)
|
||||
(guix build emacs-utils)
|
||||
(ice-9 ftw)
|
||||
(srfi srfi-1))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'delete-org-files
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(org (assoc-ref inputs "emacs-org"))
|
||||
(contrib-files
|
||||
(map basename (find-files out)))
|
||||
(org+contrib-files
|
||||
(map basename (find-files org)))
|
||||
(duplicates (lset-intersection
|
||||
string=? contrib-files org+contrib-files)))
|
||||
(with-directory-excursion
|
||||
(string-append
|
||||
out "/share/emacs/site-lisp/guix.d/org-contrib-"
|
||||
,(package-version emacs-org))
|
||||
(for-each delete-file duplicates))
|
||||
#t))))))
|
||||
(propagated-inputs
|
||||
`(("emacs-org" ,emacs-org)))
|
||||
(synopsis "Contributed packages to Org-mode")
|
||||
(description "Org is an Emacs mode for keeping notes, maintaining TODO
|
||||
lists, and project planning with a fast and effective plain-text system.
|
||||
|
||||
This package is equivilent to org-plus-contrib, but only includes additional
|
||||
files that you would find in @file{contrib/} from the git repository.")))
|
||||
|
||||
(define-public emacs-flx
|
||||
(package
|
||||
(name "emacs-flx")
|
||||
@ -4691,7 +4829,7 @@ consistent and well-integrated user interface.")
|
||||
(define-public emacs-adaptive-wrap
|
||||
(package
|
||||
(name "emacs-adaptive-wrap")
|
||||
(version "0.5")
|
||||
(version "0.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -4699,7 +4837,7 @@ consistent and well-integrated user interface.")
|
||||
version ".el"))
|
||||
(sha256
|
||||
(base32
|
||||
"0frgmp8vrrml4iykm60j4d6cl9rbcivy9yh24q6kd10bcyx59ypy"))))
|
||||
"0qi7gjprcpywk2daivnlavwsx53hl5wcqvpxbwinvigg42vxh3ll"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://elpa.gnu.org/packages/adaptive-wrap.html")
|
||||
(synopsis "Smart line-wrapping with wrap-prefix")
|
||||
@ -5896,14 +6034,14 @@ It supports dired buffers and opens them in tree mode at destination.")
|
||||
(define-public emacs-tiny
|
||||
(package
|
||||
(name "emacs-tiny")
|
||||
(version "0.1.1")
|
||||
(version "0.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://elpa.gnu.org/packages/tiny-" version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nhg8375qdn457wj0xmfaj72s87xbabk2w1nl6q7rjvwxv08yyn7"))))
|
||||
"1cr73a8gba549ja55x0c2s554f3zywf69zbnd7v82jz5q1k9wd2v"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/abo-abo/tiny")
|
||||
(synopsis "Quickly generate linear ranges in Emacs")
|
||||
@ -5945,3 +6083,22 @@ an elisp expression.")
|
||||
"@code{bash-completion} defines dynamic completion hooks for shell-mode
|
||||
and shell-command prompts that are based on bash completion.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-easy-kill
|
||||
(package
|
||||
(name "emacs-easy-kill")
|
||||
(version "0.9.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/easy-kill-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"17nw0mglmg877axwg1d0gs03yc0p04lzmd3pl0nsnqbh3303fnqb"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/leoliu/easy-kill")
|
||||
(synopsis "Kill and mark things easily in Emacs")
|
||||
(description
|
||||
"This package provides commands @code{easy-kill} and @code{easy-mark} to
|
||||
let users kill or mark things easily.")
|
||||
(license license:gpl3+)))
|
||||
|
@ -416,13 +416,15 @@ language.")
|
||||
with a layered architecture of JTAG interface and TAP support.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; The commits for all propeller tools are the latest versions as published
|
||||
;; here: https://github.com/dbetz/propeller-gcc
|
||||
;; The commits for all propeller tools are the stable versions published at
|
||||
;; https://github.com/propellerinc/propgcc in the release_1_0. According to
|
||||
;; personal correspondence with the developers in July 2017, more recent
|
||||
;; versions are currently incompatible with the "Simple Libraries".
|
||||
|
||||
(define propeller-binutils
|
||||
(let ((xbinutils (cross-binutils "propeller-elf"))
|
||||
(commit "3bfba30076f8ce160a2f42914fdb68f24445fd44")
|
||||
(revision "1"))
|
||||
(commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
|
||||
(revision "2"))
|
||||
(package
|
||||
(inherit xbinutils)
|
||||
(name "propeller-binutils")
|
||||
@ -430,28 +432,24 @@ with a layered architecture of JTAG interface and TAP support.")
|
||||
(source (origin (inherit (package-source xbinutils))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/totalspectrum/binutils-propeller.git")
|
||||
(url "https://github.com/parallaxinc/propgcc.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" commit "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1v3rgxwj7b8817wy5ccf8621v75qcxvcxygk4acr3hbc6yqybr8h"))))
|
||||
"0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))
|
||||
(patch-flags (list "-p1" "--directory=binutils"))))
|
||||
(arguments
|
||||
`(;; FIXME: For some reason there are many test failures. Some of them
|
||||
;; appear to be due to regular expression mismatch, but it's not
|
||||
`(;; FIXME: For some reason there are many test failures. It's not
|
||||
;; obvious how to fix the failures.
|
||||
#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-/bin/sh-in-tests
|
||||
(lambda _
|
||||
(substitute* '("sim/testsuite/Makefile.in"
|
||||
"sim/testsuite/mips64el-elf/Makefile.in"
|
||||
"sim/testsuite/d10v-elf/Makefile.in"
|
||||
"sim/testsuite/sim/cris/asm/badarch1.ms")
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t)))
|
||||
,@(package-arguments xbinutils)))
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _ (chdir "binutils") #t)))
|
||||
,@(substitute-keyword-arguments (package-arguments xbinutils)
|
||||
((#:configure-flags flags)
|
||||
`(cons "--disable-werror" ,flags)))))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
("flex" ,flex)
|
||||
@ -497,26 +495,33 @@ with a layered architecture of JTAG interface and TAP support.")
|
||||
|
||||
(define-public propeller-gcc-4
|
||||
(let ((xgcc propeller-gcc-6)
|
||||
(commit "f1b01001b760d691a91ff1db4830d41bb712557f")
|
||||
(revision "1"))
|
||||
(commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
|
||||
(revision "2"))
|
||||
(package (inherit xgcc)
|
||||
(name "propeller-gcc")
|
||||
(version (string-append "4.6.1-" revision "." (string-take commit 9)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dbetz/propgcc-gcc.git")
|
||||
(url "https://github.com/parallaxinc/propgcc.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" commit "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"15mxrhk2v4vqmdkvcqy33ag1wrg9x9q20kx2w33kkw8pkrijknbi"))
|
||||
"0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))
|
||||
(patch-flags (list "-p1" "--directory=gcc"))
|
||||
(patches
|
||||
(append
|
||||
(origin-patches (package-source gcc-4.7))
|
||||
(search-patches "gcc-4.6-gnu-inline.patch"
|
||||
"gcc-cross-environment-variables.patch")))))
|
||||
(home-page "https://github.com/dbetz/propgcc-gcc")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments propeller-gcc-6)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _ (chdir "gcc") #t))))))
|
||||
(home-page "https://github.com/parallaxinc/propgcc")
|
||||
(supported-systems (delete "aarch64-linux" %supported-systems)))))
|
||||
|
||||
;; Version 6 is experimental and may not work correctly. This is why we
|
||||
@ -524,23 +529,25 @@ with a layered architecture of JTAG interface and TAP support.")
|
||||
;; provided by Parallax Inc.
|
||||
(define-public propeller-gcc propeller-gcc-4)
|
||||
|
||||
;; There is no release, so we take the latest version as referenced from here:
|
||||
;; https://github.com/dbetz/propeller-gcc
|
||||
|
||||
;; FIXME: We do not build the tiny library because that would require C++
|
||||
;; headers, which are not available. This may require adding a propeller-elf
|
||||
;; variant of the libstdc++ package.
|
||||
(define-public proplib
|
||||
(let ((commit "844741fe0ceb140ab2fdf9d0667f68c1c39c31da")
|
||||
(revision "1"))
|
||||
(let ((commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "proplib")
|
||||
(version (string-append "0.0.0-" revision "." (string-take commit 9)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/totalspectrum/proplib.git")
|
||||
(url "https://github.com/parallaxinc/propgcc.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" commit "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0q7irf1x8iqx07n7lzksax9armrdkizs49swsz76nbks0mw67wiv"))))
|
||||
"0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
@ -550,12 +557,11 @@ with a layered architecture of JTAG interface and TAP support.")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-after 'unpack 'fix-Makefile
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _ (chdir "lib") #t))
|
||||
(add-after 'chdir 'fix-Makefile
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
;; The GCC sources are not part of this package, so we cannot
|
||||
;; install the out-of-tree license file.
|
||||
(("cp \\.\\..*") "")
|
||||
;; Control the installation time of the headers.
|
||||
((" install-includes") ""))
|
||||
#t))
|
||||
@ -575,23 +581,14 @@ with a layered architecture of JTAG interface and TAP support.")
|
||||
"/propeller-elf/include:"
|
||||
(or (getenv "CROSS_C_INCLUDE_PATH") "")))
|
||||
#t))
|
||||
(add-after 'build 'build-tiny
|
||||
(add-before 'install 'install-includes
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(zero? (apply system* "make" "tiny" make-flags))))
|
||||
;; The build of the tiny libraries depends on the includes to be
|
||||
;; available. Since we set CROSS_C_INCLUDE_PATH to the output
|
||||
;; directory, we have to install the includes first.
|
||||
(add-before 'build-tiny 'install-includes
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(zero? (apply system* "make" "install-includes" make-flags))))
|
||||
(add-after 'install 'install-tiny
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
(zero? (apply system* "make" "install-tiny" make-flags)))))))
|
||||
(zero? (apply system* "make" "install-includes" make-flags)))))))
|
||||
(native-inputs
|
||||
`(("propeller-gcc" ,propeller-gcc)
|
||||
("propeller-binutils" ,propeller-binutils)
|
||||
("perl" ,perl)))
|
||||
(home-page "https://github.com/totalspectrum/proplib")
|
||||
(home-page "https://github.com/parallaxinc/propgcc")
|
||||
(synopsis "C library for the Parallax Propeller")
|
||||
(description "This is a C library for the Parallax Propeller
|
||||
micro-controller.")
|
||||
@ -655,20 +652,20 @@ code.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public propeller-load
|
||||
(let ((commit "ba9c0a7251cf751d8d292ae19ffa03132097c0c0")
|
||||
(revision "1"))
|
||||
(let ((commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "propeller-load")
|
||||
(version "3.4.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dbetz/propeller-load.git")
|
||||
(url "https://github.com/parallaxinc/propgcc.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" commit "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qv3xaapl9fmj3zn58b60sprp4rnvnlpci8ci0pdrzkw6fhvx3pg"))))
|
||||
"0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
@ -677,11 +674,13 @@ code.")
|
||||
(string-append "TARGET=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _ (chdir "loader") #t))
|
||||
(delete 'configure))))
|
||||
(native-inputs
|
||||
`(("openspin" ,openspin)
|
||||
("propeller-toolchain" ,propeller-toolchain)))
|
||||
(home-page "https://github.com/dbetz/propeller-load")
|
||||
(home-page "https://github.com/parallaxinc/propgcc")
|
||||
(synopsis "Loader for Parallax Propeller micro-controllers")
|
||||
(description "This package provides the tool @code{propeller-load} to
|
||||
upload binaries to a Parallax Propeller micro-controller.")
|
||||
|
@ -30,6 +30,7 @@
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((srfi srfi-1) #:hide (zip))
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
@ -1279,3 +1280,197 @@ an embedded event driven algorithm.")
|
||||
(inputs
|
||||
`(("libngspice" ,libngspice)
|
||||
("readline" ,readline)))))
|
||||
|
||||
(define trilinos-serial-xyce
|
||||
;; Note: This is a Trilinos containing only the packages Xyce needs, so we
|
||||
;; keep it private. See
|
||||
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=27344#248>.
|
||||
;; TODO: Remove when we have modular Trilinos packages?
|
||||
(package
|
||||
(name "trilinos-serial-xyce")
|
||||
(version "12.6.3")
|
||||
(source
|
||||
(origin (method url-fetch)
|
||||
(uri (string-append "https://trilinos.org/oldsite/download/files/trilinos-"
|
||||
version "-Source.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"07jd1qpsbf31cmbyyngr4l67xzwyan24dyx5wlcahgbw7x6my3wn"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
#:configure-flags
|
||||
(list "-DCMAKE_CXX_FLAGS=-O3 -fPIC"
|
||||
"-DCMAKE_C_FLAGS=-O3 -fPIC"
|
||||
"-DCMAKE_Fortran_FLAGS=-O3 -fPIC"
|
||||
"-DTrilinos_ENABLE_NOX=ON"
|
||||
"-DNOX_ENABLE_LOCA=ON"
|
||||
"-DTrilinos_ENABLE_EpetraExt=ON"
|
||||
"-DEpetraExt_BUILD_BTF=ON"
|
||||
"-DEpetraExt_BUILD_EXPERIMENTAL=ON"
|
||||
"-DEpetraExt_BUILD_GRAPH_REORDERINGS=ON"
|
||||
"-DTrilinos_ENABLE_TrilinosCouplings=ON"
|
||||
"-DTrilinos_ENABLE_Ifpack=ON"
|
||||
"-DTrilinos_ENABLE_Isorropia=ON"
|
||||
"-DTrilinos_ENABLE_AztecOO=ON"
|
||||
"-DTrilinos_ENABLE_Belos=ON"
|
||||
"-DTrilinos_ENABLE_Teuchos=ON"
|
||||
"-DTeuchos_ENABLE_COMPLEX=ON"
|
||||
"-DTrilinos_ENABLE_Amesos=ON"
|
||||
"-DAmesos_ENABLE_KLU=ON"
|
||||
"-DAmesos_ENABLE_UMFPACK=ON"
|
||||
"-DTrilinos_ENABLE_Sacado=ON"
|
||||
"-DTrilinos_ENABLE_Kokkos=OFF"
|
||||
"-DTrilinos_ENABLE_ALL_OPTIONAL_PACKAGES=OFF"
|
||||
"-DTPL_ENABLE_AMD=ON"
|
||||
"-DTPL_ENABLE_UMFPACK=ON"
|
||||
"-DTPL_ENABLE_BLAS=ON"
|
||||
"-DTPL_ENABLE_LAPACK=ON")))
|
||||
(native-inputs
|
||||
`(("fortran" ,gfortran)
|
||||
("swig" ,swig)))
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
("lapack" ,lapack-3.5)
|
||||
("suitesparse" ,suitesparse)))
|
||||
(home-page "https://trilinos.org")
|
||||
(synopsis "Engineering and scientific problems algorithms")
|
||||
(description
|
||||
"The Trilinos Project is an effort to develop algorithms and enabling
|
||||
technologies within an object-oriented software framework for the solution of
|
||||
large-scale, complex multi-physics engineering and scientific problems. A
|
||||
unique design feature of Trilinos is its focus on packages.")
|
||||
(license (list license:lgpl2.1+
|
||||
license:bsd-3))))
|
||||
|
||||
(define-public xyce-serial
|
||||
(package
|
||||
(name "xyce-serial")
|
||||
(version "6.7")
|
||||
(source
|
||||
(origin (method url-fetch)
|
||||
(uri (string-append "https://archive.org/download/Xyce-"
|
||||
version "/Xyce-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02k952mnvrnc5kv7r65fdrn7khwq1lbyhwyvd7jznafzdpsvgm4x"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:configure-flags
|
||||
(list
|
||||
"CXXFLAGS=-O3 -std=c++11"
|
||||
(string-append "ARCHDIR="
|
||||
(assoc-ref %build-inputs "trilinos")))))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
("flex" ,flex)
|
||||
("fortran" ,gfortran)))
|
||||
(inputs
|
||||
`(("fftw" ,fftw)
|
||||
("suitesparse" ,suitesparse)
|
||||
("lapack" ,lapack-3.5)
|
||||
("trilinos" ,trilinos-serial-xyce)))
|
||||
(home-page "https://xyce.sandia.gov/")
|
||||
(synopsis "High-performance analog circuit simulator")
|
||||
(description
|
||||
"Xyce is a SPICE-compatible, high-performance analog circuit simulator,
|
||||
capable of solving extremely large circuit problems by supporting large-scale
|
||||
parallel computing platforms. It also supports serial execution.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define trilinos-parallel-xyce
|
||||
(package (inherit trilinos-serial-xyce)
|
||||
(name "trilinos-parallel-xyce")
|
||||
(arguments
|
||||
`(,@(substitute-keyword-arguments (package-arguments trilinos-serial-xyce)
|
||||
((#:configure-flags flags)
|
||||
`(append (list "-DTrilinos_ENABLE_ShyLU=ON"
|
||||
"-DTrilinos_ENABLE_Zoltan=ON"
|
||||
"-DTPL_ENABLE_MPI=ON")
|
||||
,flags)))))
|
||||
(inputs
|
||||
`(("mpi" ,openmpi)
|
||||
,@(package-inputs trilinos-serial-xyce)))))
|
||||
|
||||
(define-public xyce-parallel
|
||||
(package (inherit xyce-serial)
|
||||
(name "xyce-parallel")
|
||||
(arguments
|
||||
`(,@(substitute-keyword-arguments (package-arguments xyce-serial)
|
||||
((#:configure-flags flags)
|
||||
`(list "CXXFLAGS=-O3 -std=c++11"
|
||||
"CXX=mpiCC"
|
||||
"CC=mpicc"
|
||||
"F77=mpif77"
|
||||
"--enable-mpi"
|
||||
"--enable-isorropia=no"
|
||||
"--enable-zoltan=no"
|
||||
(string-append
|
||||
"ARCHDIR="
|
||||
(assoc-ref %build-inputs "trilinos")))))))
|
||||
(propagated-inputs
|
||||
`(("mpi" ,openmpi)))
|
||||
(inputs
|
||||
`(("trilinos" ,trilinos-parallel-xyce)
|
||||
,@(alist-delete "trilinos"
|
||||
(package-inputs xyce-serial))))))
|
||||
|
||||
(define-public freehdl
|
||||
(package
|
||||
(name "freehdl")
|
||||
(version "0.0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://downloads.sourceforge.net/qucs/freehdl-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"117dqs0d4pcgbzvr3jn5ppra7n7x2m6c161ywh6laa934pw7h2bz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'patch-pkg-config
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "freehdl/freehdl-config"
|
||||
(("pkg-config")
|
||||
(string-append (assoc-ref inputs "pkg-config")
|
||||
"/bin/pkg-config"))
|
||||
(("cat")
|
||||
(string-append (assoc-ref inputs "coreutils")
|
||||
"/bin/cat")))
|
||||
#t))
|
||||
(add-after 'configure 'patch-freehdl-pc
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "freehdl.pc"
|
||||
(("=g\\+\\+")
|
||||
(string-append "=" (assoc-ref inputs "gcc")
|
||||
"/bin/g++"))
|
||||
(("=libtool")
|
||||
(string-append "=" (assoc-ref inputs "libtool")
|
||||
"/bin/libtool")))
|
||||
#t))
|
||||
(add-after 'install-scripts 'make-wrapper
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(wrap-program (string-append out "/bin/freehdl-config")
|
||||
`("PKG_CONFIG_PATH" ":" prefix (,(string-append out "/lib/pkgconfig")))))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("coreutils" ,coreutils)
|
||||
("gcc" ,gcc)
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("libtool" ,libtool)))
|
||||
(native-inputs
|
||||
`(("pkg-config-native" ,pkg-config)
|
||||
("libtool-native" ,libtool)))
|
||||
(home-page "http://www.freehdl.seul.org/")
|
||||
(synopsis "VHDL simulator")
|
||||
(description
|
||||
"FreeHDL is a compiler/simulator suite for the hardware description language VHDL.
|
||||
VHDL'93 as well as VHDL'87 standards are supported.")
|
||||
(license (list license:gpl2+
|
||||
license:lgpl2.0+)))) ; freehdl's libraries
|
||||
|
||||
|
@ -133,7 +133,7 @@
|
||||
#:use-module (gnu packages gnuzilla)
|
||||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system haskell)
|
||||
#:use-module (guix build-system python)
|
||||
@ -2629,6 +2629,56 @@ Transport Tycoon Deluxe.")
|
||||
("opensfx" ,openttd-opensfx)
|
||||
,@(package-native-inputs openttd-engine)))))
|
||||
|
||||
(define-public openrct2
|
||||
(package
|
||||
(name "openrct2")
|
||||
(version "0.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/OpenRCT2/OpenRCT2/archive/v"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bahkzlf9k92cc4zs4nk4wy59323kiw8d3wm0vjps3kp7iznqyjx"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;; no tests available
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'build 'fix-cmake-install-file
|
||||
(lambda _
|
||||
;; The build system tries to download a file and compare hashes.
|
||||
;; Since we have no network, remove this so the install doesn't fail.
|
||||
(substitute* "cmake_install.cmake"
|
||||
(("EXPECTED_HASH SHA1=b587d83de508d0b104d14c599b76f8565900fce0")
|
||||
"")))))))
|
||||
(inputs `(("curl", curl)
|
||||
("fontconfig", fontconfig)
|
||||
("freetype", freetype)
|
||||
("jansson", jansson)
|
||||
("libpng", libpng)
|
||||
("libzip", libzip)
|
||||
("mesa", mesa)
|
||||
("openssl", openssl)
|
||||
("sdl2", sdl2)
|
||||
("speexdsp", speexdsp)
|
||||
("zlib", zlib)))
|
||||
(native-inputs
|
||||
`(("pkg-config", pkg-config)))
|
||||
(home-page "https://github.com/OpenRCT2/OpenRCT2")
|
||||
(synopsis "Free software re-implementation of RollerCoaster Tycoon 2")
|
||||
(description "OpenRCT2 is a free software re-implementation of
|
||||
RollerCoaster Tycoon 2 (RCT2). The gameplay revolves around building and
|
||||
maintaining an amusement park containing attractions, shops and facilities.
|
||||
|
||||
Note that this package does @emph{not} provide the game assets (sounds,
|
||||
images, etc.)")
|
||||
;; See <https://github.com/OpenRCT2/OpenRCT2/wiki/Required-RCT2-files>
|
||||
;; regarding assets.
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public pinball
|
||||
(package
|
||||
(name "pinball")
|
||||
|
@ -271,10 +271,10 @@ also known as DXTn or DXTC) for Mesa.")
|
||||
`(#:configure-flags
|
||||
'(,@(match (%current-system)
|
||||
("armhf-linux"
|
||||
;; TODO: Add etnaviv when enabled in libdrm.
|
||||
'("--with-gallium-drivers=freedreno,imx,nouveau,r300,r600,svga,swrast,vc4,virgl"))
|
||||
;; TODO: Add etnaviv,imx when libdrm supports etnaviv.
|
||||
'("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl"))
|
||||
("aarch64-linux"
|
||||
;; TODO: Fix svga driver for aarch64.
|
||||
;; TODO: Fix svga driver for aarch64 and armhf.
|
||||
'("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl"))
|
||||
(_
|
||||
'("--with-gallium-drivers=i915,nouveau,r300,r600,svga,swrast,virgl")))
|
||||
|
@ -700,7 +700,7 @@ forgotten when the session ends.")
|
||||
(define-public evince
|
||||
(package
|
||||
(name "evince")
|
||||
(version "3.24.1")
|
||||
(version "3.26.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@ -708,7 +708,7 @@ forgotten when the session ends.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dqgzwxl0xfr341r5i8j8hn6j6rhv62lmc6xbzjppcq76hhwb84w"))))
|
||||
"1n69lkiagx2x8lrdbvdlz6c051cvzhma73b3ggnw7w1wfkdpnmkr"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--disable-nautilus")
|
||||
@ -866,7 +866,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
|
||||
(define-public adwaita-icon-theme
|
||||
(package (inherit gnome-icon-theme)
|
||||
(name "adwaita-icon-theme")
|
||||
(version "3.24.0")
|
||||
(version "3.26.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@ -874,7 +874,7 @@ GNOME and KDE desktops to the icon names proposed in the specification.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ai73gs44yyw276xag6db0rlpvncy23qplp4girm80ilpprrzxyc"))))
|
||||
"04i2s6hkgzxgmq85dynmzih8rw5krc5apkks962mhgri37g8bbcw"))))
|
||||
(native-inputs
|
||||
`(("gtk-encode-symbolic-svg" ,gtk+ "bin")))))
|
||||
|
||||
@ -2015,7 +2015,7 @@ libraries written in C.")
|
||||
(define-public vte
|
||||
(package
|
||||
(name "vte")
|
||||
(version "0.48.3")
|
||||
(version "0.50.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@ -2023,7 +2023,7 @@ libraries written in C.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hsqc7238862mqnva5qqdfxnhpwq3ak6zx6kbjj95cs04wcgpad3"))))
|
||||
"1hm88nn1r38fszz770v6dgzgx208ywz4n087n4fhw5kkwpihh5yg"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
@ -2681,7 +2681,7 @@ more fun.")
|
||||
(define-public gnome-terminal
|
||||
(package
|
||||
(name "gnome-terminal")
|
||||
(version "3.24.2")
|
||||
(version "3.26.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -2690,7 +2690,7 @@ more fun.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03zcvxlzg7n4pz65vrg5xj3qpkqr4bz162mgmaz4bjh71b1xl7i8"))))
|
||||
"0fh7vshhzgypd66sinns5z1vskswl7ybs1ica080pskzyx75db5r"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@ -3581,7 +3581,7 @@ for application developers.")
|
||||
(define-public totem
|
||||
(package
|
||||
(name "totem")
|
||||
(version "3.24.0")
|
||||
(version "3.26.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -3590,12 +3590,15 @@ for application developers.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"00cdlll5b0wj5ckl1pc0a3g39a0hlq0gxkcsh1f6p20fjixqzmwv"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
"04zfx47mgyd0f4p3pjrxl6iaw0awgwbvilbsr1smw14ph2kbjbz3"))
|
||||
(patches (search-patches "totem-meson-easy-codec.patch"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("desktop-file-utils" ,desktop-file-utils)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("glib:bin" ,glib "bin") ;for 'glib-mkenums'
|
||||
("gtk:bin" ,gtk+ "bin") ;for 'gtk-update-icon-cache'
|
||||
("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("xmllint" ,libxml2)))
|
||||
@ -3636,13 +3639,21 @@ for application developers.")
|
||||
("nettle" ,nettle)
|
||||
("vala" ,vala)))
|
||||
(arguments
|
||||
`(;; Disable automatic GStreamer plugin installation via PackageKit and
|
||||
`(#:glib-or-gtk? #t
|
||||
|
||||
;; Disable parallel builds until
|
||||
;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=28813 is
|
||||
;; fixed. Try enabling it when updating this package in case
|
||||
;; upstream has fixed it.
|
||||
#:parallel-build? #f
|
||||
|
||||
;; Disable automatic GStreamer plugin installation via PackageKit and
|
||||
;; all that.
|
||||
#:configure-flags '("--disable-easy-codec-installation"
|
||||
#:configure-flags '("-D" "enable-easy-codec-installation=no"
|
||||
|
||||
;; Do not build .a files for the plugins, it's
|
||||
;; completely useless. This saves 2 MiB.
|
||||
"--disable-static")
|
||||
"--default-library" "shared")
|
||||
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
@ -4034,23 +4045,29 @@ work and the interface is well tested.")
|
||||
(define-public eolie
|
||||
(package
|
||||
(name "eolie")
|
||||
(version "0.9.0")
|
||||
(version "0.9.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/gnumdk/eolie/"
|
||||
"releases/download/"
|
||||
(version-major+minor version)
|
||||
"releases/download/" version
|
||||
"/eolie-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lb3rd2as12vq24fcf9nmlhggf8vka3kli2i92i8iylwi7nq5n2a"))))
|
||||
"0zw2zqgnpsvk35nrp4kqkh2hb5kchzpvi684xjv7a9hhrlsxkdqd"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build glib-or-gtk-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 match))
|
||||
#:phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'build
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero? (system* "meson" "build"
|
||||
"--prefix" (assoc-ref outputs "out")))))
|
||||
(replace 'check
|
||||
(lambda _ (zero? (system* "ninja" "-C" "build" "test"))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero? (system* "ninja" "-C" "build" "install"))))
|
||||
(add-after 'wrap 'wrap-more
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
@ -4071,7 +4088,11 @@ work and the interface is well tested.")
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("itstool" ,itstool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
("pkg-config" ,pkg-config)
|
||||
("meson" ,meson-for-build)
|
||||
("ninja" ,ninja)
|
||||
("python" ,python)
|
||||
("gtk+" ,gtk+ "bin")))
|
||||
(inputs
|
||||
`(("gobject-introspection" ,gobject-introspection)
|
||||
("glib-networking" ,glib-networking)
|
||||
@ -4405,7 +4426,7 @@ share them with others via social networking and more.")
|
||||
(define-public file-roller
|
||||
(package
|
||||
(name "file-roller")
|
||||
(version "3.24.1")
|
||||
(version "3.26.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
@ -4413,7 +4434,7 @@ share them with others via social networking and more.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0fkz9h9a6149crmf6311fsqlmv9wyrxk86470vxib941ppl4a581"))))
|
||||
"1bliwib59jrlfpdbpqc4rc3kzv4ns7pfyn8c28ananj3p34y9mgc"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
@ -5087,7 +5108,7 @@ to virtual private networks (VPNs) via OpenVPN.")
|
||||
(define-public mobile-broadband-provider-info
|
||||
(package
|
||||
(name "mobile-broadband-provider-info")
|
||||
(version "20151214")
|
||||
(version "20170310")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -5096,7 +5117,7 @@ to virtual private networks (VPNs) via OpenVPN.")
|
||||
"mobile-broadband-provider-info-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1905nab1h8p4hx0m1w0rn4mkg9209x680dcr4l77bngy21pmvr4a"))))
|
||||
"0fxm11x8k9hxjg8l5inaldfmmjnwkay3ibjv899jra03bv4h6kql"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; No tests
|
||||
@ -5694,7 +5715,7 @@ files.")
|
||||
(define-public baobab
|
||||
(package
|
||||
(name "baobab")
|
||||
(version "3.24.0")
|
||||
(version "3.26.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -5703,7 +5724,7 @@ files.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gzwzn8p0agidjq3wnkxcsny6jhqph3yqscqjqd7blgkz5nyk02r"))))
|
||||
"0zkqxyqyxd6j270jf5hbcrb3yh4k31ddh40v4cjhgngm8mcsnnbs"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
@ -5726,7 +5747,7 @@ is complete it provides a graphical representation of each selected folder.")
|
||||
(define-public gnome-backgrounds
|
||||
(package
|
||||
(name "gnome-backgrounds")
|
||||
(version "3.24.0")
|
||||
(version "3.26.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -5735,7 +5756,7 @@ is complete it provides a graphical representation of each selected folder.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jkikis9k3psp6rb8axnqy86awdyg5rzfbcp9gx40a99b4hlrnnb"))))
|
||||
"0kzrh5h0cfby3rhsy31d1w1c0rr3wcc845kv6zibqw1x8v9si2rs"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)))
|
||||
@ -5785,7 +5806,7 @@ beautifying border effects.")
|
||||
(define-public dconf-editor
|
||||
(package
|
||||
(name "dconf-editor")
|
||||
(version "3.22.3")
|
||||
(version "3.26.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -5794,7 +5815,7 @@ beautifying border effects.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1939yq3fl55c2dqkc6nzp6cbpxq9sli74gdj0rj7c50pwvbngwam"))))
|
||||
"0agay5zbhjbfznlwk7n3gg5cn0c7ih4vnmah6kb6m969li120cs9"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
@ -6679,7 +6700,7 @@ accessibility infrastructure.")
|
||||
(define-public orca
|
||||
(package
|
||||
(name "orca")
|
||||
(version "3.24.0")
|
||||
(version "3.26.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -6688,7 +6709,7 @@ accessibility infrastructure.")
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1la6f815drykrgqf791jx1dda6716cfv6052frqp7nhjxr75xg97"))))
|
||||
"0xk5k9cbswymma60nrfj00dl97wypx59c107fb1hwi75gm0i07a7"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -2,6 +2,7 @@
|
||||
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -23,8 +24,11 @@
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages glib)
|
||||
@ -52,7 +56,7 @@
|
||||
(base32
|
||||
"0g2risryfgplxh6cxpsl7fn255vipgsx38b4l081h665nqwmz5nv"))
|
||||
(patches (search-patches "gnucash-price-quotes-perl.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(inputs
|
||||
`(("guile" ,guile-2.0)
|
||||
("icu4c" ,icu4c)
|
||||
@ -69,15 +73,25 @@
|
||||
(native-inputs
|
||||
`(("glib" ,glib "bin") ; glib-compile-schemas, etc.
|
||||
("intltool" ,intltool)
|
||||
("gnucash-docs" ,gnucash-docs)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
`(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff
|
||||
#:configure-flags '("--disable-dbi"
|
||||
"--enable-aqbanking")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; There are about 100 megabytes of documentation.
|
||||
(add-after
|
||||
'install 'wrap-programs
|
||||
'install 'install-docs
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((docs (assoc-ref inputs "gnucash-docs"))
|
||||
(doc-output (assoc-ref outputs "doc")))
|
||||
(symlink (string-append docs "/share/gnome")
|
||||
(string-append doc-output "/share/gnome")))))
|
||||
(add-after
|
||||
'install-docs 'wrap-programs
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(for-each (lambda (prog)
|
||||
(wrap-program (string-append (assoc-ref outputs "out")
|
||||
@ -114,6 +128,42 @@ import and transaction matching. It also automates several tasks, such as
|
||||
financial calculations or scheduled transactions.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
;; This package is not public, since we use it to build the "doc" output of
|
||||
;; the gnucash package (see above). It would be confusing if it were public.
|
||||
(define gnucash-docs
|
||||
(package
|
||||
(name "gnucash-docs")
|
||||
(version (package-version gnucash))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gnucash/gnucash-docs/"
|
||||
version "/gnucash-docs-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dfb4m4084apav9kjsc4mfbj99xsyxm59qhpm1nxvhybn5h6qr3r"))))
|
||||
(build-system gnu-build-system)
|
||||
;; These are native-inputs because they are only required for building the
|
||||
;; documentation.
|
||||
(native-inputs
|
||||
`(("libxml2" ,libxml2)
|
||||
;; The "check" target needs the docbook xml packages for validating the
|
||||
;; DocBook XML during the tests.
|
||||
("docbook-xml-4.4" ,docbook-xml-4.4)
|
||||
("docbook-xml-4.2" ,docbook-xml-4.2)
|
||||
("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
|
||||
("libxslt" ,libxslt)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("scrollkeeper" ,scrollkeeper)))
|
||||
(home-page "http://www.gnucash.org/")
|
||||
(synopsis "Documentation for GnuCash")
|
||||
(description
|
||||
"User guide and other documentation for GnuCash in various languages.
|
||||
This package exists because the GnuCash project maintains its documentation in
|
||||
an entirely separate package from the actual GnuCash program. It is intended
|
||||
to be read using the GNOME Yelp program.")
|
||||
(license (list license:fdl1.1+ license:gpl3+))))
|
||||
|
||||
(define-public gwenhywfar
|
||||
(package
|
||||
(name "gwenhywfar")
|
||||
|
@ -66,14 +66,14 @@
|
||||
(define-public libextractor
|
||||
(package
|
||||
(name "libextractor")
|
||||
(version "1.4")
|
||||
(version "1.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libextractor/libextractor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0v7ns5jhsyp1wzvbaydfgxnva5zd63gkzm9djhckmam9liq824l4"))))
|
||||
"17gnpgspdhfgcr27j8sn9105vb4lw22yqdrhic62l79q5v5avm16"))))
|
||||
(build-system gnu-build-system)
|
||||
;; WARNING: Checks require /dev/shm to be in the build chroot, especially
|
||||
;; not to be a symbolic link to /run/shm.
|
||||
|
@ -2,6 +2,7 @@
|
||||
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -39,7 +40,7 @@
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gd)
|
||||
#:use-module (gnu packages swig)
|
||||
#:use-module ((guix licenses) #:select (lgpl2.0+ epl1.0 lgpl3+)))
|
||||
#:use-module ((guix licenses) #:prefix license:))
|
||||
|
||||
(define-public graphviz
|
||||
(package
|
||||
@ -106,7 +107,30 @@ way of representing structural information as diagrams of abstract graphs and
|
||||
networks. It has important applications in networking, bioinformatics,
|
||||
software engineering, database and web design, machine learning, and in visual
|
||||
interfaces for other technical domains.")
|
||||
(license epl1.0)))
|
||||
(license license:epl1.0)))
|
||||
|
||||
(define-public python-graphviz
|
||||
(package
|
||||
(name "python-graphviz")
|
||||
(version "0.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "graphviz" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0i738qb32w93hraxzjwkvnxmrfwcalhjd14fdbah9f2mk46p5748"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
(home-page "https://github.com/xflr6/graphviz")
|
||||
(synopsis "Simple Python interface for Graphviz")
|
||||
(description
|
||||
"This package provides a simple Python interface for the Graphviz graph
|
||||
visualization tool suite.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-graphviz
|
||||
(package-with-python2 python-graphviz))
|
||||
|
||||
(define-public gts
|
||||
(package
|
||||
@ -142,7 +166,7 @@ interfaces for other technical domains.")
|
||||
(description
|
||||
"Library intended to provide a set of useful functions to deal with
|
||||
3D surfaces meshed with interconnected triangles.")
|
||||
(license lgpl2.0+)))
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public xdot
|
||||
(package
|
||||
@ -185,4 +209,4 @@ interfaces for other technical domains.")
|
||||
@code{graphviz}’s dot language. Internally, it uses the xdot output format as
|
||||
an intermediate format,and @code{gtk} and @code{cairo} for rendering. Xdot can
|
||||
be used either as a standalone application, or as a python library.")
|
||||
(license lgpl3+)))
|
||||
(license license:lgpl3+)))
|
||||
|
@ -1346,7 +1346,24 @@ users and in some situations.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1svzlbz2vripmyq2kjh0rig16bsrnbkwbsm558pjln9l65mcl4qq"))))
|
||||
"1svzlbz2vripmyq2kjh0rig16bsrnbkwbsm558pjln9l65mcl4qq"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* "configure"
|
||||
(("_guile_required_version=\"2.0.11\"")
|
||||
"_guile_required_version=\"2\"")
|
||||
(("ac_subst_vars='")
|
||||
"ac_subst_vars='GUILE_EFFECTIVE_VERSION\n"))
|
||||
(substitute* (find-files "." "Makefile.in")
|
||||
(("moddir = .*$")
|
||||
(string-append
|
||||
"moddir = "
|
||||
"$(prefix)/share/guile/site/@GUILE_EFFECTIVE_VERSION@\n"))
|
||||
(("godir = .*$")
|
||||
(string-append
|
||||
"godir = "
|
||||
"$(prefix)/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
@ -1357,7 +1374,7 @@ users and in some situations.")
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("guile" ,guile-2.0)
|
||||
`(("guile" ,guile-2.2)
|
||||
("guile-sdl" ,guile-sdl)
|
||||
("guile-opengl" ,guile-opengl)))
|
||||
(inputs
|
||||
|
@ -31,6 +31,7 @@
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages aidc)
|
||||
#:use-module (gnu packages attr)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages bison)
|
||||
@ -42,6 +43,7 @@
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gnupg)
|
||||
@ -92,7 +94,17 @@
|
||||
(lambda _
|
||||
;; Always install into /lib and not into /lib64.
|
||||
(substitute* "kde-modules/KDEInstallDirs.cmake"
|
||||
(("\"lib64\"") "\"lib\""))))
|
||||
(("\"lib64\"") "\"lib\"")
|
||||
;; TODO: Base the following on values taken from Qt
|
||||
;; Install plugins into lib/qt5/plugins
|
||||
(("_define_relative\\(QTPLUGINDIR LIBDIR \"plugins\"")
|
||||
"_define_relative(QTPLUGINDIR LIBDIR \"qt5/plugins\"")
|
||||
;; Install imports into lib/qt5/imports
|
||||
(("_define_relative\\(QTQUICKIMPORTSDIR QTPLUGINDIR \"imports\"")
|
||||
"_define_relative(QTQUICKIMPORTSDIR LIBDIR \"qt5/imports\"")
|
||||
;; Install qml-files into lib/qt5/qml
|
||||
(("_define_relative\\(QMLDIR LIBDIR \"qml\"")
|
||||
"_define_relative(QMLDIR LIBDIR \"qt5/qml\""))))
|
||||
;; install and check phase are swapped to prevent install from failing
|
||||
;; after testsuire has run
|
||||
(add-after 'install 'check-post-install
|
||||
@ -128,16 +140,17 @@ common build settings used in software produced by the KDE community.")
|
||||
"177647r2jqfm32hqcz2nqfqv6v48hn5ab2vc31svba2wz23fkgk7"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
;; TODO: Add qttools to build the Qt Designer plugin.
|
||||
;; TODO: Think about adding pulseaudio. Is it required for sound?
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
;; TODO: Add building the super experimental QML support
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)
|
||||
("qttools", qttools)))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("-DCMAKE_CXX_FLAGS=-fPIC"
|
||||
"-DPHONON_BUILD_PHONON4QT5=ON"
|
||||
"-DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=ON")
|
||||
"-DPHONON_BUILD_PHONON4QT5=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'install 'patch-installdir
|
||||
@ -307,8 +320,11 @@ http://freedesktop.org/wiki/Specifications/open-collaboration-services/")
|
||||
`(("qtbase" ,qtbase)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
'("-DINSTALL_UDEV_RULE:BOOL=OFF")
|
||||
#:tests? #f)) ; DBUS_FATAL_WARNINGS=0 still yields 7/8 tests failing
|
||||
(list (string-append
|
||||
"-DUDEV_RULES_INSTALL_DIR=" %output "/lib/udev/rules.d"))
|
||||
;; TODO: Make tests pass: DBUS_FATAL_WARNINGS=0 still yields 7/8 tests
|
||||
;; failing. When running after install, tests hang.
|
||||
#:tests? #f))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "QML wrapper for BlueZ")
|
||||
(description "bluez-qt is a Qt-style library for accessing the bluez
|
||||
@ -540,6 +556,8 @@ propagate their changes to their respective configuration files.")
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("qttools" ,qttools)
|
||||
("shared-mime-info" ,shared-mime-info)
|
||||
;; TODO: FAM: File alteration notification http://oss.sgi.com/projects/fam
|
||||
("xorg-server" ,xorg-server))) ; for the tests
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)))
|
||||
@ -624,7 +642,8 @@ as well as an API to create KDED modules.")
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("qttools" ,qttools)))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)))
|
||||
`(("avahi" ,avahi) ; alternativly dnssd could be used
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "Network service discovery using Zeroconf")
|
||||
(description "KDNSSD is a library for handling the DNS-based Service
|
||||
@ -729,9 +748,11 @@ translation scripting.")
|
||||
"01m4q3l2yq83f2dpbv6jry7cjkj6bqdgfpy5b8byaf1gf9w2firs"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
`(("libxscrnsaver" ,libxscrnsaver) ; X-Screensaver based poller, fallback mode
|
||||
("qtbase" ,qtbase)
|
||||
("qtx11extras" ,qtx11extras)))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "Reporting of idle time of user and system")
|
||||
@ -1042,7 +1063,7 @@ configuration pages, message boxes, and password requests.")
|
||||
(begin
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(setenv "QT_PLUGIN_PATH"
|
||||
(string-append out "/lib/plugins:"
|
||||
(string-append out "/lib/qt5/plugins:"
|
||||
(getenv "QT_PLUGIN_PATH"))))
|
||||
;; The test suite requires a running X server, setting
|
||||
;; QT_QPA_PLATFORM=offscreen does not suffice and even make
|
||||
@ -1213,7 +1234,7 @@ system.")
|
||||
(define-public prison
|
||||
(package
|
||||
(name "prison")
|
||||
(version "5.34.0")
|
||||
(version "5.37.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -1221,7 +1242,7 @@ system.")
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "00wj4yyfhhcq9b54civ5hy1grz70mmi676x50y12crcbbgkxm1lx"))))
|
||||
(base32 "1icsirwfh7zscm8x9g2gp7aqzhs81ahhjflwjcwpz9bh0r9f1wb7"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
@ -1251,6 +1272,7 @@ provides uniform access to generation of barcodes with data.")
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)
|
||||
("qttools" ,qttools)))
|
||||
(inputs
|
||||
`(("hunspell" ,hunspell)
|
||||
@ -1452,6 +1474,15 @@ application crashes.")
|
||||
(("^.*xml/docbook/stylesheet.*$")
|
||||
(string-append "xml/xsl/docbook-xsl-"
|
||||
,(package-version docbook-xsl) "\n")))
|
||||
#t))
|
||||
(add-after 'install 'add-symlinks
|
||||
;; Some package(s) (e.g. kdelibs4support) refer to this locale by a
|
||||
;; different spelling.
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((xsl (string-append (assoc-ref outputs "out")
|
||||
"/share/kf5/kdoctools/customization/xsl/")))
|
||||
(symlink (string-append xsl "pt_br.xml")
|
||||
(string-append xsl "pt-BR.xml")))
|
||||
#t)))))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "Create documentation from DocBook")
|
||||
@ -1485,23 +1516,26 @@ from DocBook files.")
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(setenv "QT_PLUGIN_PATH"
|
||||
(string-append out "/lib/plugins:"
|
||||
(string-append out "/lib/qt5/plugins:"
|
||||
(getenv "QT_PLUGIN_PATH"))))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python-2" ,python-2)))
|
||||
(inputs
|
||||
`(("attr" ,attr)
|
||||
;; TODO: EPub http://sourceforge.net/projects/ebook-tools
|
||||
("karchive" ,karchive)
|
||||
("ki18n" ,ki18n)
|
||||
("qtmultimedia" ,qtmultimedia)
|
||||
("qtbase" ,qtbase)
|
||||
;; Required run-time packages
|
||||
("catdoc" ,catdoc)
|
||||
;; Optional run-time packages
|
||||
("exiv2" ,exiv2)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("poppler" ,poppler)
|
||||
("poppler-qt5" ,poppler-qt5)
|
||||
("taglib" ,taglib)))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "Extract metadata from different fileformats")
|
||||
@ -1995,7 +2029,8 @@ KCModules can be created with the KConfigWidgets framework.")
|
||||
("kconfig" ,kconfig)
|
||||
("kwidgetsaddons" ,kwidgetsaddons)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("kdoctools" ,kdoctools)))
|
||||
(inputs
|
||||
`(("kcoreaddons" ,kcoreaddons)
|
||||
("kguiaddons" ,kguiaddons)
|
||||
@ -2036,6 +2071,7 @@ their settings.")
|
||||
("kpackage" ,kpackage)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)
|
||||
("xorg-server" ,xorg-server)))
|
||||
(inputs
|
||||
`(("kauth" ,kauth)
|
||||
@ -2055,6 +2091,7 @@ their settings.")
|
||||
("kwidgetsaddons" ,kwidgetsaddons)
|
||||
("kwindowsystem" ,kwindowsystem)
|
||||
("kxmlgui" ,kxmlgui)
|
||||
("libepoxy", libepoxy)
|
||||
("qtbase" ,qtbase)
|
||||
("qtdeclarative" ,qtdeclarative)
|
||||
("solid" ,solid)))
|
||||
@ -2132,7 +2169,20 @@ started on demand.")
|
||||
`(("kconfig" ,kconfig)
|
||||
("kcoreaddons" ,kcoreaddons)
|
||||
("kdoctools" ,kdoctools)
|
||||
("qtbase" ,qtbase)))
|
||||
("qtbase" ,qtbase)
|
||||
;; optional:
|
||||
("kcompletion" ,kcompletion)
|
||||
("kconfigwidgets" ,kconfigwidgets)
|
||||
("kiconthemes" ,kiconthemes)
|
||||
("kitemviews" ,kitemviews)
|
||||
("kio" ,kio)
|
||||
("kplotting" ,kplotting)
|
||||
("ktextwidgets" ,ktextwidgets)
|
||||
("kdewebkit" ,kdewebkit)
|
||||
("kwidgetsaddons" ,kwidgetsaddons)
|
||||
("kxmlgui" ,kxmlgui)
|
||||
("qtwebkit" ,qtwebkit)
|
||||
("sonnet" ,sonnet)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
@ -2237,6 +2287,7 @@ emoticons coming from different providers.")
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("pkg-config" ,pkg-config)
|
||||
("qttools" ,qttools)))
|
||||
(inputs
|
||||
`(("kconfig" ,kconfig)
|
||||
@ -2386,7 +2437,7 @@ makes starting KDE applications faster and reduces memory consumption.")
|
||||
`(("dbus" ,dbus)
|
||||
("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
(inputs
|
||||
`(("acl" ,acl)
|
||||
`(;; TODO: LibACL , <ftp://oss.sgi.com/projects/xfs/cmd_tars>
|
||||
("krb5" ,mit-krb5)
|
||||
("karchive" ,karchive)
|
||||
("kauth" ,kauth)
|
||||
@ -2411,13 +2462,30 @@ makes starting KDE applications faster and reduces memory consumption.")
|
||||
`(#:tests? #f ; FIXME: 41/50 tests fail.
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch
|
||||
(lambda _
|
||||
;; Better error message (taken from nix)
|
||||
(substitute* "src/kiod/kiod_main.cpp"
|
||||
(("(^\\s*qCWarning(KIOD_CATEGORY) << \"Error loading plugin:\")( << loader.errorString();)" _ a b)
|
||||
(string-append a "<< name" b)))
|
||||
;; TODO: samba-search-path.patch from nix: search smbd on $PATH
|
||||
#t))
|
||||
(add-before 'check 'check-setup
|
||||
(lambda _
|
||||
(setenv "HOME" (getcwd))
|
||||
(setenv "XDG_RUNTIME_DIR" (getcwd))
|
||||
;; make Qt render "offscreen", required for tests
|
||||
(setenv "QT_QPA_PLATFORM" "offscreen")
|
||||
#t)))))
|
||||
#t))
|
||||
(add-after 'install 'add-symlinks
|
||||
;; Some package(s) (e.g. bluedevil) refer to these service types by
|
||||
;; the wrong name. I would prefer to patch those packages, but I
|
||||
;; cannot find the files!
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((kst5 (string-append (assoc-ref outputs "out")
|
||||
"/share/kservicetypes5/")))
|
||||
(symlink (string-append kst5 "kfileitemactionplugin.desktop")
|
||||
(string-append kst5 "kfileitemaction-plugin.desktop"))))))))
|
||||
;;(replace 'check
|
||||
;; (lambda _
|
||||
;; (setenv "DBUS_FATAL_WARNINGS" "0")
|
||||
@ -2551,7 +2619,9 @@ notifications which can be embedded in your application.")
|
||||
("ktextwidgets" ,ktextwidgets)
|
||||
("kxmlgui" ,kxmlgui)))
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
("shared-mime-info" ,shared-mime-info)
|
||||
))
|
||||
(inputs
|
||||
`(("kauth" ,kauth)
|
||||
("kbookmarks" ,kbookmarks)
|
||||
@ -2788,7 +2858,16 @@ types or handled by application specific code.")
|
||||
(setenv "HOME" (getcwd))
|
||||
;; make Qt render "offscreen", required for tests
|
||||
(setenv "QT_QPA_PLATFORM" "offscreen")
|
||||
#t)))))
|
||||
#t))
|
||||
(add-after 'install 'add-symlinks
|
||||
;; Some package(s) (e.g. plasma-sdk) refer to these service types
|
||||
;; by the wrong name. I would prefer to patch those packages, but
|
||||
;; I cannot find the files!
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((kst5 (string-append (assoc-ref outputs "out")
|
||||
"/share/kservicetypes5/")))
|
||||
(symlink (string-append kst5 "ktexteditorplugin.desktop")
|
||||
(string-append kst5 "ktexteditor-plugin.desktop"))))))))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "Full text editor component")
|
||||
(description "KTextEditor provides a powerful text editor component that you
|
||||
@ -2861,7 +2940,7 @@ It supports rich text as well as plain text.")
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
(inputs
|
||||
`(("gpgme" ,gpgme) ;; TODO: Add gpgme Qt-bindings
|
||||
`(("gpgme" ,gpgme)
|
||||
("kauth" ,kauth)
|
||||
("kcodecs" ,kcodecs)
|
||||
("kconfig" ,kconfig)
|
||||
@ -2877,6 +2956,7 @@ It supports rich text as well as plain text.")
|
||||
("kwindowsystem" ,kwindowsystem)
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("phonon" ,phonon)
|
||||
("qgpgme" ,qgpgme)
|
||||
("qtbase" ,qtbase)))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "Safe desktop-wide storage for passwords")
|
||||
@ -2885,6 +2965,38 @@ desktop-wide storage for passwords and the kwalletd daemon used to safely store
|
||||
the passwords on KDE work spaces.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public kdewebkit
|
||||
(package
|
||||
(name "kdewebkit")
|
||||
(version "5.37.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://kde/stable/frameworks/"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ph3a50wix42hmsbc9jbfxla172aihjx9yzp9rza09j1a7va3hg1"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)))
|
||||
(inputs
|
||||
`(("kconfig" ,kconfig)
|
||||
("kcoreaddons" ,kcoreaddons)
|
||||
("kio" ,kio)
|
||||
("kjobwidgets" ,kjobwidgets)
|
||||
("kparts" ,kparts)
|
||||
("kservice" ,kservice)
|
||||
("kwallet" ,kwallet)
|
||||
("qtbase" ,qtbase)
|
||||
("qtwebkit" ,qtwebkit)))
|
||||
(home-page "https://community.kde.org/Frameworks")
|
||||
(synopsis "KDE Integration for QtWebKit")
|
||||
(description "This library provides KDE integration of the HTML rendering
|
||||
engine WebKit via QtWebKit.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public kxmlgui
|
||||
(package
|
||||
(name "kxmlgui")
|
||||
@ -3182,12 +3294,8 @@ workspace.")
|
||||
(inputs
|
||||
`(("kcompletion" ,kcompletion)
|
||||
("kconfig" ,kconfig)
|
||||
("kconfigwidgets" ,kconfigwidgets)
|
||||
("kded" ,kded)
|
||||
("kdesignerplugin" ,kdesignerplugin)
|
||||
("kdoctools" ,kdoctools)
|
||||
("kglobalaccel" ,kglobalaccel)
|
||||
("kguiaddons" ,kguiaddons)
|
||||
("ki18n" ,ki18n)
|
||||
("kio" ,kio)
|
||||
("kservice" ,kservice)
|
||||
|
@ -1,6 +1,10 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
|
||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -22,7 +26,12 @@
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu))
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages ruby)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system ruby))
|
||||
|
||||
(define-public libffi
|
||||
(let ((post-install-phase
|
||||
@ -66,3 +75,103 @@ conversions for values passed between the two languages.")
|
||||
;; See <https://github.com/atgreen/libffi/blob/master/LICENSE>.
|
||||
(license expat))))
|
||||
|
||||
(define-public python-cffi
|
||||
(package
|
||||
(name "python-cffi")
|
||||
(version "1.11.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cffi" version))
|
||||
(sha256
|
||||
(base32 "19h0wwz9cww74gw8cyq0izj8zkhjyzjw2d3ks1c3f1y4q28xv1xb"))))
|
||||
(build-system python-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(inputs
|
||||
`(("libffi" ,libffi)))
|
||||
(propagated-inputs ; required at run-time
|
||||
`(("python-pycparser" ,python-pycparser)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(arguments
|
||||
`(#:modules ((ice-9 ftw)
|
||||
(srfi srfi-26)
|
||||
(guix build utils)
|
||||
(guix build python-build-system))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH"
|
||||
(string-append
|
||||
(getenv "PYTHONPATH")
|
||||
":" (getcwd) "/build/"
|
||||
(car (scandir "build" (cut string-prefix? "lib." <>)))))
|
||||
|
||||
;; XXX The "normal" approach of setting CC and friends does
|
||||
;; not work here. Is this the correct way of doing things?
|
||||
(substitute* "testing/embedding/test_basic.py"
|
||||
(("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
|
||||
(string-append "c = distutils.ccompiler.new_compiler();"
|
||||
"c.set_executables(compiler='gcc',"
|
||||
"compiler_so='gcc',linker_exe='gcc',"
|
||||
"linker_so='gcc -shared')")))
|
||||
(substitute* "testing/cffi0/test_ownlib.py"
|
||||
(("'cc testownlib") "'gcc testownlib"))
|
||||
(zero? (system* "py.test" "-v" "c/" "testing/"))))
|
||||
(add-before 'check 'disable-failing-test
|
||||
;; This is assumed to be a libffi issue:
|
||||
;; https://bitbucket.org/cffi/cffi/issues/312/tests-failed-with-armv8
|
||||
(lambda _
|
||||
(substitute* "testing/cffi0/test_ownlib.py"
|
||||
(("ret.left") "ownlib.left"))
|
||||
#t))
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
|
||||
(doc (string-append data "/doc/" ,name "-" ,version))
|
||||
(html (string-append doc "/html")))
|
||||
(with-directory-excursion "doc"
|
||||
(system* "make" "html")
|
||||
(mkdir-p html)
|
||||
(copy-recursively "build/html" html))
|
||||
(copy-file "LICENSE" (string-append doc "/LICENSE"))
|
||||
#t))))))
|
||||
(home-page "https://cffi.readthedocs.org")
|
||||
(synopsis "Foreign function interface for Python")
|
||||
(description
|
||||
"Foreign Function Interface for Python calling C code.")
|
||||
(license expat)))
|
||||
|
||||
(define-public python2-cffi
|
||||
(package-with-python2 python-cffi))
|
||||
|
||||
(define-public ruby-ffi
|
||||
(package
|
||||
(name "ruby-ffi")
|
||||
(version "1.9.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "ffi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0"))))
|
||||
(build-system ruby-build-system)
|
||||
;; FIXME: Before running tests the build system attempts to build libffi
|
||||
;; from sources.
|
||||
(arguments `(#:tests? #f))
|
||||
(native-inputs
|
||||
`(("ruby-rake-compiler" ,ruby-rake-compiler)
|
||||
("ruby-rspec" ,ruby-rspec)
|
||||
("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
|
||||
(inputs
|
||||
`(("libffi" ,libffi)))
|
||||
(synopsis "Ruby foreign function interface library")
|
||||
(description "Ruby-FFI is a Ruby extension for programmatically loading
|
||||
dynamic libraries, binding functions within them, and calling those functions
|
||||
from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby
|
||||
and JRuby.")
|
||||
(home-page "http://wiki.github.com/ffi/ffi")
|
||||
(license bsd-3)))
|
||||
|
@ -367,8 +367,8 @@ It has been modified to remove all non-free binary blobs.")
|
||||
|
||||
(define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
|
||||
|
||||
(define %linux-libre-version "4.13.5")
|
||||
(define %linux-libre-hash "1crw61x7qrijhpw0azxf9b3fra0cxq87ncni2419p0s23jfdpc4m")
|
||||
(define %linux-libre-version "4.13.7")
|
||||
(define %linux-libre-hash "1znf2zrhfb6wmlv09c14y6sawl4nb0jr7gzwwnakspvy0yjs95r3")
|
||||
|
||||
(define-public linux-libre
|
||||
(make-linux-libre %linux-libre-version
|
||||
@ -377,14 +377,14 @@ It has been modified to remove all non-free binary blobs.")
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.53"
|
||||
"174i53cd090akbjq34dj4z00h1nyfmy3sl3fk6svcmbx6h34381h"
|
||||
(make-linux-libre "4.9.56"
|
||||
"05wy73yh4jbn1881djs21wl4hws62lyc1frb5di6cg6m3z7j658i"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.90"
|
||||
"1sqzvz8yrcf99vhphkxp1wm2agq6q9nshxb1mkypspm8rhm11vhw"
|
||||
(make-linux-libre "4.4.92"
|
||||
"038mrv36n2521xd1f4nlpn00ar4vwzbwkldf6pk7rflbc3zi0p8g"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
@ -398,11 +398,11 @@ It has been modified to remove all non-free binary blobs.")
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri "\
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/?id=4a01092a5fa819397484fe2b50e9518356858156")
|
||||
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/patch/?id=f7ec367c8ea7021517c9c04b0022c225d2d0785a")
|
||||
(file-name "linux-libre-4.4-CVE-2017-1000251.patch")
|
||||
(sha256
|
||||
(base32
|
||||
"0zmkw9zvzpwy2ihiyfrw6mrf8qzv77cm23lxadr20qvzqlc1xzb3"))))))
|
||||
"1glnjvs3xkvana2wfdv47dxi7jz2s4dz3v0b8ryglf2vbflm388w"))))))
|
||||
|
||||
(define-public linux-libre-arm-generic
|
||||
(make-linux-libre %linux-libre-version
|
||||
@ -3071,6 +3071,16 @@ Bluetooth audio output devices like headphones or loudspeakers.")
|
||||
(string-append "--with-udevdir=" out "/lib/udev")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
,@(if (string=? (%current-system) "armhf-linux")
|
||||
;; This test fails unpredictably.
|
||||
;; TODO: skip it for all architectures.
|
||||
`((add-before 'check 'skip-wonky-test
|
||||
(lambda _
|
||||
(substitute* "unit/test-gatt.c"
|
||||
(("tester_init\\(&argc, &argv\\);") "return 77;"))
|
||||
#t)))
|
||||
`())
|
||||
|
||||
(add-after 'install 'post-install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
@ -3089,13 +3099,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
|
||||
(string-append out "/lib/udev/hid2hci --method"))
|
||||
(("/sbin/udevadm")
|
||||
(string-append (assoc-ref inputs "eudev") "/bin/udevadm")))
|
||||
#t))))
|
||||
|
||||
;; FIXME: Skip a test that segfaults on some machines. Seems to be a
|
||||
;; timing issue (discussion on upstream mailing list:
|
||||
;; https://marc.info/?t=149578476300002&r=1&w=2)
|
||||
#:make-flags '("XFAIL_TESTS=unit/test-gatt")))
|
||||
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("gettext" ,gettext-minimal)))
|
||||
@ -3689,14 +3693,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
|
||||
(define-public mcelog
|
||||
(package
|
||||
(name "mcelog")
|
||||
(version "153")
|
||||
(version "154")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
|
||||
"mcelog.git/snapshot/v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0q40d60p1klzg0aznvxhxgjlddwcxfj2q59s4q86sf9ild6rcdhl"))
|
||||
"07628cr05f50m7lsvw26wxlnb7qcl0x6rymdpp5spqzhz91l58p3"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
@ -3715,7 +3719,7 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
|
||||
;; The tests will only run as root on certain supported CPU models.
|
||||
#:tests? #f))
|
||||
(supported-systems (list "i686-linux" "x86_64-linux"))
|
||||
(home-page "http://mcelog.org/")
|
||||
(home-page "https://mcelog.org/")
|
||||
(synopsis "Machine check monitor for x86 Linux systems")
|
||||
(description
|
||||
"The mcelog daemon is required by the Linux kernel to log memory, I/O, CPU,
|
||||
|
@ -14,7 +14,7 @@
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
|
||||
;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
|
||||
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
@ -265,7 +265,7 @@ operating systems.")
|
||||
(package
|
||||
(inherit mutt)
|
||||
(name "neomutt")
|
||||
(version "20170912")
|
||||
(version "20171013")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -273,7 +273,7 @@ operating systems.")
|
||||
"/archive/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mv60kii933hq52mhwrcz29diaajbs5ryqibgsvdvfyvx27i43cz"))))
|
||||
"0mcs5rhlajyxl0bw2hpwcwx14rzrgk6sf8yr0gdj1di3sq166z2s"))))
|
||||
(inputs
|
||||
`(("cyrus-sasl" ,cyrus-sasl)
|
||||
("gdbm" ,gdbm)
|
||||
@ -583,7 +583,7 @@ attachments, create new maildirs, and so on.")
|
||||
(define-public alot
|
||||
(package
|
||||
(name "alot")
|
||||
(version "0.4")
|
||||
(version "0.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; package author intends on distributing via github rather
|
||||
@ -594,13 +594,14 @@ attachments, create new maildirs, and so on.")
|
||||
(file-name (string-append "alot-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sl1kl2fhkv208llnbny4blcvrfdk4vx6bcw5pnyh9ylwb0pipi2"))))
|
||||
"0wax30hjzmkqfml7hig1dqw1v1y63yc0cgbzl96x58b9h2ggqx3a"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
;; python 3 is currently unsupported, more info:
|
||||
`(;; python 3 is currently unsupported, more info:
|
||||
;; https://github.com/pazz/alot/blob/master/docs/source/faq.rst
|
||||
#:python ,python-2))
|
||||
(native-inputs
|
||||
`(("python2-mock" ,python2-mock)))
|
||||
(inputs
|
||||
`(("python2-magic" ,python2-magic)
|
||||
("python2-configobj" ,python2-configobj)
|
||||
@ -1096,7 +1097,7 @@ facilities for checking incoming mail.")
|
||||
(define-public dovecot
|
||||
(package
|
||||
(name "dovecot")
|
||||
(version "2.2.32")
|
||||
(version "2.2.33.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -1104,7 +1105,7 @@ facilities for checking incoming mail.")
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256 (base32
|
||||
"0bmwyvi1crmrca2knvknsf517x53w7gxrclwyrvrhddgw98j22qn"))))
|
||||
"02w932hq8v9889k709gbg94jl983lzwd3nh51vkxq041821a3ng4"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -473,6 +473,19 @@ problems in numerical linear algebra.")
|
||||
(license (license:non-copyleft "file://LICENSE"
|
||||
"See LICENSE in the distribution."))))
|
||||
|
||||
(define-public lapack-3.5
|
||||
(package
|
||||
(inherit lapack)
|
||||
(version "3.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.netlib.org/lapack/lapack-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lk3f97i9imqascnlf6wr5mjpyxqcdj73pgj97dj2mgvyg9z1n4s"))))))
|
||||
|
||||
(define-public scalapack
|
||||
(package
|
||||
(name "scalapack")
|
||||
@ -2374,7 +2387,7 @@ to BMP, JPEG or PNG image formats.")
|
||||
(define-public maxima
|
||||
(package
|
||||
(name "maxima")
|
||||
(version "5.40.0")
|
||||
(version "5.41.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -2382,7 +2395,7 @@ to BMP, JPEG or PNG image formats.")
|
||||
version "-source/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15pp35ayglv723bjbqc60gcdv2bm54s6pywsm4i4cwbjsf64dzkl"))
|
||||
"0x0n81z0s4pl8nwpf7ivlsbvsdphm9w42250g7qdkizl0132by6s"))
|
||||
(patches (search-patches "maxima-defsystem-mkdir.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
@ -296,7 +296,7 @@ This package contains the binary.")
|
||||
(define-public mpg123
|
||||
(package
|
||||
(name "mpg123")
|
||||
(version "1.25.6")
|
||||
(version "1.25.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append "mirror://sourceforge/mpg123/mpg123/"
|
||||
@ -306,7 +306,7 @@ This package contains the binary.")
|
||||
version ".tar.bz2")))
|
||||
(sha256
|
||||
(base32
|
||||
"13jsbh1gwypjksim2fxlblj5wc2driwm4igrkcnbr6bpp34mh10g"))))
|
||||
"1ws40fglyyk51jvmz8gfapjkw1g51pkch1rffdsbh4b1yay5xc9i"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("--with-default-audio=pulse")))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
|
@ -486,7 +486,7 @@ which can be used to encrypt a password with @code{crypt(3)}.")
|
||||
(define-public wireshark
|
||||
(package
|
||||
(name "wireshark")
|
||||
(version "2.4.1")
|
||||
(version "2.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -494,7 +494,7 @@ which can be used to encrypt a password with @code{crypt(3)}.")
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1k8zj44pkb2ny2x46f100y7cxddm1kh0zh7f6qggm78gn7wvrp82"))))
|
||||
"0zglapd3sz08p2z9x8a5va3jnz17b3n5a1bskf7f2dgx6m3v5b6i"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("c-ares" ,c-ares)
|
||||
("glib" ,glib)
|
||||
@ -510,12 +510,12 @@ which can be used to encrypt a password with @code{crypt(3)}.")
|
||||
("openssl" ,openssl)
|
||||
("portaudio" ,portaudio)
|
||||
("qtbase" ,qtbase)
|
||||
("qttools" ,qttools)
|
||||
("sbc" ,sbc)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs `(("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python-wrapper)))
|
||||
("python" ,python-wrapper)
|
||||
("qttools" ,qttools)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list (string-append "--with-c-ares=" (assoc-ref %build-inputs "c-ares"))
|
||||
@ -529,7 +529,6 @@ which can be used to encrypt a password with @code{crypt(3)}.")
|
||||
(string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
|
||||
(string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))
|
||||
(string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))))
|
||||
(home-page "https://www.wireshark.org/")
|
||||
(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
|
||||
|
@ -46,6 +46,7 @@
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages kerberos)
|
||||
#:use-module (gnu packages libffi)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
|
65
gnu/packages/patches/totem-meson-easy-codec.patch
Normal file
65
gnu/packages/patches/totem-meson-easy-codec.patch
Normal file
@ -0,0 +1,65 @@
|
||||
Fix a bug whereby the 'have_easy_codec' would be left undefined
|
||||
when passing '-D enable-easy-codec-installation=no'. Likewise,
|
||||
don't rely on GStreamer's plug-in support when it's disabled.
|
||||
|
||||
--- totem-3.26.0/meson.build 2017-10-11 22:29:44.506280919 +0200
|
||||
+++ totem-3.26.0/meson.build 2017-10-11 22:29:50.902252058 +0200
|
||||
@@ -203,6 +203,8 @@ if easy_codec_option != 'no'
|
||||
missing_plugins_deps += gst_pbutils_dep
|
||||
config_h.set('ENABLE_MISSING_PLUGIN_INSTALLATION', have_easy_codec,
|
||||
description: 'Whether we can and want to do installation of missing plugins')
|
||||
+else
|
||||
+ have_easy_codec = false
|
||||
endif
|
||||
|
||||
# python support
|
||||
|
||||
--- totem-3.26.0/src/backend/bacon-video-widget.c 2017-10-11 22:40:52.531217356 +0200
|
||||
+++ totem-3.26.0/src/backend/bacon-video-widget.c 2017-10-11 22:45:44.973847231 +0200
|
||||
@@ -341,6 +341,22 @@ get_type_name (GType class_type, int typ
|
||||
return value->value_nick;
|
||||
}
|
||||
|
||||
+#ifndef ENABLE_MISSING_PLUGIN_INSTALLATION
|
||||
+
|
||||
+gchar *
|
||||
+gst_missing_plugin_message_get_installer_detail (GstMessage *message)
|
||||
+{
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+char *
|
||||
+gst_missing_plugin_message_get_description (GstMessage *message)
|
||||
+{
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
static gchar **
|
||||
bvw_get_missing_plugins_foo (const GList * missing_plugins, MsgToStrFunc func)
|
||||
{
|
||||
@@ -1654,10 +1670,12 @@ bvw_handle_element_message (BaconVideoWi
|
||||
}
|
||||
}
|
||||
goto done;
|
||||
+#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
|
||||
} else if (gst_is_missing_plugin_message (msg)) {
|
||||
bvw->priv->missing_plugins =
|
||||
g_list_prepend (bvw->priv->missing_plugins, gst_message_ref (msg));
|
||||
goto done;
|
||||
+#endif
|
||||
} else if (strcmp (type_name, "not-mounted") == 0) {
|
||||
const GValue *val;
|
||||
GFile *file;
|
||||
@@ -6109,7 +6127,9 @@ bacon_video_widget_initable_init (GInita
|
||||
GST_DEBUG ("Initialised %s", version_str);
|
||||
g_free (version_str);
|
||||
|
||||
+#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
|
||||
gst_pb_utils_init ();
|
||||
+#endif
|
||||
|
||||
/* Instantiate all the fallible plugins */
|
||||
bvw->priv->play = element_make_or_warn ("playbin", "play");
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -22,8 +22,8 @@
|
||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
|
||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
|
||||
;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
|
||||
;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
|
||||
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
|
||||
;;; Copyright © 2016 Dylan Jeffers <sapientech@sapientech@openmailbox.org>
|
||||
;;; Copyright © 2016 David Craven <david@craven.ch>
|
||||
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
@ -4512,7 +4512,8 @@ operators such as union, intersection, and difference.")
|
||||
(scandir (string-append cwd "/build")))
|
||||
":"
|
||||
(getenv "PYTHONPATH"))))
|
||||
(zero? (system* "python" "-m" "rpy2.tests" "-v")))))))
|
||||
;; FIXME: Even when all tests pass, the check phase will fail.
|
||||
(system* "python" "-m" "rpy2.tests" "-v"))))))
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six)
|
||||
("python-jinja2" ,python-jinja2)
|
||||
@ -5133,72 +5134,6 @@ a front-end for C compilers or analysis tools.")
|
||||
(define-public python2-pycparser
|
||||
(package-with-python2 python-pycparser))
|
||||
|
||||
(define-public python-cffi
|
||||
(package
|
||||
(name "python-cffi")
|
||||
(version "1.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cffi" version))
|
||||
(sha256
|
||||
(base32 "1mffyilq4qycm8gs4wkgb18rnqil8a9blqq77chdlshzxc8jkc5k"))))
|
||||
(build-system python-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(inputs
|
||||
`(("libffi" ,libffi)))
|
||||
(propagated-inputs ; required at run-time
|
||||
`(("python-pycparser" ,python-pycparser)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("python-pytest" ,python-pytest)))
|
||||
(arguments
|
||||
`(#:modules ((ice-9 ftw)
|
||||
(srfi srfi-26)
|
||||
(guix build utils)
|
||||
(guix build python-build-system))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH"
|
||||
(string-append
|
||||
(getenv "PYTHONPATH")
|
||||
":" (getcwd) "/build/"
|
||||
(car (scandir "build" (cut string-prefix? "lib." <>)))))
|
||||
|
||||
;; XXX The "normal" approach of setting CC and friends does
|
||||
;; not work here. Is this the correct way of doing things?
|
||||
(substitute* "testing/embedding/test_basic.py"
|
||||
(("c = distutils\\.ccompiler\\.new_compiler\\(\\)")
|
||||
(string-append "c = distutils.ccompiler.new_compiler();"
|
||||
"c.set_executables(compiler='gcc',"
|
||||
"compiler_so='gcc',linker_exe='gcc',"
|
||||
"linker_so='gcc -shared')")))
|
||||
(substitute* "testing/cffi0/test_ownlib.py"
|
||||
(("'cc testownlib") "'gcc testownlib"))
|
||||
(zero? (system* "py.test" "-v" "c/" "testing/"))))
|
||||
(add-after 'install 'install-doc
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
|
||||
(doc (string-append data "/doc/" ,name "-" ,version))
|
||||
(html (string-append doc "/html")))
|
||||
(with-directory-excursion "doc"
|
||||
(system* "make" "html")
|
||||
(mkdir-p html)
|
||||
(copy-recursively "build/html" html))
|
||||
(copy-file "LICENSE" (string-append doc "/LICENSE"))
|
||||
#t))))))
|
||||
(home-page "http://cffi.readthedocs.org")
|
||||
(synopsis "Foreign function interface for Python")
|
||||
(description
|
||||
"Foreign Function Interface for Python calling C code.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-cffi
|
||||
(package-with-python2 python-cffi))
|
||||
|
||||
(define-public python-xcffib
|
||||
(package
|
||||
(name "python-xcffib")
|
||||
@ -5854,6 +5789,12 @@ tools for mocking system commands and recording calls to those.")
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-numpydoc" ,python-numpydoc)
|
||||
("python-jinja2" ,python-jinja2)
|
||||
("python-jupyter-console"
|
||||
;; The python-ipython and python-jupyter-console require each
|
||||
;; other. To get the functionality in both packages working, strip
|
||||
;; down the python-jupyter-console package when using it as an input
|
||||
;; to python-ipython.
|
||||
,python-jupyter-console-minimal)
|
||||
("python-mistune" ,python-mistune)
|
||||
("python-pexpect" ,python-pexpect)
|
||||
("python-pickleshare" ,python-pickleshare)
|
||||
@ -6607,6 +6548,26 @@ providing a clean and modern domain specific specification language (DSL) in
|
||||
Python style, together with a fast and comfortable execution environment.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python-pyqrcode
|
||||
(package
|
||||
(name "python-pyqrcode")
|
||||
(version "1.2.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyQRCode" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1m9ln8k9v7dfbh1i81225hx5mdsh8mpf9g7r4wpbfmiyfcs7dgzx"))))
|
||||
(build-system python-build-system)
|
||||
(home-page
|
||||
"https://github.com/mnooner256/pyqrcode")
|
||||
(synopsis "QR code generator")
|
||||
(description
|
||||
"Pyqrcode is a QR code generator written purely in Python with
|
||||
SVG, EPS, PNG and terminal output.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-seaborn
|
||||
(package
|
||||
(name "python-seaborn")
|
||||
@ -7415,15 +7376,13 @@ add functionality and customization to your projects with their own plugins.")
|
||||
(define-public python-fonttools
|
||||
(package
|
||||
(name "python-fonttools")
|
||||
(version "2.5")
|
||||
(version "3.15.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pypi.python.org/packages/source/F/FontTools/"
|
||||
"fonttools-" version ".tar.gz"))
|
||||
(uri (pypi-uri "fonttools" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"08ay3x4ijarwhl60gqx2i9jzq6pxs20p4snc2d1q5jagh4rn39lb"))))
|
||||
"1hhj97izwliy0vybmza72d90l5d4mcn50y8akq7kyccfl82vdx4d"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:test-target "check"
|
||||
@ -7437,6 +7396,8 @@ add functionality and customization to your projects with their own plugins.")
|
||||
(substitute* "setup.py"
|
||||
(("^[ \t]*extra_path *= *'FontTools',") ""))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
(home-page "https://github.com/behdad/fonttools")
|
||||
(synopsis "Tools to manipulate font files")
|
||||
(description
|
||||
@ -8560,6 +8521,31 @@ Jupyter kernels such as IJulia and IRKernel.")
|
||||
(define-public python2-jupyter-console
|
||||
(package-with-python2 python-jupyter-console))
|
||||
|
||||
;; The python-ipython and python-jupyter-console require each other. To get
|
||||
;; the functionality in both packages working, strip down the
|
||||
;; python-jupyter-console package when using it as an input to python-ipython.
|
||||
(define python-jupyter-console-minimal
|
||||
(package
|
||||
(inherit python-jupyter-console)
|
||||
(arguments
|
||||
(substitute-keyword-arguments
|
||||
(package-arguments python-jupyter-console)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'install 'delete-bin
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Delete the bin files, to avoid conflicts in profiles
|
||||
;; where python-ipython and python-jupyter-console are
|
||||
;; both present.
|
||||
(delete-file-recursively
|
||||
(string-append
|
||||
(assoc-ref outputs "out") "/bin"))))))))
|
||||
;; Remove the python-ipython propagated input, to avoid the cycle
|
||||
(propagated-inputs
|
||||
(alist-delete
|
||||
"python-ipython"
|
||||
(package-propagated-inputs python-jupyter-console)))))
|
||||
|
||||
(define-public jupyter
|
||||
(package
|
||||
(name "jupyter")
|
||||
@ -10784,14 +10770,14 @@ introspection of @code{zope.interface} instances in code.")
|
||||
(define-public python-psycopg2
|
||||
(package
|
||||
(name "python-psycopg2")
|
||||
(version "2.6.2")
|
||||
(version "2.7.3.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "psycopg2" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0p60z2gwfcal30y2w8gprflchp1kcg9qblc5rn782p4wxl90wjbh"))))
|
||||
"0rda1j02ds6s28752fhmpwg761sh6jsxi1gpczqkrd28cki1cywv"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; Tests would require a postgresql database "psycopg2_test"
|
||||
@ -11746,13 +11732,13 @@ format.")
|
||||
(define-public python-twisted
|
||||
(package
|
||||
(name "python-twisted")
|
||||
(version "16.2.0")
|
||||
(version "17.1.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Twisted" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ydxrp9myw1mvsz3qfzx5579y5llmqa82pxvqchgp5syczffi450"))))
|
||||
"1p245mg15hkxp7hy5cyq2fgvlgjkb4cg0gwkwd148nzy1bbi3wnv"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; FIXME: Some tests are failing.
|
||||
@ -11762,7 +11748,10 @@ format.")
|
||||
;; (lambda _
|
||||
;; (zero? (system* "./bin/trial" "twisted")))))
|
||||
(propagated-inputs
|
||||
`(("python-zope-interface" ,python-zope-interface)))
|
||||
`(("python-zope-interface" ,python-zope-interface)
|
||||
("python-incremental" ,python-incremental)
|
||||
("python-constantly" ,python-constantly)
|
||||
("python-automat" ,python-automat)))
|
||||
(home-page "https://twistedmatrix.com/")
|
||||
(synopsis "Asynchronous networking framework written in Python")
|
||||
(description
|
||||
@ -14229,6 +14218,133 @@ Python. It is based on Parsing Expression Grammars, PEG. With pyPEG you can
|
||||
parse many formal languages.")
|
||||
(license license:gpl2)))
|
||||
|
||||
(define-public python-incremental
|
||||
(package
|
||||
(name "python-incremental")
|
||||
(version "17.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "incremental" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1cylxdz1cnkm5g3pklna3h2n0i0rks95ir1pnpxfnvpkmab1cxbv"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/hawkowl/incremental")
|
||||
(synopsis "Library for versioning Python projects")
|
||||
(description "Incremental is a small library that versions your Python
|
||||
projects.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-incremental
|
||||
(package-with-python2 python-incremental))
|
||||
|
||||
(define-public python-automat
|
||||
(package
|
||||
(name "python-automat")
|
||||
(version "0.6.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Automat" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1a7nsrljysfmdqmpn2apfa1gg6rfah4y9sizvns8gb08rx7d07rw"))))
|
||||
(build-system python-build-system)
|
||||
;; We disable the tests because they require python-twisted, while
|
||||
;; python-twisted depends on python-automat. Twisted is optional, but the
|
||||
;; tests fail if it is not available. Also see
|
||||
;; <https://github.com/glyph/automat/issues/71>.
|
||||
(arguments '(#:tests? #f))
|
||||
(native-inputs
|
||||
`(("python-m2r" ,python-m2r)
|
||||
("python-setuptools-scm" ,python-setuptools-scm)
|
||||
("python-graphviz" ,python-graphviz)))
|
||||
(propagated-inputs
|
||||
`(("python-six" ,python-six)
|
||||
("python-attrs" ,python-attrs)))
|
||||
(home-page "https://github.com/glyph/Automat")
|
||||
(synopsis "Self-service finite-state machines")
|
||||
(description "Automat is a library for concise, idiomatic Python
|
||||
expression of finite-state automata (particularly deterministic finite-state
|
||||
transducers).")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-automat
|
||||
(package-with-python2 python-automat))
|
||||
|
||||
(define-public python-m2r
|
||||
(package
|
||||
(name "python-m2r")
|
||||
(version "0.1.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "m2r" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1axrwnf425sz4qz3c0qc7yhhki4myzb8rki7pczcsgzznzmqdyxd"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-docutils" ,python-docutils)
|
||||
("python-mistune" ,python-mistune)))
|
||||
(native-inputs
|
||||
`(("python-pygments" ,python-pygments)
|
||||
("python-mock" ,python-mock)))
|
||||
(home-page "https://github.com/miyakogi/m2r")
|
||||
(synopsis "Markdown to reStructuredText converter")
|
||||
(description "M2R converts a markdown file including reST markups to valid
|
||||
reST format.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-m2r
|
||||
(package-with-python2 python-m2r))
|
||||
|
||||
(define-public python-constantly
|
||||
(package
|
||||
(name "python-constantly")
|
||||
(version "15.1.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "constantly" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0dgwdla5kfpqz83hfril716inm41hgn9skxskvi77605jbmp4qsq"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/twisted/constantly")
|
||||
(synopsis "Symbolic constants in Python")
|
||||
(description "Constantly is a Python library that provides symbolic
|
||||
constant support. It includes collections and constants with text, numeric,
|
||||
and bit flag values.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-constantly
|
||||
(package-with-python2 python-constantly))
|
||||
|
||||
(define-public python-attrs
|
||||
(package
|
||||
(name "python-attrs")
|
||||
(version "17.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "attrs" version))
|
||||
(sha256
|
||||
(base32
|
||||
"04gx08ikpk26wnq22f7l42gapcvk8iz1512r927k6sadz6cinkax"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)
|
||||
("python-hypothesis" ,python-hypothesis)
|
||||
("python-zope-interface" ,python-zope-interface)
|
||||
("python-six" ,python-six)))
|
||||
(home-page "https://github.com/python-attrs/attrs/")
|
||||
(synopsis "Attributes without boilerplate")
|
||||
(description "@code{attrs} is a Python package with class decorators that
|
||||
ease the chores of implementing the most common attribute-related object
|
||||
protocols.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public python2-attrs
|
||||
(package-with-python2 python-attrs))
|
||||
|
||||
(define-public python2-cliapp
|
||||
(package
|
||||
(name "python2-cliapp")
|
||||
|
@ -78,6 +78,7 @@
|
||||
(sha256
|
||||
(base32 "1lf9rkv0i0kd7fvpgg5l8jb87zw8dzcwd1liv6hji7g4wlpmfdiq"))))
|
||||
(native-inputs
|
||||
;; Optional: lcov and cccc, both are for code coverage
|
||||
`(("doxygen" ,doxygen)))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)
|
||||
@ -86,10 +87,11 @@
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(zero? (system* "ctest" ;; exclude 2 tests which require a display
|
||||
"-E" "htmlbuildertest|plainmarkupbuildertest")))))))
|
||||
(add-before 'check 'check-setup
|
||||
(lambda _
|
||||
;; make Qt render "offscreen", required for tests
|
||||
(setenv "QT_QPA_PLATFORM" "offscreen")
|
||||
#t)))))
|
||||
(home-page "https://github.com/steveire/grantlee")
|
||||
(synopsis "Libraries for text templating with Qt")
|
||||
(description "Grantlee Templates can be used for theming and generation of
|
||||
@ -100,7 +102,8 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
(define-public qt
|
||||
(package
|
||||
(name "qt")
|
||||
(version "5.6.2")
|
||||
(version "5.9.2")
|
||||
(outputs '("out" "examples"))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
@ -112,7 +115,7 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1cw93mrlkqbwndfqyjpsvjzkpzi39px2is040xvk18mvg3y1prl3"))
|
||||
"1zr0hvhryn2ada53ln7cycymh602cncli86n291bsgzas6j72qbc"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
@ -124,32 +127,52 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
;; Alternatively, we could use the "-skip qtwebengine"
|
||||
;; configuration option.
|
||||
(delete-file-recursively "qtwebengine")
|
||||
;; Remove one of the two bundled harfbuzz copies in addition
|
||||
;; to passing "-system-harfbuzz".
|
||||
(delete-file-recursively "qtbase/src/3rdparty/harfbuzz-ng")
|
||||
;; Remove the bundled sqlite copy in addition to
|
||||
;; passing "-system-sqlite".
|
||||
(delete-file-recursively "qtbase/src/3rdparty/sqlite")))))
|
||||
;; The following snippets are copied from their mondular-qt counterparts.
|
||||
(for-each
|
||||
(lambda (dir)
|
||||
(delete-file-recursively (string-append "qtbase/src/3rdparty/" dir)))
|
||||
(list "double-conversion" "freetype" "harfbuzz-ng"
|
||||
"libpng" "libjpeg" "pcre2" "sqlite" "xcb"
|
||||
"xkbcommon" "zlib"))
|
||||
(for-each
|
||||
(lambda (dir)
|
||||
(delete-file-recursively dir))
|
||||
(list "qtimageformats/src/3rdparty"
|
||||
"qtmultimedia/examples/multimedia/spectrum/3rdparty"
|
||||
"qtwayland/examples"
|
||||
"qtcanvas3d/examples/canvas3d/3rdparty"))
|
||||
;; Tests depend on this example, which depends on the 3rd party code.
|
||||
(substitute* "qtmultimedia/examples/multimedia/multimedia.pro"
|
||||
(("spectrum") "#"))))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("mesa" ,mesa)))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("dbus" ,dbus)
|
||||
("bluez" ,bluez)
|
||||
("cups" ,cups)
|
||||
("dbus" ,dbus)
|
||||
("double-conversion" ,double-conversion)
|
||||
("expat" ,expat)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("glib" ,glib)
|
||||
("gstreamer" ,gstreamer)
|
||||
("gst-plugins-base" ,gst-plugins-base)
|
||||
("harfbuzz" ,harfbuzz)
|
||||
("icu4c" ,icu4c)
|
||||
("jasper" ,jasper)
|
||||
("libinput" ,libinput-minimal)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libmng" ,libmng)
|
||||
("libpci" ,pciutils)
|
||||
("libpng" ,libpng)
|
||||
("libtiff" ,libtiff)
|
||||
("libwebp" ,libwebp)
|
||||
("libx11" ,libx11)
|
||||
("libxcomposite" ,libxcomposite)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxi" ,libxi)
|
||||
("libxinerama" ,libxinerama)
|
||||
@ -165,10 +188,11 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
("openssl" ,openssl)
|
||||
("postgresql" ,postgresql)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
("pcre" ,pcre)
|
||||
("pcre2" ,pcre2)
|
||||
("sqlite" ,sqlite)
|
||||
("udev" ,eudev)
|
||||
("unixodbc" ,unixodbc)
|
||||
("wayland" ,wayland)
|
||||
("xcb-util" ,xcb-util)
|
||||
("xcb-util-image" ,xcb-util-image)
|
||||
("xcb-util-keysyms" ,xcb-util-keysyms)
|
||||
@ -185,24 +209,19 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
("ruby" ,ruby)
|
||||
("which" ,(@ (gnu packages base) which))))
|
||||
(arguments
|
||||
`(;; FIXME: Disabling parallel building is a quick hack to avoid the
|
||||
;; failure described in
|
||||
;; https://lists.gnu.org/archive/html/guix-devel/2016-01/msg00837.html
|
||||
;; A more structural fix is needed.
|
||||
#:parallel-build? #f
|
||||
#:phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'configure 'patch-bin-sh
|
||||
(lambda _
|
||||
(substitute* '("qtbase/config.status"
|
||||
"qtbase/configure"
|
||||
(substitute* '("qtbase/configure"
|
||||
"qtbase/mkspecs/features/qt_functions.prf"
|
||||
"qtbase/qmake/library/qmakebuiltins.cpp")
|
||||
(("/bin/sh") (which "sh")))
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(examples (assoc-ref outputs "examples")))
|
||||
(substitute* '("configure" "qtbase/configure")
|
||||
(("/bin/pwd") (which "pwd")))
|
||||
(substitute* "qtbase/src/corelib/global/global.pri"
|
||||
@ -213,12 +232,12 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
"./configure"
|
||||
"-verbose"
|
||||
"-prefix" out
|
||||
"-examplesdir" examples ; 89MiB
|
||||
"-opensource"
|
||||
"-confirm-license"
|
||||
;; Do not build examples; if desired, these could go
|
||||
;; into a separate output, but for the time being, we
|
||||
;; Do not build examples; for the time being, we
|
||||
;; prefer to save the space and build time.
|
||||
"-nomake" "examples"
|
||||
"-no-compile-examples"
|
||||
;; Most "-system-..." are automatic, but some use
|
||||
;; the bundled copy by default.
|
||||
"-system-sqlite"
|
||||
@ -227,6 +246,8 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
"-openssl-linked"
|
||||
;; explicitly link with dbus instead of dlopening it
|
||||
"-dbus-linked"
|
||||
;; don't use the precompiled headers
|
||||
"-no-pch"
|
||||
;; drop special machine instructions not supported
|
||||
;; on all instances of the target
|
||||
,@(if (string-prefix? "x86_64"
|
||||
@ -234,12 +255,6 @@ system, and the core design of Django is reused in Grantlee.")
|
||||
(%current-system)))
|
||||
'()
|
||||
'("-no-sse2"))
|
||||
"-no-sse3"
|
||||
"-no-ssse3"
|
||||
"-no-sse4.1"
|
||||
"-no-sse4.2"
|
||||
"-no-avx"
|
||||
"-no-avx2"
|
||||
"-no-mips_dsp"
|
||||
"-no-mips_dspr2"))))))))
|
||||
(home-page "https://www.qt.io/")
|
||||
@ -376,7 +391,8 @@ developers using C++ or QML, a CSS & JavaScript like language.")
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("mesa" ,mesa)))
|
||||
`(("mesa" ,mesa)
|
||||
("which" ,(@ (gnu packages base) which))))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("cups" ,cups)
|
||||
@ -427,8 +443,7 @@ developers using C++ or QML, a CSS & JavaScript like language.")
|
||||
("perl" ,perl)
|
||||
("pkg-config" ,pkg-config)
|
||||
("python" ,python-2)
|
||||
("ruby" ,ruby)
|
||||
("which" ,(@ (gnu packages base) which))))
|
||||
("ruby" ,ruby)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
@ -460,6 +475,12 @@ developers using C++ or QML, a CSS & JavaScript like language.")
|
||||
"./configure"
|
||||
"-verbose"
|
||||
"-prefix" out
|
||||
"-docdir" (string-append out "/share/doc/qt5")
|
||||
"-headerdir" (string-append out "/include/qt5")
|
||||
"-archdatadir" (string-append out "/lib/qt5")
|
||||
"-datadir" (string-append out "/share/qt5")
|
||||
"-examplesdir" (string-append
|
||||
out "/share/doc/qt5/examples")
|
||||
"-opensource"
|
||||
"-confirm-license"
|
||||
;; Do not build examples; if desired, these could go
|
||||
@ -486,41 +507,49 @@ developers using C++ or QML, a CSS & JavaScript like language.")
|
||||
'("-no-sse2"))
|
||||
"-no-mips_dsp"
|
||||
"-no-mips_dspr2")))))
|
||||
(add-after 'install 'patch-qt_config.prf
|
||||
(add-after 'install 'patch-mkspecs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(archdata (string-append out "/lib/qt5"))
|
||||
(mkspecs (string-append archdata "/mkspecs"))
|
||||
(qt_config.prf (string-append
|
||||
out "/mkspecs/features/qt_config.prf")))
|
||||
mkspecs "/features/qt_config.prf")))
|
||||
;; For each Qt module, let `qmake' uses search paths in the
|
||||
;; module directory instead of all in QT_INSTALL_PREFIX.
|
||||
(substitute* qt_config.prf
|
||||
(("\\$\\$\\[QT_INSTALL_HEADERS\\]")
|
||||
"$$replace(dir, mkspecs/modules, include)")
|
||||
"$$clean_path($$replace(dir, mkspecs/modules, ../../include/qt5))")
|
||||
(("\\$\\$\\[QT_INSTALL_LIBS\\]")
|
||||
"$$replace(dir, mkspecs/modules, lib)")
|
||||
"$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
|
||||
(("\\$\\$\\[QT_HOST_LIBS\\]")
|
||||
"$$replace(dir, mkspecs/modules, lib)")
|
||||
(("\\$\\$\\[QT_INSTALL_PLUGINS\\]")
|
||||
"$$replace(dir, mkspecs/modules, plugins)")
|
||||
(("\\$\\$\\[QT_INSTALL_LIBEXECS\\]")
|
||||
"$$replace(dir, mkspecs/modules, libexec)")
|
||||
"$$clean_path($$replace(dir, mkspecs/modules, ../../lib))")
|
||||
(("\\$\\$\\[QT_INSTALL_BINS\\]")
|
||||
"$$replace(dir, mkspecs/modules, bin)")
|
||||
(("\\$\\$\\[QT_INSTALL_IMPORTS\\]")
|
||||
"$$replace(dir, mkspecs/modules, imports)")
|
||||
(("\\$\\$\\[QT_INSTALL_QML\\]")
|
||||
"$$replace(dir, mkspecs/modules, qml)"))
|
||||
"$$clean_path($$replace(dir, mkspecs/modules, ../../bin))"))
|
||||
|
||||
;; Searches Qt tools in the current PATH instead of QT_HOST_BINS.
|
||||
(substitute* (string-append mkspecs "/features/qt_functions.prf")
|
||||
(("cmd = \\$\\$\\[QT_HOST_BINS\\]/\\$\\$2")
|
||||
"cmd = $$system(which $${2}.pl 2>/dev/null || which $${2})"))
|
||||
|
||||
;; Resolve qmake spec files within qtbase by absolute paths.
|
||||
(substitute*
|
||||
(map (lambda (file)
|
||||
(string-append mkspecs "/features/" file))
|
||||
'("device_config.prf" "moc.prf" "qt_build_config.prf"
|
||||
"qt_config.prf" "winrt/package_manifest.prf"))
|
||||
(("\\$\\$\\[QT_HOST_DATA/get\\]") archdata)
|
||||
(("\\$\\$\\[QT_HOST_DATA/src\\]") archdata))
|
||||
#t))))))
|
||||
(native-search-paths
|
||||
(list (search-path-specification
|
||||
(variable "QMAKEPATH")
|
||||
(files '("")))
|
||||
(files '("lib/qt5")))
|
||||
(search-path-specification
|
||||
(variable "QML2_IMPORT_PATH")
|
||||
(files '("qml")))
|
||||
(files '("lib/qt5/qml")))
|
||||
(search-path-specification
|
||||
(variable "QT_PLUGIN_PATH")
|
||||
(files '("plugins")))
|
||||
(files '("lib/qt5/plugins")))
|
||||
(search-path-specification
|
||||
(variable "XDG_DATA_DIRS")
|
||||
(files '("share")))
|
||||
@ -555,26 +584,51 @@ developers using C++ or QML, a CSS & JavaScript like language.")
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Valid QT_BUILD_PARTS variables are:
|
||||
;; libs tools tests examples demos docs translations
|
||||
(zero? (system* "qmake" "QT_BUILD_PARTS = libs tools tests"
|
||||
(string-append "PREFIX=" out))))))
|
||||
(add-before 'install 'fix-Makefiles
|
||||
(add-before 'configure 'configure-qmake
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(qtbase (assoc-ref inputs "qtbase")))
|
||||
(substitute* (find-files "." "Makefile")
|
||||
(((string-append "INSTALL_ROOT)" qtbase))
|
||||
(string-append "INSTALL_ROOT)" out)))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(qtbase (assoc-ref inputs "qtbase"))
|
||||
(tmpdir (string-append (getenv "TMPDIR")))
|
||||
(qmake (string-append tmpdir "/qmake"))
|
||||
(qt.conf (string-append tmpdir "/qt.conf")))
|
||||
;; Use qmake with a customized qt.conf to override install
|
||||
;; paths to $out.
|
||||
(symlink (which "qmake") qmake)
|
||||
(setenv "PATH" (string-append tmpdir ":" (getenv "PATH")))
|
||||
(with-output-to-file qt.conf
|
||||
(lambda ()
|
||||
(format #t "[Paths]
|
||||
Prefix=~a
|
||||
ArchData=lib/qt5
|
||||
Data=share/qt5
|
||||
Documentation=share/doc/qt5
|
||||
Headers=include/qt5
|
||||
Libraries=lib
|
||||
LibraryExecutables=lib/qt5/libexec
|
||||
Binaries=bin
|
||||
Tests=tests
|
||||
Plugins=lib/qt5/plugins
|
||||
Imports=lib/qt5/imports
|
||||
Qml2Imports=lib/qt5/qml
|
||||
Translations=share/qt5/translations
|
||||
Settings=etc/xdg
|
||||
Examples=share/doc/qt5/examples
|
||||
HostPrefix=~a
|
||||
HostData=lib/qt5
|
||||
HostBinaries=bin
|
||||
HostLibraries=lib
|
||||
" out out)))
|
||||
#t)))
|
||||
(add-before 'check 'set-display
|
||||
(lambda _
|
||||
;; make Qt render "offscreen", required for tests
|
||||
(setenv "QT_QPA_PLATFORM" "offscreen")
|
||||
#t)))))
|
||||
(replace 'configure
|
||||
(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"))))
|
||||
(add-before 'check 'set-display
|
||||
(lambda _
|
||||
;; make Qt render "offscreen", required for tests
|
||||
(setenv "QT_QPA_PLATFORM" "offscreen")
|
||||
#t)))))
|
||||
(synopsis "Qt module for displaying SVGs")
|
||||
(description "The QtSvg module provides classes for displaying the
|
||||
contents of SVG files.")))
|
||||
@ -853,6 +907,18 @@ set of plugins for interacting with pulseaudio and GStreamer.")))
|
||||
(snippet
|
||||
;; The examples try to build and cause the build to fail
|
||||
'(delete-file-recursively "examples"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments qtsvg)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-ld-library-path
|
||||
;; <https://lists.gnu.org/archive/html/guix-devel/2017-09/msg00019.html>
|
||||
;;
|
||||
;; Make the uninstalled libQt5WaylandClient.so.5 available to the
|
||||
;; wayland platform plugin.
|
||||
(lambda _
|
||||
(setenv "LD_LIBRARY_PATH" (string-append (getcwd) "/lib"))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("glib" ,glib)
|
||||
("perl" ,perl)
|
||||
@ -1609,8 +1675,10 @@ contain over 620 classes.")
|
||||
(string-append out "/include"))
|
||||
(("\\$\\$\\[QT_INSTALL_TRANSLATIONS\\]")
|
||||
(string-append out "/translations"))
|
||||
(("\\$\\$\\[QT_INSTALL_DATA\\]") out)
|
||||
(("\\$\\$\\[QT_HOST_DATA\\]") out))
|
||||
(("\\$\\$\\[QT_INSTALL_DATA\\]")
|
||||
(string-append out "/lib/qt$${QT_MAJOR_VERSION}"))
|
||||
(("\\$\\$\\[QT_HOST_DATA\\]")
|
||||
(string-append out "/lib/qt$${QT_MAJOR_VERSION}")))
|
||||
(zero? (system* "qmake"))))))))
|
||||
(native-inputs `(("qtbase" ,qtbase)))
|
||||
(home-page "http://www.riverbankcomputing.co.uk/software/qscintilla/intro")
|
||||
@ -1699,7 +1767,8 @@ This package provides the Python bindings.")))
|
||||
(base32 "0bxi5pfhxdvwk8yxa06lk2d7lcibmfqhahbin82bqf3m341zd4ml"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("qttools" ,qttools)))
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("qttools" ,qttools)))
|
||||
(inputs
|
||||
`(("qtbase" ,qtbase)))
|
||||
(arguments
|
||||
@ -1742,11 +1811,27 @@ securely. It will not store any data unencrypted unless explicitly requested.")
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(docdir (string-append out "/share/doc/qwt"))
|
||||
(incdir (string-append out "/include/qwt"))
|
||||
(pluginsdir (string-append out "/lib/qt5/plugins/designer"))
|
||||
(featuresdir (string-append out "/lib/qt5/mkspecs/features")))
|
||||
(substitute* '("qwtconfig.pri")
|
||||
(("/usr/local/qwt-\\$\\$QWT\\_VERSION") out))
|
||||
(("^(\\s*QWT_INSTALL_PREFIX)\\s*=.*" _ x)
|
||||
(format #f "~a = ~a\n" x out))
|
||||
(("^(QWT_INSTALL_DOCS)\\s*=.*" _ x)
|
||||
(format #f "~a = ~a\n" x docdir))
|
||||
(("^(QWT_INSTALL_HEADERS)\\s*=.*" _ x)
|
||||
(format #f "~a = ~a\n" x incdir))
|
||||
(("^(QWT_INSTALL_PLUGINS)\\s*=.*" _ x)
|
||||
(format #f "~a = ~a\n" x pluginsdir))
|
||||
(("^(QWT_INSTALL_FEATURES)\\s*=.*" _ x)
|
||||
(format #f "~a = ~a\n" x featuresdir)))
|
||||
(substitute* '("doc/doc.pro")
|
||||
;; We'll install them in the 'install-man-pages' phase.
|
||||
(("^unix:doc\\.files.*") ""))
|
||||
(zero? (system* "qmake")))))
|
||||
(add-after 'install 'install-documentation
|
||||
(add-after 'install 'install-man-pages
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(man (string-append out "/share/man")))
|
||||
@ -1810,6 +1895,15 @@ different kinds of sliders, and much more.")
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'fix-qmlwebkit-plugins-rpath
|
||||
(lambda _
|
||||
(substitute* "Source/WebKit/qt/declarative/experimental/experimental.pri"
|
||||
(("RPATHDIR_RELATIVE_TO_DESTDIR = \\.\\./\\.\\./lib")
|
||||
"RPATHDIR_RELATIVE_TO_DESTDIR = ../../../../../lib"))
|
||||
(substitute* "Source/WebKit/qt/declarative/public.pri"
|
||||
(("RPATHDIR_RELATIVE_TO_DESTDIR = \\.\\./\\.\\./lib")
|
||||
"RPATHDIR_RELATIVE_TO_DESTDIR = ../../../../lib"))
|
||||
#t))
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
|
@ -1021,34 +1021,6 @@ Ruby Gems.")
|
||||
(home-page "http://github.com/rubyzip/rubyzip")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public ruby-ffi
|
||||
(package
|
||||
(name "ruby-ffi")
|
||||
(version "1.9.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (rubygems-uri "ffi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"034f52xf7zcqgbvwbl20jwdyjwznvqnwpbaps9nk18v9lgb1dpx0"))))
|
||||
(build-system ruby-build-system)
|
||||
;; FIXME: Before running tests the build system attempts to build libffi
|
||||
;; from sources.
|
||||
(arguments `(#:tests? #f))
|
||||
(native-inputs
|
||||
`(("ruby-rake-compiler" ,ruby-rake-compiler)
|
||||
("ruby-rspec" ,ruby-rspec)
|
||||
("ruby-rubygems-tasks" ,ruby-rubygems-tasks)))
|
||||
(inputs
|
||||
`(("libffi" ,libffi)))
|
||||
(synopsis "Ruby foreign function interface library")
|
||||
(description "Ruby-FFI is a Ruby extension for programmatically loading
|
||||
dynamic libraries, binding functions within them, and calling those functions
|
||||
from Ruby code. Moreover, a Ruby-FFI extension works without changes on Ruby
|
||||
and JRuby.")
|
||||
(home-page "http://wiki.github.com/ffi/ffi")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public ruby-simplecov-html
|
||||
(package
|
||||
(name "ruby-simplecov-html")
|
||||
|
@ -403,13 +403,18 @@ directory.")
|
||||
("xorg-server" ,xorg-server)
|
||||
("libjpeg" ,libjpeg)))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.0)
|
||||
`(("guile" ,guile-2.2)
|
||||
("sdl-union" ,(sdl-union))))
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list (string-append "--with-sdl-prefix="
|
||||
(assoc-ref %build-inputs "sdl-union")))
|
||||
#:modules ((ice-9 popen)
|
||||
(guix build utils)
|
||||
(guix build gnu-build-system))
|
||||
|
||||
#:parallel-build? #f ; parallel build fails
|
||||
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'fix-env-and-patch
|
||||
@ -418,9 +423,16 @@ directory.")
|
||||
;; SDL_image needs to dlopen libjpeg in the test suite.
|
||||
(setenv "LD_LIBRARY_PATH"
|
||||
(string-append (assoc-ref inputs "libjpeg") "/lib"))
|
||||
;; Change the site directory /site/2.0 like Guile expects.
|
||||
|
||||
;; Change the site directory /site/X.Y like Guile expects.
|
||||
(substitute* "build-aux/guile-baux/re-prefixed-site-dirs"
|
||||
(("\"/site\"") "\"/site/2.0\""))
|
||||
(("\"/site\"")
|
||||
(let ((effective
|
||||
(read
|
||||
(open-pipe* OPEN_READ
|
||||
"guile" "-c"
|
||||
"(write (effective-version))"))))
|
||||
(string-append "\"/site/" effective "\""))))
|
||||
|
||||
;; Skip tests that rely on sound support, which is unavailable in
|
||||
;; the build environment.
|
||||
@ -434,6 +446,16 @@ directory.")
|
||||
(system (format #f "~a/bin/Xvfb :1 &"
|
||||
(assoc-ref inputs "xorg-server")))
|
||||
(setenv "DISPLAY" ":1")
|
||||
#t))
|
||||
(add-before 'check 'skip-cursor-test
|
||||
(lambda _
|
||||
;; XXX: This test sometimes enters an endless loop, and sometimes
|
||||
;; crashes with:
|
||||
;; guile: xcb_io.c:147: append_pending_request: Assertion `!xcb_xlib_unknown_seq_number' failed.
|
||||
;; Skip it.
|
||||
(substitute* "test/cursor.scm"
|
||||
(("\\(SDL:init .*" all)
|
||||
(string-append "(exit 77) ;" all "\n")))
|
||||
#t)))))
|
||||
(synopsis "Guile interface for SDL (Simple DirectMedia Layer)")
|
||||
(description "Guile-SDL is a set of bindings to the Simple DirectMedia
|
||||
|
@ -44,15 +44,15 @@
|
||||
(define-public ccid
|
||||
(package
|
||||
(name "ccid")
|
||||
(version "1.4.27")
|
||||
(version "1.4.28")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://alioth.debian.org/frs/download.php/file/4218/"
|
||||
"https://alioth.debian.org/frs/download.php/file/4230/"
|
||||
"ccid-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dyikpmhsph36ndgd61bs4yx437v5y0bmm8ahjacp1k9c1ly4q56"))))
|
||||
"1q5dz1l049m3hmr370adhrqicdkldrr3l98svi02p5cxbnn3cn47"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list (string-append "--enable-usbdropdir=" %output
|
||||
|
@ -7,6 +7,7 @@
|
||||
;;; Copyright © 2017 Corentin Bocquillon <corentin@nybble.fr>
|
||||
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
|
||||
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
|
||||
;;; Copyright © 2017 ng0 <ng0@infotropique.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -385,3 +386,25 @@ style and key ordering are kept, so you can diff the source.")
|
||||
|
||||
(define-public python2-ruamel.yaml
|
||||
(package-with-python2 python-ruamel.yaml))
|
||||
|
||||
(define-public python-cbor
|
||||
(package
|
||||
(name "python-cbor")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "cbor" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1dmv163cnslyqccrybkxn0c9s1jk1mmafmgxv75iamnz5lk5l8hk"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://bitbucket.org/bodhisnarkva/cbor")
|
||||
(synopsis "Implementation of the Concise Binary Object Representation")
|
||||
(description
|
||||
"Python-cbor provides an implementation of the Concise Binary Object
|
||||
Representation (CBOR). CBOR is comparable to JSON, has a superset of JSON's
|
||||
ability, but serializes to a binary format which is smaller and faster to
|
||||
generate and parse. The two primary functions are @code{cbor.loads} and
|
||||
@code{cbor.dumps}.")
|
||||
(license license:asl2.0)))
|
||||
|
@ -1057,6 +1057,32 @@ multidimensional conditioning system and a consistent interface to map data to
|
||||
aesthetic attributes.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-ggdendro
|
||||
(package
|
||||
(name "r-ggdendro")
|
||||
(version "0.1-20")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ggdendro" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zzq1hxd0d1qa5hrzwfkdw6fzscpcafbwbpkrb62dm559y8awp0j"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-ggplot2" ,r-ggplot2)
|
||||
("r-mass" ,r-mass)
|
||||
("r-knitr" ,r-knitr)))
|
||||
(home-page "https://github.com/andrie/ggdendro")
|
||||
(synopsis "Create Dendrograms and Tree Diagrams Using ggplot2")
|
||||
(description "This is a set of tools for dendrograms and tree plots using
|
||||
ggplot2. The ggplot2 philosophy is to clearly separate data from the
|
||||
presentation. Unfortunately the plot method for dendrograms plots directly
|
||||
to a plot device with out exposing the data. The ggdendro package resolves
|
||||
this by making available functions that extract the dendrogram plot data.
|
||||
The package provides implementations for tree, rpart, as well as diana and
|
||||
agnes cluster diagrams.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public r-gdtools
|
||||
(package
|
||||
(name "r-gdtools")
|
||||
|
1821
gnu/packages/syncthing.scm
Normal file
1821
gnu/packages/syncthing.scm
Normal file
File diff suppressed because it is too large
Load Diff
@ -34,7 +34,7 @@
|
||||
(define-public tmux
|
||||
(package
|
||||
(name "tmux")
|
||||
(version "2.5")
|
||||
(version "2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
@ -42,7 +42,7 @@
|
||||
version "/tmux-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pwm5nqm3by8452h6gll0sl3646rjdga7qw419svgxhvgk1mw4xf"))))
|
||||
"1s6pgk63ar1swpvhs8r5fk26vav3ybsf2ll7d705hysdm5qd2z5i"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libevent" ,libevent)
|
||||
|
@ -1115,7 +1115,7 @@ access to mpv's powerful playback capabilities.")
|
||||
(define-public youtube-dl
|
||||
(package
|
||||
(name "youtube-dl")
|
||||
(version "2017.10.07")
|
||||
(version "2017.10.15.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://yt-dl.org/downloads/"
|
||||
@ -1123,7 +1123,7 @@ access to mpv's powerful playback capabilities.")
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10xs3d3ksfhalmvacpw2drkzi84y3rgy2jjr0wrzmqn1hx897a6r"))))
|
||||
"0zr9sx0nxk36si8xbvhlnazb69xzlygrhsxcyiydm0dy5y5ycsns"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; The problem here is that the directory for the man page and completion
|
||||
|
@ -5365,3 +5365,22 @@ file links.")
|
||||
file upload, download, on-screen display, namespace operations (move/copy),
|
||||
collection creation and deletion, and locking operations.")
|
||||
(license l:gpl2)))
|
||||
|
||||
(define-public python-py-ubjson
|
||||
(package
|
||||
(name "python-py-ubjson")
|
||||
(version "0.10.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "py-ubjson" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03l9m9w5ip4hw0y69wlys5gzsfb7zcq3a77blj88grgiqhn5vm5n"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/Iotic-Labs/py-ubjson")
|
||||
(synopsis "Universal Binary JSON encoder/decoder")
|
||||
(description
|
||||
"Py-ubjson is a Python module providing an Universal Binary JSON
|
||||
encoder/decoder based on the draft-12 specification for UBJSON.")
|
||||
(license l:asl2.0)))
|
||||
|
@ -138,7 +138,7 @@
|
||||
(string-append "SHELL=" (which "bash"))
|
||||
(string-append "--prefix=" out)))
|
||||
(zero? (system* "make" "install"))))))))))
|
||||
(home-page "http://www.x.org")
|
||||
(home-page "https://www.x.org/")
|
||||
(synopsis "Source code configuration and build system")
|
||||
(description
|
||||
"Imake is a deprecated source code configuration and build system which
|
||||
@ -167,7 +167,7 @@ autotools system.")
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("xproto" ,xproto)))
|
||||
(home-page "http://www.x.org")
|
||||
(home-page "https://www.x.org/")
|
||||
(synopsis "Symlink directory into tree")
|
||||
(description "Create a shadow directory of symbolic links to another
|
||||
directory tree.")
|
||||
@ -1037,7 +1037,7 @@ of new capabilities and controls for text keyboards.")
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("xproto" ,xproto)))
|
||||
(home-page "http://xorg.freedesktop.org")
|
||||
(home-page "https://www.x.org/")
|
||||
(synopsis "Xorg shared memory fences library")
|
||||
(description
|
||||
"This library provides an interface to shared-memory fences for
|
||||
@ -4454,7 +4454,7 @@ formatted dump file, such as produced by xwd.")
|
||||
`(("xproto" ,xproto)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://www.x.org/wiki/")
|
||||
(home-page "https://www.x.org/wiki/")
|
||||
(synopsis "X color name database")
|
||||
(description
|
||||
"This package provides the X color name database.")
|
||||
@ -5070,7 +5070,7 @@ over Xlib, including:
|
||||
(define-public xorg-server
|
||||
(package
|
||||
(name "xorg-server")
|
||||
(version "1.19.4")
|
||||
(version "1.19.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@ -5079,7 +5079,7 @@ over Xlib, including:
|
||||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a690fzv5l5ks45g9zhlzdskdq8q73mcbpb9a3wz3shxm778lxda"))
|
||||
"0iql4pgsgpyqcrd3256pv227cdadvz01ych61n0d41ixp67gmzqq"))
|
||||
(patches
|
||||
(list
|
||||
;; See:
|
||||
@ -5205,20 +5205,23 @@ draggable titlebars and borders.")
|
||||
(license license:x11)))
|
||||
|
||||
;; This package is intended to be used when building GTK+.
|
||||
;; Note: It's currently marked as "hidden" to avoid having two non-eq?
|
||||
;; packages with the same name and version.
|
||||
(define-public xorg-server-1.19.3
|
||||
(package
|
||||
(inherit xorg-server)
|
||||
(name "xorg-server")
|
||||
(version "1.19.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://xorg/individual/xserver/"
|
||||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7"))))))
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit xorg-server)
|
||||
(name "xorg-server")
|
||||
(version "1.19.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://xorg/individual/xserver/"
|
||||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7")))))))
|
||||
|
||||
(define-public xorg-server-xwayland
|
||||
(package
|
||||
@ -5630,7 +5633,7 @@ The XCB util-wm module provides the following libraries:
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("xauth" ,xauth)))
|
||||
(home-page "http://x.org")
|
||||
(home-page "https://www.x.org/")
|
||||
(synopsis "Commands to start the X Window server")
|
||||
(description
|
||||
"The xinit program is used to start the X Window System server and a
|
||||
@ -5764,7 +5767,7 @@ to answer a question. Xmessage can also exit after a specified time.")
|
||||
("libXt" ,libxt)
|
||||
("xproto" ,xproto)
|
||||
("libXaw" ,libxaw)))
|
||||
(home-page "http://invisible-island.net/xterm")
|
||||
(home-page "http://invisible-island.net/xterm/")
|
||||
(synopsis "Terminal emulator for the X Window System")
|
||||
(description
|
||||
"The xterm program is a terminal emulator for the X Window System. It
|
||||
|
@ -368,6 +368,12 @@ boot."
|
||||
#t))))
|
||||
;; Ignore I/O errors so the system can boot.
|
||||
(fail-safe
|
||||
;; Remove stale Shadow lock files as they would lead to
|
||||
;; failures of 'useradd' & co.
|
||||
(delete-file "/etc/group.lock")
|
||||
(delete-file "/etc/passwd.lock")
|
||||
(delete-file "/etc/.pwd.lock") ;from 'lckpwdf'
|
||||
|
||||
(delete-file-recursively "/tmp")
|
||||
(delete-file-recursively "/var/run")
|
||||
(mkdir "/tmp")
|
||||
|
@ -307,7 +307,8 @@ FILE-SYSTEM."
|
||||
'#$packages))))
|
||||
(lambda ()
|
||||
(mount-file-system
|
||||
'#$(file-system->spec file-system)
|
||||
(spec->file-system
|
||||
'#$(file-system->spec file-system))
|
||||
#:root "/"))
|
||||
(lambda ()
|
||||
(setenv "PATH" $PATH)))
|
||||
@ -322,9 +323,10 @@ FILE-SYSTEM."
|
||||
(umount #$target)
|
||||
#f))
|
||||
|
||||
;; We need an additional module.
|
||||
;; We need additional modules.
|
||||
(modules `(((gnu build file-systems)
|
||||
#:select (mount-file-system))
|
||||
(gnu system file-systems)
|
||||
,@%default-modules)))))))
|
||||
|
||||
(define (file-system-shepherd-services file-systems)
|
||||
|
@ -780,15 +780,23 @@ accountsservice web site} for more information."
|
||||
gnome-desktop-configuration
|
||||
(gnome-package gnome-package (default gnome)))
|
||||
|
||||
(define (gnome-polkit-settings config)
|
||||
"Return the list of GNOME dependencies that provide polkit actions and
|
||||
rules."
|
||||
(let ((gnome (gnome-package config)))
|
||||
(map (lambda (name)
|
||||
((package-direct-input-selector name) gnome))
|
||||
'("gnome-settings-daemon"
|
||||
"gnome-control-center"
|
||||
"gnome-system-monitor"
|
||||
"gvfs"))))
|
||||
|
||||
(define gnome-desktop-service-type
|
||||
(service-type
|
||||
(name 'gnome-desktop)
|
||||
(extensions
|
||||
(list (service-extension polkit-service-type
|
||||
(compose list
|
||||
(package-direct-input-selector
|
||||
"gnome-settings-daemon")
|
||||
gnome-package))
|
||||
gnome-polkit-settings)
|
||||
(service-extension profile-service-type
|
||||
(compose list
|
||||
gnome-package))))))
|
||||
|
@ -17,16 +17,16 @@
|
||||
(bootloader grub-efi-bootloader)
|
||||
(target "/boot/efi")))
|
||||
|
||||
;; Assume the target root file system is labelled "my-root".
|
||||
;; 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)
|
||||
(mount-point "/")
|
||||
(type "ext4"))
|
||||
(file-system
|
||||
;; Specify partition here since FAT
|
||||
;; labels are currently unsupported.
|
||||
(device "/dev/sda1")
|
||||
(device (uuid "1234-ABCD" 'fat))
|
||||
(title 'uuid)
|
||||
(mount-point "/boot/efi")
|
||||
(type "vfat"))
|
||||
%base-file-systems))
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
(define-module (gnu system file-systems)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (guix records)
|
||||
#:use-module (gnu system uuid)
|
||||
@ -161,7 +162,7 @@ initrd code."
|
||||
(match fs
|
||||
(($ <file-system> device title mount-point type flags options _ _ check?)
|
||||
(list (if (uuid? device)
|
||||
(uuid-bytevector device)
|
||||
`(uuid ,(uuid-type device) ,(uuid-bytevector device))
|
||||
device)
|
||||
title mount-point type flags options check?))))
|
||||
|
||||
@ -170,7 +171,12 @@ initrd code."
|
||||
(match sexp
|
||||
((device title mount-point type flags options check?)
|
||||
(file-system
|
||||
(device device) (title title)
|
||||
(device (match device
|
||||
(('uuid (? symbol? type) (? bytevector? bv))
|
||||
(bytevector->uuid bv type))
|
||||
(_
|
||||
device)))
|
||||
(title title)
|
||||
(mount-point mount-point) (type type)
|
||||
(flags flags) (options options)
|
||||
(check? check?)))))
|
||||
|
@ -187,9 +187,11 @@ to it are lost."
|
||||
'((gnu build linux-boot)
|
||||
(guix build utils)
|
||||
(guix build bournish)
|
||||
(gnu system file-systems)
|
||||
(gnu build file-systems)))
|
||||
#~(begin
|
||||
(use-modules (gnu build linux-boot)
|
||||
(gnu system file-systems)
|
||||
(guix build utils)
|
||||
(guix build bournish) ;add the 'bournish' meta-command
|
||||
(srfi srfi-26)
|
||||
@ -206,7 +208,9 @@ to it are lost."
|
||||
(set-path-environment-variable "PATH" '("bin" "sbin")
|
||||
'#$helper-packages)))
|
||||
|
||||
(boot-system #:mounts '#$(map file-system->spec file-systems)
|
||||
(boot-system #:mounts
|
||||
(map spec->file-system
|
||||
'#$(map file-system->spec file-systems))
|
||||
#:pre-mount (lambda ()
|
||||
(and #$@device-mapping-commands))
|
||||
#:linux-modules '#$linux-modules
|
||||
|
@ -42,7 +42,7 @@
|
||||
string->ext3-uuid
|
||||
string->ext4-uuid
|
||||
string->btrfs-uuid
|
||||
string->fat32-uuid
|
||||
string->fat-uuid
|
||||
iso9660-uuid->string
|
||||
|
||||
;; XXX: For lack of a better place.
|
||||
@ -164,25 +164,25 @@ ISO9660 UUID representation."
|
||||
|
||||
|
||||
;;;
|
||||
;;; FAT32.
|
||||
;;; FAT32/FAT16.
|
||||
;;;
|
||||
|
||||
(define-syntax %fat32-endianness
|
||||
;; Endianness of FAT file systems.
|
||||
(define-syntax %fat-endianness
|
||||
;; Endianness of FAT32/FAT16 file systems.
|
||||
(identifier-syntax (endianness little)))
|
||||
|
||||
(define (fat32-uuid->string uuid)
|
||||
"Convert fat32 UUID, a 4-byte bytevector, to its string representation."
|
||||
(let ((high (bytevector-uint-ref uuid 0 %fat32-endianness 2))
|
||||
(low (bytevector-uint-ref uuid 2 %fat32-endianness 2)))
|
||||
(define (fat-uuid->string uuid)
|
||||
"Convert FAT32/FAT16 UUID, a 4-byte bytevector, to its string representation."
|
||||
(let ((high (bytevector-uint-ref uuid 0 %fat-endianness 2))
|
||||
(low (bytevector-uint-ref uuid 2 %fat-endianness 2)))
|
||||
(format #f "~:@(~x-~x~)" low high)))
|
||||
|
||||
(define %fat32-uuid-rx
|
||||
(define %fat-uuid-rx
|
||||
(make-regexp "^([[:xdigit:]]{4})-([[:xdigit:]]{4})$"))
|
||||
|
||||
(define (string->fat32-uuid str)
|
||||
"Parse STR, which is in FAT32 format, and return a bytevector or #f."
|
||||
(match (regexp-exec %fat32-uuid-rx str)
|
||||
(define (string->fat-uuid str)
|
||||
"Parse STR, which is in FAT32/FAT16 format, and return a bytevector or #f."
|
||||
(match (regexp-exec %fat-uuid-rx str)
|
||||
(#f
|
||||
#f)
|
||||
(rx-match
|
||||
@ -190,7 +190,7 @@ ISO9660 UUID representation."
|
||||
(match:substring rx-match 2) 16)
|
||||
(string->number
|
||||
(match:substring rx-match 1) 16))
|
||||
%fat32-endianness
|
||||
%fat-endianness
|
||||
2))))
|
||||
|
||||
|
||||
@ -216,14 +216,14 @@ ISO9660 UUID representation."
|
||||
(define %uuid-parsers
|
||||
(vhashq
|
||||
('dce 'ext2 'ext3 'ext4 'btrfs 'luks => string->dce-uuid)
|
||||
('fat32 'fat => string->fat32-uuid)
|
||||
('fat32 'fat16 'fat => string->fat-uuid)
|
||||
('iso9660 => string->iso9660-uuid)))
|
||||
|
||||
(define %uuid-printers
|
||||
(vhashq
|
||||
('dce 'ext2 'ext3 'ext4 'btrfs 'luks => dce-uuid->string)
|
||||
('iso9660 => iso9660-uuid->string)
|
||||
('fat32 'fat => fat32-uuid->string)))
|
||||
('fat32 'fat16 'fat => fat-uuid->string)))
|
||||
|
||||
(define* (string->uuid str #:optional (type 'dce))
|
||||
"Parse STR as a UUID of the given TYPE. On success, return the
|
||||
|
132
guix/build-system/go.scm
Normal file
132
guix/build-system/go.scm
Normal file
@ -0,0 +1,132 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Petter <petter@mykolab.ch>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix build-system go)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix search-paths)
|
||||
#:use-module (guix build-system)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (%go-build-system-modules
|
||||
go-build
|
||||
go-build-system))
|
||||
|
||||
;; Commentary:
|
||||
;;
|
||||
;; Standard build procedure for packages using the Go build system. It is
|
||||
;; implemented as an extension of 'gnu-build-system'.
|
||||
;;
|
||||
;; Code:
|
||||
|
||||
(define %go-build-system-modules
|
||||
;; Build-side modules imported and used by default.
|
||||
`((guix build go-build-system)
|
||||
,@%gnu-build-system-modules))
|
||||
|
||||
(define (default-go)
|
||||
;; Lazily resolve the binding to avoid a circular dependency.
|
||||
(let ((go (resolve-interface '(gnu packages golang))))
|
||||
(module-ref go 'go)))
|
||||
|
||||
(define* (lower name
|
||||
#:key source inputs native-inputs outputs system target
|
||||
(go (default-go))
|
||||
#:allow-other-keys
|
||||
#:rest arguments)
|
||||
"Return a bag for NAME."
|
||||
(define private-keywords
|
||||
'(#:source #:target #:go #:inputs #:native-inputs))
|
||||
|
||||
(and (not target) ;XXX: no cross-compilation
|
||||
(bag
|
||||
(name name)
|
||||
(system system)
|
||||
(host-inputs `(,@(if source
|
||||
`(("source" ,source))
|
||||
'())
|
||||
,@inputs
|
||||
|
||||
;; Keep the standard inputs of 'gnu-build-system'.
|
||||
,@(standard-packages)))
|
||||
(build-inputs `(("go" ,go)
|
||||
,@native-inputs))
|
||||
(outputs outputs)
|
||||
(build go-build)
|
||||
(arguments (strip-keyword-arguments private-keywords arguments)))))
|
||||
|
||||
(define* (go-build store name inputs
|
||||
#:key
|
||||
(phases '(@ (guix build go-build-system)
|
||||
%standard-phases))
|
||||
(outputs '("out"))
|
||||
(search-paths '())
|
||||
(import-path "")
|
||||
(unpack-path "")
|
||||
(tests? #t)
|
||||
(system (%current-system))
|
||||
(guile #f)
|
||||
(imported-modules %go-build-system-modules)
|
||||
(modules '((guix build go-build-system)
|
||||
(guix build utils))))
|
||||
(define builder
|
||||
`(begin
|
||||
(use-modules ,@modules)
|
||||
(go-build #:name ,name
|
||||
#:source ,(match (assoc-ref inputs "source")
|
||||
(((? derivation? source))
|
||||
(derivation->output-path source))
|
||||
((source)
|
||||
source)
|
||||
(source
|
||||
source))
|
||||
#:system ,system
|
||||
#:phases ,phases
|
||||
#:outputs %outputs
|
||||
#:search-paths ',(map search-path-specification->sexp
|
||||
search-paths)
|
||||
#:import-path ,import-path
|
||||
#:unpack-path ,unpack-path
|
||||
#:tests? ,tests?
|
||||
#:inputs %build-inputs)))
|
||||
|
||||
(define guile-for-build
|
||||
(match guile
|
||||
((? package?)
|
||||
(package-derivation store guile system #:graft? #f))
|
||||
(#f ; the default
|
||||
(let* ((distro (resolve-interface '(gnu packages commencement)))
|
||||
(guile (module-ref distro 'guile-final)))
|
||||
(package-derivation store guile system
|
||||
#:graft? #f)))))
|
||||
|
||||
(build-expression->derivation store name builder
|
||||
#:inputs inputs
|
||||
#:system system
|
||||
#:modules imported-modules
|
||||
#:outputs outputs
|
||||
#:guile-for-build guile-for-build))
|
||||
|
||||
(define go-build-system
|
||||
(build-system
|
||||
(name 'go)
|
||||
(description
|
||||
"Build system for Go programs")
|
||||
(lower lower)))
|
@ -92,8 +92,12 @@ store in '.el' files."
|
||||
(el-dir (string-append out %install-suffix "/" elpa-name-ver))
|
||||
(substitute-cmd (lambda ()
|
||||
(substitute* (find-files "." "\\.el$")
|
||||
(("\"/bin/([^.].*)\"" _ cmd)
|
||||
(string-append "\"" (which cmd) "\""))))))
|
||||
(("\"/bin/([^.]\\S*)\"" _ cmd-name)
|
||||
(let ((cmd (which cmd-name)))
|
||||
(unless cmd
|
||||
(error
|
||||
"patch-el-files: unable to locate " cmd-name))
|
||||
(string-append "\"" cmd "\"")))))))
|
||||
(with-directory-excursion el-dir
|
||||
;; Some old '.el' files (e.g., tex-buf.el in AUCTeX) are still encoded
|
||||
;; with the "ISO-8859-1" locale.
|
||||
|
217
guix/build/go-build-system.scm
Normal file
217
guix/build/go-build-system.scm
Normal file
@ -0,0 +1,217 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016 Petter <petter@mykolab.ch>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix build go-build-system)
|
||||
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:export (%standard-phases
|
||||
go-build))
|
||||
|
||||
;; Commentary:
|
||||
;;
|
||||
;; Build procedures for Go packages. This is the builder-side code.
|
||||
;;
|
||||
;; Software written in Go is either a 'package' (i.e. library) or 'command'
|
||||
;; (i.e. executable). Both types can be built with either the `go build` or `go
|
||||
;; install` commands. However, `go build` discards the result of the build
|
||||
;; process for Go libraries, so we use `go install`, which preserves the
|
||||
;; results. [0]
|
||||
|
||||
;; Go software is developed and built within a particular filesystem hierarchy
|
||||
;; structure called a 'workspace' [1]. This workspace is found by Go
|
||||
;; via the GOPATH environment variable. Typically, all Go source code
|
||||
;; and compiled objects are kept in a single workspace, but it is
|
||||
;; possible for GOPATH to contain a list of directories, and that is
|
||||
;; what we do in this go-build-system. [2]
|
||||
;;
|
||||
;; Go software, whether a package or a command, is uniquely named using
|
||||
;; an 'import path'. The import path is based on the URL of the
|
||||
;; software's source. Since most source code is provided over the
|
||||
;; internet, the import path is typically a combination of the remote
|
||||
;; URL and the source repository's filesystem structure. For example,
|
||||
;; the Go port of the common `du` command is hosted on github.com, at
|
||||
;; <https://github.com/calmh/du>. Thus, the import path is
|
||||
;; <github.com/calmh/du>. [3]
|
||||
;;
|
||||
;; It may be possible to programatically guess a package's import path
|
||||
;; based on the source URL, but we don't try that in this revision of
|
||||
;; the go-build-system.
|
||||
;;
|
||||
;; Modules of modular Go libraries are named uniquely with their
|
||||
;; filesystem paths. For example, the supplemental but "standardized"
|
||||
;; libraries developed by the Go upstream developers are available at
|
||||
;; <https://golang.org/x/{net,text,crypto, et cetera}>. The Go IPv4
|
||||
;; library's import path is <golang.org/x/net/ipv4>. The source of
|
||||
;; such modular libraries must be unpacked at the top-level of the
|
||||
;; filesystem structure of the library. So the IPv4 library should be
|
||||
;; unpacked to <golang.org/x/net>. This is handled in the
|
||||
;; go-build-system with the optional #:unpack-path key.
|
||||
;;
|
||||
;; In general, Go software is built using a standardized build mechanism
|
||||
;; that does not require any build scripts like Makefiles. This means
|
||||
;; that all modules of modular libraries cannot be built with a single
|
||||
;; command. Each module must be built individually. This complicates
|
||||
;; certain cases, and these issues are currently resolved by creating a
|
||||
;; filesystem union of the required modules of such libraries. I think
|
||||
;; this could be improved in future revisions of the go-build-system.
|
||||
;;
|
||||
;; [0] `go build`:
|
||||
;; https://golang.org/cmd/go/#hdr-Compile_packages_and_dependencies
|
||||
;; `go install`:
|
||||
;; https://golang.org/cmd/go/#hdr-Compile_and_install_packages_and_dependencies
|
||||
;; [1] Go workspace example, from <https://golang.org/doc/code.html#Workspaces>:
|
||||
;; bin/
|
||||
;; hello # command executable
|
||||
;; outyet # command executable
|
||||
;; pkg/
|
||||
;; linux_amd64/
|
||||
;; github.com/golang/example/
|
||||
;; stringutil.a # package object
|
||||
;; src/
|
||||
;; github.com/golang/example/
|
||||
;; .git/ # Git repository metadata
|
||||
;; hello/
|
||||
;; hello.go # command source
|
||||
;; outyet/
|
||||
;; main.go # command source
|
||||
;; main_test.go # test source
|
||||
;; stringutil/
|
||||
;; reverse.go # package source
|
||||
;; reverse_test.go # test source
|
||||
;; golang.org/x/image/
|
||||
;; .git/ # Git repository metadata
|
||||
;; bmp/
|
||||
;; reader.go # package source
|
||||
;; writer.go # package source
|
||||
;; ... (many more repositories and packages omitted) ...
|
||||
;;
|
||||
;; [2] https://golang.org/doc/code.html#GOPATH
|
||||
;; [3] https://golang.org/doc/code.html#ImportPaths
|
||||
;;
|
||||
;; Code:
|
||||
|
||||
(define* (unpack #:key source import-path unpack-path #:allow-other-keys)
|
||||
"Unpack SOURCE in the UNPACK-PATH, or the IMPORT-PATH is the UNPACK-PATH is
|
||||
unset. When SOURCE is a directory, copy it instead of unpacking."
|
||||
(if (string-null? import-path)
|
||||
((display "WARNING: The Go import path is unset.\n")))
|
||||
(if (string-null? unpack-path)
|
||||
(set! unpack-path import-path))
|
||||
(mkdir "src")
|
||||
(let ((dest (string-append "src/" unpack-path)))
|
||||
(mkdir-p dest)
|
||||
(if (file-is-directory? source)
|
||||
(begin
|
||||
(copy-recursively source dest #:keep-mtime? #t)
|
||||
#t)
|
||||
(if (string-suffix? ".zip" source)
|
||||
(zero? (system* "unzip" "-d" dest source))
|
||||
(zero? (system* "tar" "-C" dest "-xvf" source))))))
|
||||
|
||||
(define* (install-source #:key outputs #:allow-other-keys)
|
||||
"Install the source code to the output directory."
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(source "src")
|
||||
(dest (string-append out "/" source)))
|
||||
(copy-recursively source dest #:keep-mtime? #t)
|
||||
#t))
|
||||
|
||||
(define (go-package? name)
|
||||
(string-prefix? "go-" name))
|
||||
|
||||
(define (go-inputs inputs)
|
||||
"Return the alist of INPUTS that are Go software."
|
||||
;; XXX This should not check the file name of the store item. Instead we
|
||||
;; should pass, from the host side, the list of inputs that are packages using
|
||||
;; the go-build-system.
|
||||
(alist-delete "go" ; Exclude the Go compiler
|
||||
(alist-delete "source" ; Exclude the source code of the package being built
|
||||
(filter (match-lambda
|
||||
((label . directory)
|
||||
(go-package? ((compose package-name->name+version
|
||||
strip-store-file-name)
|
||||
directory)))
|
||||
(_ #f))
|
||||
inputs))))
|
||||
|
||||
(define* (setup-environment #:key inputs outputs #:allow-other-keys)
|
||||
"Export the variables GOPATH and GOBIN, which are based on INPUTS and OUTPUTS,
|
||||
respectively."
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; GOPATH is where Go looks for the source code of the build's dependencies.
|
||||
(set-path-environment-variable "GOPATH"
|
||||
;; XXX Matching "." hints that we could do
|
||||
;; something simpler here...
|
||||
(list ".")
|
||||
(match (go-inputs inputs)
|
||||
(((_ . dir) ...)
|
||||
dir)))
|
||||
|
||||
;; Add the source code of the package being built to GOPATH.
|
||||
(if (getenv "GOPATH")
|
||||
(setenv "GOPATH" (string-append (getcwd) ":" (getenv "GOPATH")))
|
||||
(setenv "GOPATH" (getcwd)))
|
||||
;; Where to install compiled executable files ('commands' in Go parlance').
|
||||
(setenv "GOBIN" out)
|
||||
#t))
|
||||
|
||||
(define* (build #:key import-path #:allow-other-keys)
|
||||
"Build the package named by IMPORT-PATH."
|
||||
(or
|
||||
(zero? (system* "go" "install"
|
||||
"-v" ; print the name of packages as they are compiled
|
||||
"-x" ; print each command as it is invoked
|
||||
import-path))
|
||||
(begin
|
||||
(display (string-append "Building '" import-path "' failed.\n"
|
||||
"Here are the results of `go env`:\n"))
|
||||
(system* "go" "env")
|
||||
#f)))
|
||||
|
||||
(define* (check #:key tests? import-path #:allow-other-keys)
|
||||
"Run the tests for the package named by IMPORT-PATH."
|
||||
(if tests?
|
||||
(zero? (system* "go" "test" import-path))))
|
||||
|
||||
(define* (install #:key outputs #:allow-other-keys)
|
||||
"Install the compiled libraries. `go install` installs these files to
|
||||
$GOPATH/pkg, so we have to copy them into the output direcotry manually.
|
||||
Compiled executable files should have already been installed to the store based
|
||||
on $GOBIN in the build phase."
|
||||
(when (file-exists? "pkg")
|
||||
(copy-recursively "pkg" (string-append (assoc-ref outputs "out") "/pkg")))
|
||||
#t)
|
||||
|
||||
(define %standard-phases
|
||||
(modify-phases gnu:%standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'patch-generated-file-shebangs)
|
||||
(replace 'unpack unpack)
|
||||
(add-after 'unpack 'install-source install-source)
|
||||
(add-before 'build 'setup-environment setup-environment)
|
||||
(replace 'build build)
|
||||
(replace 'check check)
|
||||
(replace 'install install)))
|
||||
|
||||
(define* (go-build #:key inputs (phases %standard-phases)
|
||||
#:allow-other-keys #:rest args)
|
||||
"Build the given Go package, applying all of PHASES in order."
|
||||
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
|
@ -38,7 +38,6 @@
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix upstream)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (gnu packages perl)
|
||||
#:export (cpan->guix-package
|
||||
%cpan-updater))
|
||||
|
||||
@ -133,21 +132,28 @@ or #f on failure. MODULE should be e.g. \"Test::Script\""
|
||||
(number->string version))
|
||||
(version version)))
|
||||
|
||||
(define (perl-package)
|
||||
"Return the 'perl' package. This is a lazy reference so that we don't
|
||||
depend on (gnu packages perl)."
|
||||
(module-ref (resolve-interface '(gnu packages perl)) 'perl))
|
||||
|
||||
(define %corelist
|
||||
(delay
|
||||
(let* ((perl (with-store store
|
||||
(derivation->output-path
|
||||
(package-derivation store perl))))
|
||||
(package-derivation store (perl-package)))))
|
||||
(core (string-append perl "/bin/corelist")))
|
||||
(and (access? core X_OK)
|
||||
core))))
|
||||
|
||||
(define core-module?
|
||||
(let ((perl-version (package-version perl))
|
||||
(rx (make-regexp
|
||||
(let ((rx (make-regexp
|
||||
(string-append "released with perl v?([0-9\\.]*)"
|
||||
"(.*and removed from v?([0-9\\.]*))?"))))
|
||||
(lambda (name)
|
||||
(define perl-version
|
||||
(package-version (perl-package)))
|
||||
|
||||
(define (version-between? lower version upper)
|
||||
(and (version>=? version lower)
|
||||
(or (not upper)
|
||||
|
@ -44,7 +44,6 @@
|
||||
#:use-module (guix upstream)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages python)
|
||||
#:export (guix-package->pypi-name
|
||||
pypi->guix-package
|
||||
%pypi-updater))
|
||||
|
@ -414,8 +414,7 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed."
|
||||
(close-connection port))))
|
||||
|
||||
(case (response-code response)
|
||||
((301 ; moved permanently
|
||||
302 ; found (redirection)
|
||||
((302 ; found (redirection)
|
||||
303 ; see other
|
||||
307 ; temporary redirection
|
||||
308) ; permanent redirection
|
||||
@ -423,6 +422,22 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed."
|
||||
(if (or (not location) (member location visited))
|
||||
(values 'http-response response)
|
||||
(loop location (cons location visited))))) ;follow the redirect
|
||||
((301) ; moved permanently
|
||||
(let ((location (response-location response)))
|
||||
;; Return RESPONSE, unless the final response as we follow
|
||||
;; redirects is not 200.
|
||||
(if location
|
||||
(let-values (((status response2)
|
||||
(loop location (cons location visited))))
|
||||
(case status
|
||||
((http-response)
|
||||
(values 'http-response
|
||||
(if (= 200 (response-code response2))
|
||||
response
|
||||
response2)))
|
||||
(else
|
||||
(values status response2))))
|
||||
(values 'http-response response)))) ;invalid redirect
|
||||
(else
|
||||
(values 'http-response response)))))
|
||||
(lambda (key . args)
|
||||
@ -474,31 +489,46 @@ warning for PACKAGE mentionning the FIELD."
|
||||
(probe-uri uri #:timeout 3))) ;wait at most 3 seconds
|
||||
(case status
|
||||
((http-response)
|
||||
(if (= 200 (response-code argument))
|
||||
(match (response-content-length argument)
|
||||
((? number? length)
|
||||
;; As of July 2016, SourceForge returns 200 (instead of 404)
|
||||
;; with a small HTML page upon failure. Attempt to detect such
|
||||
;; malicious behavior.
|
||||
(or (> length 1000)
|
||||
(cond ((= 200 (response-code argument))
|
||||
(match (response-content-length argument)
|
||||
((? number? length)
|
||||
;; As of July 2016, SourceForge returns 200 (instead of 404)
|
||||
;; with a small HTML page upon failure. Attempt to detect
|
||||
;; such malicious behavior.
|
||||
(or (> length 1000)
|
||||
(begin
|
||||
(emit-warning package
|
||||
(format #f
|
||||
(G_ "URI ~a returned \
|
||||
suspiciously small file (~a bytes)")
|
||||
(uri->string uri)
|
||||
length))
|
||||
#f)))
|
||||
(_ #t)))
|
||||
((= 301 (response-code argument))
|
||||
(if (response-location argument)
|
||||
(begin
|
||||
(emit-warning package
|
||||
(format #f
|
||||
(G_ "URI ~a returned \
|
||||
suspiciously small file (~a bytes)")
|
||||
(format #f (G_ "permanent redirect from ~a to ~a")
|
||||
(uri->string uri)
|
||||
length))
|
||||
(uri->string
|
||||
(response-location argument))))
|
||||
#t)
|
||||
(begin
|
||||
(emit-warning package
|
||||
(format #f (G_ "invalid permanent redirect \
|
||||
from ~a")
|
||||
(uri->string uri)))
|
||||
#f)))
|
||||
(_ #t))
|
||||
(begin
|
||||
(emit-warning package
|
||||
(format #f
|
||||
(G_ "URI ~a not reachable: ~a (~s)")
|
||||
(uri->string uri)
|
||||
(response-code argument)
|
||||
(response-reason-phrase argument))
|
||||
field)
|
||||
#f)))
|
||||
(else
|
||||
(emit-warning package
|
||||
(format #f
|
||||
(G_ "URI ~a not reachable: ~a (~s)")
|
||||
(uri->string uri)
|
||||
(response-code argument)
|
||||
(response-reason-phrase argument))
|
||||
field)
|
||||
#f)))
|
||||
((ftp-response)
|
||||
(match argument
|
||||
(('ok) #t)
|
||||
@ -534,7 +564,7 @@ suspiciously small file (~a bytes)")
|
||||
((invalid-http-response gnutls-error)
|
||||
;; Probably a misbehaving server; ignore.
|
||||
#f)
|
||||
((unknown-protocol) ;nothing we can do
|
||||
((unknown-protocol) ;nothing we can do
|
||||
#f)
|
||||
(else
|
||||
(error "internal linter error" status)))))
|
||||
|
@ -428,6 +428,23 @@ allowed on MACHINE. Return +∞ if MACHINE is unreachable."
|
||||
"Return the name of the file used as a lock when choosing a build machine."
|
||||
(string-append %state-directory "/offload/machine-choice.lock"))
|
||||
|
||||
(define (random-seed)
|
||||
(logxor (getpid) (car (gettimeofday))))
|
||||
|
||||
(define shuffle
|
||||
(let ((state (seed->random-state (random-seed))))
|
||||
(lambda (lst)
|
||||
"Return LST shuffled (using the Fisher-Yates algorithm.)"
|
||||
(define vec (list->vector lst))
|
||||
(let loop ((result '())
|
||||
(i (vector-length vec)))
|
||||
(if (zero? i)
|
||||
result
|
||||
(let* ((j (random i state))
|
||||
(val (vector-ref vec j)))
|
||||
(vector-set! vec j (vector-ref vec (- i 1)))
|
||||
(loop (cons val result) (- i 1))))))))
|
||||
|
||||
(define (choose-build-machine machines)
|
||||
"Return two values: the best machine among MACHINES and its build
|
||||
slot (which must later be released with 'release-build-slot'), or #f and #f."
|
||||
@ -441,39 +458,35 @@ slot (which must later be released with 'release-build-slot'), or #f and #f."
|
||||
;; 5. Release the global machine-choice lock.
|
||||
|
||||
(with-file-lock (machine-choice-lock-file)
|
||||
(define machines+slots+loads
|
||||
(define machines+slots
|
||||
(filter-map (lambda (machine)
|
||||
;; Call 'machine-load' from here to make sure it is called
|
||||
;; only once per machine (it is expensive).
|
||||
(let ((slot (acquire-build-slot machine)))
|
||||
(and slot
|
||||
(list machine slot (machine-load machine)))))
|
||||
machines))
|
||||
(and slot (list machine slot))))
|
||||
(shuffle machines)))
|
||||
|
||||
(define (undecorate pred)
|
||||
(lambda (a b)
|
||||
(match a
|
||||
((machine1 slot1 load1)
|
||||
((machine1 slot1)
|
||||
(match b
|
||||
((machine2 slot2 load2)
|
||||
(pred machine1 load1 machine2 load2)))))))
|
||||
((machine2 slot2)
|
||||
(pred machine1 machine2)))))))
|
||||
|
||||
(define (machine-less-loaded-or-faster? m1 l1 m2 l2)
|
||||
;; Return #t if M1 is either less loaded or faster than M2, with L1
|
||||
;; being the load of M1 and L2 the load of M2. (This relation defines a
|
||||
;; total order on machines.)
|
||||
(> (/ (build-machine-speed m1) (+ 1 l1))
|
||||
(/ (build-machine-speed m2) (+ 1 l2))))
|
||||
(define (machine-faster? m1 m2)
|
||||
;; Return #t if M1 is faster than M2.
|
||||
(> (build-machine-speed m1)
|
||||
(build-machine-speed m2)))
|
||||
|
||||
(let loop ((machines+slots+loads
|
||||
(sort machines+slots+loads
|
||||
(undecorate machine-less-loaded-or-faster?))))
|
||||
(match machines+slots+loads
|
||||
(((best slot load) others ...)
|
||||
(let loop ((machines+slots
|
||||
(sort machines+slots (undecorate machine-faster?))))
|
||||
(match machines+slots
|
||||
(((best slot) others ...)
|
||||
;; Return the best machine unless it's already overloaded.
|
||||
(if (< load 2.)
|
||||
;; Note: We call 'machine-load' only as a last resort because it is
|
||||
;; too costly to call it once for every machine.
|
||||
(if (< (machine-load best) 2.)
|
||||
(match others
|
||||
(((machines slots loads) ...)
|
||||
(((machines slots) ...)
|
||||
;; Release slots from the uninteresting machines.
|
||||
(for-each release-build-slot slots)
|
||||
|
||||
|
@ -962,6 +962,7 @@ DESTINATION as a nar file. Verify the substitute against ACL."
|
||||
;; Unpack the Nar at INPUT into DESTINATION.
|
||||
(restore-file input destination)
|
||||
(close-port input)
|
||||
(close-port progress)
|
||||
|
||||
;; Skip a line after what 'progress-reporter/file' printed, and another
|
||||
;; one to visually separate substitutions.
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@ -25,7 +25,7 @@
|
||||
#:export (with-http-server
|
||||
call-with-http-server
|
||||
%http-server-port
|
||||
%http-server-socket
|
||||
http-server-can-listen?
|
||||
%local-url))
|
||||
|
||||
;;; Commentary:
|
||||
@ -38,75 +38,85 @@
|
||||
;; TCP port to use for the stub HTTP server.
|
||||
(make-parameter 9999))
|
||||
|
||||
(define (open-http-server-socket)
|
||||
"Return a listening socket for the web server. It is useful to export it so
|
||||
that tests can check whether we succeeded opening the socket and tests skip if
|
||||
needed."
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(let ((sock (socket PF_INET SOCK_STREAM 0)))
|
||||
(setsockopt sock SOL_SOCKET SO_REUSEADDR 1)
|
||||
(bind sock
|
||||
(make-socket-address AF_INET INADDR_LOOPBACK
|
||||
(%http-server-port)))
|
||||
sock))
|
||||
(lambda args
|
||||
(let ((err (system-error-errno args)))
|
||||
(format (current-error-port)
|
||||
"warning: cannot run Web server for tests: ~a~%"
|
||||
(strerror err))
|
||||
#f))))
|
||||
|
||||
(define (http-server-can-listen?)
|
||||
"Return #t if we managed to open a listening socket."
|
||||
(and=> (open-http-server-socket)
|
||||
(lambda (socket)
|
||||
(close-port socket)
|
||||
#t)))
|
||||
|
||||
(define (%local-url)
|
||||
;; URL to use for 'home-page' tests.
|
||||
(string-append "http://localhost:" (number->string (%http-server-port))
|
||||
"/foo/bar"))
|
||||
|
||||
(define %http-server-socket
|
||||
;; Listening socket for the web server. It is useful to export it so that
|
||||
;; tests can check whether we succeeded opening the socket and tests skip if
|
||||
;; needed.
|
||||
(delay
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(let ((sock (socket PF_INET SOCK_STREAM 0)))
|
||||
(setsockopt sock SOL_SOCKET SO_REUSEADDR 1)
|
||||
(bind sock
|
||||
(make-socket-address AF_INET INADDR_LOOPBACK
|
||||
(%http-server-port)))
|
||||
sock))
|
||||
(lambda args
|
||||
(let ((err (system-error-errno args)))
|
||||
(format (current-error-port)
|
||||
"warning: cannot run Web server for tests: ~a~%"
|
||||
(strerror err))
|
||||
#f)))))
|
||||
|
||||
(define (http-write server client response body)
|
||||
"Write RESPONSE."
|
||||
(let* ((response (write-response response client))
|
||||
(port (response-port response)))
|
||||
(cond
|
||||
((not body)) ;pass
|
||||
(else
|
||||
(write-response-body response body)))
|
||||
(close-port port)
|
||||
(quit #t) ;exit the server thread
|
||||
(values)))
|
||||
|
||||
;; Mutex and condition variable to synchronize with the HTTP server.
|
||||
(define %http-server-lock (make-mutex))
|
||||
(define %http-server-ready (make-condition-variable))
|
||||
|
||||
(define (http-open . args)
|
||||
"Start listening for HTTP requests and signal %HTTP-SERVER-READY."
|
||||
(with-mutex %http-server-lock
|
||||
(let ((result (apply (@@ (web server http) http-open) args)))
|
||||
(signal-condition-variable %http-server-ready)
|
||||
result)))
|
||||
|
||||
(define-server-impl stub-http-server
|
||||
;; Stripped-down version of Guile's built-in HTTP server.
|
||||
http-open
|
||||
(@@ (web server http) http-read)
|
||||
http-write
|
||||
(@@ (web server http) http-close))
|
||||
|
||||
(define (call-with-http-server code data thunk)
|
||||
(define* (call-with-http-server code data thunk
|
||||
#:key (headers '()))
|
||||
"Call THUNK with an HTTP server running and returning CODE and DATA (a
|
||||
string) on HTTP requests."
|
||||
(define (http-write server client response body)
|
||||
"Write RESPONSE."
|
||||
(let* ((response (write-response response client))
|
||||
(port (response-port response)))
|
||||
(cond
|
||||
((not body)) ;pass
|
||||
(else
|
||||
(write-response-body response body)))
|
||||
(close-port port)
|
||||
(quit #t) ;exit the server thread
|
||||
(values)))
|
||||
|
||||
;; Mutex and condition variable to synchronize with the HTTP server.
|
||||
(define %http-server-lock (make-mutex))
|
||||
(define %http-server-ready (make-condition-variable))
|
||||
|
||||
(define (http-open . args)
|
||||
"Start listening for HTTP requests and signal %HTTP-SERVER-READY."
|
||||
(with-mutex %http-server-lock
|
||||
(let ((result (apply (@@ (web server http) http-open) args)))
|
||||
(signal-condition-variable %http-server-ready)
|
||||
result)))
|
||||
|
||||
(define-server-impl stub-http-server
|
||||
;; Stripped-down version of Guile's built-in HTTP server.
|
||||
http-open
|
||||
(@@ (web server http) http-read)
|
||||
http-write
|
||||
(@@ (web server http) http-close))
|
||||
|
||||
(define (server-body)
|
||||
(define (handle request body)
|
||||
(values (build-response #:code code
|
||||
#:reason-phrase "Such is life")
|
||||
#:reason-phrase "Such is life"
|
||||
#:headers headers)
|
||||
data))
|
||||
|
||||
(catch 'quit
|
||||
(lambda ()
|
||||
(run-server handle stub-http-server
|
||||
`(#:socket ,(force %http-server-socket))))
|
||||
(const #t)))
|
||||
(let ((socket (open-http-server-socket)))
|
||||
(catch 'quit
|
||||
(lambda ()
|
||||
(run-server handle stub-http-server
|
||||
`(#:socket ,socket)))
|
||||
(lambda _
|
||||
(close-port socket)))))
|
||||
|
||||
(with-mutex %http-server-lock
|
||||
(let ((server (make-thread server-body)))
|
||||
@ -114,7 +124,12 @@ string) on HTTP requests."
|
||||
;; Normally SERVER exits automatically once it has received a request.
|
||||
(thunk))))
|
||||
|
||||
(define-syntax-rule (with-http-server code data body ...)
|
||||
(call-with-http-server code data (lambda () body ...)))
|
||||
(define-syntax with-http-server
|
||||
(syntax-rules ()
|
||||
((_ (code headers) data body ...)
|
||||
(call-with-http-server code data (lambda () body ...)
|
||||
#:headers headers))
|
||||
((_ code data body ...)
|
||||
(call-with-http-server code data (lambda () body ...)))))
|
||||
|
||||
;;; http.scm ends here
|
||||
|
@ -257,6 +257,15 @@ ARGS is the list of arguments received by the 'throw' handler."
|
||||
(('system-error . rest)
|
||||
(let ((err (system-error-errno args)))
|
||||
(report-error (G_ "failed to load '~a': ~a~%") file (strerror err))))
|
||||
(('read-error "scm_i_lreadparen" message _ ...)
|
||||
;; Guile's missing-paren messages are obscure so we make them more
|
||||
;; intelligible here.
|
||||
(if (string-suffix? "end of file" message)
|
||||
(let ((location (string-drop-right message
|
||||
(string-length "end of file"))))
|
||||
(format (current-error-port) (G_ "~amissing closing parenthesis~%")
|
||||
location))
|
||||
(apply throw args)))
|
||||
(('syntax-error proc message properties form . rest)
|
||||
(let ((loc (source-properties->location properties)))
|
||||
(format (current-error-port) (G_ "~a: error: ~a~%")
|
||||
|
@ -149,6 +149,31 @@ the number of uncompressed bytes written, a strictly positive integer."
|
||||
;; Z_DEFAULT_COMPRESSION.
|
||||
-1)
|
||||
|
||||
(define (close-procedure gzfile port)
|
||||
"Return a procedure that closes GZFILE, ensuring its underlying PORT is
|
||||
closed even if closing GZFILE triggers an exception."
|
||||
(let-syntax ((ignore-EBADF
|
||||
(syntax-rules ()
|
||||
((_ exp)
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
exp)
|
||||
(lambda args
|
||||
(unless (= EBADF (system-error-errno args))
|
||||
(apply throw args))))))))
|
||||
|
||||
(lambda ()
|
||||
(catch 'zlib-error
|
||||
(lambda ()
|
||||
;; 'gzclose' closes the underlying file descriptor. 'close-port'
|
||||
;; calls close(2) and gets EBADF, which we swallow.
|
||||
(gzclose gzfile)
|
||||
(ignore-EBADF (close-port port)))
|
||||
(lambda args
|
||||
;; Make sure PORT is closed despite the zlib error.
|
||||
(ignore-EBADF (close-port port))
|
||||
(apply throw args))))))
|
||||
|
||||
(define* (make-gzip-input-port port #:key (buffer-size %default-buffer-size))
|
||||
"Return an input port that decompresses data read from PORT, a file port.
|
||||
PORT is automatically closed when the resulting port is closed. BUFFER-SIZE
|
||||
@ -158,11 +183,7 @@ buffered input, which would be lost (and is lost anyway)."
|
||||
(define gzfile
|
||||
(match (drain-input port)
|
||||
("" ;PORT's buffer is empty
|
||||
;; Since 'gzclose' will eventually close the file descriptor beneath
|
||||
;; PORT, we increase PORT's revealed count and never call 'close-port'
|
||||
;; on PORT since we would get EBADF if 'gzclose' already closed it (on
|
||||
;; 2.0 EBADF is swallowed by 'fport_close' but on 2.2 it is raised).
|
||||
(gzdopen (port->fdes port) "r"))
|
||||
(gzdopen (fileno port) "r"))
|
||||
(_
|
||||
;; This is unrecoverable but it's better than having the buffered input
|
||||
;; be lost, leading to unclear end-of-file or corrupt-data errors down
|
||||
@ -177,8 +198,7 @@ buffered input, which would be lost (and is lost anyway)."
|
||||
(gzbuffer! gzfile buffer-size))
|
||||
|
||||
(make-custom-binary-input-port "gzip-input" read! #f #f
|
||||
(lambda ()
|
||||
(gzclose gzfile))))
|
||||
(close-procedure gzfile port)))
|
||||
|
||||
(define* (make-gzip-output-port port
|
||||
#:key
|
||||
@ -190,7 +210,7 @@ port is closed."
|
||||
(define gzfile
|
||||
(begin
|
||||
(force-output port) ;empty PORT's buffer
|
||||
(gzdopen (port->fdes port)
|
||||
(gzdopen (fileno port)
|
||||
(string-append "w" (number->string level)))))
|
||||
|
||||
(define (write! bv start count)
|
||||
@ -200,8 +220,7 @@ port is closed."
|
||||
(gzbuffer! gzfile buffer-size))
|
||||
|
||||
(make-custom-binary-output-port "gzip-output" write! #f #f
|
||||
(lambda ()
|
||||
(gzclose gzfile))))
|
||||
(close-procedure gzfile port)))
|
||||
|
||||
(define* (call-with-gzip-input-port port proc
|
||||
#:key (buffer-size %default-buffer-size))
|
||||
|
@ -222,7 +222,7 @@
|
||||
(build-derivations %store (list drv))
|
||||
#f)))
|
||||
|
||||
(unless (force %http-server-socket)
|
||||
(unless (http-server-can-listen?)
|
||||
(test-skip 1))
|
||||
(test-assert "'download' built-in builder"
|
||||
(let ((text (random-text)))
|
||||
@ -238,7 +238,7 @@
|
||||
get-string-all)
|
||||
text))))))
|
||||
|
||||
(unless (force %http-server-socket)
|
||||
(unless (http-server-can-listen?)
|
||||
(test-skip 1))
|
||||
(test-assert "'download' built-in builder, invalid hash"
|
||||
(with-http-server 200 "hello, world!"
|
||||
@ -253,7 +253,7 @@
|
||||
(build-derivations %store (list drv))
|
||||
#f))))
|
||||
|
||||
(unless (force %http-server-socket)
|
||||
(unless (http-server-can-listen?)
|
||||
(test-skip 1))
|
||||
(test-assert "'download' built-in builder, not found"
|
||||
(with-http-server 404 "not found"
|
||||
@ -279,7 +279,7 @@
|
||||
(build-derivations %store (list drv))
|
||||
#f)))
|
||||
|
||||
(unless (force %http-server-socket)
|
||||
(unless (http-server-can-listen?)
|
||||
(test-skip 1))
|
||||
(test-assert "'download' built-in builder, check mode"
|
||||
;; Make sure rebuilding the 'builtin:download' derivation in check mode
|
||||
|
@ -53,6 +53,21 @@ else
|
||||
fi
|
||||
|
||||
|
||||
cat > "$tmpfile"<<EOF
|
||||
;; This is line 1, and the next one is line 2.
|
||||
(operating-system
|
||||
;; This is line 3, and there is no closing paren!
|
||||
EOF
|
||||
|
||||
if guix system vm "$tmpfile" 2> "$errorfile"
|
||||
then
|
||||
# This must not succeed.
|
||||
exit 1
|
||||
else
|
||||
grep "$tmpfile:4:1: missing closing paren" "$errorfile"
|
||||
fi
|
||||
|
||||
|
||||
# Reporting of unbound variables.
|
||||
|
||||
cat > "$tmpfile" <<EOF
|
||||
|
@ -37,6 +37,7 @@
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (web uri)
|
||||
#:use-module (web server)
|
||||
#:use-module (web server http)
|
||||
#:use-module (web response)
|
||||
@ -388,7 +389,7 @@
|
||||
(check-home-page pkg)))
|
||||
"domain not found")))
|
||||
|
||||
(test-skip (if (force %http-server-socket) 0 1))
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "home-page: Connection refused"
|
||||
(->bool
|
||||
(string-contains
|
||||
@ -399,7 +400,7 @@
|
||||
(check-home-page pkg)))
|
||||
"Connection refused")))
|
||||
|
||||
(test-skip (if (force %http-server-socket) 0 1))
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-equal "home-page: 200"
|
||||
""
|
||||
(with-warnings
|
||||
@ -409,7 +410,7 @@
|
||||
(home-page (%local-url)))))
|
||||
(check-home-page pkg)))))
|
||||
|
||||
(test-skip (if (force %http-server-socket) 0 1))
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "home-page: 200 but short length"
|
||||
(->bool
|
||||
(string-contains
|
||||
@ -421,7 +422,7 @@
|
||||
(check-home-page pkg))))
|
||||
"suspiciously small")))
|
||||
|
||||
(test-skip (if (force %http-server-socket) 0 1))
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "home-page: 404"
|
||||
(->bool
|
||||
(string-contains
|
||||
@ -433,6 +434,52 @@
|
||||
(check-home-page pkg))))
|
||||
"not reachable: 404")))
|
||||
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "home-page: 301, invalid"
|
||||
(->bool
|
||||
(string-contains
|
||||
(with-warnings
|
||||
(with-http-server 301 %long-string
|
||||
(let ((pkg (package
|
||||
(inherit (dummy-package "x"))
|
||||
(home-page (%local-url)))))
|
||||
(check-home-page pkg))))
|
||||
"invalid permanent redirect")))
|
||||
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "home-page: 301 -> 200"
|
||||
(->bool
|
||||
(string-contains
|
||||
(with-warnings
|
||||
(with-http-server 200 %long-string
|
||||
(let ((initial-url (%local-url)))
|
||||
(parameterize ((%http-server-port (+ 1 (%http-server-port))))
|
||||
(with-http-server (301 `((location
|
||||
. ,(string->uri initial-url))))
|
||||
""
|
||||
(let ((pkg (package
|
||||
(inherit (dummy-package "x"))
|
||||
(home-page (%local-url)))))
|
||||
(check-home-page pkg)))))))
|
||||
"permanent redirect")))
|
||||
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "home-page: 301 -> 404"
|
||||
(->bool
|
||||
(string-contains
|
||||
(with-warnings
|
||||
(with-http-server 404 "booh!"
|
||||
(let ((initial-url (%local-url)))
|
||||
(parameterize ((%http-server-port (+ 1 (%http-server-port))))
|
||||
(with-http-server (301 `((location
|
||||
. ,(string->uri initial-url))))
|
||||
""
|
||||
(let ((pkg (package
|
||||
(inherit (dummy-package "x"))
|
||||
(home-page (%local-url)))))
|
||||
(check-home-page pkg)))))))
|
||||
"not reachable: 404")))
|
||||
|
||||
(test-assert "source-file-name"
|
||||
(->bool
|
||||
(string-contains
|
||||
@ -510,7 +557,7 @@
|
||||
(check-source-file-name pkg)))
|
||||
"file name should contain the package name"))))
|
||||
|
||||
(test-skip (if (force %http-server-socket) 0 1))
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-equal "source: 200"
|
||||
""
|
||||
(with-warnings
|
||||
@ -523,7 +570,7 @@
|
||||
(sha256 %null-sha256))))))
|
||||
(check-source pkg)))))
|
||||
|
||||
(test-skip (if (force %http-server-socket) 0 1))
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "source: 200 but short length"
|
||||
(->bool
|
||||
(string-contains
|
||||
@ -538,7 +585,7 @@
|
||||
(check-source pkg))))
|
||||
"suspiciously small")))
|
||||
|
||||
(test-skip (if (force %http-server-socket) 0 1))
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "source: 404"
|
||||
(->bool
|
||||
(string-contains
|
||||
@ -553,6 +600,42 @@
|
||||
(check-source pkg))))
|
||||
"not reachable: 404")))
|
||||
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-equal "source: 301 -> 200"
|
||||
""
|
||||
(with-warnings
|
||||
(with-http-server 200 %long-string
|
||||
(let ((initial-url (%local-url)))
|
||||
(parameterize ((%http-server-port (+ 1 (%http-server-port))))
|
||||
(with-http-server (301 `((location . ,(string->uri initial-url))))
|
||||
""
|
||||
(let ((pkg (package
|
||||
(inherit (dummy-package "x"))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (%local-url))
|
||||
(sha256 %null-sha256))))))
|
||||
(check-source pkg))))))))
|
||||
|
||||
(test-skip (if (http-server-can-listen?) 0 1))
|
||||
(test-assert "source: 301 -> 404"
|
||||
(->bool
|
||||
(string-contains
|
||||
(with-warnings
|
||||
(with-http-server 404 "booh!"
|
||||
(let ((initial-url (%local-url)))
|
||||
(parameterize ((%http-server-port (+ 1 (%http-server-port))))
|
||||
(with-http-server (301 `((location . ,(string->uri initial-url))))
|
||||
""
|
||||
(let ((pkg (package
|
||||
(inherit (dummy-package "x"))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (%local-url))
|
||||
(sha256 %null-sha256))))))
|
||||
(check-source pkg)))))))
|
||||
"not reachable: 404")))
|
||||
|
||||
(test-assert "mirror-url"
|
||||
(string-null?
|
||||
(with-warnings
|
||||
|
@ -57,16 +57,7 @@
|
||||
(match (waitpid pid)
|
||||
((_ . status)
|
||||
(and (zero? status)
|
||||
|
||||
;; PORT itself isn't closed but its underlying file
|
||||
;; descriptor must have been closed by 'gzclose'.
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
(seek (fileno parent) 0 SEEK_CUR)
|
||||
#f)
|
||||
(lambda args
|
||||
(= EBADF (system-error-errno args))))
|
||||
|
||||
(port-closed? parent)
|
||||
(bytevector=? received data))))))))))))
|
||||
|
||||
(test-end)
|
||||
|
Loading…
Reference in New Issue
Block a user