Merge branch 'master' into core-updates
commit
e7f62a41b2
|
@ -215,6 +215,58 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
|
|||
(ice-9 match)
|
||||
(ice-9 threads))
|
||||
|
||||
(define (pair-open/close lst)
|
||||
;; Pair 'open' and 'close' tags produced by 'highlights' and
|
||||
;; produce nested 'paren' tags instead.
|
||||
(let loop ((lst lst)
|
||||
(level 0)
|
||||
(result '()))
|
||||
(match lst
|
||||
((('open open) rest ...)
|
||||
(call-with-values
|
||||
(lambda ()
|
||||
(loop rest (+ 1 level) '()))
|
||||
(lambda (inner close rest)
|
||||
(loop rest level
|
||||
(cons `(paren ,level ,open ,inner ,close)
|
||||
result)))))
|
||||
((('close str) rest ...)
|
||||
(if (> level 0)
|
||||
(values (reverse result) str rest)
|
||||
(begin
|
||||
(format (current-error-port)
|
||||
"warning: extra closing paren; context:~% ~y~%"
|
||||
(reverse result))
|
||||
(loop rest 0 (cons `(close ,str) result)))))
|
||||
((item rest ...)
|
||||
(loop rest level (cons item result)))
|
||||
(()
|
||||
(when (> level 0)
|
||||
(format (current-error-port)
|
||||
"warning: missing ~a closing parens; context:~% ~y%"
|
||||
level (reverse result)))
|
||||
(values (reverse result) "" '())))))
|
||||
|
||||
(define (highlights->sxml* highlights)
|
||||
;; Like 'highlights->sxml', but handle nested 'paren tags. This
|
||||
;; allows for paren matching highlights via appropriate CSS
|
||||
;; "hover" properties.
|
||||
(define (tag->class tag)
|
||||
(string-append "syntax-" (symbol->string tag)))
|
||||
|
||||
(map (match-lambda
|
||||
((? string? str) str)
|
||||
(('paren level open (body ...) close)
|
||||
`(span (@ (class ,(string-append "syntax-paren"
|
||||
(number->string level))))
|
||||
,open
|
||||
(span (@ (class "syntax-symbol"))
|
||||
,@(highlights->sxml* body))
|
||||
,close))
|
||||
((tag text)
|
||||
`(span (@ (class ,(tag->class tag))) ,text)))
|
||||
highlights))
|
||||
|
||||
(define entity->string
|
||||
(match-lambda
|
||||
("rArr" "⇒")
|
||||
|
@ -252,9 +304,10 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
|
|||
(href #$syntax-css-url)))))
|
||||
(('pre ('@ ('class "lisp")) code-snippet ...)
|
||||
`(pre (@ (class "lisp"))
|
||||
,(highlights->sxml
|
||||
(highlight lex-scheme
|
||||
(concatenate-snippets code-snippet)))))
|
||||
,@(highlights->sxml*
|
||||
(pair-open/close
|
||||
(highlight lex-scheme
|
||||
(concatenate-snippets code-snippet))))))
|
||||
((tag ('@ attributes ...) body ...)
|
||||
`(,tag (@ ,@attributes) ,@(map syntax-highlight body)))
|
||||
((tag body ...)
|
||||
|
|
107
doc/guix.texi
107
doc/guix.texi
|
@ -2431,7 +2431,7 @@ Create a disk image that will hold the installed system. To make a
|
|||
qcow2-formatted disk image, use the @command{qemu-img} command:
|
||||
|
||||
@example
|
||||
qemu-img create -f qcow2 guixsd.img 50G
|
||||
qemu-img create -f qcow2 guix-system.img 50G
|
||||
@end example
|
||||
|
||||
The resulting file will be much smaller than 50 GB (typically less than
|
||||
|
@ -2442,17 +2442,13 @@ Boot the USB installation image in an VM:
|
|||
|
||||
@example
|
||||
qemu-system-x86_64 -m 1024 -smp 1 -enable-kvm \
|
||||
-net user -net nic,model=virtio -boot menu=on \
|
||||
-drive file=guix-system-install-@value{VERSION}.@var{system}.iso \
|
||||
-drive file=guixsd.img
|
||||
-net user -net nic,model=virtio -boot menu=on,order=d \
|
||||
-drive file=guix-system.img \
|
||||
-drive media=cdrom,file=guix-system-install-@value{VERSION}.@var{system}.iso
|
||||
@end example
|
||||
|
||||
The ordering of the drives matters. @code{-enable-kvm} is optional, but
|
||||
significantly improves performance, @pxref{Running Guix in a VM}.
|
||||
|
||||
In the VM console, quickly press the @kbd{F12} key to enter the boot
|
||||
menu. Then press the @kbd{2} key and the @kbd{RET} key to validate your
|
||||
selection.
|
||||
@code{-enable-kvm} is optional, but significantly improves performance,
|
||||
@pxref{Running Guix in a VM}.
|
||||
|
||||
@item
|
||||
You're now root in the VM, proceed with the installation process.
|
||||
|
@ -2460,7 +2456,7 @@ You're now root in the VM, proceed with the installation process.
|
|||
@end enumerate
|
||||
|
||||
Once installation is complete, you can boot the system that's on your
|
||||
@file{guixsd.img} image. @xref{Running Guix in a VM}, for how to do
|
||||
@file{guix-system.img} image. @xref{Running Guix in a VM}, for how to do
|
||||
that.
|
||||
|
||||
@node Building the Installation Image
|
||||
|
@ -2759,7 +2755,7 @@ As an example, @var{file} might contain a definition like this
|
|||
(@pxref{Defining Packages}):
|
||||
|
||||
@lisp
|
||||
@verbatiminclude package-hello.scm
|
||||
@include package-hello.scm
|
||||
@end lisp
|
||||
|
||||
Developers may find it useful to include such a @file{guix.scm} file
|
||||
|
@ -2937,6 +2933,19 @@ siblings that point to specific generations:
|
|||
$ rm ~/code/my-profile ~/code/my-profile-*-link
|
||||
@end example
|
||||
|
||||
@item --list-profiles
|
||||
List all the user's profiles:
|
||||
|
||||
@example
|
||||
$ guix package --list-profiles
|
||||
/home/charlie/.guix-profile
|
||||
/home/charlie/code/my-profile
|
||||
/home/charlie/code/devel-profile
|
||||
/home/charlie/tmp/test
|
||||
@end example
|
||||
|
||||
When running as root, list all the profiles of all the users.
|
||||
|
||||
@cindex collisions, in a profile
|
||||
@cindex colliding packages in profiles
|
||||
@cindex profile collisions
|
||||
|
@ -8235,7 +8244,7 @@ As an example, @var{file} might contain a package definition like this
|
|||
(@pxref{Defining Packages}):
|
||||
|
||||
@lisp
|
||||
@verbatiminclude package-hello.scm
|
||||
@include package-hello.scm
|
||||
@end lisp
|
||||
|
||||
@item --expression=@var{expr}
|
||||
|
@ -9474,7 +9483,7 @@ that Guix uses, as in this example:
|
|||
;; @dots{}
|
||||
;; CPE calls this package "grub2".
|
||||
(properties '((cpe-name . "grub2")
|
||||
(cpe-version . "2.3")))
|
||||
(cpe-version . "2.3"))))
|
||||
@end lisp
|
||||
|
||||
@c See <https://www.openwall.com/lists/oss-security/2017/03/15/3>.
|
||||
|
@ -11788,6 +11797,7 @@ declaration.
|
|||
* Virtualization Services:: Virtualization services.
|
||||
* Version Control Services:: Providing remote access to Git repositories.
|
||||
* Game Services:: Game servers.
|
||||
* Guix Services:: Services relating specifically to Guix.
|
||||
* Miscellaneous Services:: Other services.
|
||||
@end menu
|
||||
|
||||
|
@ -12392,7 +12402,7 @@ The following example showcases how we can use an existing rule file.
|
|||
@lisp
|
||||
(use-modules (guix download) ;for url-fetch
|
||||
(guix packages) ;for origin
|
||||
;; @dots{})
|
||||
@dots{})
|
||||
|
||||
(define %android-udev-rules
|
||||
(file->udev-rule
|
||||
|
@ -12426,7 +12436,7 @@ well as in the @var{groups} field of the @var{operating-system} record.
|
|||
@lisp
|
||||
(use-modules (gnu packages android) ;for android-udev-rules
|
||||
(gnu system shadow) ;for user-group
|
||||
;; @dots{})
|
||||
@dots{})
|
||||
|
||||
(operating-system
|
||||
;; @dots{}
|
||||
|
@ -12434,8 +12444,7 @@ well as in the @var{groups} field of the @var{operating-system} record.
|
|||
;; @dots{}
|
||||
(supplementary-groups
|
||||
'("adbusers" ;for adb
|
||||
"wheel" "netdev" "audio" "video"))
|
||||
;; @dots{})))
|
||||
"wheel" "netdev" "audio" "video")))))
|
||||
|
||||
(groups (cons (user-group (system? #t) (name "adbusers"))
|
||||
%base-groups))
|
||||
|
@ -13352,7 +13361,7 @@ gateway @code{hostname}:
|
|||
(program (file-append openssh "/bin/ssh"))
|
||||
(arguments
|
||||
'("ssh" "-qT" "-i" "/path/to/ssh_key"
|
||||
"-W" "smtp-server:25" "user@@hostname")))))
|
||||
"-W" "smtp-server:25" "user@@hostname")))))))
|
||||
@end lisp
|
||||
|
||||
See below for more details about @code{inetd-configuration}.
|
||||
|
@ -19822,13 +19831,12 @@ can do something along these lines:
|
|||
|
||||
@lisp
|
||||
(define %gnu-mirror
|
||||
(plain-file
|
||||
"gnu.vcl"
|
||||
"vcl 4.1;
|
||||
backend gnu @{ .host = "www.gnu.org"; @}"))
|
||||
(plain-file "gnu.vcl"
|
||||
"vcl 4.1;
|
||||
backend gnu @{ .host = \"www.gnu.org\"; @}"))
|
||||
|
||||
(operating-system
|
||||
...
|
||||
;; @dots{}
|
||||
(services (cons (service varnish-service-type
|
||||
(varnish-configuration
|
||||
(listen '(":80"))
|
||||
|
@ -24327,6 +24335,57 @@ The port to bind the server to.
|
|||
@end table
|
||||
@end deftp
|
||||
|
||||
|
||||
@node Guix Services
|
||||
@subsection Guix Services
|
||||
|
||||
@subsubheading Guix Data Service
|
||||
The @uref{http://data.guix.gnu.org,Guix Data Service} processes, stores
|
||||
and provides data about GNU Guix. This includes information about
|
||||
packages, derivations and lint warnings.
|
||||
|
||||
The data is stored in a PostgreSQL database, and available through a web
|
||||
interface.
|
||||
|
||||
@defvar {Scheme Variable} guix-data-service-type
|
||||
Service type for the Guix Data Service. Its value must be a
|
||||
@code{guix-data-service-configuration} object. The service optionally
|
||||
extends the getmail service, as the guix-commits mailing list is used to
|
||||
find out about changes in the Guix git repository.
|
||||
@end defvar
|
||||
|
||||
@deftp {Data Type} guix-data-service-configuration
|
||||
Data type representing the configuration of the Guix Data Service.
|
||||
|
||||
@table @asis
|
||||
@item @code{package} (default: @code{guix-data-service})
|
||||
The Guix Data Service package to use.
|
||||
|
||||
@item @code{user} (default: @code{"guix-data-service"})
|
||||
The system user to run the service as.
|
||||
|
||||
@item @code{group} (default: @code{"guix-data-service"})
|
||||
The system group to run the service as.
|
||||
|
||||
@item @code{port} (default: @code{8765})
|
||||
The port to bind the web service to.
|
||||
|
||||
@item @code{host} (default: @code{"127.0.0.1"})
|
||||
The host to bind the web service to.
|
||||
|
||||
@item @code{getmail-idle-mailboxes} (default: @code{#f})
|
||||
If set, this is the list of mailboxes that the getmail service will be
|
||||
configured to listen to.
|
||||
|
||||
@item @code{commits-getmail-retriever-configuration} (default: @code{#f})
|
||||
If set, this is the @code{getmail-retriever-configuration} object with
|
||||
which to configure getmail to fetch mail from the guix-commits mailing
|
||||
list.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
|
||||
@node Miscellaneous Services
|
||||
@subsection Miscellaneous Services
|
||||
|
||||
|
|
|
@ -359,8 +359,9 @@ the last argument of `mknod'."
|
|||
(define* (mount-root-file-system root type
|
||||
#:key volatile-root?)
|
||||
"Mount the root file system of type TYPE at device ROOT. If VOLATILE-ROOT?
|
||||
is true, mount ROOT read-only and make it a overlay with a writable tmpfs
|
||||
using the kernel build-in overlayfs."
|
||||
is true, mount ROOT read-only and make it an overlay with a writable tmpfs
|
||||
using the kernel built-in overlayfs."
|
||||
|
||||
(if volatile-root?
|
||||
(begin
|
||||
(mkdir-p "/real-root")
|
||||
|
|
|
@ -71,8 +71,7 @@ COMPRESS? is true, compress it using GZIP. On success, return OUTPUT."
|
|||
(cpio:write-cpio-archive files port
|
||||
#:file->header cpio:file->cpio-header*)))
|
||||
|
||||
(or (not compress?)
|
||||
|
||||
(if compress?
|
||||
;; Gzip insists on adding a '.gz' suffix and does nothing if the input
|
||||
;; file already has that suffix. Shuffle files around to placate it.
|
||||
(let* ((gz-suffix? (string-suffix? ".gz" output))
|
||||
|
@ -88,7 +87,6 @@ COMPRESS? is true, compress it using GZIP. On success, return OUTPUT."
|
|||
(unless gz-suffix?
|
||||
(rename-file (string-append output ".gz") output))
|
||||
output)))
|
||||
|
||||
output))
|
||||
|
||||
(define (cache-compiled-file-name file)
|
||||
|
|
|
@ -150,14 +150,16 @@ namespace, in addition to essential bind-mounts such /proc."
|
|||
(when log-file
|
||||
;; Create LOG-FILE so we can map it in the container.
|
||||
(unless (file-exists? log-file)
|
||||
(call-with-output-file log-file (const #t))))
|
||||
(call-with-output-file log-file (const #t))
|
||||
(when user
|
||||
(let ((pw (getpwnam user)))
|
||||
(chown log-file (passwd:uid pw) (passwd:gid pw))))))
|
||||
|
||||
(let ((pid (run-container container-directory
|
||||
mounts namespaces 1
|
||||
(lambda ()
|
||||
(mkdir-p "/var/run")
|
||||
(clean-up pid-file)
|
||||
(clean-up log-file)
|
||||
|
||||
(exec-command command
|
||||
#:user user
|
||||
|
|
|
@ -587,7 +587,6 @@ edit it."
|
|||
disks))
|
||||
(new-user-partitions
|
||||
(remove-user-partition-by-disk user-partitions item)))
|
||||
(disk-destroy item)
|
||||
`((disks . ,(cons new-disk other-disks))
|
||||
(user-partitions . ,new-user-partitions)))
|
||||
`((disks . ,disks)
|
||||
|
@ -625,7 +624,7 @@ edit it."
|
|||
info-text)))
|
||||
(case result
|
||||
((1)
|
||||
(disk-delete-all item)
|
||||
(disk-remove-all-partitions item)
|
||||
`((disks . ,disks)
|
||||
(user-partitions
|
||||
. ,(remove-user-partition-by-disk user-partitions item))))
|
||||
|
@ -649,7 +648,7 @@ edit it."
|
|||
(let ((new-user-partitions
|
||||
(remove-user-partition-by-partition user-partitions
|
||||
item)))
|
||||
(disk-delete-partition disk item)
|
||||
(disk-remove-partition* disk item)
|
||||
`((disks . ,disks)
|
||||
(user-partitions . ,new-user-partitions))))
|
||||
(else
|
||||
|
@ -696,9 +695,7 @@ by pressing the Exit button.~%~%")))
|
|||
#f))
|
||||
(check-user-partitions user-partitions))))
|
||||
(if user-partitions-ok?
|
||||
(begin
|
||||
(for-each (cut disk-destroy <>) disks)
|
||||
user-partitions)
|
||||
user-partitions
|
||||
(run-disk-page disks user-partitions
|
||||
#:guided? guided?)))
|
||||
(let* ((result-disks (assoc-ref result 'disks))
|
||||
|
|
|
@ -64,13 +64,7 @@
|
|||
user-partition-parted-object
|
||||
|
||||
find-esp-partition
|
||||
data-partition?
|
||||
metadata-partition?
|
||||
freespace-partition?
|
||||
small-freespace-partition?
|
||||
normal-partition?
|
||||
extended-partition?
|
||||
logical-partition?
|
||||
esp-partition?
|
||||
boot-partition?
|
||||
default-esp-mount-point
|
||||
|
@ -172,24 +166,6 @@
|
|||
"Find and return the ESP partition among PARTITIONS."
|
||||
(find esp-partition? partitions))
|
||||
|
||||
(define (data-partition? partition)
|
||||
"Return #t if PARTITION is a partition dedicated to data (by opposition to
|
||||
freespace, metadata and protected partition types), return #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(not (any (lambda (flag)
|
||||
(member flag type))
|
||||
'(free-space metadata protected)))))
|
||||
|
||||
(define (metadata-partition? partition)
|
||||
"Return #t if PARTITION is a metadata partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'metadata type)))
|
||||
|
||||
(define (freespace-partition? partition)
|
||||
"Return #t if PARTITION is a free-space partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'free-space type)))
|
||||
|
||||
(define* (small-freespace-partition? device
|
||||
partition
|
||||
#:key (max-size MEBIBYTE-SIZE))
|
||||
|
@ -200,21 +176,6 @@ inferior to MAX-SIZE, #f otherwise."
|
|||
(device-sector-size device))))
|
||||
(< size max-sector-size)))
|
||||
|
||||
(define (normal-partition? partition)
|
||||
"return #t if partition is a normal partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'normal type)))
|
||||
|
||||
(define (extended-partition? partition)
|
||||
"return #t if partition is an extended partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'extended type)))
|
||||
|
||||
(define (logical-partition? partition)
|
||||
"Return #t if PARTITION is a logical partition, #f otherwise."
|
||||
(let ((type (partition-type partition)))
|
||||
(member 'logical type)))
|
||||
|
||||
(define (partition-user-type partition)
|
||||
"Return the type of PARTITION, to be stored in the TYPE field of
|
||||
<user-partition> record. It can be 'normal, 'extended or 'logical."
|
||||
|
@ -813,7 +774,7 @@ cause them to cross."
|
|||
(define (rmpart disk number)
|
||||
"Remove the partition with the given NUMBER on DISK."
|
||||
(let ((partition (disk-get-partition disk number)))
|
||||
(disk-remove-partition disk partition)))
|
||||
(disk-remove-partition* disk partition)))
|
||||
|
||||
|
||||
;;
|
||||
|
@ -928,12 +889,12 @@ exists."
|
|||
|
||||
(if has-extended?
|
||||
;; msdos - remove everything.
|
||||
(disk-delete-all disk)
|
||||
(disk-remove-all-partitions disk)
|
||||
;; gpt - remove everything but esp if it exists.
|
||||
(for-each
|
||||
(lambda (partition)
|
||||
(and (data-partition? partition)
|
||||
(disk-remove-partition disk partition)))
|
||||
(disk-remove-partition* disk partition)))
|
||||
non-boot-partitions))
|
||||
|
||||
(let* ((start-partition
|
||||
|
@ -1348,7 +1309,7 @@ USER-PARTITIONS, or return nothing."
|
|||
|
||||
(define (init-parted)
|
||||
"Initialize libparted support."
|
||||
(probe-all-devices)
|
||||
(probe-all-devices!)
|
||||
(exception-set-handler (lambda (exception)
|
||||
EXCEPTION-OPTION-UNHANDLED)))
|
||||
|
||||
|
@ -1364,7 +1325,6 @@ the devices not to be used before returning."
|
|||
;; https://mail.gnome.org/archives/commits-list/2013-March/msg18423.html.
|
||||
(let ((device-file-names (map device-path devices)))
|
||||
(for-each force-device-sync devices)
|
||||
(free-all-devices)
|
||||
(for-each (lambda (file-name)
|
||||
(let ((in-use? (with-delay-device-in-use? file-name)))
|
||||
(and in-use?
|
||||
|
|
19
gnu/local.mk
19
gnu/local.mk
|
@ -146,7 +146,8 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/diffoscope.scm \
|
||||
%D%/packages/digest.scm \
|
||||
%D%/packages/direct-connect.scm \
|
||||
%D%/packages/disk.scm \
|
||||
%D%/packages/disk.scm \
|
||||
%D%/packages/distributed.scm \
|
||||
%D%/packages/display-managers.scm \
|
||||
%D%/packages/django.scm \
|
||||
%D%/packages/djvu.scm \
|
||||
|
@ -534,6 +535,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/services/authentication.scm \
|
||||
%D%/services/games.scm \
|
||||
%D%/services/getmail.scm \
|
||||
%D%/services/guix.scm \
|
||||
%D%/services/kerberos.scm \
|
||||
%D%/services/lirc.scm \
|
||||
%D%/services/virtualization.scm \
|
||||
|
@ -598,6 +600,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/tests/desktop.scm \
|
||||
%D%/tests/dict.scm \
|
||||
%D%/tests/docker.scm \
|
||||
%D%/tests/guix.scm \
|
||||
%D%/tests/monitoring.scm \
|
||||
%D%/tests/nfs.scm \
|
||||
%D%/tests/install.scm \
|
||||
|
@ -707,7 +710,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/bash-completion-directories.patch \
|
||||
%D%/packages/patches/bastet-change-source-of-unordered_set.patch \
|
||||
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
|
||||
%D%/packages/patches/beets-python-3.7-fix.patch \
|
||||
%D%/packages/patches/beignet-correct-file-names.patch \
|
||||
%D%/packages/patches/benchmark-unbundle-googletest.patch \
|
||||
%D%/packages/patches/biber-fix-encoding-write.patch \
|
||||
|
@ -763,6 +765,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/dbus-c++-gcc-compat.patch \
|
||||
%D%/packages/patches/dbus-c++-threading-mutex.patch \
|
||||
%D%/packages/patches/dealii-mpi-deprecations.patch \
|
||||
%D%/packages/patches/debops-constants-for-external-program-names.patch \
|
||||
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
|
||||
%D%/packages/patches/deja-dup-use-ref-keyword-for-iter.patch \
|
||||
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
||||
%D%/packages/patches/diffutils-gets-undeclared.patch \
|
||||
|
@ -824,9 +828,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/flint-ldconfig.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
|
||||
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2015-0852.patch \
|
||||
%D%/packages/patches/freeimage-CVE-2016-5684.patch \
|
||||
%D%/packages/patches/freeimage-fix-build-with-gcc-5.patch \
|
||||
%D%/packages/patches/freeimage-unbundle.patch \
|
||||
%D%/packages/patches/fuse-overlapping-headers.patch \
|
||||
%D%/packages/patches/gawk-shell.patch \
|
||||
|
@ -901,10 +902,11 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/glibc-versioned-locpath.patch \
|
||||
%D%/packages/patches/glibc-2.27-git-fixes.patch \
|
||||
%D%/packages/patches/glibc-2.28-git-fixes.patch \
|
||||
%D%/packages/patches/glibc-2.28-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-2.29-git-updates.patch \
|
||||
%D%/packages/patches/glibc-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-2.27-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-2.28-supported-locales.patch \
|
||||
%D%/packages/patches/glibc-supported-locales.patch \
|
||||
%D%/packages/patches/glm-restore-install-target.patch \
|
||||
%D%/packages/patches/glusterfs-use-PATH-instead-of-hardcodes.patch \
|
||||
%D%/packages/patches/gmp-arm-asm-nothumb.patch \
|
||||
%D%/packages/patches/gmp-faulty-test.patch \
|
||||
|
@ -972,8 +974,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/icedtea-6-hotspot-gcc-segfault-workaround.patch \
|
||||
%D%/packages/patches/icedtea-7-hotspot-gcc-segfault-workaround.patch \
|
||||
%D%/packages/patches/id3lib-CVE-2007-4460.patch \
|
||||
%D%/packages/patches/idris-test-no-node.patch \
|
||||
%D%/packages/patches/ilmbase-fix-tests.patch \
|
||||
%D%/packages/patches/ilmbase-openexr-pkg-config.patch \
|
||||
%D%/packages/patches/inkscape-poppler-0.76.patch \
|
||||
%D%/packages/patches/intltool-perl-compatibility.patch \
|
||||
%D%/packages/patches/irrlicht-use-system-libs.patch \
|
||||
|
@ -1180,7 +1182,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/osip-CVE-2017-7853.patch \
|
||||
%D%/packages/patches/ots-no-include-missing-file.patch \
|
||||
%D%/packages/patches/owncloud-disable-updatecheck.patch \
|
||||
%D%/packages/patches/p11-kit-jks-timestamps.patch \
|
||||
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
|
||||
%D%/packages/patches/p7zip-CVE-2017-17969.patch \
|
||||
%D%/packages/patches/p7zip-remove-unused-code.patch \
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
|
||||
;;; Copyright © 2019 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
|
||||
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.lonestar.org>
|
||||
;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -60,6 +61,7 @@
|
|||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages dns)
|
||||
#:use-module (gnu packages file)
|
||||
|
@ -112,6 +114,7 @@
|
|||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages mpi)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages web))
|
||||
|
||||
(define-public aide
|
||||
|
@ -1903,6 +1906,101 @@ ad hoc task execution, and multinode orchestration---including trivializing
|
|||
things like zero-downtime rolling updates with load balancers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public debops
|
||||
(package
|
||||
(name "debops")
|
||||
(version "1.1.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/debops/debops")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "052b2dykdn35pdpn9s4prawl6nl6yzih8nyf54hpvhpisvjrm1v5"))
|
||||
(patches
|
||||
(search-patches "debops-constants-for-external-program-names.patch"
|
||||
"debops-debops-defaults-fall-back-to-less.patch"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("git" ,git)))
|
||||
(inputs
|
||||
`(("ansible" ,ansible)
|
||||
("encfs" ,encfs)
|
||||
("fuse" ,fuse)
|
||||
("util-linux" ,util-linux) ;; for umount
|
||||
("findutils" ,findutils)
|
||||
("gnupg" ,gnupg)
|
||||
("which" ,which)))
|
||||
(propagated-inputs
|
||||
`(("python-future" ,python-future)
|
||||
("python-distro" ,python-distro)))
|
||||
(arguments
|
||||
`(#:tests? #f
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'nuke-debops-update
|
||||
(lambda _
|
||||
(chmod "bin/debops-update" #o755) ; FIXME work-around git-fetch issue
|
||||
(with-output-to-file "bin/debops-update"
|
||||
(lambda ()
|
||||
(format #t "#!/bin/sh
|
||||
echo 'debops is installed via guix. guix-update is useless in this case.
|
||||
Please use `guix package -u debops` instead.'")))
|
||||
#t))
|
||||
;; patch shebangs only in actuall scripts, not in files included in
|
||||
;; roles (which are to be delivered to the targte systems)
|
||||
(delete `patch-generated-file-shebangs)
|
||||
(replace 'patch-source-shebangs
|
||||
(lambda _
|
||||
(for-each patch-shebang
|
||||
(find-files "bin"
|
||||
(lambda (file stat)
|
||||
;; Filter out symlinks.
|
||||
(eq? 'regular (stat:type stat)))
|
||||
#:stat lstat))))
|
||||
(add-after 'unpack 'fix-paths
|
||||
(lambda _
|
||||
(define (substitute-program-names file)
|
||||
;; e.g. ANSIBLE_PLAYBOOK = '/gnu/store/…/bin/ansible-playbook'
|
||||
(for-each
|
||||
(lambda (name)
|
||||
(let ((varname (string-upcase
|
||||
(string-map
|
||||
(lambda (c) (if (char=? c #\-) #\_ c))
|
||||
name))))
|
||||
(substitute* file
|
||||
(((string-append "^(" varname " = )'.*'") line prefix)
|
||||
(string-append prefix "'" (which name) "'")))))
|
||||
'("ansible-playbook" "encfs" "find" "fusermount"
|
||||
"umount" "gpg" "ansible" "which")))
|
||||
(for-each substitute-program-names
|
||||
'("bin/debops"
|
||||
"bin/debops-padlock"
|
||||
"bin/debops-task"
|
||||
"debops/__init__.py"
|
||||
"debops/cmds/__init__.py"))
|
||||
#t)))))
|
||||
(home-page "https://www.debops.org/")
|
||||
(synopsis "Collection of general-purpose Ansible roles")
|
||||
(description "The Ansible roles provided by that can be used to manage
|
||||
Debian or Ubuntu hosts. In addition, a default set of Ansible playbooks can
|
||||
be used to apply the provided roles in a controlled way, using Ansible
|
||||
inventory groups.
|
||||
|
||||
The roles are written with a high customization in mind, which can be done
|
||||
using Ansible inventory. This way the role and playbook code can be shared
|
||||
between multiple environments, with different configuration in to each one.
|
||||
|
||||
Services can be managed on a single host, or spread between multiple hosts.
|
||||
DebOps provides support for different SQL and NoSQL databases, web servers,
|
||||
programming languages and specialized applications useful in a data center
|
||||
environment or in a cluster. The project can also be used to deploy
|
||||
virtualization environments using KVM/libvirt, Docker or LXC technologies to
|
||||
manage virtual machines and/or containers.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-ansible-doc
|
||||
(let ((commit "86083a7bb2ed0468ca64e52076b06441a2f8e9e0"))
|
||||
(package
|
||||
|
|
|
@ -357,7 +357,7 @@ menu to select one of the installed operating systems.")
|
|||
(define-public dtc
|
||||
(package
|
||||
(name "dtc")
|
||||
(version "1.5.0")
|
||||
(version "1.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -365,7 +365,7 @@ menu to select one of the installed operating systems.")
|
|||
"dtc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wh10p42hf5403ipvs0dsxddb6kzfyk2sq4fgid9zqzpr51y8wn6"))))
|
||||
"07q3mdsvl4smbiakriq3hnsyyd0q344lsm306q0kgz4hjq1p82v6"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
|
@ -379,6 +379,11 @@ menu to select one of the installed operating systems.")
|
|||
(arguments
|
||||
`(#:make-flags
|
||||
(list "CC=gcc"
|
||||
|
||||
;; /bin/fdt{get,overlay,put} need help finding libfdt.so.1.
|
||||
(string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib")
|
||||
|
||||
(string-append "PREFIX=" (assoc-ref %outputs "out"))
|
||||
(string-append "SETUP_PREFIX=" (assoc-ref %outputs "out"))
|
||||
"INSTALL=install")
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
(define-public keepalived
|
||||
(package
|
||||
(name "keepalived")
|
||||
(version "2.0.5")
|
||||
(version "2.0.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -43,7 +43,7 @@
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"021a7c1lq4aqx7dbwhlm5km6w039hapfzp5hf6wb5bfq79s25g38"))))
|
||||
"1l2g0bzzbah9svfpwa0b9dgvwfv85r2y3qdr54822hg5p2qs48ql"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -52,7 +52,7 @@
|
|||
(lambda _
|
||||
(invoke "make" "-C" "doc" "texinfo")
|
||||
;; Put images in a subdirectory as recommended by 'texinfo'.
|
||||
(install-file "doc/build/texinfo/software_design.png"
|
||||
(install-file "doc/source/images/software_design.png"
|
||||
"doc/build/texinfo/keepalived-figures")
|
||||
(substitute* "doc/build/texinfo/keepalived.texi"
|
||||
(("@image\\{software_design,")
|
||||
|
@ -63,7 +63,7 @@
|
|||
(let* ((out (assoc-ref outputs "out"))
|
||||
(infodir (string-append out "/share/info")))
|
||||
(install-file "doc/build/texinfo/keepalived.info" infodir)
|
||||
(install-file "doc/build/texinfo/software_design.png"
|
||||
(install-file "doc/source/images/software_design.png"
|
||||
(string-append infodir "/keepalived-figures"))
|
||||
#t))))))
|
||||
(native-inputs
|
||||
|
@ -74,7 +74,7 @@
|
|||
`(("openssl" ,openssl)
|
||||
("libnfnetlink" ,libnfnetlink)
|
||||
("libnl" ,libnl)))
|
||||
(home-page "http://www.keepalived.org/")
|
||||
(home-page "https://www.keepalived.org/")
|
||||
(synopsis "Load balancing and high-availability frameworks")
|
||||
(description
|
||||
"Keepalived provides frameworks for both load balancing and high
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2018, 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -48,6 +48,7 @@
|
|||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages assembly)
|
||||
#:use-module (gnu packages autotools)
|
||||
|
@ -2048,3 +2049,50 @@ external compressors: the compressor to be used for each format is configurable
|
|||
at run time, and must be installed separately.")
|
||||
(license (list license:bsd-2 ; arg_parser.{cc,h}
|
||||
license:gpl2+)))) ; the rest
|
||||
|
||||
(define-public makeself-safeextract
|
||||
(let ((commit "1a95e121fa8e3c02d307ae37b9b7834e616c3683"))
|
||||
(package
|
||||
(name "makeself-safeextract")
|
||||
(version (git-version "0.0.0" "1" commit))
|
||||
(home-page "https://github.com/ssokolow/makeself_safeextract")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url home-page)
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1anlinaj9lvfi8bn00wp11vzqq0f9sig4fm9yrspisx31v0z4a2c"))))
|
||||
(build-system trivial-build-system)
|
||||
(inputs
|
||||
`(("python" ,python-2)
|
||||
("p7zip" ,p7zip)
|
||||
("unzip" ,unzip)))
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
(let* ((name "makeself_safeextract")
|
||||
(source (string-append (assoc-ref %build-inputs "source")
|
||||
"/" name ".py"))
|
||||
(bin (string-append (assoc-ref %outputs "out") "/bin"))
|
||||
(target (string-append bin "/" name))
|
||||
(python (string-append (assoc-ref %build-inputs "python") "/bin"))
|
||||
(7z (string-append (assoc-ref %build-inputs "p7zip") "/bin/7z"))
|
||||
(unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")))
|
||||
(setenv "PATH" (string-append (getenv "PATH") ":" python))
|
||||
(mkdir-p bin)
|
||||
(copy-file source target)
|
||||
(substitute* target
|
||||
(("'7z'") (format #f "'~a'" 7z))
|
||||
(("'unzip'") (format #f "'~a'" unzip)))
|
||||
(patch-shebang target)))))
|
||||
(synopsis "Extract makeself and mojo archives without running untrusted code")
|
||||
(description "This package provides a script to unpack self-extracting
|
||||
archives generated by @command{makeself} or @command{mojo} without running the
|
||||
possibly untrusted extraction shell script.")
|
||||
(license license:gpl3+))))
|
||||
|
|
|
@ -15610,3 +15610,30 @@ deprecated, and defunct). It makes it easy to insert badges corresponding to
|
|||
these stages in your documentation. Usage of deprecated functions are
|
||||
signalled with increasing levels of non-invasive verbosity.")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public r-assertable
|
||||
(package
|
||||
(name "r-assertable")
|
||||
(version "0.2.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "assertable" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0jjd6ylh26fykzzv1q2lbajzfj07lyxwb3b3xmr2zdg2fp5b2w4c"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-data-table" ,r-data-table)))
|
||||
(home-page "https://cran.r-project.org/web/packages/assertable/")
|
||||
(synopsis "Verbose assertions for tabular data (data.frames and data.tables)")
|
||||
(description "This package provides simple, flexible assertions on
|
||||
data.frame or data.table objects with verbose output for vetting. While other
|
||||
assertion packages apply towards more general use-cases, @code{assertable} is
|
||||
tailored towards tabular data. It includes functions to check variable names
|
||||
and values, whether the dataset contains all combinations of a given set of
|
||||
unique identifiers, and whether it is a certain length. In addition,
|
||||
@code{assertable} includes utility functions to check the existence of target
|
||||
files and to efficiently import multiple tabular data files into one
|
||||
data.table.")
|
||||
(license license:gpl3)))
|
||||
|
|
|
@ -402,7 +402,7 @@ systems. Output format is completely customizable.")
|
|||
(define-public f3
|
||||
(package
|
||||
(name "f3")
|
||||
(version "7.1")
|
||||
(version "7.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -411,8 +411,7 @@ systems. Output format is completely customizable.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zglsmz683jg7f9wc6vmgljyg9w87pbnjw5x4w6x02w8233zvjqf"))))
|
||||
(base32 "1iwdg0r4wkgc8rynmw1qcqz62l0ldgc8lrazq33msxnk5a818jgy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no check target
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Brant Gardner <brantcgardner@brantware.com>
|
||||
;;;
|
||||
;;; 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 distributed)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages wxwidgets)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-xyz))
|
||||
|
||||
(define-public boinc-client
|
||||
(package
|
||||
(name "boinc-client")
|
||||
(version "7.16.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/boinc/boinc.git")
|
||||
(commit (string-append "client_release/"
|
||||
"7.16/"
|
||||
version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0w2qimcwyjhapk3z7zyq7jkls23hsnmm35iw7m4s4if04fp70dx0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:configure-flags '("--disable-server")))
|
||||
(inputs `(("openssl" ,openssl)
|
||||
("curl" ,curl)
|
||||
("wxwidgets" ,wxwidgets)
|
||||
("gtk+" ,gtk+)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("libnotify" ,libnotify)
|
||||
("sqlite" ,sqlite)
|
||||
("python" ,python)
|
||||
("python-pyserial" ,python-pyserial)))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "BOINC lets you help cutting-edge science research using your computer")
|
||||
(description "BOINC is a platform for high-throughput computing on a large
|
||||
scale (thousands or millions of computers). It can be used for volunteer
|
||||
computing (using consumer devices) or grid computing (using organizational
|
||||
resources). It supports virtualized, parallel, and GPU-based applications.
|
||||
|
||||
BOINC is distributed under the LGPL open source license. It can be used for
|
||||
commercial purposes, and applications need not be open source.")
|
||||
(home-page "https://boinc.berkeley.edu/")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public boinc-server
|
||||
(package (inherit boinc-client)
|
||||
(name "boinc-server")
|
||||
(arguments '(#:configure-flags '("--disable-client" "--disable-manager")
|
||||
#:parallel-build? #f
|
||||
#:tests? #f)) ; FIXME: Looks like bad test syntax in the
|
||||
; source package, 2 tests fail. Disable for
|
||||
; now.
|
||||
(inputs `(("openssl" ,openssl)
|
||||
("curl" ,curl)
|
||||
("mariadb" ,mariadb)
|
||||
("zlib" ,zlib)))
|
||||
(propagated-inputs `(("python" ,python-wrapper)
|
||||
("perl" ,perl)))))
|
|
@ -89,6 +89,7 @@
|
|||
#:use-module (gnu packages cmake)
|
||||
#:use-module (gnu packages code)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages dictionaries)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages gtk)
|
||||
|
@ -771,32 +772,45 @@ supports type hints, definition-jumping, completion, and more.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-flycheck
|
||||
(package
|
||||
(name "emacs-flycheck")
|
||||
(version "31")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/flycheck/flycheck/releases/download/"
|
||||
version "/flycheck-" version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"01rnwan16m7cyyrfca3c5c60mbj2r3knkpzbhji2fczsf0wns240"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet `(begin
|
||||
;; Change 'flycheck-version' so that it does not
|
||||
;; attempt to get its version from pkg-info.el.
|
||||
(substitute* "flycheck.el"
|
||||
(("\\(pkg-info-version-info 'flycheck\\)")
|
||||
(string-append "\"" ,version "\"")))
|
||||
#t))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)))
|
||||
(home-page "https://www.flycheck.org")
|
||||
(synopsis "On-the-fly syntax checking")
|
||||
(description
|
||||
"This package provides on-the-fly syntax checking for GNU Emacs. It is a
|
||||
;; last release version was more than 300 commits ago
|
||||
(let ((commit "0006a59259ebd02c9199ddc87f0e3ce22793a2ea")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-flycheck")
|
||||
(version (git-version "31" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/flycheck/flycheck/")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"09q3h6ldpg528cfbmsbb1x2vf5hmzgm3fshqn6kdy144jxcdjlf1"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-dash" ,emacs-dash)))
|
||||
(native-inputs
|
||||
`(("emacs-shut-up" ,emacs-shut-up)))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'change-flycheck-version
|
||||
(lambda _
|
||||
(substitute* "flycheck.el"
|
||||
(("\\(pkg-info-version-info 'flycheck\\)")
|
||||
(string-append "\"" ,version "\"")))
|
||||
#t)))
|
||||
;; TODO: many failing tests
|
||||
#:tests? #f
|
||||
#:test-command '("emacs" "-Q" "--batch" "-L" "."
|
||||
"--load" "test/flycheck-test"
|
||||
"--load" "test/run.el"
|
||||
"-f" "flycheck-run-tests-main")))
|
||||
(home-page "https://www.flycheck.org")
|
||||
(synopsis "On-the-fly syntax checking")
|
||||
(description
|
||||
"This package provides on-the-fly syntax checking for GNU Emacs. It is a
|
||||
replacement for the older Flymake extension which is part of GNU Emacs, with
|
||||
many improvements and additional features.
|
||||
|
||||
|
@ -804,7 +818,7 @@ Flycheck provides fully-automatic, fail-safe, on-the-fly background syntax
|
|||
checking for over 30 programming and markup languages with more than 70
|
||||
different tools. It highlights errors and warnings inline in the buffer, and
|
||||
provides an optional IDE-like error list.")
|
||||
(license license:gpl3+))) ;+GFDLv1.3+ for the manual
|
||||
(license license:gpl3+)))) ;+GFDLv1.3+ for the manual
|
||||
|
||||
(define-public emacs-a
|
||||
(package
|
||||
|
@ -3079,6 +3093,60 @@ boundaries defined by syntax highlighting.")
|
|||
for Flow files.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-flycheck-grammalecte
|
||||
(package
|
||||
(name "emacs-flycheck-grammalecte")
|
||||
(version "0.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://git.deparis.io/"
|
||||
"flycheck-grammalecte/snapshot/"
|
||||
"flycheck-grammalecte-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wjm9xyra870pci4bcrbnc9x66x18mi7iz08rkxa4clxv28xzryb"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:include '("\\.(el|py)$")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-python
|
||||
;; Hardcode python3 executable in the Emacs library.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((python3 (string-append (assoc-ref inputs "python")
|
||||
"/bin/python3")))
|
||||
(substitute* "flycheck-grammalecte.el"
|
||||
(("python3") python3))
|
||||
#t)))
|
||||
(add-after 'install 'link-to-grammalecte
|
||||
;; The package expects grammalecte to be in a sub-directory.
|
||||
;; Symlink it there from the store.
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((grammalecte (assoc-ref inputs "grammalecte"))
|
||||
(out (assoc-ref outputs "out"))
|
||||
(version ,(version-major+minor (package-version python))))
|
||||
(with-directory-excursion
|
||||
(string-append out
|
||||
"/share/emacs/site-lisp/guix.d/"
|
||||
"flycheck-grammalecte-" ,version)
|
||||
(symlink (string-append grammalecte "/lib/"
|
||||
"python" version "/site-packages/"
|
||||
"grammalecte")
|
||||
"grammalecte"))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("grammalecte" ,grammalecte)
|
||||
("python" ,python)))
|
||||
(propagated-inputs
|
||||
`(("emacs-flycheck" ,emacs-flycheck)))
|
||||
(home-page "https://git.deparis.io/flycheck-grammalecte/")
|
||||
(synopsis "Integrate Grammalecte with Flycheck")
|
||||
(description "Integrate the French grammar and typography checker
|
||||
Grammalecte with Flycheck to automatically look for mistakes in your writings.
|
||||
It also provides an easy way to find synonyms and antonyms for a given
|
||||
word (to avoid repetitions for example).")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-elisp-demos
|
||||
(package
|
||||
(name "emacs-elisp-demos")
|
||||
|
@ -3484,27 +3552,31 @@ for the current function or variable in the minibuffer.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-company-quickhelp
|
||||
(package
|
||||
(name "emacs-company-quickhelp")
|
||||
(version "2.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/expez/company-quickhelp.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "08ccsfvwdpzpj0gai3xrdb2bv1nl6myjkxsc5774pbvlq9nkfdvr"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-pos-tip" ,emacs-pos-tip)
|
||||
("emacs-company" ,emacs-company)))
|
||||
(home-page "https://github.com/expez/company-quickhelp")
|
||||
(synopsis "Popup documentation for completion candidates")
|
||||
(description "@code{company-quickhelp} shows documentation for the
|
||||
;; XXX: release version 2.3.0 is on an unmaintained branch for some reason,
|
||||
;; so we use the latest 2.2.0 commit instead
|
||||
(let ((commit "479676cade80a9f03802ca3d956591820ed5c537")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-company-quickhelp")
|
||||
(version (git-version "2.2.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/expez/company-quickhelp.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0hbqpnaf4hnin3nmdzmfj3v22kk9a97b6zssqs96ns36d9h52xcp"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-pos-tip" ,emacs-pos-tip)
|
||||
("emacs-company" ,emacs-company)))
|
||||
(home-page "https://github.com/expez/company-quickhelp")
|
||||
(synopsis "Popup documentation for completion candidates")
|
||||
(description "@code{company-quickhelp} shows documentation for the
|
||||
completion candidate when using the Company text completion framework.")
|
||||
(license license:gpl3+)))
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-math-symbol-lists
|
||||
(let ((commit "dc7531cff0c845d5470a50c24d5d7309b2ced7eb")
|
||||
|
@ -5822,14 +5894,14 @@ provides the following features:
|
|||
(name "emacs-markdown-mode")
|
||||
(version "2.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/jrblevin"
|
||||
"/markdown-mode/v" version
|
||||
"/markdown-mode.el"))
|
||||
(file-name (string-append "markdown-mode-" version ".el"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jrblevin/markdown-mode.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"152whyrq3dqlqy5wv4mdd94kmal19hs5kwaxjcp2gp2r97lsmdmi"))))
|
||||
"1zm1j4w0f3h01bmmpsv4j4mh6i13nnl8fcqlj2hsa1ncy1lgi8q7"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "http://jblevins.org/projects/markdown-mode/")
|
||||
(synopsis "Emacs Major mode for Markdown files")
|
||||
|
@ -6184,16 +6256,21 @@ completion, interactive development and more.")
|
|||
(name "emacs-rainbow-delimiters")
|
||||
(version "2.1.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/Fanael"
|
||||
"/rainbow-delimiters/" version
|
||||
"/rainbow-delimiters.el"))
|
||||
(file-name (string-append "rainbow-delimiters-" version ".el"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Fanael/rainbow-delimiters.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1b3kampwsjabhcqdp0khgff13wc5jqhy3rbvaa12vnv7qy22l9ck"))))
|
||||
"0vs9pf8lqq5p5qz1770pxgw47ym4xj8axxmwamn66br59mykdhv0"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/Fanael/rainbow-delimiters")
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("emacs" "-Q" "-batch"
|
||||
"-l" "rainbow-delimiters-test.el"
|
||||
"-f" "ert-run-tests-batch-and-exit")))
|
||||
(synopsis "Highlight brackets according to their depth")
|
||||
(description
|
||||
"Rainbow-delimiters is a \"rainbow parentheses\"-like mode for Emacs which
|
||||
|
@ -6342,15 +6419,16 @@ that uses the standard completion function completing-read.")
|
|||
(define-public emacs-yaml-mode
|
||||
(package
|
||||
(name "emacs-yaml-mode")
|
||||
(version "0.0.13")
|
||||
(version "0.0.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/yoshiki"
|
||||
"/yaml-mode/v" version "/yaml-mode.el"))
|
||||
(file-name (string-append "yaml-mode-" version ".el"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/yoshiki/yaml-mode.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
|
||||
"18g064ardqi1f3xz7j6rs1x9fvv9sn0iq9vgid8c6qvxq7gwj00r"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/yoshiki/yaml-mode")
|
||||
(synopsis "Major mode for editing YAML files")
|
||||
|
@ -6392,13 +6470,14 @@ via @code{gitlab-ci-lint}.")
|
|||
(name "emacs-web-mode")
|
||||
(version "16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://raw.githubusercontent.com/fxbois"
|
||||
"/web-mode/v" version "/web-mode.el"))
|
||||
(file-name (string-append "web-mode-" version ".el"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/fxbois/web-mode.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1hs5w7kdvcyn4ihyw1kfjg48djn5p7lz4rlbhzzdqv1g56xqx3gw"))))
|
||||
"17dw6a8d0p304f2sa4f9zwd8r48w2wbkc3fvbmxwlg4w12h7cwf0"))))
|
||||
(build-system emacs-build-system)
|
||||
(synopsis "Major mode for editing web templates")
|
||||
(description "Web-mode is an Emacs major mode for editing web templates
|
||||
|
@ -7094,6 +7173,9 @@ pasting into and from @code{tmux} paste buffers.")
|
|||
"1r8shfdddys9vqvrxf7s6z83ydqx9xhqs9sa7klbsajryqcp50b7"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs `(("emacs-evil" ,emacs-evil)))
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("make" "test")))
|
||||
(home-page "https://github.com/redguardtoo/evil-nerd-commenter")
|
||||
(synopsis "Comment and uncomment lines efficiently")
|
||||
(description
|
||||
|
@ -7449,42 +7531,75 @@ editing nginx config files.")
|
|||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-stream
|
||||
(package
|
||||
(name "emacs-stream")
|
||||
(version "2.2.0")
|
||||
(home-page "https://github.com/NicolasPetton/stream")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(uri (string-append home-page "/archive/"version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "03ql4nqfz5pn55mjly6clhvc3g7x2d28kj7mrlqmigvjbql39xxc"))))
|
||||
(build-system emacs-build-system)
|
||||
(synopsis "Implementation of streams for Emacs")
|
||||
(description "This library provides an implementation of streams for Emacs.
|
||||
Streams are implemented as delayed evaluation of cons cells.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-el-search
|
||||
(let ((commit "f26277bfbb3fc3fc74beea6592f294c439796bd4")
|
||||
(let ((commit "a3f3da155a49c133e2692bd8789b35492bfdc4f7")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-el-search")
|
||||
;; No ufficial release.
|
||||
(version (string-append "0.0-" revision "." (string-take commit 7)))
|
||||
(home-page "https://github.com/emacsmirror/el-search")
|
||||
(name "emacs-stream")
|
||||
(version (git-version "2.2.4" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(uri (git-reference
|
||||
(commit commit)
|
||||
(url (string-append home-page ".git"))))
|
||||
(url "https://github.com/Emacsmirror/stream.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "12xf40h9sb7xxg2r97gsia94q02543mgiiiw46fzh1ac7b7993g6"))))
|
||||
(base32 "0aig0yjb9z752ijh0mzildjmh44j051inchga8qll01dr8wf7332"))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs `(("emacs-stream" ,emacs-stream)))
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("emacs" "--batch"
|
||||
"-l" "tests/stream-tests.el"
|
||||
"-f" "ert-run-tests-batch-and-exit")))
|
||||
(home-page "https://github.com/Emacsmirror/stream")
|
||||
(synopsis "Implementation of streams for Emacs")
|
||||
(description "This library provides an implementation of streams for Emacs.
|
||||
Streams are implemented as delayed evaluation of cons cells.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-cl-print
|
||||
(let ((commit "1a70c553dfb04352afb5b8696fe0cef8acc8f991")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-cl-print")
|
||||
(version (git-version "1.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emacsmirror/cl-print.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "164zbnsi5mssvcpy0158fm7fw5cmd1r5nkpn29fmd2b2scy3gm79"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/emacsmirror/cl-print")
|
||||
(synopsis "CL-style generic printing")
|
||||
(description "This package provides a generic function,
|
||||
@code{cl-print-object}, to which the programmer can add any method they
|
||||
please.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-el-search
|
||||
(let ((commit "07bed84dd8ae9e4c6c648834224b1d33fdbd51e0")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-el-search")
|
||||
(version (git-version "1.12.6.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/emacsmirror/el-search.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "10w1ldgijdhfsrazp0y3bm76jv5wvdn94k1yp0pmc2m1896b58ak"))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("emacs-stream" ,emacs-stream)
|
||||
("emacs-cl-print" ,emacs-cl-print)))
|
||||
(home-page "https://github.com/emacsmirror/el-search")
|
||||
(synopsis "Expression based interactive search for emacs-lisp-mode")
|
||||
(description "This package provides expression based interactive search
|
||||
procedures for emacs-lisp-mode.")
|
||||
|
@ -8604,14 +8719,14 @@ which code derived from Kelvin H's org-page.")
|
|||
(define-public emacs-xelb
|
||||
(package
|
||||
(name "emacs-xelb")
|
||||
(version "0.17")
|
||||
(version "0.18")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/xelb-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k98580vq253fjdgklgqlwl450saninfw39fbq8lv3xsnp3dcgml"))))
|
||||
"1fp5mzl63sh0h3ws4l5p4qgvi7ny8a3fj6k4dhqa98xgw2bx03v7"))))
|
||||
(build-system emacs-build-system)
|
||||
;; The following functions and variables needed by emacs-xelb are
|
||||
;; not included in emacs-minimal:
|
||||
|
@ -8643,7 +8758,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
(define-public emacs-exwm
|
||||
(package
|
||||
(name "emacs-exwm")
|
||||
(version "0.22")
|
||||
(version "0.23")
|
||||
(synopsis "Emacs X window manager")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -8651,7 +8766,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lppm8ng37i5s4x7xdrxhjbdcnpl6pyvn4g7w52zbckjsn8qnqh0"))))
|
||||
"05w1v3wrp1lzz20zd9lcvr5nhk809kgy6svvkbs15xhnr6x55ad5"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-xelb" ,emacs-xelb)))
|
||||
|
@ -8926,6 +9041,9 @@ pressed simultaneously or a single key quickly pressed twice.")
|
|||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-evil" ,emacs-evil)))
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("make" "test")))
|
||||
(home-page "https://github.com/emacs-evil/evil-surround")
|
||||
(synopsis "Easily modify surrounding parentheses and quotes")
|
||||
(description "@code{emacs-evil-surround} allows easy deletion, change and
|
||||
|
@ -9794,12 +9912,11 @@ well as Github-style emojis like @code{:smile:}. It provides a minor mode
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-make-it-so
|
||||
(let ((commit "bc3b01d6b9ed6ff66ebbd524234f9d6df60dd4be")
|
||||
(version "0.1.0")
|
||||
(revision "1"))
|
||||
(let ((commit "b73dfb640588123c9eece230ad72b37604f5c126")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-make-it-so")
|
||||
(version (git-version version revision commit))
|
||||
(version (git-version "0.1.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -9808,7 +9925,7 @@ well as Github-style emojis like @code{:smile:}. It provides a minor mode
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0833bzlscpnkvjnrg3g54yr246afbjwri8n5wxk8drnsq6acvd8z"))))
|
||||
"0p6xhyinzzkrwzbpxqfm8hlii0ikvmmylya240bwsa77w0g1k6xq"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:include (cons "^recipes/" %default-include)))
|
||||
|
@ -9907,6 +10024,12 @@ database of references on life sciences.")
|
|||
(base32
|
||||
"1dgrf7na6r6mmkknphzshlbd5fnzisg0qn0j7vfpa38wgsymaq52"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
;; TODO: also enable websocket-functional-test.el
|
||||
#:test-command '("emacs" "--batch"
|
||||
"-l" "websocket-test.el"
|
||||
"-f" "ert-run-tests-batch-and-exit")))
|
||||
(home-page "http://elpa.gnu.org/packages/websocket.html")
|
||||
(synopsis "Emacs WebSocket client and server")
|
||||
(description "This is an Elisp library for WebSocket clients to talk to
|
||||
|
@ -9944,7 +10067,7 @@ value of the access token.")
|
|||
(define-public emacs-circe
|
||||
(package
|
||||
(name "emacs-circe")
|
||||
(version "2.10")
|
||||
(version "2.11")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -9953,8 +10076,7 @@ value of the access token.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10gi14kwxd81blddpvqh95lgmpbfgp0m955naxix3bs3r6a75n4s"))))
|
||||
(base32 "0cr9flk310yn2jgvj4hbqw9nj5wlfi0fazdkqafzidgz6iq150wd"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
|
@ -10531,7 +10653,7 @@ the format.")
|
|||
(define-public emacs-nov-el
|
||||
(package
|
||||
(name "emacs-nov-el")
|
||||
(version "0.2.6")
|
||||
(version "0.2.9")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -10540,7 +10662,7 @@ the format.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"188h5gzn1zf443g0b7q5bpmvvpr6ds5h8aci8vxc92py56rhyrvc"))))
|
||||
"0v01l1p35mcigixs6j4c5bpc7n7bd51kxa0p3l1xl0gr92774yq3"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -12625,16 +12747,16 @@ powerful Org contents.")
|
|||
(define-public emacs-org-re-reveal
|
||||
(package
|
||||
(name "emacs-org-re-reveal")
|
||||
(version "1.0.3")
|
||||
(version "2.5.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/oer/org-re-reveal.git")
|
||||
(commit "50cc6574c77f12d423f6cd096d8f76feb3673abc")))
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1v3z30gpimg4spf6zzqwp9b597zxk89h0vpq6xp58js4rjg4ixk8"))))
|
||||
"1zbz6hbddxbb264ibmhc04cmnpk17kb50jpn5l8878q4hxw5wwy2"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-htmlize" ,emacs-htmlize)
|
||||
|
@ -14067,10 +14189,11 @@ Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
|
|||
(deprecated-package "emacs-evil-ediff" emacs-evil-collection))
|
||||
|
||||
(define-public emacs-evil-magit
|
||||
(let ((commit "e2fec5877994c0c19f0c25fa01f3d22cb0ab38ba"))
|
||||
(let ((commit "4b66a1db8285457147a5436f209391016a819ea1")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "emacs-evil-magit")
|
||||
(version (git-version "0.4.2" "2" commit))
|
||||
(version (git-version "0.4.2" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -14080,11 +14203,17 @@ Org-mode file, and citations of Zotero items in Pandoc Markdown files.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"134v7s03jvbhm70mavwab85r09i68g2a5bvriirh0chz1av2y16v"))))
|
||||
"0kkmbswfh34k3amfl3v140vsnz1gq4n4mg9g4khjd9yjph3zms4h"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-evil" ,emacs-evil)
|
||||
("magit" ,emacs-magit)))
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("emacs" "-Q" "-batch"
|
||||
"-L" "."
|
||||
"-l" "evil-magit-tests"
|
||||
"-f" "ert-run-tests-batch-and-exit")))
|
||||
(home-page
|
||||
"https://github.com/emacs-evil/evil-magit")
|
||||
(synopsis "Evil-based key bindings for Magit")
|
||||
|
@ -14727,21 +14856,21 @@ file.")
|
|||
(deprecated-package "emacs-wgrep-helm" emacs-wgrep))
|
||||
|
||||
(define-public emacs-mu4e-conversation
|
||||
(let ((commit "e7d4bfcb0d392b0aed1f705ccac2419a168d1f5e"))
|
||||
(let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
|
||||
(revision "5"))
|
||||
(package
|
||||
(name "emacs-mu4e-conversation")
|
||||
(version (git-version "20181126" "4" commit))
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://gitlab.com/Ambrevar/mu4e-conversation/"
|
||||
"repository/archive.tar.gz?ref="
|
||||
commit))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/Ambrevar/mu4e-conversation.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0b52hf9rm2afba9pvgink9bwqm705sk0y5qikp0ff5sk53wqvy29"))))
|
||||
"080s96jkcw2p288sp1vgds91rgl693iz6hi2dv56p2ih0nnivwlg"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("mu" ,mu)))
|
||||
|
@ -15066,37 +15195,31 @@ files. It focuses on highlighting the document to improve readability.")
|
|||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-rust-mode
|
||||
(let ((commit
|
||||
;; Last release is old (2016), use more recent commit to get bug
|
||||
;; fixes.
|
||||
"64b4a2450e4d4c47f6307851c9b2598cd2254d68")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "emacs-rust-mode")
|
||||
(version (git-version "0.3.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri
|
||||
(git-reference
|
||||
(url "https://github.com/rust-lang/rust-mode")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "sh" "run_rust_emacs_tests.sh"))))))
|
||||
(home-page "https://github.com/rust-lang/rust-mode")
|
||||
(synopsis "Major Emacs mode for editing Rust source code")
|
||||
(description "This package provides a major Emacs mode for editing Rust
|
||||
(package
|
||||
(name "emacs-rust-mode")
|
||||
(version "0.4.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/rust-lang/rust-mode")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bcrklyicxh032rrp585rl5mxd26nb61dp6r5bl935rlcmxzsczh"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "sh" "run_rust_emacs_tests.sh"))))))
|
||||
(home-page "https://github.com/rust-lang/rust-mode")
|
||||
(synopsis "Major Emacs mode for editing Rust source code")
|
||||
(description "This package provides a major Emacs mode for editing Rust
|
||||
source code.")
|
||||
(license (list license:expat
|
||||
license:asl2.0)))))
|
||||
(license (list license:expat
|
||||
license:asl2.0))))
|
||||
|
||||
(define-public emacs-ztree
|
||||
(let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
|
||||
|
@ -15322,10 +15445,11 @@ News homepage.")
|
|||
(license license:gpl3))))
|
||||
|
||||
(define-public emacs-youtube-dl
|
||||
(let ((commit "7c9d7a7d05b72a7d1b1257a36c5e2b2567b185dd"))
|
||||
(let ((commit "af877b5bc4f01c04fccfa7d47a2c328926f20ef4")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-youtube-dl")
|
||||
(version (git-version "1.0" "1" commit))
|
||||
(version (git-version "1.0" "2" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -15335,7 +15459,7 @@ News homepage.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mh4s089a4x8s380agzb2306kdp1hl204px1n5rrrrdcls7imnh6"))))
|
||||
"0zkl9jkjbx0lmp9ylv4rqg1zwqibk053s4rp7s1h0i18nzk7vn8j"))))
|
||||
(build-system emacs-build-system)
|
||||
(inputs
|
||||
`(("youtube-dl" ,youtube-dl)))
|
||||
|
@ -15529,6 +15653,30 @@ as better scaling of and anti aliasing of the icons.")
|
|||
(license
|
||||
(list license:expat license:gpl3+ license:silofl1.1 license:asl2.0))))
|
||||
|
||||
(define-public emacs-wttrin
|
||||
(let ((commit "df5427ce2a5ad4dab652dbb1c4a1834d7ddc2abc")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-wttrin")
|
||||
(version (git-version "0.2.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/bcbcarl/emacs-wttrin.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ai655f10iayb4vw0ass2j3x83f4vsv90326mnywkzfl3sxd432z"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-xterm-color" ,emacs-xterm-color)))
|
||||
(home-page "https://github.com/bcbcarl/emacs-wttrin")
|
||||
(synopsis "Frontend for weather web service @url{wttr.in}")
|
||||
(description "This package provides local weather information from
|
||||
@url{wttr.in}.")
|
||||
(license license:expat))))
|
||||
|
||||
(define-public emacs-powerline
|
||||
(package
|
||||
(name "emacs-powerline")
|
||||
|
@ -16208,6 +16356,32 @@ mode for editing gnuplot scripts. It provides syntax highlighting,
|
|||
indentation and a command to plot the file.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-cmake-font-lock
|
||||
(let ((commit "e0ceaaae19c13b66f781512e3295bfc6707b56f4")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-cmake-font-lock")
|
||||
(version (git-version "0.1.5" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Lindydancer/cmake-font-lock.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"03gsyn95dlmsn15bl353bphi3qy7ccn5bss3f7n97kf38bllh0yf"))))
|
||||
(build-system emacs-build-system)
|
||||
(native-inputs
|
||||
`(("emacs-faceup" ,emacs-faceup)))
|
||||
(arguments
|
||||
`(#:include (cons "^admin\\/" %default-include)))
|
||||
(home-page "https://github.com/Lindydancer/cmake-font-lock")
|
||||
(synopsis "Advanced type-aware syntax-highlighting for CMake")
|
||||
(description "This package highlights function arguments in CMake
|
||||
according to their use.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-dtrt-indent
|
||||
(package
|
||||
(name "emacs-dtrt-indent")
|
||||
|
@ -16597,10 +16771,10 @@ and code peeking.")
|
|||
("emacs-lsp-mode" ,emacs-lsp-mode)
|
||||
("emacs-dash" ,emacs-dash)))
|
||||
(home-page "https://github.com/emacs-lsp/helm-lsp")
|
||||
(synopsis "Convert keyboard macros to Emacs Lisp")
|
||||
(synopsis "Provide LSP-enhanced completion for symbols")
|
||||
(description
|
||||
"This package displays keyboard macros or latest interactive commands
|
||||
as Emacs Lisp.")
|
||||
"This package provides completion for symbols from workspaces with a
|
||||
LSP-compliant server running.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-helm-notmuch
|
||||
|
@ -16997,16 +17171,15 @@ compatible with Emacs' shell modes.")
|
|||
|
||||
(define-public emacs-vdiff
|
||||
(let ((commit "09e15fc932bfd2febe1d4a65780a532394562b07")
|
||||
(version "0.2.3")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-vdiff")
|
||||
(version (git-version version revision commit))
|
||||
(version (git-version "0.2.3" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/justbur/emacs-vdiff/")
|
||||
(url "https://github.com/justbur/emacs-vdiff.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
|
@ -17015,6 +17188,11 @@ compatible with Emacs' shell modes.")
|
|||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-hydra" ,emacs-hydra)))
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("emacs" "-Q" "-batch" "-L" "."
|
||||
"-l" "vdiff-test.el"
|
||||
"-f" "ert-run-tests-batch-and-exit")))
|
||||
(home-page "https://github.com/justbur/emacs-vdiff/")
|
||||
(synopsis "Frontend for diffing based on vimdiff")
|
||||
(description "This package permits comparisons of two or three buffers
|
||||
|
@ -17404,26 +17582,73 @@ and searching through @code{Ctags} files.")
|
|||
copied into @code{org-mode} buffers.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-helm-dash
|
||||
(let ((commit "192b862185df661439a06de644791171e899348a")
|
||||
(version "1.3.0")
|
||||
(revision "18"))
|
||||
(define-public emacs-dash-docs
|
||||
(let ((commit "111fd9b97001f1ad887b45e5308a14ddd68ce70a")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-helm-dash")
|
||||
(version (git-version version revision commit))
|
||||
(name "emacs-dash-docs")
|
||||
(version (git-version "1.4.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/areina/helm-dash")
|
||||
(url "https://github.com/dash-docs-el/dash-docs.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"06am5vnr4hsxkvh2b8q8kb80y5x1h3qyv7gwggswwhfa7w2vba3w"))))
|
||||
"0sckb7z0ylflva212bns7iq9mfnffgjghi0qspsbfwra35zb9xng"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-helm" ,emacs-helm)))
|
||||
`(("emacs-async" ,emacs-async)))
|
||||
(native-inputs
|
||||
`(("emacs-undercover" ,emacs-undercover)
|
||||
("emacs-ert-runner" ,emacs-ert-runner)))
|
||||
(arguments
|
||||
`(#:tests? #t
|
||||
#:test-command '("ert-runner")
|
||||
#:phases
|
||||
;; this test requires network access, so remove it
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'check 'make-tests-writable
|
||||
(lambda _
|
||||
(make-file-writable "test/dash-docs-test.el")
|
||||
#t))
|
||||
(add-before 'check 'delete-test
|
||||
(lambda _
|
||||
(emacs-batch-edit-file "test/dash-docs-test.el"
|
||||
`(progn (progn
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "ert-deftest dash-docs-official-docsets-test")
|
||||
(beginning-of-line)
|
||||
(kill-sexp))
|
||||
(basic-save-buffer)))
|
||||
#t)))))
|
||||
(home-page "https://github.com/dash-docs-el/dash-docs")
|
||||
(synopsis "Offline documentation browser for APIs using Dash docsets")
|
||||
(description "This package exposes functionality to work with Dash docsets.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-helm-dash
|
||||
(let ((commit "7f853bd34da666f0e9a883011c80f451b06f6c59")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-helm-dash")
|
||||
(version (git-version "1.3.0" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/areina/helm-dash.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0r192vzry1212ihabg9pgw9xar8zdgnbgy0vsgvfm8s5wj6ny7jp"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-helm" ,emacs-helm)
|
||||
("emacs-dash-docs" ,emacs-dash-docs)))
|
||||
(home-page "https://github.com/areina/helm-dash")
|
||||
(synopsis "Offline documentation browser for APIs using Dash docsets")
|
||||
(description "This package uses Helm to install and navigate through
|
||||
|
@ -17431,28 +17656,26 @@ Dash docsets.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-counsel-dash
|
||||
(let ((commit "07fa74a94ff4da5b6c8c4810f5e143e701b480d2")
|
||||
(version "0.1.3")
|
||||
(revision "3"))
|
||||
(let ((commit "24d370be9e94e90d045c49967e19484b9903fce9")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-counsel-dash")
|
||||
(version (git-version version revision commit))
|
||||
(version (git-version "0.1.3" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/nathankot/counsel-dash")
|
||||
(url "https://github.com/dash-docs-el/counsel-dash.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"17h2m9zsadq270mkq12kmdzmpbfjiwjbg8n1rg2apqnm1ndgcwf8"))))
|
||||
"18gp7hhgng271c7bh06k9p24zqic0f64j5cicivljmyk9c3nh7an"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-helm-dash" ,emacs-helm-dash)
|
||||
("emacs-dash" ,emacs-dash)
|
||||
`(("emacs-dash-docs" ,emacs-dash-docs)
|
||||
("emacs-ivy" ,emacs-ivy)))
|
||||
(home-page "https://github.com/nathankot/counsel-dash")
|
||||
(home-page "https://github.com/dash-docs-el/counsel-dash")
|
||||
(synopsis "Offline documentation browser for APIs using Dash docsets")
|
||||
(description "This package uses @code{ivy-mode} to install and navigate
|
||||
through Dash docsets.")
|
||||
|
@ -17836,27 +18059,24 @@ commands in @code{evil-mode}.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-xterm-color
|
||||
(let ((commit "a452ab38a7cfae97078062ff8885b5d74fd1e5a6")
|
||||
(version "1.8")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "emacs-xterm-color")
|
||||
(version (git-version version revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/atomontage/xterm-color.git")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"02kpajb993yshhjhsizpfcbrcndyzkf4dqfipifhxxng50dhp95i"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/atomontage/xterm-color")
|
||||
(synopsis "ANSI & xterm-256 color text property translator for Emacs")
|
||||
(description "@code{xterm-color.el} is an ANSI control sequence to
|
||||
(package
|
||||
(name "emacs-xterm-color")
|
||||
(version "1.9")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/atomontage/xterm-color.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0i9ivc5xhl5y5v0l18kbhfg8s2abb9zaimyx951b8bc0f5as68xm"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/atomontage/xterm-color")
|
||||
(synopsis "ANSI & xterm-256 color text property translator for Emacs")
|
||||
(description "@code{xterm-color.el} is an ANSI control sequence to
|
||||
text-property translator.")
|
||||
(license license:bsd-2))))
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public emacs-org-noter
|
||||
(package
|
||||
|
|
|
@ -875,30 +875,31 @@ the Raspberry Pi chip.")
|
|||
(description "This package provides @code{gcc} for VideoCore IV,
|
||||
the Raspberry Pi chip."))))
|
||||
|
||||
(define-public python2-libmpsse
|
||||
(define-public python-libmpsse
|
||||
(package
|
||||
(name "python2-libmpsse")
|
||||
(version "1.3")
|
||||
(name "python-libmpsse")
|
||||
(version "1.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://storage.googleapis.com/"
|
||||
"google-code-archive-downloads/v2/"
|
||||
"code.google.com/libmpsse/"
|
||||
"libmpsse-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/daym/libmpsse.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name "libmpsse-checkout")
|
||||
(sha256
|
||||
(base32
|
||||
"0jq7nhqq3na8675jnpfcar3pd3dp3adhhc4lw900swkla01a1wh8"))))
|
||||
"14f1kiiia4kfd9mzwx4h63aa8bpz9aknbrrr7mychnsp3arw0z25"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libftdi" ,libftdi)
|
||||
("python" ,python-2)))
|
||||
("python" ,python)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("swig" ,swig)
|
||||
("which" ,base:which)))
|
||||
(arguments
|
||||
`(#:tests? #f ; No tests exist.
|
||||
#:parallel-build? #f ; Would be buggy.
|
||||
#:make-flags
|
||||
(list (string-append "CFLAGS=-Wall -fPIC -fno-strict-aliasing -g -O2 "
|
||||
"$(shell pkg-config --cflags libftdi1)"))
|
||||
|
@ -906,28 +907,20 @@ the Raspberry Pi chip."))))
|
|||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'set-environment-up
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(chdir "src")
|
||||
(setenv "PYDEV" (string-append (assoc-ref inputs "python")
|
||||
"/include/python2.7"))
|
||||
#t))
|
||||
(add-after 'unpack 'patch-global-variable
|
||||
(lambda _
|
||||
;; fast_rw_buf was defined in a header file which was making
|
||||
;; the build not reproducible.
|
||||
(substitute* "src/fast.c"
|
||||
(("^int fast_build_block_buffer") "
|
||||
|
||||
unsigned char fast_rw_buf[SPI_RW_SIZE + CMD_SIZE];
|
||||
int fast_build_block_buffer"))
|
||||
(substitute* "src/mpsse.h"
|
||||
(("unsigned char fast_rw_buf.*") "
|
||||
"))
|
||||
#t))
|
||||
(let ((python (assoc-ref inputs "python")))
|
||||
(chdir "src")
|
||||
(setenv "PYDEV" (string-append python
|
||||
"/include/python"
|
||||
,(version-major+minor (package-version python))
|
||||
"m"))
|
||||
#t)))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs make-flags #:allow-other-keys #:rest args)
|
||||
(lambda* (#:key inputs outputs make-flags #:allow-other-keys #:rest args)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(out-python (string-append out
|
||||
"/lib/python2.7/site-packages"))
|
||||
"/lib/python"
|
||||
,(version-major+minor (package-version python))
|
||||
"/site-packages"))
|
||||
(install (assoc-ref %standard-phases 'install)))
|
||||
(install #:make-flags (cons (string-append "PYLIB=" out-python)
|
||||
make-flags))))))))
|
||||
|
@ -938,6 +931,36 @@ MPSSE (Multi-Protocol Synchronous Serial Engine) adapter by FTDI that can do
|
|||
SPI, I2C, JTAG.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public python2-libmpsse
|
||||
(package
|
||||
(inherit python-libmpsse)
|
||||
(name "python2-libmpsse")
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments python-libmpsse)
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(replace 'set-environment-up
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((python (assoc-ref inputs "python")))
|
||||
(chdir "src")
|
||||
(setenv "PYDEV" (string-append python
|
||||
"/include/python"
|
||||
,(version-major+minor (package-version python-2))))
|
||||
#t)))
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs make-flags #:allow-other-keys #:rest args)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(out-python (string-append out
|
||||
"/lib/python"
|
||||
,(version-major+minor (package-version python-2))
|
||||
"/site-packages"))
|
||||
(install (assoc-ref %standard-phases 'install)))
|
||||
(install #:make-flags (cons (string-append "PYLIB=" out-python)
|
||||
make-flags)))))))))
|
||||
(inputs
|
||||
(alist-replace "python" (list python-2)
|
||||
(package-inputs python-libmpsse)))))
|
||||
|
||||
(define-public picprog
|
||||
(package
|
||||
(name "picprog")
|
||||
|
|
|
@ -1137,7 +1137,7 @@ of use.")
|
|||
("libxt" ,libxt)
|
||||
("mygui" ,mygui-gl) ; OpenMW does not need Ogre.
|
||||
("openal" ,openal)
|
||||
("openscenegraph" ,openscenegraph)
|
||||
("openscenegraph" ,openmw-openscenegraph)
|
||||
("qtbase" ,qtbase)
|
||||
("sdl" ,sdl2)
|
||||
("unshield" ,unshield)))
|
||||
|
|
|
@ -937,7 +937,7 @@ map display. Downloads map data from a number of websites, including
|
|||
(define-public xygrib
|
||||
(package
|
||||
(name "xygrib")
|
||||
(version "1.2.6")
|
||||
(version "1.2.6.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -946,7 +946,7 @@ map display. Downloads map data from a number of websites, including
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qzaaavil2c7mkkai5mg54cv8r452i7psy7cg75qjja96d2d7rbd"))
|
||||
"0xzsm8pr0zjk3f8j880fg5n82jyxn8xf1330qmmq1fqv7rsrg9ia"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin (delete-file-recursively "data/fonts") #t))))
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -52,6 +53,7 @@
|
|||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix hg-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system meson)
|
||||
|
@ -809,3 +811,81 @@ applications to 3D accelerator hardware in a dedicated server and displays the
|
|||
rendered output interactively to a thin client located elsewhere on the
|
||||
network.")
|
||||
(license license:wxwindows3.1+)))
|
||||
|
||||
(define-public mojoshader
|
||||
(let ((changeset "5887634ea695"))
|
||||
(package
|
||||
(name "mojoshader")
|
||||
(version (string-append "20190825" "-" changeset))
|
||||
(source
|
||||
(origin
|
||||
(method hg-fetch)
|
||||
(uri (hg-reference
|
||||
(url "https://hg.icculus.org/icculus/mojoshader/")
|
||||
(changeset changeset)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0ibl4z1696jiifv9j5drir7jm0b5px0vwkwckbi7cfd46p7p6wcy"))))
|
||||
(arguments
|
||||
;; Tests only for COMPILER_SUPPORT=ON.
|
||||
`(#:tests? #f
|
||||
#:configure-flags '("-DBUILD_SHARED=ON"
|
||||
"-DFLIP_VIEWPORT=ON"
|
||||
"-DDEPTH_CLIPPING=ON")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lib (string-append out "/lib"))
|
||||
(header (string-append out "/include")))
|
||||
(install-file "libmojoshader.so" lib)
|
||||
(for-each (lambda (f)
|
||||
(install-file f header))
|
||||
(find-files "../source" "mojoshader.*\\.h$"))
|
||||
(let ((profiles-header (string-append header "/profiles")))
|
||||
(mkdir-p profiles-header)
|
||||
(rename-file (string-append header "/mojoshader_profile.h")
|
||||
(string-append profiles-header "/mojoshader_profile.h"))))
|
||||
#t)))))
|
||||
(build-system cmake-build-system)
|
||||
(home-page "https://www.icculus.org/mojoshader/")
|
||||
(synopsis "Work with Direct3D shaders on alternate 3D APIs")
|
||||
(description "MojoShader is a library to work with Direct3D shaders on
|
||||
alternate 3D APIs and non-Windows platforms. The primary motivation is moving
|
||||
shaders to OpenGL languages on the fly. The developer deals with \"profiles\"
|
||||
that represent various target languages, such as GLSL or ARB_*_program.
|
||||
|
||||
This allows a developer to manage one set of shaders, presumably written in
|
||||
Direct3D HLSL, and use them across multiple rendering backends. This also
|
||||
means that the developer only has to worry about one (offline) compiler to
|
||||
manage program complexity, while MojoShader itself deals with the reduced
|
||||
complexity of the bytecode at runtime.
|
||||
|
||||
MojoShader provides both a simple API to convert bytecode to various profiles,
|
||||
and (optionally) basic glue to rendering APIs to abstract the management of
|
||||
the shaders at runtime.")
|
||||
(license license:zlib))))
|
||||
|
||||
(define-public mojoshader-with-viewport-flip
|
||||
;; Changeset c586d4590241 replaced glProgramViewportFlip with
|
||||
;; glProgramViewportInfo.
|
||||
;; https://hg.icculus.org/icculus/mojoshader/rev/c586d4590241
|
||||
(let ((changeset "2e37299b13d8"))
|
||||
(package
|
||||
(inherit mojoshader)
|
||||
(name "mojoshader-with-viewport-flip")
|
||||
(version (string-append "20190725" "-" changeset))
|
||||
(source
|
||||
(origin
|
||||
(method hg-fetch)
|
||||
(uri (hg-reference
|
||||
(url "https://hg.icculus.org/icculus/mojoshader/")
|
||||
(changeset changeset)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0ffws7cqbskxwc3hjsnnzq4r2bbf008kdr3b11pa3kr7dsi50y6i"))))
|
||||
(synopsis "Work with Direct3D shaders on alternate 3D APIs (with viewport flip)")
|
||||
(description "This is the last version of the mojoshader library with
|
||||
the glProgramViewportFlip before it was replaced with glProgramViewportInfo.")
|
||||
(license license:zlib))))
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -974,3 +975,37 @@ safe to use from any GObject-Introspectable language.
|
|||
Template-GLib allows you to access properties on GObjects as well as call
|
||||
simple methods via GObject-Introspection.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
||||
(define-public xdg-dbus-proxy
|
||||
(package
|
||||
(name "xdg-dbus-proxy")
|
||||
(version "0.1.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/flatpak/xdg-dbus-proxy"
|
||||
"/releases/download/" version
|
||||
"/xdg-dbus-proxy-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03sj1h0c2l08xa8phw013fnxr4fgav7l2mkjhzf9xk3dykwxcj8p"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
||||
;; For tests.
|
||||
("dbus" ,dbus)
|
||||
|
||||
;; These are required to build the manual.
|
||||
("docbook-xml" ,docbook-xml-4.3)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("libxml2" ,libxml2)
|
||||
("xsltproc" ,libxslt)))
|
||||
(inputs
|
||||
`(("glib" ,glib)))
|
||||
(home-page "https://github.com/flatpak/xdg-dbus-proxy")
|
||||
(synopsis "D-Bus connection proxy")
|
||||
(description
|
||||
"xdg-dbus-proxy is a filtering proxy for D-Bus connections. It can be
|
||||
used to create D-Bus sockets inside a Linux container that forwards requests
|
||||
to the host system, optionally with filters applied.")
|
||||
(license license:lgpl2.1+)))
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
;;; Copyright © 2019 Carlo Zancanaro <carlo@zancanaro.id.au>
|
||||
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
|
||||
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
|
||||
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -326,18 +328,26 @@ many more.")
|
|||
(define-public ilmbase
|
||||
(package
|
||||
(name "ilmbase")
|
||||
(version "2.3.0")
|
||||
(version "2.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/openexr/openexr/releases"
|
||||
"/download/v" version "/ilmbase-"
|
||||
version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/openexr/openexr")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name "ilmbase" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0qiq5bqq9rxhqjiym2k36sx4vq8adgrz6xf6qwizi9bqm78phsa5"))
|
||||
(patches (search-patches "ilmbase-fix-tests.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.openexr.com/")
|
||||
"0g3rz11cvb7gnphp2np9z7bfl7v4dprq4w5hnsvx7yrasgsdyn8s"))
|
||||
(patches (search-patches "ilmbase-fix-tests.patch"
|
||||
"ilmbase-openexr-pkg-config.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'change-directory
|
||||
(lambda _
|
||||
(chdir "IlmBase")
|
||||
#t)))))
|
||||
(home-page "https://www.openexr.com/")
|
||||
(synopsis "Utility C++ libraries for threads, maths, and exceptions")
|
||||
(description
|
||||
"IlmBase provides several utility libraries for C++. Half is a class
|
||||
|
@ -408,27 +418,26 @@ graphics.")
|
|||
(define-public openexr
|
||||
(package
|
||||
(name "openexr")
|
||||
(version "2.3.0")
|
||||
(version (package-version ilmbase))
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/openexr/openexr/releases"
|
||||
"/download/v" version "/openexr-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19jywbs9qjvsbkvlvzayzi81s976k53wg53vw4xj66lcgylb6v7x"))
|
||||
(inherit (package-source ilmbase))
|
||||
(file-name (git-file-name "openexr" version))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* (find-files "." "tmpDir\\.h")
|
||||
(substitute* (find-files "OpenEXR" "tmpDir\\.h")
|
||||
(("\"/var/tmp/\"")
|
||||
"\"/tmp/\""))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-broken-test
|
||||
(add-after 'unpack 'change-directory
|
||||
(lambda _
|
||||
(chdir "OpenEXR")
|
||||
#t))
|
||||
(add-after 'change-directory 'disable-broken-test
|
||||
;; This test fails on i686. Upstream developers suggest that
|
||||
;; this test is broken on i686 and can be safely disabled:
|
||||
;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
|
||||
|
@ -444,7 +453,7 @@ graphics.")
|
|||
(propagated-inputs
|
||||
`(("ilmbase" ,ilmbase) ;used in public headers
|
||||
("zlib" ,zlib))) ;OpenEXR.pc reads "-lz"
|
||||
(home-page "http://www.openexr.com")
|
||||
(home-page "https://www.openexr.com/")
|
||||
(synopsis "High-dynamic range file format library")
|
||||
(description
|
||||
"OpenEXR is a high dynamic-range (HDR) image file format developed for
|
||||
|
@ -511,7 +520,7 @@ visual effects work for film.")
|
|||
(define-public openscenegraph
|
||||
(package
|
||||
(name "openscenegraph")
|
||||
(version "3.6.3")
|
||||
(version "3.6.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -520,7 +529,7 @@ visual effects work for film.")
|
|||
(commit (string-append "OpenSceneGraph-" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0h32z15sa8sbq276j0iib0n707m8bs4p5ji9z2ah411446paad9q"))
|
||||
"0x8hdbzw0b71j91fzp9cwmy9a7ava8v8wwyj8nxijq942vdx1785"))
|
||||
(file-name (git-file-name name version))))
|
||||
(properties
|
||||
`((upstream-name . "OpenSceneGraph")))
|
||||
|
@ -539,6 +548,7 @@ visual effects work for film.")
|
|||
("unzip" ,unzip)))
|
||||
(inputs
|
||||
`(("giflib" ,giflib)
|
||||
("libjpeg" ,libjpeg) ; Required for the JPEG texture plugin.
|
||||
("jasper" ,jasper)
|
||||
("librsvg" ,librsvg)
|
||||
("libxrandr" ,libxrandr)
|
||||
|
@ -580,6 +590,42 @@ virtual reality, scientific visualization and modeling.")
|
|||
`(("libjpeg" ,libjpeg)
|
||||
,@(package-inputs openscenegraph)))))
|
||||
|
||||
|
||||
(define-public openmw-openscenegraph
|
||||
;; OpenMW prefers its own fork of openscenegraph:
|
||||
;; https://wiki.openmw.org/index.php?title=Development_Environment_Setup#OpenSceneGraph.
|
||||
(let ((commit "36a962845a2c87a6671fd822157e0729d164e940"))
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit openscenegraph)
|
||||
(version (git-version "3.6" "1" commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/OpenMW/osg/")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name (package-name openscenegraph) version))
|
||||
(sha256
|
||||
(base32
|
||||
"05yhgq3qm5q277y32n5sf36vx5nv5qd3zlhz4csgd3a6190jrnia"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments openscenegraph)
|
||||
((#:configure-flags flags)
|
||||
;; As per the above wiki link, the following plugins are enough:
|
||||
`(append
|
||||
'("-DBUILD_OSG_PLUGINS_BY_DEFAULT=0"
|
||||
"-DBUILD_OSG_PLUGIN_OSG=1"
|
||||
"-DBUILD_OSG_PLUGIN_DDS=1"
|
||||
"-DBUILD_OSG_PLUGIN_TGA=1"
|
||||
"-DBUILD_OSG_PLUGIN_BMP=1"
|
||||
"-DBUILD_OSG_PLUGIN_JPEG=1"
|
||||
"-DBUILD_OSG_PLUGIN_PNG=1"
|
||||
"-DBUILD_OSG_DEPRECATED_SERIALIZERS=0"
|
||||
;; The jpeg plugin requires conversion between integers and booleans
|
||||
"-DCMAKE_CXX_FLAGS=-fpermissive")
|
||||
,flags))))))))
|
||||
|
||||
(define-public povray
|
||||
(package
|
||||
(name "povray")
|
||||
|
|
|
@ -286,6 +286,11 @@ developers consider to have good quality code and correct functionality.")
|
|||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; XXX: 13 of 53 tests fail
|
||||
|
||||
;; FIXME: OpenEXR 2.4.0 requires C++ 11 or later. Remove when the
|
||||
;; default compiler is >= GCC 5.
|
||||
#:make-flags '("CXXFLAGS=-std=gnu++11")
|
||||
|
||||
#:configure-flags
|
||||
(list (string-append "--with-html-dir="
|
||||
(assoc-ref %outputs "doc")
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
;;; Copyright © 2016, 2019 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2017 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
|
@ -1024,7 +1024,7 @@ microblogging service.")
|
|||
(define-public guile-parted
|
||||
(package
|
||||
(name "guile-parted")
|
||||
(version "0.0.1")
|
||||
(version "0.0.2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1033,7 +1033,7 @@ microblogging service.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1q7425gpjlwi2wvhzq7kw046yyx7v6j6jyzkd1cr861iz34mjwiq"))))
|
||||
"01qmv6xnbbq3wih0dl9bscvca2d7zx7bjiqf35y6dkaqsp8nvdxf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags
|
||||
|
|
|
@ -62,6 +62,7 @@
|
|||
#:use-module (guix build-system haskell)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages))
|
||||
|
||||
|
@ -6070,6 +6071,24 @@ Megaparsec is a feature-rich package that strikes a nice balance between
|
|||
speed, flexibility, and quality of parse errors.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
;;; Idris 1.3.2 requires 'megaparse>=7.0.4' but we'd like to keep the public
|
||||
;;; package at the current Stackage LTS version:
|
||||
(define-public ghc-megaparsec-7
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit ghc-megaparsec)
|
||||
(version "7.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://hackage.haskell.org/package/megaparsec/"
|
||||
"megaparsec-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bqx1icbmk8s7wmbcdzsgnlh607c7kzg8l80cp02dxr5valjxp7j"))))
|
||||
(arguments (strip-keyword-arguments (list #:cabal-revision)
|
||||
(package-arguments ghc-megaparsec))))))
|
||||
|
||||
(define-public ghc-memory
|
||||
(package
|
||||
(name "ghc-memory")
|
||||
|
@ -6740,6 +6759,24 @@ between 2 and 3 times faster than the Mersenne Twister.")
|
|||
"This package provides a low-level networking interface.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
;;; Until we update our default GHC to >=8.6 we cannot update our ghc-network
|
||||
;;; package, since the 'cabal-install' package that supports the current
|
||||
;;; 'Cabal' module requires 'network==2.6.*'. Here we provide an updated
|
||||
;;; version to be used for our idris package.
|
||||
(define-public ghc-network-2.8
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit ghc-network)
|
||||
(version "2.8.0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://hackage.haskell.org/package/network/"
|
||||
"network-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0im8k51rw3ahmr23ny10pshwbz09jfg0fdpam0hzf2hgxnzmvxb1")))))))
|
||||
|
||||
(define-public ghc-network-info
|
||||
(package
|
||||
(name "ghc-network-info")
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
(define-public idris
|
||||
(package
|
||||
(name "idris")
|
||||
(version "1.3.1")
|
||||
(version "1.3.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -46,8 +46,7 @@
|
|||
"idris-" version "/idris-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0fn9h58l592j72njwma1ia48h8h87wi2rjqfxs7j2lfmvgfv18fi"))
|
||||
(patches (search-patches "idris-test-no-node.patch"))))
|
||||
"0wychzkg0yghd2pp8fqz78vp1ayzks191knfpl7mhh8igsmb6bc7"))))
|
||||
(build-system haskell-build-system)
|
||||
(native-inputs ;For tests
|
||||
`(("perl" ,perl)
|
||||
|
@ -71,8 +70,8 @@
|
|||
("ghc-fsnotify" ,ghc-fsnotify)
|
||||
("ghc-ieee754" ,ghc-ieee754)
|
||||
("ghc-libffi" ,ghc-libffi)
|
||||
("ghc-megaparsec" ,ghc-megaparsec)
|
||||
("ghc-network" ,ghc-network)
|
||||
("ghc-megaparsec" ,ghc-megaparsec-7)
|
||||
("ghc-network" ,ghc-network-2.8)
|
||||
("ghc-optparse-applicative" ,ghc-optparse-applicative)
|
||||
("ghc-regex-tdfa" ,ghc-regex-tdfa)
|
||||
("ghc-safe" ,ghc-safe)
|
||||
|
|
|
@ -269,6 +269,10 @@ integrates with various databases on GUI toolkits such as Qt and Tk.")
|
|||
"-DWITH_CAROTENE=OFF" ; only visible on arm/aarch64
|
||||
"-DENABLE_PRECOMPILED_HEADERS=OFF"
|
||||
|
||||
;; FIXME: OpenEXR requires C++11 or later. Remove this when
|
||||
;; the default compiler is GCC 7.
|
||||
"-DCMAKE_CXX_FLAGS=-std=gnu++11"
|
||||
|
||||
;; CPU-Features:
|
||||
;; See cmake/OpenCVCompilerOptimizations.cmake
|
||||
;; (CPU_ALL_OPTIMIZATIONS) for a list of all optimizations
|
||||
|
|
|
@ -419,36 +419,66 @@ lossless JPEG manipulations such as rotation, scaling or cropping:
|
|||
(patches (search-patches "libjxr-fix-function-signature.patch"
|
||||
"libjxr-fix-typos.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:make-flags '("CC=gcc")
|
||||
#:tests? #f ; no check target
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure script
|
||||
;; The upstream makefile does not include an install phase.
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(lib (string-append out "/lib"))
|
||||
(include (string-append out "/include/jxrlib")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file include)
|
||||
(delete-file file))
|
||||
(append
|
||||
'("jxrgluelib/JXRGlue.h"
|
||||
"jxrgluelib/JXRMeta.h"
|
||||
"jxrtestlib/JXRTest.h"
|
||||
"image/sys/windowsmediaphoto.h")
|
||||
(find-files "common/include" "\\.h$")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file lib)
|
||||
(delete-file file))
|
||||
(find-files "." "\\.a$"))
|
||||
(for-each (lambda (file)
|
||||
(install-file file bin)
|
||||
(delete-file file))
|
||||
'("JxrDecApp" "JxrEncApp")))
|
||||
#t)))))
|
||||
(arguments
|
||||
'(#:make-flags
|
||||
(list "CC=gcc"
|
||||
;; A substitute* procedure call would be enough to add the -fPIC
|
||||
;; flag if there was no file decoding error.
|
||||
;; The makefile is a "Non-ISO extended-ASCII text, with CRLF line
|
||||
;; terminators" according to the file(1) utility.
|
||||
(string-append "CFLAGS=-I. -Icommon/include -Iimage/sys -fPIC "
|
||||
"-D__ANSI__ -DDISABLE_PERF_MEASUREMENT -w -O "))
|
||||
#:tests? #f ; no check target
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure) ; no configure script
|
||||
(add-after 'build 'build-shared-library
|
||||
(lambda _
|
||||
;; The Makefile uses optimization level 1, so the same
|
||||
;; level is used here for consistency.
|
||||
(invoke "gcc" "-shared" "-fPIC" "-O"
|
||||
;; Common files.
|
||||
"adapthuff.o" "image.o" "strcodec.o" "strPredQuant.o"
|
||||
"strTransform.o" "perfTimerANSI.o"
|
||||
;; Decoding files.
|
||||
"decode.o" "postprocess.o" "segdec.o" "strdec.o"
|
||||
"strInvTransform.o" "strPredQuantDec.o" "JXRTranscode.o"
|
||||
;; Encoding files.
|
||||
"encode.o" "segenc.o" "strenc.o" "strFwdTransform.o"
|
||||
"strPredQuantEnc.o"
|
||||
"-o" "libjpegxr.so")
|
||||
(invoke "gcc" "-shared" "-fPIC" "-O"
|
||||
;; Glue files.
|
||||
"JXRGlue.o" "JXRMeta.o" "JXRGluePFC.o" "JXRGlueJxr.o"
|
||||
;; Test files.
|
||||
"JXRTest.o" "JXRTestBmp.o" "JXRTestHdr.o" "JXRTestPnm.o"
|
||||
"JXRTestTif.o" "JXRTestYUV.o"
|
||||
"-o" "libjxrglue.so")))
|
||||
;; The upstream makefile does not include an install phase.
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(lib (string-append out "/lib"))
|
||||
(include (string-append out "/include/jxrlib")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file include)
|
||||
(delete-file file))
|
||||
(append
|
||||
'("jxrgluelib/JXRGlue.h"
|
||||
"jxrgluelib/JXRMeta.h"
|
||||
"jxrtestlib/JXRTest.h"
|
||||
"image/sys/windowsmediaphoto.h")
|
||||
(find-files "common/include" "\\.h$")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file lib)
|
||||
(delete-file file))
|
||||
(find-files "." "\\.(a|so)$"))
|
||||
(for-each (lambda (file)
|
||||
(install-file file bin)
|
||||
(delete-file file))
|
||||
'("JxrDecApp" "JxrEncApp")))
|
||||
#t)))))
|
||||
(synopsis "Implementation of the JPEG XR standard")
|
||||
(description "JPEG XR is an approved ISO/IEC International standard (its
|
||||
official designation is ISO/IEC 29199-2). This library is an implementation of that standard.")
|
||||
|
@ -893,7 +923,7 @@ supplies a generic doubly-linked list and some string functions.")
|
|||
(define-public freeimage
|
||||
(package
|
||||
(name "freeimage")
|
||||
(version "3.17.0")
|
||||
(version "3.18.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -903,7 +933,7 @@ supplies a generic doubly-linked list and some string functions.")
|
|||
".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v"))
|
||||
"1z9qwi9mlq69d5jipr3v2jika2g0kszqdzilggm99nls5xl7j4zl"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -911,12 +941,8 @@ supplies a generic doubly-linked list and some string functions.")
|
|||
(lambda (dir)
|
||||
(delete-file-recursively (string-append "Source/" dir)))
|
||||
'("LibJPEG" "LibOpenJPEG" "LibPNG" "LibRawLite"
|
||||
;; "LibJXR"
|
||||
"LibWebP" "OpenEXR" "ZLib"))))
|
||||
(patches (search-patches "freeimage-unbundle.patch"
|
||||
"freeimage-CVE-2015-0852.patch"
|
||||
"freeimage-CVE-2016-5684.patch"
|
||||
"freeimage-fix-build-with-gcc-5.patch"))))
|
||||
"LibJXR" "LibWebP" "OpenEXR" "ZLib"))))
|
||||
(patches (search-patches "freeimage-unbundle.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -947,15 +973,18 @@ supplies a generic doubly-linked list and some string functions.")
|
|||
;; We need '-fpermissive' for Source/FreeImage.h.
|
||||
;; libjxr doesn't have a pkg-config file.
|
||||
(string-append "CFLAGS+=-O2 -fPIC -fvisibility=hidden -fpermissive "
|
||||
;"-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib"
|
||||
))
|
||||
"-I" (assoc-ref %build-inputs "libjxr") "/include/jxrlib "
|
||||
|
||||
;; FIXME: OpenEXR 2.4.0 requires C++11 or later.
|
||||
;; Remove when the default compiler is > GCC 5.
|
||||
"-std=gnu++11"))
|
||||
#:tests? #f)) ; no check target
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("unzip" ,unzip)))
|
||||
(inputs
|
||||
`(("libjpeg" ,libjpeg)
|
||||
;("libjxr" ,libjxr)
|
||||
("libjxr" ,libjxr)
|
||||
("libpng" ,libpng)
|
||||
("libraw" ,libraw)
|
||||
("libtiff" ,libtiff)
|
||||
|
|
|
@ -18,13 +18,13 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages license)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages perl-check))
|
||||
#:use-module (gnu packages perl-check)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages))
|
||||
|
||||
;;;
|
||||
;;; Please: Try to add new module packages in alphabetic order.
|
||||
|
|
|
@ -181,33 +181,33 @@ defconfig. Return the appropriate make target if applicable, otherwise return
|
|||
|
||||
(define deblob-scripts-5.2
|
||||
(linux-libre-deblob-scripts
|
||||
"5.2.10"
|
||||
"5.2.17"
|
||||
(base32 "076fwxlm6jq6z4vg1xq3kr474zz7qk71r90sf9dnfia3rw2pb4fa")
|
||||
(base32 "0d3pp1bqchqc7vnxr1a56km5r0hzjiiipzz2xc3wgjwfi51k9kxc")))
|
||||
|
||||
(define deblob-scripts-4.19
|
||||
(linux-libre-deblob-scripts
|
||||
"4.19.68"
|
||||
"4.19.75"
|
||||
(base32 "02zs405awaxydbapka4nz8h6lmnc0dahgczqsrs5s2bmzjyyqkcy")
|
||||
(base32 "1fyacg28aym6virxyn7wk99qil2fjbks3iwm7p3hxy51pccn34za")))
|
||||
|
||||
(define deblob-scripts-4.14
|
||||
(linux-libre-deblob-scripts
|
||||
"4.14.140"
|
||||
"4.14.146"
|
||||
(base32 "091jk9jkn9jf39bxpc7395bhcb7p96nkg3a8047380ki06lnfxh6")
|
||||
(base32 "0x9nd3hnyrm753cbgdqmy92mbnyw86w64g4hvyibnkpq5n7s3z9n")))
|
||||
|
||||
(define deblob-scripts-4.9
|
||||
(linux-libre-deblob-scripts
|
||||
"4.9.190"
|
||||
"4.9.194"
|
||||
(base32 "1wvldzlv7q2xdbadas87dh593nxr4a8p5n0f8zpm72lja6w18hmg")
|
||||
(base32 "0is8gn4qdd7h5l6lacvhqdch26lmrbgxfm8ab7fx8n85ha7y358w")))
|
||||
|
||||
(define deblob-scripts-4.4
|
||||
(linux-libre-deblob-scripts
|
||||
"4.4.190"
|
||||
"4.4.194"
|
||||
(base32 "0x2j1i88am54ih2mk7gyl79g25l9zz4r08xhl482l3fvjj2irwbw")
|
||||
(base32 "1x40lbiaizksy8z38ax7wpqr9ldgq7qvkxbb0ca98vd1axpklb10")))
|
||||
(base32 "12ac4g3ky8yma8sylmxvvysqvd4hnaqjiwmxrxb6wlxggfd7zkbx")))
|
||||
|
||||
(define* (computed-origin-method gexp-promise hash-algo hash
|
||||
#:optional (name "source")
|
||||
|
@ -349,42 +349,42 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
|
|||
"linux-" version ".tar.xz"))
|
||||
(sha256 hash)))
|
||||
|
||||
(define-public linux-libre-5.2-version "5.2.16")
|
||||
(define-public linux-libre-5.2-version "5.2.17")
|
||||
(define-public linux-libre-5.2-pristine-source
|
||||
(let ((version linux-libre-5.2-version)
|
||||
(hash (base32 "0xg5jnkmc7b552jrhi200ck7q4hql3az2fpjfwxj3ay8xp4n280c")))
|
||||
(hash (base32 "1y9d218w83qgd6wima6h6n4zbj1rxz15yb6hdlhv8dm9kv88lfvv")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-5.2)))
|
||||
|
||||
(define-public linux-libre-4.19-version "4.19.71")
|
||||
(define-public linux-libre-4.19-version "4.19.75")
|
||||
(define-public linux-libre-4.19-pristine-source
|
||||
(let ((version linux-libre-4.19-version)
|
||||
(hash (base32 "1bjwkb7k82l646ryyy0jbwsnygm2qsxgcwli8bdrj844skzynlqz")))
|
||||
(hash (base32 "0y0vcmxyfg98mm63vaqq6n2bmxkbmrnvigm5zdh1al74w53p2pnx")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.19)))
|
||||
|
||||
(define-public linux-libre-4.14-version "4.14.142")
|
||||
(define-public linux-libre-4.14-version "4.14.146")
|
||||
(define-public linux-libre-4.14-pristine-source
|
||||
(let ((version linux-libre-4.14-version)
|
||||
(hash (base32 "1wwhnm1n1b6yzsd2zzzf9i3n4hlvgnph70p67cwahw0ik4ssayz6")))
|
||||
(hash (base32 "1x9343pvlxdgx0zbsn12mcfhf6r8d9p57h6l5cw7krm3gs44pid3")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.14)))
|
||||
|
||||
(define-public linux-libre-4.9-version "4.9.191")
|
||||
(define-public linux-libre-4.9-version "4.9.194")
|
||||
(define-public linux-libre-4.9-pristine-source
|
||||
(let ((version linux-libre-4.9-version)
|
||||
(hash (base32 "1g5p736p8zx5rmxaj56yw93jp768npl868jsn8973dny0rsbim6y")))
|
||||
(hash (base32 "1qy20vw5bhnsfbh95sdhjbk6y94js8m4ryd3m7xg2qg4hisvpx6m")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.9)))
|
||||
|
||||
(define-public linux-libre-4.4-version "4.4.191")
|
||||
(define-public linux-libre-4.4-version "4.4.194")
|
||||
(define-public linux-libre-4.4-pristine-source
|
||||
(let ((version linux-libre-4.4-version)
|
||||
(hash (base32 "0x3lnq4xyj5v6r1cz4jizm4vdspws1nb806f5qczwi3yil5nm6bh")))
|
||||
(hash (base32 "0kvlp2v4nvkilaanhpgwf8dkyfj24msaw0m38rbc4y51y69yhqvz")))
|
||||
(make-linux-libre-source version
|
||||
(%upstream-linux-source version hash)
|
||||
deblob-scripts-4.4)))
|
||||
|
@ -1701,7 +1701,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
|
|||
(define-public iproute
|
||||
(package
|
||||
(name "iproute2")
|
||||
(version "5.2.0")
|
||||
(version "5.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1709,7 +1709,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1a2dywa2kam24951byv9pl32mb9z6klh7d4vp8fwfgrm4vn5vfd5"))))
|
||||
"0gvv269wjn4279hxr5zzwsk2c5qgswr47za3hm1x4frsk52iw76b"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`( ;; There is a test suite, but it wants network namespaces and sudo.
|
||||
|
@ -1734,7 +1734,8 @@ that the Ethernet protocol is much simpler than the IP protocol.")
|
|||
#t)))))
|
||||
(inputs
|
||||
`(("db4" ,bdb)
|
||||
("iptables" ,iptables)))
|
||||
("iptables" ,iptables)
|
||||
("libmnl" ,libmnl)))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
("flex" ,flex)
|
||||
|
|
|
@ -3552,15 +3552,15 @@ Failure to do so will result in a library with poor performance.")
|
|||
(define-public glm
|
||||
(package
|
||||
(name "glm")
|
||||
(version "0.9.9.5")
|
||||
(version "0.9.9.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/g-truc/glm/releases/download/"
|
||||
version "/glm-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vmg7hb4xvsa77zpbwiw6lqc7pyaj56dihx6xriny5b9rrh4iqsg"))))
|
||||
(base32 "1l0pi1qi37mk6s0yrkrw07lspv4gcqnr9ryg3521hrl77ff37dwx"))
|
||||
(patches (search-patches "glm-restore-install-target.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
|
|
|
@ -2810,14 +2810,13 @@ Songs can be searched by artist, name or even by a part of the song text.")
|
|||
(define-public beets
|
||||
(package
|
||||
(name "beets")
|
||||
(version "1.4.7")
|
||||
(version "1.4.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "beets" version))
|
||||
(patches (search-patches "beets-python-3.7-fix.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0w3gz69s9gf5ih69d4sddgh7ndj7658m621bp742zldvjakdncrs"))))
|
||||
"0m40rjimvfgy1dv04p8f8d5dvi2855v4ix99a9xr900cmcn476yj"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -2826,12 +2825,6 @@ Songs can be searched by artist, name or even by a part of the song text.")
|
|||
(lambda _
|
||||
(setenv "HOME" (string-append (getcwd) "/tmp"))
|
||||
#t))
|
||||
(add-after 'unpack 'make-python3.7-compatible
|
||||
(lambda _
|
||||
;; See <https://github.com/beetbox/beets/issues/2978>.
|
||||
(substitute* "beets/autotag/hooks.py"
|
||||
(("re\\._pattern_type") "re.Pattern"))
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "nosetests" "-v"))))))
|
||||
|
@ -2855,7 +2848,7 @@ Songs can be searched by artist, name or even by a part of the song text.")
|
|||
("python-mutagen" ,python-mutagen)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("python-unidecode" ,python-unidecode)))
|
||||
(home-page "http://beets.io")
|
||||
(home-page "https://beets.io")
|
||||
(synopsis "Music organizer")
|
||||
(description "The purpose of beets is to get your music collection right
|
||||
once and for all. It catalogs your collection, automatically improving its
|
||||
|
@ -4531,7 +4524,7 @@ controller.")
|
|||
(define-public fmit
|
||||
(package
|
||||
(name "fmit")
|
||||
(version "1.2.6")
|
||||
(version "1.2.13")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -4540,7 +4533,7 @@ controller.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"03nzkig5mw2rqwhwmg0qvc5cnk9bwh2wp13jh0mdrr935w0587mz"))))
|
||||
"1qyskam053pvlap1av80rgp12pzhr92rs88vqs6s0ia3ypnixcc6"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -418,14 +418,14 @@ receiving NDP messages.")
|
|||
(define-public ethtool
|
||||
(package
|
||||
(name "ethtool")
|
||||
(version "4.19")
|
||||
(version "5.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://kernel.org/software/network/"
|
||||
"ethtool/ethtool-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1j6hyr809af2m3gqm11hdfwks5kljqy1ikspq3d9rhj29qv6r2mi"))))
|
||||
"1i14zrg4a84zjpwvqi8an0zx0hm06g614a79zc2syrkhrvdw1npk"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "https://www.kernel.org/pub/software/network/ethtool/")
|
||||
(synopsis "Display or change Ethernet device settings")
|
||||
|
@ -1584,7 +1584,7 @@ procedure calls (RPCs).")
|
|||
(define-public openvswitch
|
||||
(package
|
||||
(name "openvswitch")
|
||||
(version "2.11.1")
|
||||
(version "2.12.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1592,7 +1592,7 @@ procedure calls (RPCs).")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1p5mv44jaslvrr1ym15smqna19y0gi4vqcsyj58625vv9bj6laf1"))))
|
||||
"1y78ix5inhhcvicbvyy2ij38am1215nr55vydhab3d4065q45z8k"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; FIXME: many tests fail with:
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
Fix compatibility issue with Python 3.7:
|
||||
|
||||
https://github.com/beetbox/beets/issues/2978
|
||||
|
||||
Patch copied from upstream source repository:
|
||||
|
||||
https://github.com/beetbox/beets/commit/15d44f02a391764da1ce1f239caef819f08beed8
|
||||
|
||||
From 15d44f02a391764da1ce1f239caef819f08beed8 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Sampson <adrian@radbox.org>
|
||||
Date: Sun, 22 Jul 2018 12:34:19 -0400
|
||||
Subject: [PATCH] Fix Python 3.7 compatibility (#2978)
|
||||
|
||||
---
|
||||
beets/autotag/hooks.py | 8 +++++++-
|
||||
docs/changelog.rst | 2 ++
|
||||
2 files changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/beets/autotag/hooks.py b/beets/autotag/hooks.py
|
||||
index 3615a9333..1c62a54c5 100644
|
||||
--- a/beets/autotag/hooks.py
|
||||
+++ b/beets/autotag/hooks.py
|
||||
@@ -31,6 +31,12 @@
|
||||
|
||||
log = logging.getLogger('beets')
|
||||
|
||||
+# The name of the type for patterns in re changed in Python 3.7.
|
||||
+try:
|
||||
+ Pattern = re._pattern_type
|
||||
+except AttributeError:
|
||||
+ Pattern = re.Pattern
|
||||
+
|
||||
|
||||
# Classes used to represent candidate options.
|
||||
|
||||
@@ -433,7 +439,7 @@ def _eq(self, value1, value2):
|
||||
be a compiled regular expression, in which case it will be
|
||||
matched against `value2`.
|
||||
"""
|
||||
- if isinstance(value1, re._pattern_type):
|
||||
+ if isinstance(value1, Pattern):
|
||||
return bool(value1.match(value2))
|
||||
return value1 == value2
|
||||
|
||||
#diff --git a/docs/changelog.rst b/docs/changelog.rst
|
||||
#index be6de2904..d487f31f5 100644
|
||||
#--- a/docs/changelog.rst
|
||||
#+++ b/docs/changelog.rst
|
||||
#@@ -19,6 +19,8 @@ New features:
|
||||
#
|
||||
# Fixes:
|
||||
#
|
||||
#+* Fix compatibility Python 3.7 and its change to a name in the ``re`` module.
|
||||
#+ :bug:`2978`
|
||||
# * R128 normalization tags are now properly deleted from files when the values
|
||||
# are missing.
|
||||
# Thanks to :user:`autrimpo`.
|
|
@ -0,0 +1,276 @@
|
|||
From 78d5cddafebb28e2e54efeb781495b5607ddb356 Mon Sep 17 00:00:00 2001
|
||||
From: Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
Date: Thu, 8 Aug 2019 15:19:48 +0200
|
||||
Subject: [PATCH] Scripts: Use constants for external program names.
|
||||
|
||||
This makes it much, much easier to replace the program
|
||||
with one using an absolute path. This is necessary for
|
||||
e.g. Guix to keep references to these external programs.
|
||||
---
|
||||
bin/debops | 10 +++++++---
|
||||
bin/debops-padlock | 21 +++++++++++++++------
|
||||
bin/debops-task | 7 +++++--
|
||||
bin/debops-update | 18 +++++++++++-------
|
||||
debops/__init__.py | 17 ++++++++++++-----
|
||||
debops/cmds/__init__.py | 6 +++++-
|
||||
6 files changed, 55 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/bin/debops b/bin/debops
|
||||
index 2b7ad3f88..caaeb892f 100755
|
||||
--- a/bin/debops
|
||||
+++ b/bin/debops
|
||||
@@ -59,6 +59,10 @@ ConfigFileHeader = """\
|
||||
# You can manipulate the contents of this file via `.debops.cfg`.
|
||||
"""
|
||||
|
||||
+# External programms used. List here for easy substitution for
|
||||
+# hard-coded paths.
|
||||
+ANSIBLE_PLAYBOOK = 'ansible-playbook'
|
||||
+
|
||||
|
||||
def write_config(filename, config):
|
||||
cfgparser = configparser.ConfigParser()
|
||||
@@ -131,7 +135,7 @@ def gen_ansible_cfg(filename, config, project_root, playbooks_path,
|
||||
os.path.join(playbooks_path, "roles"),
|
||||
"/etc/ansible/roles")))
|
||||
|
||||
- ansible_version_out = subprocess.check_output(["ansible-playbook",
|
||||
+ ansible_version_out = subprocess.check_output([ANSIBLE_PLAYBOOK,
|
||||
"--version"]).decode()
|
||||
|
||||
# Get first line and split by spaces to get second 'word'.
|
||||
@@ -197,7 +201,7 @@ def main(cmd_args):
|
||||
playbooks_path = '/nonexistent'
|
||||
|
||||
# Make sure required commands are present
|
||||
- require_commands('ansible-playbook')
|
||||
+ require_commands(ANSIBLE_PLAYBOOK)
|
||||
|
||||
# Check if user specified a potential playbook name as the first
|
||||
# argument. If yes, use it as the playbook name and remove it from
|
||||
@@ -256,7 +260,7 @@ def main(cmd_args):
|
||||
print("Running Ansible playbooks:")
|
||||
for element in play_list:
|
||||
print(element)
|
||||
- return subprocess.call(['ansible-playbook'] + play_list + arg_list)
|
||||
+ return subprocess.call([ANSIBLE_PLAYBOOK] + play_list + arg_list)
|
||||
finally:
|
||||
if revert_unlock:
|
||||
padlock_lock(encfs_encrypted)
|
||||
diff --git a/bin/debops-padlock b/bin/debops-padlock
|
||||
index bfdfb8e06..2a97716cd 100755
|
||||
--- a/bin/debops-padlock
|
||||
+++ b/bin/debops-padlock
|
||||
@@ -67,6 +67,14 @@ devrandom = os.environ.get('DEVRANDOM', "/dev/urandom")
|
||||
|
||||
SCRIPT_FILENAME = 'padlock-script'
|
||||
|
||||
+# External programms used. List here for easy substitution for
|
||||
+# hard-coded paths.
|
||||
+ENCFS = 'encfs'
|
||||
+FIND = 'find'
|
||||
+FUSERMOUNT = 'fusermount'
|
||||
+UMOUNT = 'umount'
|
||||
+GPG = 'gpg'
|
||||
+
|
||||
# ---- DebOps environment setup ----
|
||||
|
||||
|
||||
@@ -80,9 +88,9 @@ def main(subcommand_func, **kwargs):
|
||||
# Make sure required commands are present
|
||||
# OS X compatibility
|
||||
if sys.platform == 'darwin':
|
||||
- require_commands('encfs', 'find', 'umount', 'gpg')
|
||||
+ require_commands(ENCFS, FIND, UMOUNT, GPG)
|
||||
else:
|
||||
- require_commands('encfs', 'find', 'fusermount', 'gpg')
|
||||
+ require_commands(ENCFS, FIND, FUSERMOUNT, GPG)
|
||||
|
||||
inventory_path = find_inventorypath(project_root, required=False)
|
||||
# If inventory hasn't been found automatically, assume it's the default
|
||||
@@ -121,7 +129,7 @@ def init(encfs_decrypted, encfs_encrypted, recipients):
|
||||
# Generate a random password and encrypt it with GPG keys of recipients.
|
||||
print("Generating a random", ENCFS_KEYFILE_LENGTH, "char password")
|
||||
pwd = gen_pwd()
|
||||
- gpg = subprocess.Popen(['gpg', '--encrypt', '--armor',
|
||||
+ gpg = subprocess.Popen([GPG, '--encrypt', '--armor',
|
||||
'--output', encfs_keyfile] + recipients,
|
||||
stdin=subprocess.PIPE)
|
||||
gpg.communicate(pwd.encode('utf-8'))
|
||||
@@ -133,9 +141,10 @@ def init(encfs_decrypted, encfs_encrypted, recipients):
|
||||
# NB2: We can not use padlock_unlock here, because the config file
|
||||
# does not yet exist.
|
||||
encfs = subprocess.Popen([
|
||||
- 'encfs', encfs_encrypted, encfs_decrypted,
|
||||
+ ENCFS, encfs_encrypted, encfs_decrypted,
|
||||
'--extpass',
|
||||
- 'gpg --decrypt --no-mdc-warning --output - '+shquote(encfs_keyfile)],
|
||||
+ GPG + ' --decrypt --no-mdc-warning --output - '
|
||||
+ + shquote(encfs_keyfile)],
|
||||
stdin=subprocess.PIPE)
|
||||
encfs.communicate(('p\n'+pwd).encode('utf-8'))
|
||||
|
||||
@@ -154,7 +163,7 @@ def init(encfs_decrypted, encfs_encrypted, recipients):
|
||||
|
||||
# Protect the EncFS configuration file by also encrypting it with
|
||||
# the GPG keys of recipients.
|
||||
- subprocess.call(['gpg', '--encrypt', '--armor',
|
||||
+ subprocess.call([GPG, '--encrypt', '--armor',
|
||||
'--output', encfs_configfile+'.asc']
|
||||
+ recipients + [encfs_configfile])
|
||||
os.remove(encfs_configfile)
|
||||
diff --git a/bin/debops-task b/bin/debops-task
|
||||
index 223e5f834..dc31ad4e6 100755
|
||||
--- a/bin/debops-task
|
||||
+++ b/bin/debops-task
|
||||
@@ -49,11 +49,14 @@ project_root = find_debops_project(required=True)
|
||||
# todo: need to decide on semantics!
|
||||
# config = read_config(project_root)
|
||||
|
||||
+# External programms used. List here for easy substitution for
|
||||
+# hard-coded paths.
|
||||
+ANSIBLE = 'ansible'
|
||||
|
||||
# ---- Main script ----
|
||||
|
||||
# Make sure required commands are present
|
||||
-require_commands('ansible')
|
||||
+require_commands(ANSIBLE)
|
||||
|
||||
ansible_inventory = find_inventorypath(project_root)
|
||||
|
||||
@@ -71,5 +74,5 @@ if INSECURE:
|
||||
os.environ['ANSIBLE_HOST_KEY_CHECKING'] = 'False'
|
||||
|
||||
# Run ansible with custom environment
|
||||
-cmd = ['ansible'] + module + sys.argv[1:]
|
||||
+cmd = [ANSIBLE] + module + sys.argv[1:]
|
||||
subprocess.call(cmd)
|
||||
diff --git a/bin/debops-update b/bin/debops-update
|
||||
index 88c5e2c82..cc7e57cb0 100755
|
||||
--- a/bin/debops-update
|
||||
+++ b/bin/debops-update
|
||||
@@ -90,6 +90,10 @@ GALAXY_REQUIREMENTS = "galaxy/requirements.txt"
|
||||
# Default Ansible Galaxy user account name
|
||||
GALAXY_ACCOUNT = "debops"
|
||||
|
||||
+# External programms used. List here for easy substitution for
|
||||
+# hard-coded paths.
|
||||
+GIT = 'git'
|
||||
+
|
||||
|
||||
# ---- Functions ----
|
||||
|
||||
@@ -137,7 +141,7 @@ def clone_git_repository(repo_uri, branch, destination, dry_run=False):
|
||||
if dry_run:
|
||||
print("Cloning '%s' to %s..." % (repo_uri, destination))
|
||||
else:
|
||||
- subprocess.call(['git', 'clone', '--quiet', '--branch', branch,
|
||||
+ subprocess.call([GIT, 'clone', '--quiet', '--branch', branch,
|
||||
repo_uri, destination])
|
||||
|
||||
|
||||
@@ -152,22 +156,22 @@ def update_git_repository(path, dry_run=False, remote_uri=False):
|
||||
os.chdir(path)
|
||||
|
||||
if dry_run:
|
||||
- subprocess.call(['git', 'fetch'])
|
||||
- subprocess.call(['git', 'diff', 'HEAD', 'origin', '--stat'])
|
||||
+ subprocess.call([GIT, 'fetch'])
|
||||
+ subprocess.call([GIT, 'diff', 'HEAD', 'origin', '--stat'])
|
||||
else:
|
||||
# Get the current sha of the head branch
|
||||
current_sha = subprocess.check_output(
|
||||
- ['git', 'rev-parse', 'HEAD']).strip()
|
||||
+ [GIT, 'rev-parse', 'HEAD']).strip()
|
||||
|
||||
# Fetch it silently and store the new sha
|
||||
- subprocess.call(['git', 'fetch', '--quiet'])
|
||||
+ subprocess.call([GIT, 'fetch', '--quiet'])
|
||||
fetch_sha = subprocess.check_output(
|
||||
- ['git', 'rev-parse', 'FETCH_HEAD']).strip()
|
||||
+ [GIT, 'rev-parse', 'FETCH_HEAD']).strip()
|
||||
|
||||
if current_sha != fetch_sha:
|
||||
print()
|
||||
print('--')
|
||||
- subprocess.call(['git', 'merge', fetch_sha])
|
||||
+ subprocess.call([GIT, 'merge', fetch_sha])
|
||||
|
||||
if remote_uri:
|
||||
compare_uri = (remote_uri + '/compare/' + current_sha[:7]
|
||||
diff --git a/debops/__init__.py b/debops/__init__.py
|
||||
index 1c2cedcb0..da8430e41 100644
|
||||
--- a/debops/__init__.py
|
||||
+++ b/debops/__init__.py
|
||||
@@ -93,6 +93,13 @@ ENCFS_KEYFILE = ".encfs6.keyfile"
|
||||
# Length of the random EncFS password stored in encrypted keyfile
|
||||
ENCFS_KEYFILE_LENGTH = 256
|
||||
|
||||
+# External programms used. List here for easy substitution for
|
||||
+# hard-coded paths.
|
||||
+ENCFS = 'encfs'
|
||||
+FUSERMOUNT = 'fusermount'
|
||||
+UMOUNT = 'umount'
|
||||
+GPG = 'gpg'
|
||||
+
|
||||
|
||||
# ---- Functions ----
|
||||
|
||||
@@ -180,9 +187,9 @@ def padlock_lock(encrypted_path):
|
||||
return False
|
||||
# OS X compatibility
|
||||
if sys.platform == 'darwin':
|
||||
- subprocess.call(['umount', decrypted_path])
|
||||
+ subprocess.call([UMOUNT, decrypted_path])
|
||||
else:
|
||||
- subprocess.call(['fusermount', '-u', decrypted_path])
|
||||
+ subprocess.call([FUSERMOUNT, '-u', decrypted_path])
|
||||
return True
|
||||
|
||||
|
||||
@@ -237,14 +244,14 @@ def padlock_unlock(encrypted_path):
|
||||
# Start encfs. It will wait for input on the `configfile` named
|
||||
# pipe.
|
||||
encfs = subprocess.Popen([
|
||||
- 'encfs', encrypted_path, decrypted_path,
|
||||
+ ENCFS, encrypted_path, decrypted_path,
|
||||
'--extpass',
|
||||
- 'gpg --decrypt --no-mdc-warning --output - %s' % shquote(keyfile)])
|
||||
+ GPG + ' --decrypt --no-mdc-warning --output - %s' % shquote(keyfile)])
|
||||
# now decrypt the config and write it into the named pipe
|
||||
with open(configfile, 'w') as fh:
|
||||
# NB: gpg must write to stdout to avoid it is asking whether
|
||||
# the file should be overwritten
|
||||
- subprocess.Popen(['gpg',
|
||||
+ subprocess.Popen([GPG,
|
||||
'--decrypt', '--no-mdc-warning', '--output', '-',
|
||||
crypted_configfile], stdout=fh).wait()
|
||||
encfs.wait()
|
||||
diff --git a/debops/cmds/__init__.py b/debops/cmds/__init__.py
|
||||
index b221fa191..9fabf43a5 100644
|
||||
--- a/debops/cmds/__init__.py
|
||||
+++ b/debops/cmds/__init__.py
|
||||
@@ -55,6 +55,10 @@ SCRIPT_NAME = os.path.basename(sys.argv[0])
|
||||
# command line)
|
||||
INSECURE = bool(os.environ.get('INSECURE', False))
|
||||
|
||||
+# External programms used. List here for easy substitution for
|
||||
+# hard-coded paths.
|
||||
+WHICH = 'which'
|
||||
+
|
||||
|
||||
def error_msg(message, severity="Error"):
|
||||
"""
|
||||
@@ -70,7 +74,7 @@ def require_commands(*cmd_names):
|
||||
Check if required commands exist.
|
||||
"""
|
||||
def command_exists(cmd_name):
|
||||
- which = "where" if platform.system() == "Windows" else "which"
|
||||
+ which = "where" if platform.system() == "Windows" else WHICH
|
||||
return not subprocess.call([which, cmd_name],
|
||||
stdout=DEVNULL, stderr=subprocess.STDOUT)
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
From 5059daf8bd59a83f520c14731173ea76ce8b8661 Mon Sep 17 00:00:00 2001
|
||||
From: Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
Date: Sun, 8 Sep 2019 13:09:15 +0200
|
||||
Subject: [PATCH] [debops-defaults] If `view` is not available, try less, etc.
|
||||
|
||||
---
|
||||
bin/debops-defaults | 21 +++++++++++++++------
|
||||
1 file changed, 15 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/bin/debops-defaults b/bin/debops-defaults
|
||||
index 9dd87fe0a..3e3db4c41 100755
|
||||
--- a/bin/debops-defaults
|
||||
+++ b/bin/debops-defaults
|
||||
@@ -96,13 +96,22 @@ def main(role_list):
|
||||
config = read_config(project_root)
|
||||
playbooks_path = find_playbookpath(config, project_root, required=True)
|
||||
|
||||
- # Make sure required commands are present
|
||||
- require_commands('view')
|
||||
-
|
||||
- if sys.stdout.isatty():
|
||||
+ # Check if one of the output commands is present
|
||||
+ sys.stdout = io.BytesIO() # suppress error message, if any
|
||||
+ for cmd_args in (('view', '+set ft=yaml', '-'),
|
||||
+ ('less', '-'),
|
||||
+ ('more', '-')):
|
||||
+ try:
|
||||
+ require_commands(cmd_args[0])
|
||||
+ break
|
||||
+ except SystemExit:
|
||||
+ # this command was not found
|
||||
+ cmd_args = None
|
||||
+ sys.stdout = sys.__stdout__
|
||||
+
|
||||
+ if cmd_args and sys.stdout.isatty():
|
||||
# if script is run as standalone, redirect to view
|
||||
- view = subprocess.Popen(['view', '+set ft=yaml', '-'],
|
||||
- stdin=subprocess.PIPE)
|
||||
+ view = subprocess.Popen(cmd_args, stdin=subprocess.PIPE)
|
||||
try:
|
||||
aggregate_defaults(playbooks_path, role_list, view.stdin)
|
||||
except IOError as e:
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -1,129 +0,0 @@
|
|||
Copied from Debian.
|
||||
|
||||
Description: fix integer overflow
|
||||
Origin: upstream
|
||||
http://freeimage.cvs.sourceforge.net/viewvc/freeimage/FreeImage/Source/FreeImage/PluginPCX.cpp?view=patch&r1=1.17&r2=1.18&pathrev=MAIN
|
||||
http://freeimage.cvs.sourceforge.net/viewvc/freeimage/FreeImage/Source/FreeImage/PluginPCX.cpp?view=patch&r1=1.18&r2=1.19&pathrev=MAIN
|
||||
Bug-Debian: https://bugs.debian.org/797165
|
||||
Last-Update: 2015-09-14
|
||||
---
|
||||
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
|
||||
Index: freeimage/Source/FreeImage/PluginPCX.cpp
|
||||
===================================================================
|
||||
--- freeimage.orig/Source/FreeImage/PluginPCX.cpp
|
||||
+++ freeimage/Source/FreeImage/PluginPCX.cpp
|
||||
@@ -347,12 +347,14 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
|
||||
try {
|
||||
// check PCX identifier
|
||||
-
|
||||
- long start_pos = io->tell_proc(handle);
|
||||
- BOOL validated = pcx_validate(io, handle);
|
||||
- io->seek_proc(handle, start_pos, SEEK_SET);
|
||||
- if(!validated) {
|
||||
- throw FI_MSG_ERROR_MAGIC_NUMBER;
|
||||
+ // (note: should have been already validated using FreeImage_GetFileType but check again)
|
||||
+ {
|
||||
+ long start_pos = io->tell_proc(handle);
|
||||
+ BOOL validated = pcx_validate(io, handle);
|
||||
+ io->seek_proc(handle, start_pos, SEEK_SET);
|
||||
+ if(!validated) {
|
||||
+ throw FI_MSG_ERROR_MAGIC_NUMBER;
|
||||
+ }
|
||||
}
|
||||
|
||||
// process the header
|
||||
@@ -366,20 +368,38 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
SwapHeader(&header);
|
||||
#endif
|
||||
|
||||
- // allocate a new DIB
|
||||
+ // process the window
|
||||
+ const WORD *window = header.window; // left, upper, right,lower pixel coord.
|
||||
+ const int left = window[0];
|
||||
+ const int top = window[1];
|
||||
+ const int right = window[2];
|
||||
+ const int bottom = window[3];
|
||||
|
||||
- unsigned width = header.window[2] - header.window[0] + 1;
|
||||
- unsigned height = header.window[3] - header.window[1] + 1;
|
||||
- unsigned bitcount = header.bpp * header.planes;
|
||||
-
|
||||
- if (bitcount == 24) {
|
||||
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
|
||||
- } else {
|
||||
- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
|
||||
+ // check image size
|
||||
+ if((left >= right) || (top >= bottom)) {
|
||||
+ throw FI_MSG_ERROR_PARSING;
|
||||
}
|
||||
|
||||
- // if the dib couldn't be allocated, throw an error
|
||||
+ const unsigned width = right - left + 1;
|
||||
+ const unsigned height = bottom - top + 1;
|
||||
+ const unsigned bitcount = header.bpp * header.planes;
|
||||
+
|
||||
+ // allocate a new DIB
|
||||
+ switch(bitcount) {
|
||||
+ case 1:
|
||||
+ case 4:
|
||||
+ case 8:
|
||||
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
|
||||
+ break;
|
||||
+ case 24:
|
||||
+ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
|
||||
+ break;
|
||||
+ default:
|
||||
+ throw FI_MSG_ERROR_DIB_MEMORY;
|
||||
+ break;
|
||||
+ }
|
||||
|
||||
+ // if the dib couldn't be allocated, throw an error
|
||||
if (!dib) {
|
||||
throw FI_MSG_ERROR_DIB_MEMORY;
|
||||
}
|
||||
@@ -426,19 +446,23 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
|
||||
if (palette_id == 0x0C) {
|
||||
BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE));
|
||||
- io->read_proc(cmap, 768, 1, handle);
|
||||
|
||||
- pal = FreeImage_GetPalette(dib);
|
||||
- BYTE *pColormap = &cmap[0];
|
||||
+ if(cmap) {
|
||||
+ io->read_proc(cmap, 768, 1, handle);
|
||||
|
||||
- for(int i = 0; i < 256; i++) {
|
||||
- pal[i].rgbRed = pColormap[0];
|
||||
- pal[i].rgbGreen = pColormap[1];
|
||||
- pal[i].rgbBlue = pColormap[2];
|
||||
- pColormap += 3;
|
||||
+ pal = FreeImage_GetPalette(dib);
|
||||
+ BYTE *pColormap = &cmap[0];
|
||||
+
|
||||
+ for(int i = 0; i < 256; i++) {
|
||||
+ pal[i].rgbRed = pColormap[0];
|
||||
+ pal[i].rgbGreen = pColormap[1];
|
||||
+ pal[i].rgbBlue = pColormap[2];
|
||||
+ pColormap += 3;
|
||||
+ }
|
||||
+
|
||||
+ free(cmap);
|
||||
}
|
||||
|
||||
- free(cmap);
|
||||
}
|
||||
|
||||
// wrong palette ID, perhaps a gray scale is needed ?
|
||||
@@ -466,9 +490,9 @@ Load(FreeImageIO *io, fi_handle handle,
|
||||
// calculate the line length for the PCX and the DIB
|
||||
|
||||
// length of raster line in bytes
|
||||
- unsigned linelength = header.bytes_per_line * header.planes;
|
||||
+ const unsigned linelength = header.bytes_per_line * header.planes;
|
||||
// length of DIB line (rounded to DWORD) in bytes
|
||||
- unsigned pitch = FreeImage_GetPitch(dib);
|
||||
+ const unsigned pitch = FreeImage_GetPitch(dib);
|
||||
|
||||
// run-length encoding ?
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From: Debian Science Maintainers
|
||||
<debian-science-maintainers@lists.alioth.debian.org>
|
||||
Date: Mon, 10 Oct 2016 08:22:44 +0100
|
||||
Subject: CVE-2016-5684
|
||||
|
||||
---
|
||||
Source/FreeImage/PluginXPM.cpp | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Source/FreeImage/PluginXPM.cpp b/Source/FreeImage/PluginXPM.cpp
|
||||
index a698321..cc7bd07 100644
|
||||
--- a/Source/FreeImage/PluginXPM.cpp
|
||||
+++ b/Source/FreeImage/PluginXPM.cpp
|
||||
@@ -181,6 +181,11 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
|
||||
}
|
||||
free(str);
|
||||
|
||||
+ // check info string
|
||||
+ if((width <= 0) || (height <= 0) || (colors <= 0) || (cpp <= 0)) {
|
||||
+ throw "Improperly formed info string";
|
||||
+ }
|
||||
+
|
||||
if (colors > 256) {
|
||||
dib = FreeImage_AllocateHeader(header_only, width, height, 24, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
|
||||
} else {
|
||||
@@ -193,7 +198,7 @@ Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
|
||||
FILE_RGBA rgba;
|
||||
|
||||
str = ReadString(io, handle);
|
||||
- if(!str)
|
||||
+ if(!str || (strlen(str) < (size_t)cpp))
|
||||
throw "Error reading color strings";
|
||||
|
||||
std::string chrs(str,cpp); //create a string for the color chars using the first cpp chars
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
|||
https://src.fedoraproject.org/cgit/rpms/freeimage.git/tree/FreeImage-3.17.0_unbundle.patch
|
||||
https://src.fedoraproject.org/cgit/rpms/freeimage.git/tree/FreeImage_unbundle.patch
|
||||
|
||||
diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
|
||||
--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100
|
||||
|
@ -25,10 +25,10 @@ diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
|
|||
#!/bin/sh
|
||||
|
||||
-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
|
||||
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
|
||||
+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
|
||||
|
||||
echo "VER_MAJOR = 3" > Makefile.srcs
|
||||
echo "VER_MINOR = 17.0" >> Makefile.srcs
|
||||
echo "VER_MINOR = 18.0" >> Makefile.srcs
|
||||
diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
|
||||
--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
|
||||
+++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200
|
||||
|
@ -90,8 +90,8 @@ diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
|
|||
-# LibJXR
|
||||
-CXXFLAGS += -D__ANSI__
|
||||
-CXXFLAGS += $(INCLUDE)
|
||||
+override CFLAGS += $(INCLUDE) -D__ANSI__ $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
|
||||
+override LDFLAGS += -ljpeg $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
|
||||
+override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
|
||||
+override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
|
||||
|
||||
ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
|
||||
- CFLAGS += -fPIC
|
||||
|
@ -215,6 +215,18 @@ diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeIm
|
|||
}
|
||||
|
||||
#include "FreeImage.h"
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-03 23:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2018-07-31 23:37:58.561953201 +0200
|
||||
@@ -23,7 +23,7 @@
|
||||
#include "Utilities.h"
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
|
||||
-#include "../LibJXR/jxrgluelib/JXRGlue.h"
|
||||
+#include <JXRGlue.h>
|
||||
|
||||
// ==========================================================
|
||||
// Plugin Interface
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
|
@ -241,38 +253,39 @@ diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeIma
|
|||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
@@ -37,9 +37,9 @@
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibTIFF4/tiffiop.h"
|
||||
+#include <tiffio.h>
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
-#include "../OpenEXR/Half/half.h"
|
||||
+#include <OpenEXR/half.h>
|
||||
|
||||
#include "FreeImageIO.h"
|
||||
#include "PSDParser.h"
|
||||
@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char
|
||||
return tif;
|
||||
}
|
||||
|
||||
-/**
|
||||
-Open a TIFF file for reading or writing
|
||||
-@param name
|
||||
-@param mode
|
||||
-*/
|
||||
-TIFF*
|
||||
-TIFFOpen(const char* name, const char* mode) {
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
// ----------------------------------------------------------
|
||||
// TIFF library FreeImage-specific routines.
|
||||
// ----------------------------------------------------------
|
||||
|
||||
#include "FreeImage.h"
|
||||
#include "Utilities.h"
|
||||
-#include "../LibTIFF4/tiffiop.h"
|
||||
+#include <tiffio.h>
|
||||
#include "../Metadata/FreeImageTag.h"
|
||||
-#include "../OpenEXR/Half/half.h"
|
||||
+#include <OpenEXR/half.h>
|
||||
|
||||
#include "FreeImageIO.h"
|
||||
#include "PSDParser.h"
|
||||
@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char *name, const char *mode) {
|
||||
return tif;
|
||||
}
|
||||
|
||||
-/**
|
||||
-Open a TIFF file for reading or writing
|
||||
-@param name
|
||||
-@param mode
|
||||
-*/
|
||||
-TIFF*
|
||||
-TIFFOpen(const char* name, const char* mode) {
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
// ----------------------------------------------------------
|
||||
// TIFF library FreeImage-specific routines.
|
||||
// ----------------------------------------------------------
|
||||
diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
|
||||
--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
|
@ -282,15 +295,81 @@ diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeIm
|
|||
|
||||
-#include "../LibWebP/src/webp/decode.h"
|
||||
-#include "../LibWebP/src/webp/encode.h"
|
||||
-#include "../LibWebP/src/enc/vp8enci.h"
|
||||
-#include "../LibWebP/src/webp/mux.h"
|
||||
+#include <webp/decode.h>
|
||||
+#include <webp/encode.h>
|
||||
+// #include "../LibWebP/src/enc/vp8enci.h"
|
||||
+#include <webp/mux.h>
|
||||
|
||||
// ==========================================================
|
||||
// Plugin Interface
|
||||
diff -rupN FreeImage/Source/FreeImage/PSDParser.cpp FreeImage-new/Source/FreeImage/PSDParser.cpp
|
||||
--- FreeImage/Source/FreeImage/PSDParser.cpp 2016-02-11 03:18:02.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/PSDParser.cpp 2018-08-01 00:17:18.323822675 +0200
|
||||
@@ -133,8 +133,8 @@ public:
|
||||
template <>
|
||||
class PSDGetValue<8> {
|
||||
public:
|
||||
- static inline UINT64 get(const BYTE * iprBuffer) {
|
||||
- UINT64 v = ((const UINT64*)iprBuffer)[0];
|
||||
+ static inline uint64_t get(const BYTE * iprBuffer) {
|
||||
+ uint64_t v = ((const uint64_t*)iprBuffer)[0];
|
||||
#ifndef FREEIMAGE_BIGENDIAN
|
||||
SwapInt64(&v);
|
||||
#endif
|
||||
@@ -147,7 +147,7 @@ public:
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
-static UINT64
|
||||
+static uint64_t
|
||||
psdReadSize(FreeImageIO *io, fi_handle handle, const psdHeaderInfo& header) {
|
||||
if(header._Version == 1) {
|
||||
BYTE Length[4];
|
||||
@@ -199,11 +199,11 @@ public:
|
||||
template <>
|
||||
class PSDSetValue<8> {
|
||||
public:
|
||||
- static inline void set(const BYTE * iprBuffer, UINT64 v) {
|
||||
+ static inline void set(const BYTE * iprBuffer, uint64_t v) {
|
||||
#ifndef FREEIMAGE_BIGENDIAN
|
||||
SwapInt64(&v);
|
||||
#endif
|
||||
- ((UINT64*)iprBuffer)[0] = v;
|
||||
+ ((uint64_t*)iprBuffer)[0] = v;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -213,7 +213,7 @@ public:
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
static inline bool
|
||||
-psdWriteSize(FreeImageIO *io, fi_handle handle, const psdHeaderInfo& header, UINT64 v) {
|
||||
+psdWriteSize(FreeImageIO *io, fi_handle handle, const psdHeaderInfo& header, uint64_t v) {
|
||||
if(header._Version == 1) {
|
||||
BYTE Length[4];
|
||||
psdSetLongValue(Length, sizeof(Length), (DWORD)v);
|
||||
@@ -1063,10 +1063,10 @@ unsigned psdParser::GetChannelOffset(FIB
|
||||
bool psdParser::ReadLayerAndMaskInfoSection(FreeImageIO *io, fi_handle handle) {
|
||||
bool bSuccess = true;
|
||||
|
||||
- UINT64 nTotalBytes = psdReadSize(io, handle, _headerInfo);
|
||||
+ uint64_t nTotalBytes = psdReadSize(io, handle, _headerInfo);
|
||||
|
||||
// Hack to handle large PSB files without using fseeko().
|
||||
- if (sizeof(long) < sizeof(UINT64)) {
|
||||
+ if (sizeof(long) < sizeof(uint64_t)) {
|
||||
const long offset = 0x10000000;
|
||||
while (nTotalBytes > offset) {
|
||||
if (io->seek_proc(handle, offset, SEEK_CUR) != 0) {
|
||||
@@ -1672,7 +1672,7 @@ bool psdParser::WriteLayerAndMaskInfoSec
|
||||
// Short section with no layers.
|
||||
BYTE IntValue[4];
|
||||
|
||||
- UINT64 size;
|
||||
+ uint64_t size;
|
||||
if(_headerInfo._Version == 1) {
|
||||
size = 8;
|
||||
} else {
|
||||
diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
|
||||
--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100
|
||||
+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200
|
||||
|
@ -536,3 +615,21 @@ diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTI
|
|||
|
||||
if(skip_write_field(tif, tag_id)) {
|
||||
// skip tags that are already handled by the LibTIFF writing process
|
||||
diff -rupN FreeImage/Source/Utilities.h FreeImage-new/Source/Utilities.h
|
||||
--- FreeImage/Source/Utilities.h 2016-04-11 15:15:32.000000000 +0200
|
||||
+++ FreeImage-new/Source/Utilities.h 2018-08-01 00:16:29.826825358 +0200
|
||||
@@ -446,12 +446,12 @@ SwapLong(DWORD *lp) {
|
||||
}
|
||||
|
||||
inline void
|
||||
-SwapInt64(UINT64 *arg) {
|
||||
+SwapInt64(uint64_t *arg) {
|
||||
#if defined(_MSC_VER) && _MSC_VER >= 1310
|
||||
*arg = _byteswap_uint64(*arg);
|
||||
#else
|
||||
union Swap {
|
||||
- UINT64 sv;
|
||||
+ uint64_t sv;
|
||||
DWORD ul[2];
|
||||
} tmp, result;
|
||||
tmp.sv = *arg;
|
||||
|
|
|
@ -0,0 +1,574 @@
|
|||
From: Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
Date: Mon, 23 Sep 2019 22:01:17 +0200
|
||||
Subject: [PATCH] gnu: glm: Restore ‘install’ target.
|
||||
|
||||
It was removed in 0.9.9.6, making installation a tedious manual process
|
||||
for no clear reason[0]. Restore it for now.
|
||||
|
||||
[0]: https://github.com/g-truc/glm/issues/947
|
||||
|
||||
diff -Naur glm/cmake/CMakePackageConfigHelpers.cmake glmn/cmake/CMakePackageConfigHelpers.cmake
|
||||
--- glm/cmake/CMakePackageConfigHelpers.cmake 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glmn/cmake/CMakePackageConfigHelpers.cmake 2019-09-23 00:11:21.418152249 +0200
|
||||
@@ -0,0 +1,227 @@
|
||||
+# - CONFIGURE_PACKAGE_CONFIG_FILE(), WRITE_BASIC_PACKAGE_VERSION_FILE()
|
||||
+#
|
||||
+# CONFIGURE_PACKAGE_CONFIG_FILE(<input> <output> INSTALL_DESTINATION <path>
|
||||
+# [PATH_VARS <var1> <var2> ... <varN>]
|
||||
+# [NO_SET_AND_CHECK_MACRO]
|
||||
+# [NO_CHECK_REQUIRED_COMPONENTS_MACRO])
|
||||
+#
|
||||
+# CONFIGURE_PACKAGE_CONFIG_FILE() should be used instead of the plain
|
||||
+# CONFIGURE_FILE() command when creating the <Name>Config.cmake or <Name>-config.cmake
|
||||
+# file for installing a project or library. It helps making the resulting package
|
||||
+# relocatable by avoiding hardcoded paths in the installed Config.cmake file.
|
||||
+#
|
||||
+# In a FooConfig.cmake file there may be code like this to make the
|
||||
+# install destinations know to the using project:
|
||||
+# set(FOO_INCLUDE_DIR "@CMAKE_INSTALL_FULL_INCLUDEDIR@" )
|
||||
+# set(FOO_DATA_DIR "@CMAKE_INSTALL_PREFIX@/@RELATIVE_DATA_INSTALL_DIR@" )
|
||||
+# set(FOO_ICONS_DIR "@CMAKE_INSTALL_PREFIX@/share/icons" )
|
||||
+# ...logic to determine installedPrefix from the own location...
|
||||
+# set(FOO_CONFIG_DIR "${installedPrefix}/@CONFIG_INSTALL_DIR@" )
|
||||
+# All 4 options shown above are not sufficient, since the first 3 hardcode
|
||||
+# the absolute directory locations, and the 4th case works only if the logic
|
||||
+# to determine the installedPrefix is correct, and if CONFIG_INSTALL_DIR contains
|
||||
+# a relative path, which in general cannot be guaranteed.
|
||||
+# This has the effect that the resulting FooConfig.cmake file would work poorly
|
||||
+# under Windows and OSX, where users are used to choose the install location
|
||||
+# of a binary package at install time, independent from how CMAKE_INSTALL_PREFIX
|
||||
+# was set at build/cmake time.
|
||||
+#
|
||||
+# Using CONFIGURE_PACKAGE_CONFIG_FILE() helps. If used correctly, it makes the
|
||||
+# resulting FooConfig.cmake file relocatable.
|
||||
+# Usage:
|
||||
+# 1. write a FooConfig.cmake.in file as you are used to
|
||||
+# 2. insert a line containing only the string "@PACKAGE_INIT@"
|
||||
+# 3. instead of SET(FOO_DIR "@SOME_INSTALL_DIR@"), use SET(FOO_DIR "@PACKAGE_SOME_INSTALL_DIR@")
|
||||
+# (this must be after the @PACKAGE_INIT@ line)
|
||||
+# 4. instead of using the normal CONFIGURE_FILE(), use CONFIGURE_PACKAGE_CONFIG_FILE()
|
||||
+#
|
||||
+# The <input> and <output> arguments are the input and output file, the same way
|
||||
+# as in CONFIGURE_FILE().
|
||||
+#
|
||||
+# The <path> given to INSTALL_DESTINATION must be the destination where the FooConfig.cmake
|
||||
+# file will be installed to. This can either be a relative or absolute path, both work.
|
||||
+#
|
||||
+# The variables <var1> to <varN> given as PATH_VARS are the variables which contain
|
||||
+# install destinations. For each of them the macro will create a helper variable
|
||||
+# PACKAGE_<var...>. These helper variables must be used
|
||||
+# in the FooConfig.cmake.in file for setting the installed location. They are calculated
|
||||
+# by CONFIGURE_PACKAGE_CONFIG_FILE() so that they are always relative to the
|
||||
+# installed location of the package. This works both for relative and also for absolute locations.
|
||||
+# For absolute locations it works only if the absolute location is a subdirectory
|
||||
+# of CMAKE_INSTALL_PREFIX.
|
||||
+#
|
||||
+# By default configure_package_config_file() also generates two helper macros,
|
||||
+# set_and_check() and check_required_components() into the FooConfig.cmake file.
|
||||
+#
|
||||
+# set_and_check() should be used instead of the normal set()
|
||||
+# command for setting directories and file locations. Additionally to setting the
|
||||
+# variable it also checks that the referenced file or directory actually exists
|
||||
+# and fails with a FATAL_ERROR otherwise. This makes sure that the created
|
||||
+# FooConfig.cmake file does not contain wrong references.
|
||||
+# When using the NO_SET_AND_CHECK_MACRO, this macro is not generated into the
|
||||
+# FooConfig.cmake file.
|
||||
+#
|
||||
+# check_required_components(<package_name>) should be called at the end of the
|
||||
+# FooConfig.cmake file if the package supports components.
|
||||
+# This macro checks whether all requested, non-optional components have been found,
|
||||
+# and if this is not the case, sets the Foo_FOUND variable to FALSE, so that the package
|
||||
+# is considered to be not found.
|
||||
+# It does that by testing the Foo_<Component>_FOUND variables for all requested
|
||||
+# required components.
|
||||
+# When using the NO_CHECK_REQUIRED_COMPONENTS option, this macro is not generated
|
||||
+# into the FooConfig.cmake file.
|
||||
+#
|
||||
+# For an example see below the documentation for WRITE_BASIC_PACKAGE_VERSION_FILE().
|
||||
+#
|
||||
+#
|
||||
+# WRITE_BASIC_PACKAGE_VERSION_FILE( filename VERSION major.minor.patch COMPATIBILITY (AnyNewerVersion|SameMajorVersion|ExactVersion) )
|
||||
+#
|
||||
+# Writes a file for use as <package>ConfigVersion.cmake file to <filename>.
|
||||
+# See the documentation of FIND_PACKAGE() for details on this.
|
||||
+# filename is the output filename, it should be in the build tree.
|
||||
+# major.minor.patch is the version number of the project to be installed
|
||||
+# The COMPATIBILITY mode AnyNewerVersion means that the installed package version
|
||||
+# will be considered compatible if it is newer or exactly the same as the requested version.
|
||||
+# This mode should be used for packages which are fully backward compatible,
|
||||
+# also across major versions.
|
||||
+# If SameMajorVersion is used instead, then the behaviour differs from AnyNewerVersion
|
||||
+# in that the major version number must be the same as requested, e.g. version 2.0 will
|
||||
+# not be considered compatible if 1.0 is requested.
|
||||
+# This mode should be used for packages which guarantee backward compatibility within the
|
||||
+# same major version.
|
||||
+# If ExactVersion is used, then the package is only considered compatible if the requested
|
||||
+# version matches exactly its own version number (not considering the tweak version).
|
||||
+# For example, version 1.2.3 of a package is only considered compatible to requested version 1.2.3.
|
||||
+# This mode is for packages without compatibility guarantees.
|
||||
+# If your project has more elaborated version matching rules, you will need to write your
|
||||
+# own custom ConfigVersion.cmake file instead of using this macro.
|
||||
+#
|
||||
+# Internally, this macro executes configure_file() to create the resulting
|
||||
+# version file. Depending on the COMPATIBILITY, either the file
|
||||
+# BasicConfigVersion-SameMajorVersion.cmake.in or BasicConfigVersion-AnyNewerVersion.cmake.in
|
||||
+# is used. Please note that these two files are internal to CMake and you should
|
||||
+# not call configure_file() on them yourself, but they can be used as starting
|
||||
+# point to create more sophisticted custom ConfigVersion.cmake files.
|
||||
+#
|
||||
+#
|
||||
+# Example using both configure_package_config_file() and write_basic_package_version_file():
|
||||
+# CMakeLists.txt:
|
||||
+# set(INCLUDE_INSTALL_DIR include/ ... CACHE )
|
||||
+# set(LIB_INSTALL_DIR lib/ ... CACHE )
|
||||
+# set(SYSCONFIG_INSTALL_DIR etc/foo/ ... CACHE )
|
||||
+# ...
|
||||
+# include(CMakePackageConfigHelpers)
|
||||
+# configure_package_config_file(FooConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake
|
||||
+# INSTALL_DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake
|
||||
+# PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR)
|
||||
+# write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
|
||||
+# VERSION 1.2.3
|
||||
+# COMPATIBILITY SameMajorVersion )
|
||||
+# install(FILES ${CMAKE_CURRENT_BINARY_DIR}/FooConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/FooConfigVersion.cmake
|
||||
+# DESTINATION ${LIB_INSTALL_DIR}/Foo/cmake )
|
||||
+#
|
||||
+# With a FooConfig.cmake.in:
|
||||
+# set(FOO_VERSION x.y.z)
|
||||
+# ...
|
||||
+# @PACKAGE_INIT@
|
||||
+# ...
|
||||
+# set_and_check(FOO_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
||||
+# set_and_check(FOO_SYSCONFIG_DIR "@PACKAGE_SYSCONFIG_INSTALL_DIR@")
|
||||
+#
|
||||
+# check_required_components(Foo)
|
||||
+
|
||||
+
|
||||
+#=============================================================================
|
||||
+# Copyright 2012 Alexander Neundorf <neundorf@kde.org>
|
||||
+#
|
||||
+# Distributed under the OSI-approved BSD License (the "License");
|
||||
+# see accompanying file Copyright.txt for details.
|
||||
+#
|
||||
+# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
+# See the License for more information.
|
||||
+#=============================================================================
|
||||
+# (To distribute this file outside of CMake, substitute the full
|
||||
+# License text for the above reference.)
|
||||
+
|
||||
+include(CMakeParseArguments)
|
||||
+
|
||||
+include(WriteBasicConfigVersionFile)
|
||||
+
|
||||
+macro(WRITE_BASIC_PACKAGE_VERSION_FILE)
|
||||
+ write_basic_config_version_file(${ARGN})
|
||||
+endmacro()
|
||||
+
|
||||
+
|
||||
+function(CONFIGURE_PACKAGE_CONFIG_FILE _inputFile _outputFile)
|
||||
+ set(options NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO)
|
||||
+ set(oneValueArgs INSTALL_DESTINATION )
|
||||
+ set(multiValueArgs PATH_VARS )
|
||||
+
|
||||
+ cmake_parse_arguments(CCF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
+
|
||||
+ if(CCF_UNPARSED_ARGUMENTS)
|
||||
+ message(FATAL_ERROR "Unknown keywords given to CONFIGURE_PACKAGE_CONFIG_FILE(): \"${CCF_UNPARSED_ARGUMENTS}\"")
|
||||
+ endif()
|
||||
+
|
||||
+ if(NOT CCF_INSTALL_DESTINATION)
|
||||
+ message(FATAL_ERROR "No INSTALL_DESTINATION given to CONFIGURE_PACKAGE_CONFIG_FILE()")
|
||||
+ endif()
|
||||
+
|
||||
+ if(IS_ABSOLUTE "${CCF_INSTALL_DESTINATION}")
|
||||
+ set(absInstallDir "${CCF_INSTALL_DESTINATION}")
|
||||
+ else()
|
||||
+ set(absInstallDir "${CMAKE_INSTALL_PREFIX}/${CCF_INSTALL_DESTINATION}")
|
||||
+ endif()
|
||||
+ file(RELATIVE_PATH PACKAGE_RELATIVE_PATH "${absInstallDir}" "${CMAKE_INSTALL_PREFIX}" )
|
||||
+
|
||||
+ foreach(var ${CCF_PATH_VARS})
|
||||
+ if(NOT DEFINED ${var})
|
||||
+ message(FATAL_ERROR "Variable ${var} does not exist")
|
||||
+ else()
|
||||
+ if(IS_ABSOLUTE "${${var}}")
|
||||
+ string(REPLACE "${CMAKE_INSTALL_PREFIX}" "\${PACKAGE_PREFIX_DIR}"
|
||||
+ PACKAGE_${var} "${${var}}")
|
||||
+ else()
|
||||
+ set(PACKAGE_${var} "\${PACKAGE_PREFIX_DIR}/${${var}}")
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ endforeach()
|
||||
+
|
||||
+ set(PACKAGE_INIT "
|
||||
+####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
|
||||
+get_filename_component(PACKAGE_PREFIX_DIR \"\${CMAKE_CURRENT_LIST_DIR}/${PACKAGE_RELATIVE_PATH}\" ABSOLUTE)
|
||||
+")
|
||||
+
|
||||
+ if(NOT CCF_NO_SET_AND_CHECK_MACRO)
|
||||
+ set(PACKAGE_INIT "${PACKAGE_INIT}
|
||||
+macro(set_and_check _var _file)
|
||||
+ set(\${_var} \"\${_file}\")
|
||||
+ if(NOT EXISTS \"\${_file}\")
|
||||
+ message(FATAL_ERROR \"File or directory \${_file} referenced by variable \${_var} does not exist !\")
|
||||
+ endif()
|
||||
+endmacro()
|
||||
+")
|
||||
+ endif()
|
||||
+
|
||||
+
|
||||
+ if(NOT CCF_NO_CHECK_REQUIRED_COMPONENTS_MACRO)
|
||||
+ set(PACKAGE_INIT "${PACKAGE_INIT}
|
||||
+macro(check_required_components _NAME)
|
||||
+ foreach(comp \${\${_NAME}_FIND_COMPONENTS})
|
||||
+ if(NOT \${_NAME}_\${comp}_FOUND)
|
||||
+ if(\${_NAME}_FIND_REQUIRED_\${comp})
|
||||
+ set(\${_NAME}_FOUND FALSE)
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ endforeach(comp)
|
||||
+endmacro()
|
||||
+")
|
||||
+ endif()
|
||||
+
|
||||
+ set(PACKAGE_INIT "${PACKAGE_INIT}
|
||||
+####################################################################################")
|
||||
+
|
||||
+ configure_file("${_inputFile}" "${_outputFile}" @ONLY)
|
||||
+
|
||||
+endfunction()
|
||||
diff -Naur glm/cmake/glmBuildConfig.cmake.in glmn/cmake/glmBuildConfig.cmake.in
|
||||
--- glm/cmake/glmBuildConfig.cmake.in 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glmn/cmake/glmBuildConfig.cmake.in 2019-09-23 00:12:08.090955650 +0200
|
||||
@@ -0,0 +1,6 @@
|
||||
+set(GLM_VERSION "@GLM_VERSION@")
|
||||
+set(GLM_INCLUDE_DIRS "@CMAKE_CURRENT_SOURCE_DIR@")
|
||||
+
|
||||
+if (NOT CMAKE_VERSION VERSION_LESS "3.0")
|
||||
+ include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake")
|
||||
+endif()
|
||||
diff -Naur glm/cmake/glmConfig.cmake.in glmn/cmake/glmConfig.cmake.in
|
||||
--- glm/cmake/glmConfig.cmake.in 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glmn/cmake/glmConfig.cmake.in 2019-09-23 00:12:14.566373412 +0200
|
||||
@@ -0,0 +1,9 @@
|
||||
+set(GLM_VERSION "@GLM_VERSION@")
|
||||
+
|
||||
+@PACKAGE_INIT@
|
||||
+
|
||||
+set_and_check(GLM_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
|
||||
+
|
||||
+if (NOT CMAKE_VERSION VERSION_LESS "3.0")
|
||||
+ include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake")
|
||||
+endif()
|
||||
diff -Naur glm/cmake/glm.pc.in glmn/cmake/glm.pc.in
|
||||
--- glm/cmake/glm.pc.in 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glmn/cmake/glm.pc.in 2019-09-23 00:11:59.695710511 +0200
|
||||
@@ -0,0 +1,7 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+includedir=${prefix}/include
|
||||
+
|
||||
+Name: GLM
|
||||
+Description: OpenGL Mathematics
|
||||
+Version: @GLM_VERSION@
|
||||
+Cflags: -I${includedir}
|
||||
diff -Naur glm/cmake/GNUInstallDirs.cmake glmn/cmake/GNUInstallDirs.cmake
|
||||
--- glm/cmake/GNUInstallDirs.cmake 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glmn/cmake/GNUInstallDirs.cmake 2019-09-23 00:11:47.363819337 +0200
|
||||
@@ -0,0 +1,188 @@
|
||||
+# - Define GNU standard installation directories
|
||||
+# Provides install directory variables as defined for GNU software:
|
||||
+# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html
|
||||
+# Inclusion of this module defines the following variables:
|
||||
+# CMAKE_INSTALL_<dir> - destination for files of a given type
|
||||
+# CMAKE_INSTALL_FULL_<dir> - corresponding absolute path
|
||||
+# where <dir> is one of:
|
||||
+# BINDIR - user executables (bin)
|
||||
+# SBINDIR - system admin executables (sbin)
|
||||
+# LIBEXECDIR - program executables (libexec)
|
||||
+# SYSCONFDIR - read-only single-machine data (etc)
|
||||
+# SHAREDSTATEDIR - modifiable architecture-independent data (com)
|
||||
+# LOCALSTATEDIR - modifiable single-machine data (var)
|
||||
+# LIBDIR - object code libraries (lib or lib64 or lib/<multiarch-tuple> on Debian)
|
||||
+# INCLUDEDIR - C header files (include)
|
||||
+# OLDINCLUDEDIR - C header files for non-gcc (/usr/include)
|
||||
+# DATAROOTDIR - read-only architecture-independent data root (share)
|
||||
+# DATADIR - read-only architecture-independent data (DATAROOTDIR)
|
||||
+# INFODIR - info documentation (DATAROOTDIR/info)
|
||||
+# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale)
|
||||
+# MANDIR - man documentation (DATAROOTDIR/man)
|
||||
+# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME)
|
||||
+# Each CMAKE_INSTALL_<dir> value may be passed to the DESTINATION options of
|
||||
+# install() commands for the corresponding file type. If the includer does
|
||||
+# not define a value the above-shown default will be used and the value will
|
||||
+# appear in the cache for editing by the user.
|
||||
+# Each CMAKE_INSTALL_FULL_<dir> value contains an absolute path constructed
|
||||
+# from the corresponding destination by prepending (if necessary) the value
|
||||
+# of CMAKE_INSTALL_PREFIX.
|
||||
+
|
||||
+#=============================================================================
|
||||
+# Copyright 2011 Nikita Krupen'ko <krnekit@gmail.com>
|
||||
+# Copyright 2011 Kitware, Inc.
|
||||
+#
|
||||
+# Distributed under the OSI-approved BSD License (the "License");
|
||||
+# see accompanying file Copyright.txt for details.
|
||||
+#
|
||||
+# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
+# See the License for more information.
|
||||
+#=============================================================================
|
||||
+# (To distribute this file outside of CMake, substitute the full
|
||||
+# License text for the above reference.)
|
||||
+
|
||||
+# Installation directories
|
||||
+#
|
||||
+if(NOT DEFINED CMAKE_INSTALL_BINDIR)
|
||||
+ set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_SBINDIR)
|
||||
+ set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR)
|
||||
+ set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR)
|
||||
+ set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR)
|
||||
+ set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR)
|
||||
+ set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
||||
+ set(_LIBDIR_DEFAULT "lib")
|
||||
+ # Override this default 'lib' with 'lib64' iff:
|
||||
+ # - we are on Linux system but NOT cross-compiling
|
||||
+ # - we are NOT on debian
|
||||
+ # - we are on a 64 bits system
|
||||
+ # reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf
|
||||
+ # For Debian with multiarch, use 'lib/${CMAKE_LIBRARY_ARCHITECTURE}' if
|
||||
+ # CMAKE_LIBRARY_ARCHITECTURE is set (which contains e.g. "i386-linux-gnu"
|
||||
+ # See http://wiki.debian.org/Multiarch
|
||||
+ if((CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
|
||||
+ AND NOT CMAKE_CROSSCOMPILING)
|
||||
+ if (EXISTS "/etc/debian_version") # is this a debian system ?
|
||||
+ if(CMAKE_LIBRARY_ARCHITECTURE)
|
||||
+ set(_LIBDIR_DEFAULT "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
+ endif()
|
||||
+ else() # not debian, rely on CMAKE_SIZEOF_VOID_P:
|
||||
+ if(NOT DEFINED CMAKE_SIZEOF_VOID_P)
|
||||
+ message(AUTHOR_WARNING
|
||||
+ "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. "
|
||||
+ "Please enable at least one language before including GNUInstallDirs.")
|
||||
+ else()
|
||||
+ if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
|
||||
+ set(_LIBDIR_DEFAULT "lib64")
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ endif()
|
||||
+ set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR)
|
||||
+ set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR)
|
||||
+ set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR)
|
||||
+ set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)")
|
||||
+endif()
|
||||
+
|
||||
+#-----------------------------------------------------------------------------
|
||||
+# Values whose defaults are relative to DATAROOTDIR. Store empty values in
|
||||
+# the cache and store the defaults in local variables if the cache values are
|
||||
+# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes.
|
||||
+
|
||||
+if(NOT CMAKE_INSTALL_DATADIR)
|
||||
+ set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)")
|
||||
+ set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT CMAKE_INSTALL_INFODIR)
|
||||
+ set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)")
|
||||
+ set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT CMAKE_INSTALL_LOCALEDIR)
|
||||
+ set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)")
|
||||
+ set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT CMAKE_INSTALL_MANDIR)
|
||||
+ set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)")
|
||||
+ set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man")
|
||||
+endif()
|
||||
+
|
||||
+if(NOT CMAKE_INSTALL_DOCDIR)
|
||||
+ set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)")
|
||||
+ set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}")
|
||||
+endif()
|
||||
+
|
||||
+#-----------------------------------------------------------------------------
|
||||
+
|
||||
+mark_as_advanced(
|
||||
+ CMAKE_INSTALL_BINDIR
|
||||
+ CMAKE_INSTALL_SBINDIR
|
||||
+ CMAKE_INSTALL_LIBEXECDIR
|
||||
+ CMAKE_INSTALL_SYSCONFDIR
|
||||
+ CMAKE_INSTALL_SHAREDSTATEDIR
|
||||
+ CMAKE_INSTALL_LOCALSTATEDIR
|
||||
+ CMAKE_INSTALL_LIBDIR
|
||||
+ CMAKE_INSTALL_INCLUDEDIR
|
||||
+ CMAKE_INSTALL_OLDINCLUDEDIR
|
||||
+ CMAKE_INSTALL_DATAROOTDIR
|
||||
+ CMAKE_INSTALL_DATADIR
|
||||
+ CMAKE_INSTALL_INFODIR
|
||||
+ CMAKE_INSTALL_LOCALEDIR
|
||||
+ CMAKE_INSTALL_MANDIR
|
||||
+ CMAKE_INSTALL_DOCDIR
|
||||
+ )
|
||||
+
|
||||
+# Result directories
|
||||
+#
|
||||
+foreach(dir
|
||||
+ BINDIR
|
||||
+ SBINDIR
|
||||
+ LIBEXECDIR
|
||||
+ SYSCONFDIR
|
||||
+ SHAREDSTATEDIR
|
||||
+ LOCALSTATEDIR
|
||||
+ LIBDIR
|
||||
+ INCLUDEDIR
|
||||
+ OLDINCLUDEDIR
|
||||
+ DATAROOTDIR
|
||||
+ DATADIR
|
||||
+ INFODIR
|
||||
+ LOCALEDIR
|
||||
+ MANDIR
|
||||
+ DOCDIR
|
||||
+ )
|
||||
+ if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}})
|
||||
+ set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}")
|
||||
+ else()
|
||||
+ set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}")
|
||||
+ endif()
|
||||
+endforeach()
|
||||
diff -Naur glm/CMakeLists.txt glmn/CMakeLists.txt
|
||||
--- glm/CMakeLists.txt 2019-09-07 14:10:16.000000000 +0200
|
||||
+++ glmn/CMakeLists.txt 2019-09-23 00:10:29.559815104 +0200
|
||||
@@ -4,6 +4,11 @@
|
||||
set(GLM_VERSION "0.9.9")
|
||||
project(glm VERSION ${GLM_VERSION} LANGUAGES CXX)
|
||||
|
||||
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
+
|
||||
+include(GNUInstallDirs)
|
||||
+include(CMakePackageConfigHelpers)
|
||||
+
|
||||
enable_testing()
|
||||
|
||||
option(GLM_QUIET "No CMake Message" OFF)
|
||||
@@ -237,3 +242,62 @@
|
||||
add_subdirectory(glm)
|
||||
add_subdirectory(test)
|
||||
|
||||
+set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm")
|
||||
+install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
+
|
||||
+
|
||||
+# CMake automatically adds an architecture compatibility check to make sure
|
||||
+# 32 and 64 bit code is not accidentally mixed. For a header-only library this
|
||||
+# is not required. The check can be disabled by temporarily unsetting
|
||||
+# CMAKE_SIZEOF_VOID_P. In CMake 3.14 and later this can be achieved more cleanly
|
||||
+# with write_basic_package_version_file(ARCH_INDEPENDENT).
|
||||
+# TODO: Use this once a newer CMake can be required.
|
||||
+set(GLM_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
|
||||
+unset(CMAKE_SIZEOF_VOID_P)
|
||||
+write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion)
|
||||
+set(CMAKE_SIZEOF_VOID_P ${GLM_SIZEOF_VOID_P})
|
||||
+
|
||||
+# build tree package config
|
||||
+configure_file(cmake/glmBuildConfig.cmake.in glmConfig.cmake @ONLY)
|
||||
+
|
||||
+# install tree package config
|
||||
+configure_package_config_file(
|
||||
+ cmake/glmConfig.cmake.in
|
||||
+ ${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake
|
||||
+ INSTALL_DESTINATION ${GLM_INSTALL_CONFIGDIR}
|
||||
+ PATH_VARS CMAKE_INSTALL_INCLUDEDIR
|
||||
+ NO_CHECK_REQUIRED_COMPONENTS_MACRO)
|
||||
+
|
||||
+install(FILES
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/${GLM_INSTALL_CONFIGDIR}/glmConfig.cmake"
|
||||
+ "${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake"
|
||||
+ DESTINATION ${GLM_INSTALL_CONFIGDIR})
|
||||
+
|
||||
+add_library(glm INTERFACE)
|
||||
+target_include_directories(glm INTERFACE
|
||||
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
|
||||
+install(TARGETS glm EXPORT glmTargets)
|
||||
+
|
||||
+export(EXPORT glmTargets FILE "${CMAKE_CURRENT_BINARY_DIR}/glmTargets.cmake")
|
||||
+
|
||||
+install(EXPORT glmTargets FILE glmTargets.cmake DESTINATION ${GLM_INSTALL_CONFIGDIR})
|
||||
+
|
||||
+# build pkg-config file
|
||||
+configure_file("./cmake/glm.pc.in" "glm.pc" @ONLY)
|
||||
+
|
||||
+# install pkg-config file
|
||||
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/glm.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
|
||||
+
|
||||
+export(PACKAGE glm)
|
||||
+
|
||||
+if(NOT TARGET uninstall)
|
||||
+ configure_file(
|
||||
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
|
||||
+ IMMEDIATE @ONLY)
|
||||
+
|
||||
+ add_custom_target(uninstall
|
||||
+ COMMAND ${CMAKE_COMMAND} -P
|
||||
+ ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
||||
+endif()
|
||||
diff -Naur glm/cmake_uninstall.cmake.in glmn/cmake_uninstall.cmake.in
|
||||
--- glm/cmake_uninstall.cmake.in 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ glmn/cmake_uninstall.cmake.in 2019-09-23 00:12:22.495660449 +0200
|
||||
@@ -0,0 +1,26 @@
|
||||
+if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
+ message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
+endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||
+
|
||||
+if (NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||
+ set (CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@")
|
||||
+endif ()
|
||||
+ message(${CMAKE_INSTALL_PREFIX})
|
||||
+
|
||||
+file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
+string(REGEX REPLACE "\n" ";" files "${files}")
|
||||
+foreach(file ${files})
|
||||
+ message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
|
||||
+ if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
+ exec_program(
|
||||
+ "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
+ OUTPUT_VARIABLE rm_out
|
||||
+ RETURN_VALUE rm_retval
|
||||
+ )
|
||||
+ if(NOT "${rm_retval}" STREQUAL 0)
|
||||
+ message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||
+ endif(NOT "${rm_retval}" STREQUAL 0)
|
||||
+ else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
+ message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||
+ endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||
+endforeach(file)
|
|
@ -1,61 +0,0 @@
|
|||
From 6c52e1b902b869c25e2fe39cff6364143a04da61 Mon Sep 17 00:00:00 2001
|
||||
From: Niklas Larsson <niklas@mm.st>
|
||||
Date: Tue, 11 Dec 2018 19:56:22 +0100
|
||||
Subject: [PATCH] Only check for Node when required
|
||||
|
||||
---
|
||||
test/TestRun.hs | 34 ++++++++++++++++++++--------------
|
||||
1 file changed, 20 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/test/TestRun.hs b/test/TestRun.hs
|
||||
index c7db9fdcd..4809911f3 100644
|
||||
--- a/test/TestRun.hs
|
||||
+++ b/test/TestRun.hs
|
||||
@@ -11,6 +11,7 @@ import Data.Proxy
|
||||
import Data.Typeable
|
||||
import Options.Applicative
|
||||
import System.Directory
|
||||
+import System.Environment
|
||||
import System.Exit
|
||||
import System.FilePath ((</>))
|
||||
import System.Info
|
||||
@@ -103,20 +104,25 @@ runTest path flags = do
|
||||
normalise (x : xs) = x : normalise xs
|
||||
normalise [] = []
|
||||
|
||||
+checkNode :: IO ()
|
||||
+checkNode = do
|
||||
+ nodePath <- findExecutable "node"
|
||||
+ nodejsPath <- findExecutable "nodejs"
|
||||
+ let node = nodePath <|> nodejsPath
|
||||
+ case node of
|
||||
+ Nothing -> do
|
||||
+ putStrLn "For running the test suite against Node, node must be installed."
|
||||
+ exitFailure
|
||||
+ Just _ -> return ()
|
||||
+
|
||||
main :: IO ()
|
||||
main = do
|
||||
- nodePath <- findExecutable "node"
|
||||
- nodejsPath <- findExecutable "nodejs"
|
||||
- let node = nodePath <|> nodejsPath
|
||||
- case node of
|
||||
- Nothing -> do
|
||||
- putStrLn "For running the test suite against Node, node must be installed."
|
||||
- exitFailure
|
||||
- Just _ -> do
|
||||
- defaultMainWithIngredients ingredients $
|
||||
+ args <- getArgs
|
||||
+ when ("--node" `elem` args) checkNode
|
||||
+ defaultMainWithIngredients ingredients $
|
||||
askOption $ \(NodeOpt node) ->
|
||||
- let (codegen, flags) = if node then (JS, ["--codegen", "node"])
|
||||
- else (C , [])
|
||||
- in
|
||||
- mkGoldenTests (testFamiliesForCodegen codegen)
|
||||
- (flags ++ idrisFlags)
|
||||
+ let (codegen, flags) = if node then (JS, ["--codegen", "node"])
|
||||
+ else (C , [])
|
||||
+ in
|
||||
+ mkGoldenTests (testFamiliesForCodegen codegen) (flags ++ idrisFlags)
|
||||
+
|
|
@ -22,10 +22,8 @@ Date: Wed, 24 Feb 2016 01:04:11 +0000
|
|||
|
||||
Also fix a pre-existing typo.
|
||||
|
||||
Index: ilmbase/ImathTest/testBoxAlgo.cpp
|
||||
===================================================================
|
||||
--- ilmbase.orig/ImathTest/testBoxAlgo.cpp
|
||||
+++ ilmbase/ImathTest/testBoxAlgo.cpp
|
||||
--- a/IlmBase/ImathTest/testBoxAlgo.cpp
|
||||
+++ b/IlmBase/ImathTest/testBoxAlgo.cpp
|
||||
@@ -886,10 +886,11 @@ boxMatrixTransform ()
|
||||
|
||||
assert (approximatelyEqual (b2.min, b4.min, e));
|
||||
|
@ -54,10 +52,8 @@ On 32-bit x86, allow even greater discrepency at double
|
|||
precision, due to possible double-rounding. See
|
||||
https://lists.nongnu.org/archive/html/openexr-devel/2015-12/msg00001.html
|
||||
|
||||
Index: ilmbase/ImathTest/testBox.cpp
|
||||
===================================================================
|
||||
--- ilmbase.orig/ImathTest/testBox.cpp
|
||||
+++ ilmbase/ImathTest/testBox.cpp
|
||||
--- a/IlmBase/ImathTest/testBox.cpp
|
||||
+++ b/IlmBase/ImathTest/testBox.cpp
|
||||
@@ -47,6 +47,58 @@ using namespace IMATH_INTERNAL_NAMESPACE
|
||||
|
||||
namespace {
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
Fix pkg-config files when using the CMake build system.
|
||||
|
||||
Upstream bug report:
|
||||
https://github.com/openexr/openexr/issues/567
|
||||
|
||||
diff --git a/IlmBase/config/CMakeLists.txt b/IlmBase/config/CMakeLists.txt
|
||||
index 508176a..9e6ab91 100644
|
||||
--- a/IlmBase/config/CMakeLists.txt
|
||||
+++ b/IlmBase/config/CMakeLists.txt
|
||||
@@ -71,9 +71,9 @@ if(ILMBASE_INSTALL_PKG_CONFIG)
|
||||
# use a helper function to avoid variable pollution, but pretty simple
|
||||
function(ilmbase_pkg_config_help pcinfile)
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
- set(exec_prefix ${CMAKE_INSTALL_BINDIR})
|
||||
- set(libdir ${CMAKE_INSTALL_LIBDIR})
|
||||
- set(includedir ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
+ set(exec_prefix ${CMAKE_INSTALL_FULL_BINDIR})
|
||||
+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
+ set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
||||
set(LIB_SUFFIX_DASH ${ILMBASE_LIB_SUFFIX})
|
||||
if(TARGET Threads::Threads)
|
||||
# hrm, can't use properties as they end up as generator expressions
|
||||
diff --git a/OpenEXR/config/CMakeLists.txt b/OpenEXR/config/CMakeLists.txt
|
||||
index 1ef829a..b8dc141 100644
|
||||
--- a/OpenEXR/config/CMakeLists.txt
|
||||
+++ b/OpenEXR/config/CMakeLists.txt
|
||||
@@ -72,9 +72,9 @@ if(OPENEXR_INSTALL_PKG_CONFIG)
|
||||
# use a helper function to avoid variable pollution, but pretty simple
|
||||
function(openexr_pkg_config_help pcinfile)
|
||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
- set(exec_prefix ${CMAKE_INSTALL_BINDIR})
|
||||
- set(libdir ${CMAKE_INSTALL_LIBDIR})
|
||||
- set(includedir ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
+ set(exec_prefix ${CMAKE_INSTALL_FULL_BINDIR})
|
||||
+ set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
+ set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
||||
set(LIB_SUFFIX_DASH ${OPENEXR_LIB_SUFFIX})
|
||||
if(TARGET Threads::Threads)
|
||||
# hrm, can't use properties as they end up as generator expressions
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
Fix test failures induced by setting the SOURCE_DATE_EPOCH variable.
|
||||
|
||||
Taken from upstream: <https://github.com/p11-glue/p11-kit/pull/213>.
|
||||
|
||||
From 2a474e1fe8f4bd8b4ed7622e5cf3b2718a202562 Mon Sep 17 00:00:00 2001
|
||||
From: Daiki Ueno <dueno@redhat.com>
|
||||
Date: Mon, 28 Jan 2019 13:03:15 +0100
|
||||
Subject: [PATCH] extract-jks: Prefer _p11_extract_jks_timestamp to
|
||||
SOURCE_DATE_EPOCH
|
||||
|
||||
Give _p11_extract_jks_timestamp precedence over SOURCE_DATE_EPOCH so
|
||||
that the test results are not affected by the envvar settings.
|
||||
---
|
||||
trust/extract-jks.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/trust/extract-jks.c b/trust/extract-jks.c
|
||||
index ad8dc35..a6f855f 100644
|
||||
--- a/trust/extract-jks.c
|
||||
+++ b/trust/extract-jks.c
|
||||
@@ -250,7 +250,9 @@ prepare_jks_buffer (p11_enumerate *ex,
|
||||
* when this was this certificate was added to the keystore, however
|
||||
* we don't have that information. Java uses time in milliseconds
|
||||
*/
|
||||
- {
|
||||
+ if (_p11_extract_jks_timestamp)
|
||||
+ now = _p11_extract_jks_timestamp;
|
||||
+ else {
|
||||
char *source_date_epoch;
|
||||
source_date_epoch = secure_getenv ("SOURCE_DATE_EPOCH");
|
||||
if (source_date_epoch) {
|
||||
@@ -276,9 +278,7 @@ prepare_jks_buffer (p11_enumerate *ex,
|
||||
return false;
|
||||
}
|
||||
now = epoch;
|
||||
- } else if (_p11_extract_jks_timestamp)
|
||||
- now = _p11_extract_jks_timestamp;
|
||||
- else
|
||||
+ } else
|
||||
now = time (NULL);
|
||||
}
|
||||
|
|
@ -180,14 +180,14 @@ colors, styles, options and details.")
|
|||
(define-public asymptote
|
||||
(package
|
||||
(name "asymptote")
|
||||
(version "2.49")
|
||||
(version "2.53")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/asymptote/"
|
||||
version "/asymptote-" version ".src.tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vljhq68gyc2503l9fj76rk1q4a4db9a1sp3fdfagqqmirnmybp5"))))
|
||||
"0ysj6b3ffifbraflkixh19hmdh3qjij26wyj4z66085qw17v7qkw"))))
|
||||
(build-system gnu-build-system)
|
||||
;; Note: The 'asy' binary retains a reference to docdir for use with its
|
||||
;; "help" command in interactive mode, so adding a "doc" output is not
|
||||
|
@ -199,6 +199,8 @@ colors, styles, options and details.")
|
|||
("texinfo" ,texinfo) ;For generating documentation
|
||||
;; For the manual and the tests.
|
||||
("texlive" ,(texlive-union (list texlive-amsfonts
|
||||
texlive-epsf
|
||||
texlive-latex-base
|
||||
texlive-latex-geometry
|
||||
texlive-latex-graphics
|
||||
texlive-latex-oberdiek ; for ifluatex
|
||||
|
|
|
@ -164,7 +164,7 @@ different programming languages.")
|
|||
(define-public fmt
|
||||
(package
|
||||
(name "fmt")
|
||||
(version "5.3.0")
|
||||
(version "6.0.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -172,7 +172,7 @@ different programming languages.")
|
|||
version "/fmt-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0p51nhmvjniqlffmmb9djhprnclvm448f2vkdxymvxw307hl21sc"))))
|
||||
"0h148anbaqgch6n69pxsvs1c9wmykgd052wmzgdia7qpz8w6p8dl"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
|
||||
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
|
||||
;;; Copyright © 2016, 2018 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2016, 2018-2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||
;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org>
|
||||
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; Copyright © 2016, 2017 Troy Sankey <sankeytms@gmail.com>
|
||||
|
@ -16397,3 +16397,30 @@ because lxml.etree already has it's own implementation of XPath 1.0.")
|
|||
(synopsis "Python library to parse BibTeX files")
|
||||
(description "BibtexParser is a Python library to parse BibTeX files.")
|
||||
(license (list license:bsd-3 license:lgpl3))))
|
||||
|
||||
(define-public python-distro
|
||||
(package
|
||||
(name "python-distro")
|
||||
(version "1.4.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "distro" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0mrg75w4ap7mdzyga75yaid9n8bgb345ih5mwjp3plj6v1jxwb9n"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pytest" ,python-pytest)))
|
||||
(home-page "https://github.com/nir0s/distro")
|
||||
(synopsis
|
||||
"OS platform information API")
|
||||
(description
|
||||
"@code{distro} provides information about the OS distribution it runs on,
|
||||
such as a reliable machine-readable ID, or version information.
|
||||
|
||||
It is the recommended replacement for Python's original
|
||||
`platform.linux_distribution` function (which will be removed in Python 3.8).
|
||||
@code{distro} also provides a command-line interface to output the platform
|
||||
information in various formats.")
|
||||
(license license:asl2.0)))
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(define-public re2
|
||||
(package
|
||||
(name "re2")
|
||||
(version "2019-08-01")
|
||||
(version "2019-09-01")
|
||||
(home-page "https://github.com/google/re2")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
|
@ -38,7 +38,7 @@
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"11w9x16y26nfgliis28ivrh9b1x6pxawdwxfwxfjh34h57c0dkzg"))))
|
||||
"1a0m3p0nx7vz2sgryrsjnbiwkjpj98swjb29r0w5lsv3f92dqyn4"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
|
|
|
@ -44,6 +44,17 @@
|
|||
(substitute* "build/common.inc"
|
||||
(("export tbb_build_prefix.+$")
|
||||
"export tbb_build_prefix?=guix\n"))
|
||||
|
||||
;; Don't capture the build time and kernel version.
|
||||
(substitute* "build/version_info_linux.sh"
|
||||
(("uname -srv") "uname -s")
|
||||
(("`date -u`") "01 Jan 1970"))
|
||||
|
||||
(substitute* "build/linux.inc"
|
||||
(("os_kernel_version:=.*")
|
||||
"os_kernel_version:=5\n")
|
||||
(("os_version:=.*")
|
||||
"os_version:=1\n"))
|
||||
#t))))
|
||||
(outputs '("out" "doc"))
|
||||
(build-system gnu-build-system)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2012, 2013, 2015, 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
|
@ -61,6 +61,18 @@ their source and the command-line Info reader. The emphasis of the language
|
|||
is on expressing the content semantically, avoiding physical markup commands.")
|
||||
(license gpl3+)))
|
||||
|
||||
(define-public texinfo-6.7
|
||||
(package
|
||||
(inherit texinfo)
|
||||
(version "6.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/texinfo/texinfo-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1aicn1v3czqii08wc91jw089n1x3gfchkf808q2as59dak0h714q"))))))
|
||||
|
||||
(define-public texinfo-5
|
||||
(package (inherit texinfo)
|
||||
(version "5.2")
|
||||
|
|
|
@ -122,16 +122,15 @@ in intelligent transportation networks.")
|
|||
(define-public p11-kit
|
||||
(package
|
||||
(name "p11-kit")
|
||||
(version "0.23.15")
|
||||
(version "0.23.17")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/p11-glue/p11-kit/releases/"
|
||||
"download/" version "/p11-kit-" version ".tar.gz"))
|
||||
(patches (search-patches "p11-kit-jks-timestamps.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"166pwj00cffv4qq4dvx0k53zka0b0r1fa0whc49007vsqyh3khgp"))))
|
||||
"07kwdlw07jk9833k43kkhv0q9gkll3vmd25wwp68cpy0crfv4isl"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -828,7 +827,7 @@ then ported to the GNU / Linux environment.")
|
|||
(define-public mbedtls-apache
|
||||
(package
|
||||
(name "mbedtls-apache")
|
||||
(version "2.16.2")
|
||||
(version "2.16.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -838,7 +837,7 @@ then ported to the GNU / Linux environment.")
|
|||
version "-apache.tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1906hbwlkq32075hca4vjad03dcc36aycvmaz8yvhr3ygg6lz0x6"))))
|
||||
"0qd65lnr63vmx2gxla6lcmm5gawlnaj4wy4h4vmdc3h9h9nyw6zc"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -876,7 +875,7 @@ coding footprint.")
|
|||
(define-public dehydrated
|
||||
(package
|
||||
(name "dehydrated")
|
||||
(version "0.6.2")
|
||||
(version "0.6.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -884,7 +883,7 @@ coding footprint.")
|
|||
"v" version "/dehydrated-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"03p80yj6bnzjc6dkp5hb9wpplmlrla8n5src71cnzw4rj53q8cqn"))))
|
||||
"0dgskgbdd95p13jx6s13p77y15wngb5cm6p4305cf2s54w0bvahh"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
|
|
|
@ -204,6 +204,32 @@ In fact, there is no graphical output possible. AA-lib replaces those
|
|||
old-fashioned output methods with powerful ascii-art renderer.")
|
||||
(license license:lgpl2.0+)))
|
||||
|
||||
(define-public celluloid
|
||||
(package
|
||||
(name "celluloid")
|
||||
(version "0.17")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/celluloid-player/celluloid/releases"
|
||||
"/download/v" version "/celluloid-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "0a3bhvs38gxjplygb0q9cx5djl5y0bmnxgaq0sd65j610a60f5h0"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("libepoxy" ,libepoxy)
|
||||
("mpv" ,mpv)))
|
||||
(home-page "https://github.com/celluloid-player/celluloid")
|
||||
(synopsis "GTK+ frontend for the mpv media player")
|
||||
(description "Celluloid is a simple GTK+ frontend for the mpv media player.
|
||||
It interacts with mpv via the client API exported by libmpv, allowing access to
|
||||
mpv's powerful playback capabilities.")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public liba52
|
||||
(package
|
||||
(name "liba52")
|
||||
|
@ -799,14 +825,14 @@ operate properly.")
|
|||
(define-public ffmpeg
|
||||
(package
|
||||
(name "ffmpeg")
|
||||
(version "4.2")
|
||||
(version "4.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mgcxm7sqkajx35px05szsmn9mawwm03cfpmk3br7bcp3a1i0gq2"))))
|
||||
"1m5nkc61ihgcf0b2wabm0zyqa8sj3c0w8fi6kr879lb0kdzciiyf"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("dav1d" ,dav1d)
|
||||
|
@ -1404,32 +1430,7 @@ projects while introducing many more.")
|
|||
(license license:gpl2+)))
|
||||
|
||||
(define-public gnome-mpv
|
||||
(package
|
||||
(name "gnome-mpv")
|
||||
(version "0.16")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/gnome-mpv/gnome-mpv/releases"
|
||||
"/download/v" version "/gnome-mpv-" version
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jzdzvhcqp5jp1inwk2466zf7r8iimk3x69066gl8mzaay98mk92"))))
|
||||
(native-inputs
|
||||
`(("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+)
|
||||
("libepoxy" ,libepoxy)
|
||||
("mpv" ,mpv)))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(home-page "https://github.com/gnome-mpv/gnome-mpv")
|
||||
(synopsis "GTK+ frontend for the mpv media player")
|
||||
(description "GNOME MPV is a simple GTK+ frontend for the mpv media player.
|
||||
GNOME MPV interacts with mpv via the client API exported by libmpv, allowing
|
||||
access to mpv's powerful playback capabilities.")
|
||||
(license license:gpl3+)))
|
||||
(deprecated-package "gnome-mpv" celluloid))
|
||||
|
||||
(define-public libvpx
|
||||
(package
|
||||
|
@ -1492,7 +1493,7 @@ access to mpv's powerful playback capabilities.")
|
|||
(define-public youtube-dl
|
||||
(package
|
||||
(name "youtube-dl")
|
||||
(version "2019.09.12")
|
||||
(version "2019.09.12.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/ytdl-org/youtube-dl/"
|
||||
|
@ -1500,7 +1501,7 @@ access to mpv's powerful playback capabilities.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0wmc0rl4l08hnz3agh69ld1pcmjs7czg0d2k7mnnlxhwlwi38w56"))))
|
||||
"0h7v81kcxcpy82wq9b1aiz2zg6hg7rnlcfmzd13j6k8yhr7ah9yf"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; The problem here is that the directory for the man page and completion
|
||||
|
@ -1631,7 +1632,7 @@ other site that youtube-dl supports.")
|
|||
(define-public you-get
|
||||
(package
|
||||
(name "you-get")
|
||||
(version "0.4.1328")
|
||||
(version "0.4.1355")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1640,7 +1641,7 @@ other site that youtube-dl supports.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1r9qffwvxmp74byva12h2jsn3n33vyim052sx9lykv5dygibbp65"))))
|
||||
"0xq7z04hvw3b3npiahlpzhbxsjvam9n9dynplyrkn84dx6k9ajbj"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos
|
||||
|
@ -2203,7 +2204,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
|
|||
(define-public mlt
|
||||
(package
|
||||
(name "mlt")
|
||||
(version "6.12.0")
|
||||
(version "6.16.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -2212,7 +2213,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0pzm3mjbbdl2rkbswgyfkx552xlxh2qrwzsi2a4dicfr92rfgq6w"))))
|
||||
"1362fv63p34kza9v4b71b6wakgvsa2vdx9y0g28x3yh4cp4k97kx"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no tests
|
||||
|
|
|
@ -965,7 +965,7 @@ Open Container Initiative (OCI) image layout and its tagged images.")
|
|||
(define-public skopeo
|
||||
(package
|
||||
(name "skopeo")
|
||||
(version "0.1.28")
|
||||
(version "0.1.39")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -974,7 +974,7 @@ Open Container Initiative (OCI) image layout and its tagged images.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"068nwrr3nr27alravcq1sxyhdd5jjr24213vdgn1dqva3885gbi0"))))
|
||||
"1jkxmvh079pd9j4aa39ilmclwafnjs0yqdiigwh8cj7yf97x4vsi"))))
|
||||
(build-system go-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -81,7 +81,7 @@ and for the GLSL.std.450 extended instruction set.
|
|||
(define-public spirv-tools
|
||||
(package
|
||||
(name "spirv-tools")
|
||||
(version "2019.1")
|
||||
(version "2019.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -89,9 +89,8 @@ and for the GLSL.std.450 extended instruction set.
|
|||
(url "https://github.com/KhronosGroup/SPIRV-Tools")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32
|
||||
"0vddjzhkrhrm3l3i57nxmq2smv3r1s0ka5ff2kziaahr4hqb479r"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(base32 "0zwz6qg8g8165h7cw52agryjrdb29gbmsbziw3pwiddfkyma8vvg"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; FIXME: Tests fail.
|
||||
|
|
|
@ -331,7 +331,7 @@ GUI. It is based on PyQt5 and QtWebKit.")
|
|||
(define-public vimb
|
||||
(package
|
||||
(name "vimb")
|
||||
(version "3.3.0")
|
||||
(version "3.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -339,12 +339,11 @@ GUI. It is based on PyQt5 and QtWebKit.")
|
|||
(url "https://github.com/fanglingsu/vimb/")
|
||||
(commit version)))
|
||||
(sha256
|
||||
(base32
|
||||
"1qg18z2gnsli9qgrqfhqfrsi6g9mcgr90w8yab28nxrq4aha6brf"))
|
||||
(base32 "13q7mk1hhjri0s30a98r8ncy0skf6m6lrnbqaf0jimf6sbwgiirf"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; no tests
|
||||
'(#:tests? #f ; no tests
|
||||
#:make-flags (list "CC=gcc"
|
||||
"DESTDIR="
|
||||
(string-append "PREFIX=" %output))
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix cvs-download)
|
||||
#:use-module (guix hg-download)
|
||||
|
@ -77,6 +78,8 @@
|
|||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages emacs)
|
||||
#:use-module (gnu packages emacs-xyz)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages curl)
|
||||
|
@ -209,14 +212,14 @@ Interface} specification.")
|
|||
;; ’stable’ and recommends that “in general you deploy the NGINX mainline
|
||||
;; branch at all times” (https://www.nginx.com/blog/nginx-1-6-1-7-released/)
|
||||
;; Consider updating the nginx-documentation package together with this one.
|
||||
(version "1.17.3")
|
||||
(version "1.17.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://nginx.org/download/nginx-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0g0g9prwjy0rnv6n5smny5yl5dhnmflqdr3hwgyj5jpr5hfgx11v"))))
|
||||
"0mg521bxh8pysmy20x599m252ici9w97kk7qy7s0wrv6bqv4p1b2"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("openssl" ,openssl)
|
||||
("pcre" ,pcre)
|
||||
|
@ -864,7 +867,7 @@ for efficient socket-like bidirectional reliable communication channels.")
|
|||
(define-public wabt
|
||||
(package
|
||||
(name "wabt")
|
||||
(version "1.0.11")
|
||||
(version "1.0.12")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -873,7 +876,7 @@ for efficient socket-like bidirectional reliable communication channels.")
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0hn88vlqyclpk79v3wg3lrssd9vwhjdgvb41g03jqakygxxgnmp5"))))
|
||||
(base32 "1zlv3740wkqj4mn6sr84h0x6wk2lcp4pwwmqsh5yyqp1j1glbsa0"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DBUILD_TESTS=OFF")
|
||||
|
@ -4017,6 +4020,98 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
|
|||
(define-public python2-feedparser
|
||||
(package-with-python2 python-feedparser))
|
||||
|
||||
(define-public guix-data-service
|
||||
(let ((commit "bb94f6dd05a33135fa661b86d35d203c0c099dba")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "guix-data-service")
|
||||
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.savannah.gnu.org/git/guix/data-service.git")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1y6s4igjvi0293z4d4hbgwifs8avcam71qhis9z4f8mjz6w7vcpb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f ; TODO Tests require PostgreSQL
|
||||
#:modules ((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(ice-9 rdelim)
|
||||
(ice-9 popen))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'set-paths 'set-GUIX_ENVIRONMENT
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; This means guix.el finds the Emacs modules
|
||||
(setenv "GUIX_ENVIRONMENT"
|
||||
(assoc-ref inputs "emacs-with-modules"))
|
||||
#t))
|
||||
(add-before 'build 'set-GUILE_AUTO_COMPILE
|
||||
(lambda _
|
||||
;; To avoid errors relating to guild
|
||||
(setenv "GUILE_AUTO_COMPILE" "0")
|
||||
#t))
|
||||
(add-after 'install 'wrap-executable
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(guile (assoc-ref inputs "guile"))
|
||||
(guile-effective-version
|
||||
(read-line
|
||||
(open-pipe* OPEN_READ
|
||||
(string-append guile "/bin/guile")
|
||||
"-c" "(display (effective-version))")))
|
||||
(scm (string-append out "/share/guile/site/"
|
||||
guile-effective-version))
|
||||
(go (string-append out "/lib/guile/"
|
||||
guile-effective-version
|
||||
"/site-ccache")))
|
||||
(for-each
|
||||
(lambda (file)
|
||||
(wrap-program (string-append bin "/" file)
|
||||
`("PATH" ":" prefix
|
||||
(,bin))
|
||||
`("GUILE_LOAD_PATH" ":" prefix
|
||||
(,scm ,(getenv "GUILE_LOAD_PATH")))
|
||||
`("GUILE_LOAD_COMPILED_PATH" ":" prefix
|
||||
(,go ,(getenv "GUILE_LOAD_COMPILED_PATH")))))
|
||||
'("guix-data-service"
|
||||
"guix-data-service-process-branch-updated-email"
|
||||
"guix-data-service-process-job"
|
||||
"guix-data-service-process-jobs"
|
||||
"guix-data-service-query-build-servers"))
|
||||
#t)))
|
||||
(delete 'strip)))) ; As the .go files aren't compatible
|
||||
(inputs
|
||||
`(("guix" ,guix)
|
||||
("guile-fibers" ,guile-fibers)
|
||||
("guile-json" ,guile-json-3)
|
||||
("guile-email" ,guile-email)
|
||||
("guile-squee" ,guile-squee)
|
||||
("postgresql" ,postgresql)
|
||||
("sqitch" ,sqitch)))
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("emacs-with-modules" ,(directory-union
|
||||
"emacs-union"
|
||||
(list emacs-no-x
|
||||
emacs-htmlize)))
|
||||
("pkg-config" ,pkg-config)))
|
||||
(synopsis "Store and provide data about GNU Guix")
|
||||
(description
|
||||
"The Guix Data Service stores data about GNU Guix, and provides this
|
||||
through a web interface. It supports listening to the guix-commits mailing
|
||||
list to find out about new revisions, then loads the data from these in to a
|
||||
PostgreSQL database.")
|
||||
(home-page "http://data.guix.gnu.org/")
|
||||
(license license:agpl3+))))
|
||||
|
||||
(define-public gumbo-parser
|
||||
(package
|
||||
(name "gumbo-parser")
|
||||
|
@ -4972,13 +5067,13 @@ deployments.")
|
|||
(package
|
||||
(name "varnish")
|
||||
(home-page "https://varnish-cache.org/")
|
||||
(version "6.2.1")
|
||||
(version "6.3.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "_downloads/varnish-" version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15qfvw3fp05bgyspcm6gbsnxhs430p4z3fwz5kkd1z68jb90b3pj"))))
|
||||
"0zwlffdd1m0ih33nq40xf2wwdyvr4czmns2fs90qpfnwy72xxk4m"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")
|
||||
|
@ -4993,7 +5088,8 @@ deployments.")
|
|||
(lambda _
|
||||
(substitute* '("bin/varnishtest/vtc_varnish.c"
|
||||
"bin/varnishtest/vtc_process.c"
|
||||
"bin/varnishd/mgt/mgt_vcc.c")
|
||||
"bin/varnishd/mgt/mgt_vcc.c"
|
||||
"bin/varnishtest/tests/u00014.vtc")
|
||||
(("/bin/sh") (which "sh")))
|
||||
(substitute* "bin/varnishd/mgt/mgt_shmem.c"
|
||||
(("rm -rf") (string-append (which "rm") " -rf")))
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -34,6 +35,7 @@
|
|||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages enchant)
|
||||
#:use-module (gnu packages flex)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages gl)
|
||||
|
@ -46,6 +48,7 @@
|
|||
#:use-module (gnu packages icu4c)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages libreoffice)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
|
@ -53,20 +56,79 @@
|
|||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (gnu packages virtualization)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg))
|
||||
|
||||
(define-public libwpe
|
||||
(package
|
||||
(name "libwpe")
|
||||
(version "1.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://wpewebkit.org/releases/libwpe-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1221vs72zs87anrzhbm6pf8jnii7s6ms7mkzj6nlds9zqd7lklz2"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;no tests
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("mesa" ,mesa)))
|
||||
(propagated-inputs
|
||||
`(;; In Requires of wpe-1.0.pc.
|
||||
("libxkbcommon" ,libxkbcommon)))
|
||||
(home-page "https://wpewebkit.org/")
|
||||
(synopsis "Platform agnostic WebKit interfaces")
|
||||
(description
|
||||
"@code{libwpe} is a small library that defines programming interfaces
|
||||
for use by WebKit, and provides a mechanism for loading a platform-specific
|
||||
backend which implements them.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public wpebackend-fdo
|
||||
(package
|
||||
(name "wpebackend-fdo")
|
||||
(version "1.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://wpewebkit.org/releases/"
|
||||
"wpebackend-fdo-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bwbs47v4nlzhsqrw9fpyny5m3n9ry0kfzsvk90zjif4bd5cl6d9"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ;no tests
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("glib" ,glib)
|
||||
("libwpe" ,libwpe)
|
||||
("mesa" ,mesa)
|
||||
("wayland" ,wayland)))
|
||||
(home-page "https://wpewebkit.org/")
|
||||
(synopsis "Wayland WPE backend")
|
||||
(description
|
||||
"This package provides a backend implementation for the WPE WebKit
|
||||
engine that uses Wayland for graphics output.")
|
||||
(license license:bsd-2)))
|
||||
|
||||
(define-public webkitgtk
|
||||
(package
|
||||
(name "webkitgtk")
|
||||
(version "2.24.4")
|
||||
(version "2.26.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.webkitgtk.org/releases/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n3x5g1z6rg9n1ssna7wi0z6zlprjm4wzk544v14wqi6q0lv2s46"))))
|
||||
"0mfikjfjhwcnrxbzdyh3fl9bbs2azgbdnx8h5910h41b3n022jvb"))))
|
||||
(build-system cmake-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
|
@ -128,6 +190,7 @@
|
|||
("libsoup" ,libsoup)))
|
||||
(inputs
|
||||
`(("at-spi2-core" ,at-spi2-core)
|
||||
("bubblewrap" ,bubblewrap)
|
||||
("enchant" ,enchant)
|
||||
("geoclue" ,geoclue)
|
||||
("gst-plugins-base" ,gst-plugins-base)
|
||||
|
@ -139,16 +202,20 @@
|
|||
("libjpeg" ,libjpeg)
|
||||
("libnotify" ,libnotify)
|
||||
("libpng" ,libpng)
|
||||
("libseccomp" ,libseccomp)
|
||||
("libsecret" ,libsecret)
|
||||
("libtasn1" ,libtasn1)
|
||||
("libwebp" ,libwebp)
|
||||
("libwpe" ,libwpe)
|
||||
("libxcomposite" ,libxcomposite)
|
||||
("libxml2" ,libxml2)
|
||||
("libxslt" ,libxslt)
|
||||
("libxt" ,libxt)
|
||||
("mesa" ,mesa)
|
||||
("openjpeg" ,openjpeg)
|
||||
("sqlite" ,sqlite)))
|
||||
("sqlite" ,sqlite)
|
||||
("wpebackend-fdo" ,wpebackend-fdo)
|
||||
("xdg-dbus-proxy" ,xdg-dbus-proxy)))
|
||||
(home-page "https://www.webkitgtk.org/")
|
||||
(synopsis "Web content engine for GTK+")
|
||||
(description
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
(define-public bspwm
|
||||
(package
|
||||
(name "bspwm")
|
||||
(version "0.9.5")
|
||||
(version "0.9.9")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -105,7 +105,7 @@
|
|||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "09h3g1rxxjyw861mk32lj774nmwkx8cwxq4wfgmf4dpbizymvhhr"))))
|
||||
(base32 "1i7crmljk1vra1r6alxvj6lqqailjjcv0llyg7a0gm23rbv4a42g"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libxcb" ,libxcb)
|
||||
|
@ -1422,7 +1422,7 @@ Wlroots based compositors.")
|
|||
(define-public mako
|
||||
(package
|
||||
(name "mako")
|
||||
(version "1.3")
|
||||
(version "1.4")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
|
@ -1431,7 +1431,7 @@ Wlroots based compositors.")
|
|||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "17azdc37xsbmx13fkfp23vg9lznrv9fh6nhagn64wdq3nhsxm3b6"))))
|
||||
(base32 "11ymiq6cr2ma0iva1mqybn3j6k73bsc6lv6pcbdq7hkhd4f9b7j9"))))
|
||||
(build-system meson-build-system)
|
||||
(inputs `(("cairo" ,cairo)
|
||||
("elogind" ,elogind)
|
||||
|
|
|
@ -810,15 +810,16 @@ Guile will work for XBindKeys.")
|
|||
(define-public sxhkd
|
||||
(package
|
||||
(name "sxhkd")
|
||||
(version "0.6.0")
|
||||
(version "0.6.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/baskerville/sxhkd")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1cz4vkm7fqd51ly9qjkf5q76kdqdzfhaajgvrs4anz5dyzrdpw68"))))
|
||||
(base32 "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("asciidoc" ,asciidoc)
|
||||
|
@ -998,7 +999,8 @@ Wacom tablet applet.")
|
|||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/linuxwacom/xf86-input-wacom/releases/download/"
|
||||
name "-" version "/" name "-" version ".tar.bz2"))
|
||||
"xf86-input-wacom-" version "/"
|
||||
"xf86-input-wacom-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"029y8varbricba2dzhzhy0ndd7lbfif411ca8c3wxzni9qmbj1ij"))))
|
||||
|
@ -1177,7 +1179,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
|
|||
(define-public rofi
|
||||
(package
|
||||
(name "rofi")
|
||||
(version "1.5.3")
|
||||
(version "1.5.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/DaveDavenport/rofi/"
|
||||
|
@ -1185,7 +1187,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
|
|||
version "/rofi-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y78ya2va2lg3ww17n11y9awn8lhcp1px2d8gxaimxfqlxczs8la"))))
|
||||
"1nslmyqyzhfr4hxd4llqkkkb8ap8apkdna32rllvar7r576059ci"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("pango" ,pango)
|
||||
|
|
|
@ -1764,7 +1764,7 @@ package is in maintenance mode.")
|
|||
(define-public java-dom4j
|
||||
(package
|
||||
(name "java-dom4j")
|
||||
(version "2.1.0")
|
||||
(version "2.1.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -1773,7 +1773,7 @@ package is in maintenance mode.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1827jljs8mps489fm7xw63cakdqwc5grilrr5n9spr2rlk76jpx3"))
|
||||
"0q907srj9v4hwicpcrn4slyld5npf2jv7hzchsgrg29q2xmbwkdl"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin ;; Delete bundled jar archives.
|
||||
|
|
|
@ -215,7 +215,7 @@ which can be read by any architecture.")
|
|||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://xorg/individual/proto/"
|
||||
name "-" version ".tar.bz2"))
|
||||
"xorgproto-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"16yll1kaffnslik5sizlw3qrigj1gpsgfgyq6903g3mwdixamnm6"))))
|
||||
|
@ -423,7 +423,7 @@ Resources file.")
|
|||
(define-public encodings
|
||||
(package
|
||||
(name "encodings")
|
||||
(version "1.0.4")
|
||||
(version "1.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -432,8 +432,7 @@ Resources file.")
|
|||
version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ffmaw80vmfwdgvdkp6495xgsqszb6s0iira5j0j6pd4i0lk3mnf"))))
|
||||
(base32 "0caafx0yqqnqyvbalxhh3mb0r9v36xmcy5zjhygb2i508dhy35mx"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("mkfontscale" ,mkfontscale)))
|
||||
|
@ -2017,7 +2016,7 @@ information used in connecting to the X server.")
|
|||
(define-public xbacklight
|
||||
(package
|
||||
(name "xbacklight")
|
||||
(version "1.2.2")
|
||||
(version "1.2.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2027,7 +2026,7 @@ information used in connecting to the X server.")
|
|||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pmzaz4kp38qv2lqiw5rnqhwzmwrq65m1x5j001mmv99wh9isnk1"))))
|
||||
"1plssg0s3pbslg6rfzxp9sx8ryvn8l32zyvc8zp9zsbsfwjg69rs"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libxcb" ,libxcb)
|
||||
|
@ -5034,7 +5033,7 @@ protocol.")
|
|||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://xcb.freedesktop.org/dist/"
|
||||
name "-" version ".tar.bz2"))
|
||||
"libxcb-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ahxhmdqp4bhb90zmc275rmf5wixqra4bnw9pqnzyl1w3598g30q"))))
|
||||
|
@ -5800,17 +5799,17 @@ to answer a question. Xmessage can also exit after a specified time.")
|
|||
(define-public xterm
|
||||
(package
|
||||
(name "xterm")
|
||||
(version "335")
|
||||
(version "349")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list
|
||||
(string-append "http://invisible-mirror.net/archives/xterm/"
|
||||
name "-" version ".tgz")
|
||||
"xterm-" version ".tgz")
|
||||
(string-append "ftp://ftp.invisible-island.net/xterm/"
|
||||
name "-" version ".tgz")))
|
||||
"xterm-" version ".tgz")))
|
||||
(sha256
|
||||
(base32
|
||||
"15nbgys4s2idhx6jzzc24g9bb1s6yps5fyg2bafvs0gkkcm1ggz0"))))
|
||||
"0ps7b2b2kbrkv5q49cmb8c51z0w21jmm7hwciw30m6jgfb9s79ir"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
|
||||
|
|
|
@ -0,0 +1,212 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
|
||||
;;;
|
||||
;;; 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 services guix)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix records)
|
||||
#:use-module ((gnu packages base)
|
||||
#:select (glibc-utf8-locales))
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services base)
|
||||
#:use-module (gnu services admin)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services getmail)
|
||||
#:use-module (gnu system shadow)
|
||||
#:export (<guix-data-service-configuration>
|
||||
guix-data-service-configuration
|
||||
guix-data-service-configuration?
|
||||
guix-data-service-package
|
||||
guix-data-service-user
|
||||
guix-data-service-group
|
||||
guix-data-service-port
|
||||
guix-data-service-host
|
||||
guix-data-service-getmail-idle-mailboxes
|
||||
guix-data-service-commits-getmail-retriever-configuration
|
||||
|
||||
guix-data-service-type))
|
||||
|
||||
;;;; Commentary:
|
||||
;;;
|
||||
;;; This module implements a service that to run instances of the Guix Data
|
||||
;;; Service, which provides data about Guix over time.
|
||||
;;;
|
||||
;;;; Code:
|
||||
|
||||
(define-record-type* <guix-data-service-configuration>
|
||||
guix-data-service-configuration make-guix-data-service-configuration
|
||||
guix-data-service-configuration?
|
||||
(package guix-data-service-package
|
||||
(default guix-data-service))
|
||||
(user guix-data-service-configuration-user
|
||||
(default "guix-data-service"))
|
||||
(group guix-data-service-configuration-group
|
||||
(default "guix-data-service"))
|
||||
(port guix-data-service-port
|
||||
(default 8765))
|
||||
(host guix-data-service-host
|
||||
(default "127.0.0.1"))
|
||||
(getmail-idle-mailboxes
|
||||
guix-data-service-getmail-idle-mailboxes
|
||||
(default #f))
|
||||
(commits-getmail-retriever-configuration
|
||||
guix-data-service-commits-getmail-retriever-configuration
|
||||
(default #f)))
|
||||
|
||||
(define (guix-data-service-profile-packages config)
|
||||
"Return the guix-data-service package, this will populate the
|
||||
ca-certificates.crt file in the system profile."
|
||||
(list
|
||||
(guix-data-service-package config)))
|
||||
|
||||
(define (guix-data-service-shepherd-services config)
|
||||
(match-record config <guix-data-service-configuration>
|
||||
(package user group port host)
|
||||
(list
|
||||
(shepherd-service
|
||||
(documentation "Guix Data Service web server")
|
||||
(provision '(guix-data-service))
|
||||
(requirement '(postgres networking))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list #$(file-append package
|
||||
"/bin/guix-data-service")
|
||||
"--pid-file=/var/run/guix-data-service/pid"
|
||||
#$(string-append "--port=" (number->string port))
|
||||
#$(string-append "--host=" host)
|
||||
;; Perform any database migrations when the
|
||||
;; service is started
|
||||
"--update-database")
|
||||
|
||||
#:user #$user
|
||||
#:group #$group
|
||||
#:pid-file "/var/run/guix-data-service/pid"
|
||||
;; Allow time for migrations to run
|
||||
#:pid-file-timeout 60
|
||||
#:environment-variables
|
||||
`(,(string-append
|
||||
"GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
|
||||
"LC_ALL=en_US.utf8")
|
||||
#:log-file "/var/log/guix-data-service/web.log"))
|
||||
(stop #~(make-kill-destructor)))
|
||||
|
||||
(shepherd-service
|
||||
(documentation "Guix Data Service process jobs")
|
||||
(provision '(guix-data-service-process-jobs))
|
||||
(requirement '(postgres
|
||||
networking
|
||||
;; Require guix-data-service, as that the database
|
||||
;; migrations are handled through this service
|
||||
guix-data-service))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list
|
||||
#$(file-append package
|
||||
"/bin/guix-data-service-process-jobs"))
|
||||
#:user #$user
|
||||
#:group #$group
|
||||
#:environment-variables
|
||||
`("HOME=/var/lib/guix-data-service"
|
||||
"GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt"
|
||||
,(string-append
|
||||
"GUIX_LOCPATH=" #$glibc-utf8-locales "/lib/locale")
|
||||
"LC_ALL=en_US.utf8")
|
||||
#:log-file "/var/log/guix-data-service/process-jobs.log"))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define (guix-data-service-activation config)
|
||||
#~(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(define %user (getpw "guix-data-service"))
|
||||
|
||||
(chmod "/var/lib/guix-data-service" #o755)
|
||||
|
||||
(mkdir-p "/var/log/guix-data-service")
|
||||
|
||||
;; Allow writing the PID file
|
||||
(mkdir-p "/var/run/guix-data-service")
|
||||
(chown "/var/run/guix-data-service"
|
||||
(passwd:uid %user)
|
||||
(passwd:gid %user))))
|
||||
|
||||
(define (guix-data-service-account config)
|
||||
(match-record config <guix-data-service-configuration>
|
||||
(user group)
|
||||
(list (user-group
|
||||
(name group)
|
||||
(system? #t))
|
||||
(user-account
|
||||
(name user)
|
||||
(group group)
|
||||
(system? #t)
|
||||
(comment "Guix Data Service user")
|
||||
(home-directory "/var/lib/guix-data-service")
|
||||
(shell (file-append shadow "/sbin/nologin"))))))
|
||||
|
||||
(define (guix-data-service-getmail-configuration config)
|
||||
(match config
|
||||
(($ <guix-data-service-configuration> package user group
|
||||
port host
|
||||
#f #f)
|
||||
'())
|
||||
(($ <guix-data-service-configuration> package user group
|
||||
port host
|
||||
getmail-idle-mailboxes
|
||||
commits-getmail-retriever-configuration)
|
||||
(list
|
||||
(getmail-configuration
|
||||
(name 'guix-data-service)
|
||||
(user user)
|
||||
(group group)
|
||||
(directory "/var/lib/getmail/guix-data-service")
|
||||
(rcfile
|
||||
(getmail-configuration-file
|
||||
(retriever commits-getmail-retriever-configuration)
|
||||
(destination
|
||||
(getmail-destination-configuration
|
||||
(type "MDA_external")
|
||||
(path (file-append
|
||||
package
|
||||
"/bin/guix-data-service-process-branch-updated-email"))))
|
||||
(options
|
||||
(getmail-options-configuration
|
||||
(read-all #f)
|
||||
(delivered-to #f)
|
||||
(received #f)))))
|
||||
(idle getmail-idle-mailboxes))))))
|
||||
|
||||
(define guix-data-service-type
|
||||
(service-type
|
||||
(name 'guix-data-service)
|
||||
(extensions
|
||||
(list
|
||||
(service-extension profile-service-type
|
||||
guix-data-service-profile-packages)
|
||||
(service-extension shepherd-root-service-type
|
||||
guix-data-service-shepherd-services)
|
||||
(service-extension activation-service-type
|
||||
guix-data-service-activation)
|
||||
(service-extension account-service-type
|
||||
guix-data-service-account)
|
||||
(service-extension getmail-service-type
|
||||
guix-data-service-getmail-configuration)))
|
||||
(default-value
|
||||
(guix-data-service-configuration))
|
||||
(description
|
||||
"Run an instance of the Guix Data Service.")))
|
|
@ -0,0 +1,173 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
|
||||
;;;
|
||||
;;; 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 tests guix)
|
||||
#:use-module (gnu tests)
|
||||
#:use-module (gnu system)
|
||||
#:use-module (gnu system file-systems)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (gnu system vm)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu services guix)
|
||||
#:use-module (gnu services databases)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services networking)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (%test-guix-data-service))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Guix Data Service
|
||||
;;;
|
||||
|
||||
(define guix-data-service-initial-database-setup-service
|
||||
(let ((user "guix_data_service")
|
||||
(name "guix_data_service"))
|
||||
(define start-gexp
|
||||
#~(lambda ()
|
||||
(let ((pid (primitive-fork))
|
||||
(postgres (getpwnam "postgres")))
|
||||
(if (eq? pid 0)
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(setgid (passwd:gid postgres))
|
||||
(setuid (passwd:uid postgres))
|
||||
(primitive-exit
|
||||
(if (and
|
||||
(zero?
|
||||
(system* #$(file-append postgresql "/bin/createuser")
|
||||
#$user))
|
||||
(zero?
|
||||
(system* #$(file-append postgresql "/bin/createdb")
|
||||
"-O" #$user #$name)))
|
||||
0
|
||||
1)))
|
||||
(lambda ()
|
||||
(primitive-exit 1)))
|
||||
(zero? (cdr (waitpid pid)))))))
|
||||
|
||||
(shepherd-service
|
||||
(requirement '(postgres))
|
||||
(provision '(guix-data-service-initial-database-setup))
|
||||
(start start-gexp)
|
||||
(stop #~(const #f))
|
||||
(respawn? #f)
|
||||
(one-shot? #t)
|
||||
(documentation "Setup Guix Data Service database."))))
|
||||
|
||||
(define %guix-data-service-os
|
||||
(simple-operating-system
|
||||
(service dhcp-client-service-type)
|
||||
(service postgresql-service-type
|
||||
(postgresql-configuration
|
||||
(config-file
|
||||
(postgresql-config-file
|
||||
(hba-file
|
||||
(plain-file "pg_hba.conf"
|
||||
"
|
||||
local all all trust
|
||||
host all all 127.0.0.1/32 trust
|
||||
host all all ::1/128 trust"))))))
|
||||
(service guix-data-service-type
|
||||
(guix-data-service-configuration
|
||||
(host "0.0.0.0")))
|
||||
(simple-service 'guix-data-service-database-setup
|
||||
shepherd-root-service-type
|
||||
(list guix-data-service-initial-database-setup-service))))
|
||||
|
||||
(define (run-guix-data-service-test)
|
||||
(define os
|
||||
(marionette-operating-system
|
||||
%guix-data-service-os
|
||||
#:imported-modules '((gnu services herd)
|
||||
(guix combinators))))
|
||||
|
||||
(define forwarded-port 8080)
|
||||
|
||||
(define vm
|
||||
(virtual-machine
|
||||
(operating-system os)
|
||||
(memory-size 1024)
|
||||
(port-forwardings `((,forwarded-port . 8765)))))
|
||||
|
||||
(define test
|
||||
(with-imported-modules '((gnu build marionette))
|
||||
#~(begin
|
||||
(use-modules (srfi srfi-11) (srfi srfi-64)
|
||||
(gnu build marionette)
|
||||
(web uri)
|
||||
(web client)
|
||||
(web response))
|
||||
|
||||
(define marionette
|
||||
(make-marionette (list #$vm)))
|
||||
|
||||
(mkdir #$output)
|
||||
(chdir #$output)
|
||||
|
||||
(test-begin "guix-data-service")
|
||||
|
||||
(test-assert "service running"
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (gnu services herd))
|
||||
(match (start-service 'guix-data-service)
|
||||
(#f #f)
|
||||
(('service response-parts ...)
|
||||
(match (assq-ref response-parts 'running)
|
||||
((pid) (number? pid))))))
|
||||
marionette))
|
||||
|
||||
(test-assert "process jobs service running"
|
||||
(marionette-eval
|
||||
'(begin
|
||||
(use-modules (gnu services herd))
|
||||
(match (start-service 'guix-data-service-process-jobs)
|
||||
(#f #f)
|
||||
(('service response-parts ...)
|
||||
(match (assq-ref response-parts 'running)
|
||||
((pid) (number? pid))))))
|
||||
marionette))
|
||||
|
||||
(test-equal "http-get"
|
||||
200
|
||||
(let-values
|
||||
(((response text)
|
||||
(http-get #$(simple-format
|
||||
#f "http://localhost:~A/healthcheck" forwarded-port)
|
||||
#:decode-body? #t)))
|
||||
(response-code response)))
|
||||
|
||||
(test-end)
|
||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||
|
||||
(gexp->derivation "guix-data-service-test" test))
|
||||
|
||||
(define %test-guix-data-service
|
||||
(system-test
|
||||
(name "guix-data-service")
|
||||
(description "Connect to a running Guix Data Service.")
|
||||
(value (run-guix-data-service-test))))
|
|
@ -31,6 +31,8 @@
|
|||
|
||||
colorize-string
|
||||
highlight
|
||||
dim
|
||||
|
||||
color-rules
|
||||
color-output?
|
||||
isatty?*))
|
||||
|
@ -133,14 +135,16 @@ that subsequent output will not have any colors in effect."
|
|||
(not (getenv "NO_COLOR"))
|
||||
(isatty?* port)))
|
||||
|
||||
(define %highlight-color (color BOLD))
|
||||
(define (coloring-procedure color)
|
||||
"Return a procedure that applies COLOR to the given string."
|
||||
(lambda* (str #:optional (port (current-output-port)))
|
||||
"Return STR with extra ANSI color attributes if PORT supports it."
|
||||
(if (color-output? port)
|
||||
(colorize-string str color)
|
||||
str)))
|
||||
|
||||
(define* (highlight str #:optional (port (current-output-port)))
|
||||
"Return STR with extra ANSI color attributes to highlight it if PORT
|
||||
supports it."
|
||||
(if (color-output? port)
|
||||
(colorize-string str %highlight-color)
|
||||
str))
|
||||
(define highlight (coloring-procedure (color BOLD)))
|
||||
(define dim (coloring-procedure (color DARK)))
|
||||
|
||||
(define (colorize-matches rules)
|
||||
"Return a procedure that, when passed a string, returns that string
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#:use-module (web uri)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-14)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-37)
|
||||
#:use-module (rnrs bytevectors)
|
||||
|
@ -54,9 +55,23 @@
|
|||
(url-fetch url file #:mirrors %mirrors)))
|
||||
file))
|
||||
|
||||
(define (ensure-valid-store-file-name name)
|
||||
"Replace any character not allowed in a stror name by an underscore."
|
||||
|
||||
(define valid
|
||||
;; according to nix/libstore/store-api.cc
|
||||
(string->char-set (string-append "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz"
|
||||
"0123456789" "+-._?=")))
|
||||
(string-map (lambda (c)
|
||||
(if (char-set-contains? valid c) c #\_))
|
||||
name))
|
||||
|
||||
|
||||
(define* (download-to-store* url #:key (verify-certificate? #t))
|
||||
(with-store store
|
||||
(download-to-store store url
|
||||
(ensure-valid-store-file-name (basename url))
|
||||
#:verify-certificate? verify-certificate?)))
|
||||
|
||||
(define %default-options
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#:use-module (guix scripts)
|
||||
#:use-module (guix scripts build)
|
||||
#:autoload (guix describe) (package-provenance)
|
||||
#:autoload (guix store roots) (gc-roots)
|
||||
#:use-module ((guix build utils)
|
||||
#:select (directory-exists? mkdir-p))
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -359,6 +360,8 @@ Install, remove, or upgrade packages in a single transaction.\n"))
|
|||
switch to a generation matching PATTERN"))
|
||||
(display (G_ "
|
||||
-p, --profile=PROFILE use PROFILE instead of the user's default profile"))
|
||||
(display (G_ "
|
||||
--list-profiles list the user's profiles"))
|
||||
(newline)
|
||||
(display (G_ "
|
||||
--allow-collisions do not treat collisions in the profile as an error"))
|
||||
|
@ -458,6 +461,11 @@ command-line option~%")
|
|||
(values (cons `(query list-generations ,arg)
|
||||
result)
|
||||
#f)))
|
||||
(option '("list-profiles") #f #f
|
||||
(lambda (opt name arg result arg-handler)
|
||||
(values (cons `(query list-profiles #t)
|
||||
result)
|
||||
#f)))
|
||||
(option '(#\d "delete-generations") #f #t
|
||||
(lambda (opt name arg result arg-handler)
|
||||
(values (alist-cons 'delete-generations arg
|
||||
|
@ -750,6 +758,19 @@ processed, #f otherwise."
|
|||
(string<? name1 name2))))))
|
||||
#t))
|
||||
|
||||
(('list-profiles _)
|
||||
(let ((profiles (delete-duplicates
|
||||
(filter-map (lambda (root)
|
||||
(and (or (zero? (getuid))
|
||||
(user-owned? root))
|
||||
(generation-profile root)))
|
||||
(gc-roots)))))
|
||||
(leave-on-EPIPE
|
||||
(for-each (lambda (profile)
|
||||
(display (user-friendly-profile profile))
|
||||
(newline))
|
||||
(sort profiles string<?)))))
|
||||
|
||||
(('search _)
|
||||
(let* ((patterns (filter-map (match-lambda
|
||||
(('query 'search rx) rx)
|
||||
|
|
|
@ -249,7 +249,7 @@ PORT."
|
|||
(channel-news-entry-body entry))
|
||||
|
||||
(display-news-entry-title entry language port)
|
||||
(format port (G_ " commit ~a~%")
|
||||
(format port (dim (G_ " commit ~a~%"))
|
||||
(channel-news-entry-commit entry))
|
||||
(newline port)
|
||||
(format port " ~a~%"
|
||||
|
|
|
@ -124,7 +124,11 @@ NODE's modules, under their FHS directories: share/guile/site and lib/guile."
|
|||
(symlink #$(node-compiled node) object))))
|
||||
|
||||
(computed-file (string-append (node-name node) "-modules")
|
||||
build))
|
||||
build
|
||||
#:options '(#:local-build? #t
|
||||
|
||||
;; "Building" it locally is faster.
|
||||
#:substitutable? #f)))
|
||||
|
||||
(define (node-fold proc init nodes)
|
||||
(let loop ((nodes nodes)
|
||||
|
|
|
@ -438,7 +438,7 @@ cat > "$module_dir/foo.scm"<<EOF
|
|||
(version "dummy-version")
|
||||
(outputs '("out" "dummy-output"))
|
||||
(source #f)
|
||||
;; Without a real build system, the "guix pacakge -s" command will fail.
|
||||
;; Without a real build system, the "guix package -s" command will fail.
|
||||
(build-system trivial-build-system)
|
||||
(synopsis "dummy-synopsis")
|
||||
(description "dummy-description")
|
||||
|
@ -448,3 +448,7 @@ EOF
|
|||
guix package -L "$module_dir" -s dummy-output > /tmp/out
|
||||
test "`guix package -L "$module_dir" -s dummy-output | grep ^name:`" = "name: dummy-package"
|
||||
rm -rf "$module_dir"
|
||||
|
||||
# Make sure we can see user profiles.
|
||||
guix package --list-profiles | grep "$profile"
|
||||
guix package --list-profiles | grep '\.guix-profile'
|
||||
|
|
Reference in New Issue