Merge branch 'master' into core-updates

This commit is contained in:
Marius Bakke 2020-05-02 17:31:28 +02:00
commit 50e6c1bf2e
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
43 changed files with 1274 additions and 742 deletions

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -58,7 +59,10 @@
"guix"))
(define %languages
'("de" "en" "es" "fr" "ru" "zh_CN"))
;; The cookbook is currently only translated into German.
(if (string=? %manual "guix-cookbook")
'("de" "en")
'("de" "en" "es" "fr" "ru" "zh_CN")))
(define (texinfo-manual-images source)
"Return a directory containing all the images used by the user manual, taken
@ -451,7 +455,9 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(lambda (mono)
(let ((anchors (collect-anchors mono)))
(process-html mono anchors)))
(find-files #$input "^guix(\\.[a-zA-Z_-]+)?\\.html$"))
(find-files
#$input
"^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$"))
;; Next process the multi-node HTML files in two phases: (1)
;; collect the list of anchors, and (2) perform

View File

@ -78,6 +78,7 @@ Copyright @copyright{} 2020 Jack Hill@*
Copyright @copyright{} 2020 Naga Malleswari@*
Copyright @copyright{} 2020 Brice Waegeneire@*
Copyright @copyright{} 2020 R Veera Kumar@*
Copyright @copyright{} 2020 Pierre Langlois@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@ -11274,7 +11275,7 @@ possible to use the GNU@tie{}Hurd.}.
A list of objects (usually packages) to collect loadable kernel modules
from--e.g. @code{(list ddcci-driver-linux)}.
@item @code{kernel-arguments} (default: @code{'("quiet")})
@item @code{kernel-arguments} (default: @code{%default-kernel-arguments})
List of strings or gexps representing additional arguments to pass on
the command-line of the kernel---e.g., @code{("console=ttyS0")}.
@ -21874,6 +21875,25 @@ When true, don't read @var{resolv-file}.
@item @code{servers} (default: @code{'()})
Specify IP address of upstream servers directly.
@item @code{addresses} (default: @code{'()})
For each entry, specify an IP address to return for any host in the
given domains. Queries in the domains are never forwarded and always
replied to with the specified IP address.
This is useful for redirecting hosts locally, for example:
@lisp
(service dnsmasq-service-type
(dnsmasq-configuration
(addresses
'(; Redirect to a local web-server.
"/example.org/127.0.0.1"
; Redirect subdomain to a specific IP.
"/subdomain.example.org/192.168.1.42"))))
@end lisp
Note that rules in @file{/etc/hosts} take precedence over this.
@item @code{cache-size} (default: @code{150})
Set the size of dnsmasq's cache. Setting the cache size to zero
disables caching.
@ -25491,13 +25511,13 @@ Extra command line options for @code{guix-data-service-process-jobs}.
@end deftp
@node Linux Services
@subsubheading Linux Services
@subsection Linux Services
@cindex oom
@cindex out of memory killer
@cindex earlyoom
@cindex early out of memory daemon
@subsection Early OOM Service
@subsubheading Early OOM Service
@uref{https://github.com/rfjakob/earlyoom,Early OOM}, also known as
Earlyoom, is a minimalist out of memory (OOM) daemon that runs in user
@ -25557,7 +25577,7 @@ notifications.
@cindex modprobe
@cindex kernel module loader
@subsubsection Kernel Module Loader Service
@subsubheading Kernel Module Loader Service
The kernel module loader service allows one to load loadable kernel
modules at boot. This is especially useful for modules that don't
@ -25733,7 +25753,7 @@ If true, this must be the name of a file to log messages to.
@end table
@end deftp
@subsection Dictionary Services
@subsubheading Dictionary Service
@cindex dictionary
The @code{(gnu services dict)} module provides the following service:

View File

@ -336,6 +336,58 @@ if DEVICE does not contain a JFS file system."
(2 'reboot-required)
(_ 'fatal-error)))
;;;
;;; F2FS (Flash-Friendly File System)
;;;
;;; https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git/tree/include/linux/f2fs_fs.h
;;; (but using xxd proved to be simpler)
(define-syntax %f2fs-endianness
;; Endianness of F2FS file systems
(identifier-syntax (endianness little)))
;; F2FS actually stores two adjacent copies of the superblock.
;; should we read both?
(define (f2fs-superblock? sblock)
"Return #t when SBLOCK is an F2FS superblock."
(let ((magic (bytevector-u32-ref sblock 0 %f2fs-endianness)))
(= magic #xF2F52010)))
(define (read-f2fs-superblock device)
"Return the raw contents of DEVICE's F2FS superblock as a bytevector, or #f
if DEVICE does not contain an F2FS file system."
(read-superblock device
;; offset of magic in first copy
#x400
;; difference between magic of second
;; and first copies
(- #x1400 #x400)
f2fs-superblock?))
(define (f2fs-superblock-uuid sblock)
"Return the UUID of F2FS superblock SBLOCK as a 16-byte bytevector."
(sub-bytevector sblock
(- (+ #x460 12)
;; subtract superblock offset
#x400)
16))
(define (f2fs-superblock-volume-name sblock)
"Return the volume name of SBLOCK as a string of at most 512 characters, or
#f if SBLOCK has no volume name."
(utf16->string (sub-bytevector sblock (- (+ #x470 12) #x400) 512) %f2fs-endianness))
(define (check-f2fs-file-system device)
"Return the health of a F2FS file system on DEVICE."
(match (status:exit-val
(system* "fsck.f2fs" "-p" device))
;; 0 and -1 are the only two possibilities
;; (according to the manpage)
(0 'pass)
(_ 'fatal-error)))
;;;
;;; LUKS encrypted devices.
@ -472,7 +524,9 @@ partition field reader that returned a value."
(partition-field-reader read-fat16-superblock
fat16-superblock-volume-name)
(partition-field-reader read-jfs-superblock
jfs-superblock-volume-name)))
jfs-superblock-volume-name)
(partition-field-reader read-f2fs-superblock
f2fs-superblock-volume-name)))
(define %partition-uuid-readers
(list (partition-field-reader read-iso9660-superblock
@ -486,7 +540,9 @@ partition field reader that returned a value."
(partition-field-reader read-fat16-superblock
fat16-superblock-uuid)
(partition-field-reader read-jfs-superblock
jfs-superblock-uuid)))
jfs-superblock-uuid)
(partition-field-reader read-f2fs-superblock
f2fs-superblock-uuid)))
(define read-partition-label
(cut read-partition-field <> %partition-label-readers))
@ -582,6 +638,7 @@ were found."
((string-prefix? "btrfs" type) check-btrfs-file-system)
((string-suffix? "fat" type) check-fat-file-system)
((string-prefix? "jfs" type) check-jfs-file-system)
((string-prefix? "f2fs" type) check-f2fs-file-system)
((string-prefix? "nfs" type) (const 'pass))
(else #f)))

View File

@ -565,10 +565,13 @@ upon error."
;; The "--root=SPEC" kernel command-line option always provides a
;; string, but the string can represent a device, a UUID, or a
;; label. So check for all three.
(let ((root (cond ((string-prefix? "/" root) root)
((uuid root) => identity)
(else (file-system-label root)))))
(mount-root-file-system (canonicalize-device-spec root)
(let ((device-spec (cond ((string-prefix? "/" root) root)
((uuid root) => identity)
((string-contains root ":/") #f) ; nfs
(else (file-system-label root)))))
(mount-root-file-system (if device-spec
(canonicalize-device-spec device-spec)
root)
root-fs-type
#:volatile-root? volatile-root?
#:flags root-fs-flags

View File

@ -33,6 +33,7 @@
# Copyright © 2020 Michael Rohleder <mike@rohleder.de>
# Copyright © 2020 Felix Gruber <felgru@posteo.net>
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
#
# This file is part of GNU Guix.
#
@ -278,6 +279,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ipfs.scm \
%D%/packages/irc.scm \
%D%/packages/iso-codes.scm \
%D%/packages/jami.scm \
%D%/packages/java.scm \
%D%/packages/java-compression.scm \
%D%/packages/java-graphics.scm \
@ -889,6 +891,7 @@ dist_patch_DATA = \
%D%/packages/patches/evolution-data-server-libical-compat.patch \
%D%/packages/patches/exiv2-CVE-2017-14860.patch \
%D%/packages/patches/exiv2-CVE-2017-14859-14862-14864.patch \
%D%/packages/patches/extempore-unbundle-external-dependencies.patch \
%D%/packages/patches/extundelete-e2fsprogs-1.44.patch \
%D%/packages/patches/fastcap-mulGlobal.patch \
%D%/packages/patches/fastcap-mulSetup.patch \
@ -1206,7 +1209,6 @@ dist_patch_DATA = \
%D%/packages/patches/lirc-localstatedir.patch \
%D%/packages/patches/lirc-reproducible-build.patch \
%D%/packages/patches/llvm-3.5-fix-clang-build-with-gcc5.patch \
%D%/packages/patches/llvm-for-extempore.patch \
%D%/packages/patches/lm-sensors-hwmon-attrs.patch \
%D%/packages/patches/lrcalc-includes.patch \
%D%/packages/patches/lrzip-CVE-2017-8842.patch \
@ -1552,7 +1554,6 @@ dist_patch_DATA = \
%D%/packages/patches/vinagre-newer-freerdp.patch \
%D%/packages/patches/vinagre-newer-rdp-parameters.patch \
%D%/packages/patches/virglrenderer-CVE-2017-6386.patch \
%D%/packages/patches/vlc-fix-test_libvlc_slaves.patch \
%D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \
%D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \
%D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \

View File

@ -30,6 +30,7 @@
;;; Copyright © 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Jonathan Frederickson <jonathan@terracrypt.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1855,6 +1856,31 @@ for headphone prolonged listening to disable superstereo fatigue without
essential distortions.")
(license license:expat)))
(define-public ladspa-bs2b
(package
(name "ladspa-bs2b")
(version "0.9.1")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/bs2b/plugins/LADSPA%20plugin/"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1b4aipbj1ba5k99gbc7gmgy14sywyrjd8rpyqj5l905j0mjv8jg2"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("ladspa" ,ladspa)
("libbs2b" ,libbs2b)))
(home-page "https://sourceforge.net/projects/bs2b/")
(synopsis "Bauer stereophonic-to-binaural DSP - LADSPA plugin")
(description "The Bauer stereophonic-to-binaural DSP (bs2b) library and
plugins is designed to improve headphone listening of stereo audio records.
Recommended for headphone prolonged listening to disable superstereo fatigue
without essential distortions. This package contains a LADSPA plugin for use
with applications that support them (e.g. PulseAudio).")
(license license:gpl2+)))
(define-public liblo
(package
(name "liblo")

View File

@ -31,6 +31,7 @@
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@ -2506,11 +2507,10 @@ provides a simple way to achieve this.")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-broken-test
(add-after 'unpack 'fix-test
(lambda _
(substitute* "tests/test-umockdev.c"
(("/\\* sys/ in other dir")
(string-append "return; // ")))
(("/run") "/tmp"))
#t)))))
(native-inputs
`(("vala" ,vala)
@ -2523,8 +2523,7 @@ provides a simple way to achieve this.")
(inputs
`(("glib" ,glib)
("eudev" ,eudev)
("libgudev" ,libgudev)
("gobject-introspection" ,gobject-introspection)))
("libgudev" ,libgudev)))
(home-page "https://github.com/martinpitt/umockdev/")
(synopsis "Mock hardware devices for creating unit tests")
(description "umockdev mocks hardware devices for creating integration

View File

@ -1942,7 +1942,7 @@ download times, and other distribution and storage costs.")
(define-public quazip
(package
(name "quazip")
(version "0.8.1")
(version "0.9")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1951,7 +1951,7 @@ download times, and other distribution and storage costs.")
(file-name (git-file-name name version))
(sha256
(base32
"1g473gnsbkvxpsv8lbsmhspn7jnq86b05zzgqh11r581v8ndvz5s"))))
"0psvf3d9akyyx3bckc9325nmbp97xiagf8la4vhca5xn2f430fbn"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no test

View File

@ -27,6 +27,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages wget)
#:use-module (gnu packages perl))
(define-public debian-archive-keyring
@ -190,3 +191,40 @@ scratch, without requiring the availability of @code{dpkg} or @code{apt}.
It does this by downloading .deb files from a mirror site, and carefully
unpacking them into a directory which can eventually be chrooted into.")
(license license:gpl2)))
(define-public apt-mirror
(let ((commit "e664486a5d8947c2579e16dd793d762ea3de4202")
(revision "1"))
(package
(name "apt-mirror")
(version (git-version "0.5.4" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/apt-mirror/apt-mirror/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0qj6b7gldwcqyfs2kp6amya3ja7s4vrljs08y4zadryfzxf35nqq"))))
(build-system gnu-build-system)
(outputs '("out"))
(arguments
`(#:tests? #f
;; sysconfdir is not PREFIXed in the makefile but DESTDIR is
;; honored correctly; we therefore use DESTDIR for our
;; needs. A more correct fix would involve patching.
#:make-flags (list (string-append "DESTDIR=" (assoc-ref %outputs "out"))
"PREFIX=/")
#:phases (modify-phases %standard-phases (delete 'configure))))
(inputs
`(("wget" ,wget)
("perl" ,perl)))
(home-page "http://apt-mirror.github.io/")
(synopsis "Script for mirroring a Debian repository")
(description
"apt-mirror is a small tool that provides the ability to
selectively mirror Debian and Ubuntu GNU/Linux distributions or any
other apt sources typically provided by open source developers.")
(license license:gpl2))))

View File

@ -103,16 +103,34 @@
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--disable-systemd"
(string-append "--sysconfdir="
(assoc-ref %outputs "out")
"/etc"))
(list
"--disable-systemd"
(string-append "--sysconfdir="
(assoc-ref %outputs "out")
"/etc")
;; udevil expects these programs to be run with uid set as root.
;; user has to manually add these programs to setuid-programs.
;; mount and umount are default setuid-programs in guix system.
"--with-mount-prog=/run/setuid-programs/mount"
"--with-umount-prog=/run/setuid-programs/umount"
"--with-losetup-prog=/run/setuid-programs/losetup"
"--with-setfacl-prog=/run/setuid-programs/setfacl")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-root-reference
(lambda _
(substitute* "src/Makefile.in"
(("-o root -g root") ""))
#t))
(add-after 'unpack 'patch-udevil-reference
;; udevil expects itself to be run with uid set as root.
;; devmon also expects udevil to be run with uid set as root.
;; user has to manually add udevil to setuid-programs.
(lambda _
(substitute* "src/udevil.c"
(("/usr/bin/udevil") "/run/setuid-programs/udevil"))
(substitute* "src/devmon"
(("`which udevil 2>/dev/null`") "/run/setuid-programs/udevil"))
#t)))))
(native-inputs
`(("intltool" ,intltool)
@ -919,9 +937,8 @@ since they are better handled by external tools.")
(origin
(method url-fetch)
(uri
(string-append "https://sourceforge.net/projects/xfe/files/xfe/"
version
"/xfe-" version ".tar.gz"))
(string-append "mirror://sourceforge/xfe/xfe/" version "/"
"xfe-" version ".tar.gz"))
(sha256
(base32 "1fl51k5jm2vrfc2g66agbikzirmp0yb0lqhmsssixfb4mky3hpzs"))))
(build-system gnu-build-system)
@ -939,17 +956,29 @@ since they are better handled by external tools.")
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-xferc-path
(add-after 'unpack 'patch-xfe-paths
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(xferc (string-append out "/share/xfe/xferc")))
(let*
((out (assoc-ref outputs "out"))
(share (string-append out "/share"))
(xferc (string-append out "/share/xfe/xferc"))
(xfe-theme (string-append out "/share/xfe/icons/xfe-theme")))
;; Correct path for xfe registry.
(substitute* "src/foxhacks.cpp"
(("/etc:/usr/share:/usr/local/share") share))
;; Correct path for xfe configuration.
(substitute* "src/XFileExplorer.cpp"
(("/usr/share/xfe/xferc") xferc))
#t))))
#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list (string-append "BASH_COMPLETION_DIR=" out
"/share/bash-completion/completions")))))
(("/usr/share/xfe/xferc") xferc)
(("/usr/local/share/xfe/xferc") xferc)
(("/opt/local/share/xfe/xferc") xferc))
;; Correct path for xfe icons.
(substitute* "src/xfedefs.h"
(((string-append
"~/.config/xfe/icons/xfe-theme:"
"/usr/local/share/xfe/icons/xfe-theme:"
"/usr/share/xfe/icons/xfe-theme"))
xfe-theme))
#t))))))
(synopsis "File Manager for X-Based Graphical Systems")
(description"XFE (X File Explorer) is a file manager for X. It is based on
the popular but discontinued, X Win Commander. It aims to be the file manager

View File

@ -15,6 +15,7 @@
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -878,22 +879,16 @@ System (HNS) peer-to-peer network.")
(define-public libmicrodns
(package
(name "libmicrodns")
(version "0.0.10")
(version "0.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/videolabs/libmicrodns")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "https://github.com/videolabs/libmicrodns/"
"releases/download/" version "/microdns-"
version ".tar.xz"))
(sha256
(base32
"1xvl9k49ng35wbsqmnjnyqvkyjf8dcq2ywsq3jp3wh0rgmxhq2fh"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
"0p4va18zxgmzcdwhlbg2mmjwswlbgqy4ay5vaxrw7cxmhsflnv36"))))
(build-system meson-build-system)
(home-page "https://github.com/videolabs/libmicrodns")
(synopsis "Minimal mDNS resolver library")
(description "@code{libmicrodns} provides a minimal implementation of a

View File

@ -606,14 +606,14 @@ Portuguese, Spanish and Italian.")
(define-public fet
(package
(name "fet")
(version "5.44.0")
(version "5.44.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.lalescu.ro/liviu/fet/download/"
"fet-" version ".tar.bz2"))
(sha256
(base32 "13q3b0g1zz885g15gir8fbalvix8sy42v1p429h0751490wq5c3h"))))
(base32 "1bji4910v6adhngdh5ajz5bxam9z3yqnh8d1h1xajy6npm6qq3nx"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@ -632,14 +632,14 @@ Portuguese, Spanish and Italian.")
`(("qtbase" ,qtbase)))
(home-page "https://www.lalescu.ro/liviu/fet/")
(synopsis "Timetabling software")
(description "FET is a program for automatically scheduling the
timetable of a school, high-school or university. It uses a fast and
efficient timetabling algorithm.
(description
"FET is a program for automatically scheduling the timetable of a school,
high-school or university. It uses a fast and efficient timetabling
algorithm.
Usually, FET is able to solve a complicated timetable in maximum 5-20
minutes. For simpler timetables, it may take a shorter time, under
5 minutes (in some cases, a matter of seconds). For extremely
difficult timetables, it may take a longer time, a matter of hours.")
Usually, FET is able to solve a complicated timetable in maximum 5-20 minutes.
For extremely difficult timetables, it may take a longer time, a matter of
hours.")
(license license:agpl3+)))
(define-public klavaro

View File

@ -1323,33 +1323,32 @@ incrementally confined in Isearch manner.")
(define-public emacs-emms
(package
(name "emacs-emms")
(version "5.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/emms/emms-"
version ".tar.gz"))
(sha256
(base32
"00hnv7jjgb2simgrf7gf2y1cyg2syk7kj1hkbac146hlgxk8ngj1"))
(modules '((guix build utils)))
(snippet
'(begin
(substitute* "Makefile"
(("/usr/bin/install-info")
;; No need to use 'install-info' since it would create a
;; useless 'dir' file.
"true")
(("^INFODIR=.*")
;; Install Info files to $out/share/info, not $out/info.
"INFODIR := $(PREFIX)/share/info\n")
(("/site-lisp/emms")
;; Install directly in share/emacs/site-lisp, not in a
;; sub-directory.
"/site-lisp")
(("^all: (.*)\n" _ rest)
;; Build 'emms-print-metadata'.
(string-append "all: " rest " emms-print-metadata\n")))
#t))))
(version "5.4")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz"))
(sha256
(base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr"))
(modules '((guix build utils)))
(snippet
'(begin
(substitute* "Makefile"
(("/usr/bin/install-info")
;; No need to use 'install-info' since it would create a
;; useless 'dir' file.
"true")
(("^INFODIR=.*")
;; Install Info files to $out/share/info, not $out/info.
"INFODIR := $(PREFIX)/share/info\n")
(("/site-lisp/emms")
;; Install directly in share/emacs/site-lisp, not in a
;; sub-directory.
"/site-lisp")
(("^all: (.*)\n" _ rest)
;; Build 'emms-print-metadata'.
(string-append "all: " rest " emms-print-metadata\n")))
#t))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
@ -2465,7 +2464,7 @@ work with Emacs 24 and 25.")
(define-public emacs-extempore-mode
;; Use the latest commit at time of packaging. There are no releases or tags.
(let ((commit "848ad0084f27b92d1cf98dabffbad29f959a642d")
(let ((commit "09518ae6650d7be33a4633a4c0f31b7130d04c6e")
(revision "1"))
(package
(name "emacs-extempore-mode")
@ -2478,7 +2477,7 @@ work with Emacs 24 and 25.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "00wr025php7nl33x541s9rjm99hj0jbdcmnw9ljx5hqpm04aqm7c"))))
(base32 "0hfza9lzdsz94gxhmzyp9fwviscv19rmnjgd0q613faayn11sjsp"))))
(build-system emacs-build-system)
(home-page "https://github.com/extemporelang/extempore-emacs-mode")
(synopsis "Emacs major mode for Extempore source files")
@ -7525,24 +7524,47 @@ special variables. An interface to GitLabs CI file linter is also provided
via @code{gitlab-ci-lint}.")
(license license:gpl3+)))
(define-public emacs-web-mode
(define-public emacs-gitlab-snip-helm
(package
(name "emacs-web-mode")
(version "16")
(name "emacs-gitlab-snip-helm")
(version "0.0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fxbois/web-mode.git")
(commit (string-append "v" version))))
(url "https://gitlab.com/sasanidas/gitlab-snip-helm.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"17dw6a8d0p304f2sa4f9zwd8r48w2wbkc3fvbmxwlg4w12h7cwf0"))))
"1c5js19zyb1z61hapvbfcl5jhrjqij46cxldgqij6al0scw44dga"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-helm" ,emacs-helm)))
(home-page "https://gitlab.com/sasanidas/gitlab-snip-helm/")
(synopsis "GitLab snippet API interaction for Emacs")
(description "This package provides GitLab snippet API interaction for
Emacs.")
(license license:gpl3+)))
(define-public emacs-web-mode
(package
(name "emacs-web-mode")
(version "17")
(source
(origin
(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 "0jr5a1nzp8nbdng0k2fcaymiiv9ngrbknbrqaswgqn3akvx793jk"))))
(build-system emacs-build-system)
(synopsis "Major mode for editing web templates")
(description "Web-mode is an Emacs major mode for editing web templates
(description "Web mode is an Emacs major mode for editing web templates
aka HTML files embedding parts (CSS/JavaScript) and blocks (pre rendered by
client/server side engines). Web-mode is compatible with many template
client/server side engines). Web mode is compatible with many template
engines: PHP, JSP, ASP, Django, Twig, Jinja, Mustache, ERB, FreeMarker,
Velocity, Cheetah, Smarty, CTemplate, Mustache, Blade, ErlyDTL, Go Template,
Dust.js, React/JSX, Angularjs, ejs, etc.")
@ -13262,7 +13284,7 @@ files to be expanded upon opening them.")
(define-public emacs-parsebib
(package
(name "emacs-parsebib")
(version "2.3.1")
(version "2.3.3")
(source
(origin
(method git-fetch)
@ -13271,45 +13293,43 @@ files to be expanded upon opening them.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1bnqnxkb9dnl0fjrrjx0xn9jsqki2h8ygw3d5dm4bl79smah3qkh"))))
(base32 "0mpgyy9qfb5x4fvlmb274hgayjbwf0bgk65dxyx31zikjwpcd56p"))))
(build-system emacs-build-system)
(home-page "https://github.com/joostkremers/parsebib")
(synopsis "Library for parsing bib files")
(synopsis "Library for parsing @file{.bib} files")
(description
"This package provides an Emacs library for parsing bib files.")
"This package provides an Emacs library for parsing @file{.bib} files.")
(license license:gpl3+)))
(define-public emacs-ebib
(let ((commit "99bd909f47f71e024ce324981109b73a50e82fba"))
(package
(name "emacs-ebib")
(version "2.21")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/joostkremers/ebib.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"131vgl4d1j9s4055x88409w19q52x2m0x08b961hylp7yb5ljzgh"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-parsebib" ,emacs-parsebib)))
(home-page "https://joostkremers.github.io/ebib/")
(synopsis "BibTeX database manager for Emacs")
(description
"Ebib is a BibTeX database manager that runs in GNU Emacs.
With Ebib you can create, sort and manage your .bib database files,
all within Emacs. It supports searching, multi-line field values and
@@String and @@Preamble definitions. Ebib integrates with (La)TeX
mode, Org mode and other Emacs editing modes.")
;; The Ebib source files are released under a BSD license with
;; the exception of org-ebib.el, which is released under the GNU
;; GPL.
(license (list license:bsd-3
license:gpl3+)))))
(package
(name "emacs-ebib")
(version "2.22.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/joostkremers/ebib.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0spiz5r2y4pdpyc4d3f9w228giq0j9rm8f5h5akzn5rwiq9pfkwz"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-parsebib" ,emacs-parsebib)))
(home-page "https://joostkremers.github.io/ebib/")
(synopsis "BibTeX database manager for Emacs")
(description
"Ebib is a BibTeX database manager that runs in GNU Emacs.
With Ebib you can create, sort and manage your @file{.bib} database files, all
within Emacs. It supports searching, multi-line field values and
@samp{@@String} and @samp{@@Preamble} definitions. Ebib integrates
with (La)TeX mode, Org mode and other Emacs editing modes.")
;; The Ebib source files are released under a BSD license with
;; the exception of org-ebib.el, which is released under the GNU
;; GPL.
(license (list license:bsd-3
license:gpl3+))))
(define-public emacs-biblio
(package
@ -19529,9 +19549,9 @@ be used in @code{dired-mode}.")
(license license:gpl3+))))
(define-public emacs-exwm-edit
(let ((commit "961c0f3ea45766b888c73d7353da13d329538034")
(let ((commit "bc25ba094b383be3c650ca0b7e1534efe2bb154f")
(version "0.0.1")
(revision "1"))
(revision "2"))
(package
(name "emacs-exwm-edit")
(version (git-version version revision commit))
@ -19544,7 +19564,7 @@ be used in @code{dired-mode}.")
(file-name (git-file-name name version))
(sha256
(base32
"087pk5ckx753qrn6xpka9khhlp7iqlz76w7861x90av2f5cgy6fw"))))
"1z1ya9xgknka3dy3b3x8zzfkxdx5jqsi8q5aqkvxjxa6n7mmqdwv"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-exwm" ,emacs-exwm)))
@ -21122,14 +21142,14 @@ Emacs that integrate with major modes like Org-mode.")
(define-public emacs-modus-operandi-theme
(package
(name "emacs-modus-operandi-theme")
(version "0.7.0")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"modus-operandi-theme-" version ".el"))
(sha256
(base32 "17zvcqplbl3rk39k61v43ganzv06j49rlyickanwll5m1a3iibw2"))))
(base32 "09lw556jphrxrmwxkwzfgd4r7ylz99m8awxka4sfj5sa8fbjb3g8"))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/protesilaos/modus-themes")
(synopsis "Accessible light theme (WCAG AAA)")
@ -21143,14 +21163,14 @@ standard. This is the highest standard of its kind.")
(define-public emacs-modus-vivendi-theme
(package
(name "emacs-modus-vivendi-theme")
(version "0.7.0")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"modus-vivendi-theme-" version ".el"))
(sha256
(base32 "1w4vrg39dghghkvll3h4kmzykc3zpp6pbychb39gcc13z2b06v8g"))))
(base32 "0hwkzbx7a9scdr589sb7hw90lsm8yxcn3y5xr3bpyxf8rkr2zl4c"))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/protesilaos/modus-themes")
(synopsis "Accessible dark theme (WCAG AAA)")

View File

@ -1204,14 +1204,14 @@ multi-system game/emulator system.")
(define-public scummvm
(package
(name "scummvm")
(version "2.1.1")
(version "2.1.2")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.scummvm.org/frs/scummvm/" version
"/scummvm-" version ".tar.xz"))
(sha256
(base32 "1a6waf1ybp91nwva8g650cljlfb1di4l0jv13vg6yfgkas9pclsp"))))
(base32 "1c4fz1nfg0nqnqx9iipayhzcsiqdmfxm2i95nw9dbhshhsdnrhf4"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;require "git"

View File

@ -18,6 +18,7 @@
;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2020 Christopher Lemmer Webber <cwebber@dustycloud.org>
;;; Copyright © 2020 Tom Zander <tomz@freedommail.ch>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -197,7 +198,7 @@ and dynamically with report tools based on filtering and graphical charts.")
(define-public ledger
(package
(name "ledger")
(version "3.1.3")
(version "3.2.0")
(source
(origin
(method git-fetch)
@ -206,16 +207,32 @@ and dynamically with report tools based on filtering and graphical charts.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3"))))
(base32 "1l5c9jf2wnly6ncm9civ8i7v47xld15g1y7wpl0hqwgbfyffwjci"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
`(#:modules (,@%cmake-build-system-modules
((guix build python-build-system) #:select (python-version)))
#:imported-modules (,@%cmake-build-system-modules
(guix build python-build-system))
#:configure-flags
`("-DBUILD_DOCS:BOOL=ON"
"-DBUILD_WEB_DOCS:BOOL=ON"
"-DUSE_PYTHON:BOOL=ON"
"-DCMAKE_INSTALL_LIBDIR:PATH=lib")
#:phases
(modify-phases %standard-phases
(modify-phases (@ (guix build cmake-build-system) %standard-phases)
(add-after 'unpack 'fix-python-installation-directory
(lambda* (#:key inputs outputs #:allow-other-keys)
;; By default the package attempts to install its Python bindings
;; to the Python store directory, which obviously does not work.
;; Passing -DPython_SITEARCH in #:configure-flags has no effect.
(let ((python-version (python-version (assoc-ref inputs "python")))
(out (assoc-ref outputs "out")))
(substitute* "src/CMakeLists.txt"
(("DESTINATION \\$\\{Python_SITEARCH\\}")
(string-append "DESTINATION " out "/lib/python"
python-version "/site-packages")))
#t)))
(add-before 'configure 'install-examples
(lambda* (#:key outputs #:allow-other-keys)
(let ((examples (string-append (assoc-ref outputs "out")

View File

@ -4856,7 +4856,7 @@ small robot living in the nano world, repair its maker.")
(define-public teeworlds
(package
(name "teeworlds")
(version "0.7.4")
(version "0.7.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -4865,7 +4865,7 @@ small robot living in the nano world, repair its maker.")
(file-name (git-file-name name version))
(sha256
(base32
"1lxdb1k2cdj2421vyz1z0ximzfnpkh2y4y84zpn2gqsa1nzwbryb"))
"169dl83q08zl4h813az8hjs4rs3dms9yjn6bnsld4fjcj0imvvc6"))
(modules '((guix build utils)
(ice-9 ftw)
(ice-9 regex)
@ -6176,7 +6176,7 @@ affect gameplay).")
(package
(inherit chocolate-doom)
(name "crispy-doom")
(version "5.7.2")
(version "5.8.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -6184,7 +6184,7 @@ affect gameplay).")
(commit (string-append "crispy-doom-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "002aqbgsksrgzqridwdlkrjincaxh0dkvwlrbb8d2f3kwk7lj4fq"))))
(base32 "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4"))))
(native-inputs
(append
(package-native-inputs chocolate-doom)

View File

@ -12,6 +12,7 @@
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -742,30 +743,34 @@ and surfaces, receiving input and events.")
(license license:zlib)))
(define-public nanovg-for-extempore
(package
(name "nanovg-for-extempore")
(version "0.7.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/extemporelang/nanovg/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0ivs1sagq19xiw8jxd9f8w2b39svi0n9hrbmdvckwvqg95r8701g"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests included
(inputs
`(("mesa" ,mesa)))
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))
(home-page "https://github.com/extemporelang/nanovg")
(synopsis "2D vector drawing library on top of OpenGL")
(description "NanoVG is small antialiased vector graphics rendering
(let ((version "0.7.1")
(revision "0")
(commit "3c60175fcc2e5fe305b04355cdce35d499c80310"))
(package
(name "nanovg-for-extempore")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/extemporelang/nanovg.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0ddn3d3mxqn8hj9967v3pss7lz1wn08pcdnqzc118g7yjkq7hxzy"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests included
(inputs
`(("mesa" ,mesa)))
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))
(home-page "https://github.com/extemporelang/nanovg")
(synopsis "2D vector drawing library on top of OpenGL")
(description "NanoVG is small antialiased vector graphics rendering
library for OpenGL. It has lean API modeled after HTML5 canvas API. It is
aimed to be a practical and fun toolset for building scalable user interfaces
and visualizations.")
(license license:zlib)))
(license license:zlib))))
(define-public gl2ps
(package

View File

@ -3776,7 +3776,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
(define-public five-or-more
(package
(name "five-or-more")
(version "3.32.1")
(version "3.32.2")
(source
(origin
(method url-fetch)
@ -3784,7 +3784,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.")
(version-major+minor version) "/"
"five-or-more-" version ".tar.xz"))
(sha256
(base32 "0xw05dd2dwi9vsph9h158b4n89s5k07xrh6bjz1icm0pdmjwhpgk"))))
(base32 "19pf8wzbf3ciqf2k4bj9sddvyhckfd62x86pnqr6s8h4vn9jc6ii"))))
(build-system meson-build-system)
(arguments
'(#:glib-or-gtk? #t

View File

@ -23,7 +23,7 @@
;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
;;; Copyright © 2019, 2020 Amar Singh <nly@disroot.org>
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
;;;
;;; This file is part of GNU Guix.
@ -1861,7 +1861,13 @@ many readers as needed).")
("guile" ,guile-2.2)))
(native-inputs `(("pkg-config" ,pkg-config)))
(arguments
'(#:configure-flags (list "--with-ncursesw" ; Unicode support
`(#:modules ((guix build gnu-build-system)
((guix build guile-build-system)
#:select (target-guile-effective-version))
(guix build utils))
#:imported-modules ((guix build guile-build-system)
,@%gnu-build-system-modules)
#:configure-flags (list "--with-ncursesw" ; Unicode support
"--with-gnu-filesystem-hierarchy")
#:phases
(modify-phases %standard-phases
@ -1876,8 +1882,8 @@ many readers as needed).")
(files (find-files dir ".scm")))
(substitute* files
(("\"libguile-ncurses\"")
(format #f "\"~a/lib/guile/2.2/libguile-ncurses\""
out)))
(format #f "\"~a/lib/guile/~a/libguile-ncurses\""
out (target-guile-effective-version))))
#t))))))
(home-page "https://www.gnu.org/software/guile-ncurses/")
(synopsis "Guile bindings to ncurses")
@ -1886,6 +1892,14 @@ many readers as needed).")
library.")
(license license:lgpl3+)))
(define-public guile3.0-ncurses
(package
(inherit guile-ncurses)
(name "guile3.0-ncurses")
(version "3.0")
(inputs `(("ncurses" ,ncurses)
("guile" ,guile-3.0)))))
(define-public guile-ncurses/gpm
(package
(inherit guile-ncurses)
@ -1893,6 +1907,13 @@ library.")
(inputs `(("ncurses" ,ncurses/gpm)
("guile" ,guile-2.2)))))
(define-public guile3.0-ncurses/gpm
(package
(inherit guile3.0-ncurses)
(name "guile3.0-ncurses-with-gpm")
(inputs `(("ncurses" ,ncurses/gpm)
("guile" ,guile-3.0)))))
(define-public guile-lib
(package
(name "guile-lib")

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@ -18,15 +19,24 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages hardware)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages crypto)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages openldap)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (guix build-system gnu)
#:use-module (guix download)
@ -344,3 +354,111 @@ supported by the Linux kernel.")
"Rkdeveloptool can read from and write to RockChip devices over USB, such
as the Pinebook Pro.")
(license license:gpl2+))))
(define-public libqb
(package
(name "libqb")
;; NOTE: We are using a Release Candidate version (for 2.0) here because
;; of the linker issues with the previous release.
(version "1.9.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/ClusterLabs/libqb/releases/download/v"
version "/libqb-" version ".tar.xz"))
(sha256
(base32
"008vvw504kh40br5v2xkqavnp9vpmjvf768faqzv1d00fd53ingn"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("xmllint" ,libxml2)))
(home-page "https://clusterlabs.github.io/libqb/")
(synopsis "Library providing high performance logging, tracing, ipc, and poll")
(description "Libqb is a library with the primary purpose of providing
high-performance, reusable features for client-server architecture, such as
logging, tracing, inter-process communication (IPC), and polling. Libqb is
not intended to be an all-encompassing library, but instead provide focused
APIs that are highly tuned for maximum performance for client-server
applications.")
(license license:lgpl2.1)))
(define-public usbguard
(package
(name "usbguard")
(version "0.7.6")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/USBGuard/usbguard/releases/download/usbguard-"
version "/usbguard-" version ".tar.gz"))
(file-name (git-file-name name version))
(sha256
(base32 "0gzhs8s4aka86mkcjib36z54si939ki4bmk46p6v8kln1fixad3j"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'configure 'patch-makefile
(lambda _
;; Do not create log directory.
(substitute* "Makefile" ((".*/log/usbguard.*") ""))
;; Disable LDAP tests: they use 'sudo'.
(substitute* "src/Tests/Makefile.am"
(("WITH_LDAP") "FALSE"))
#t))
(add-after 'install 'delete-static-library
(lambda* (#:key outputs #:allow-other-keys)
;; It can't be direclty disabled since it's needed for the tests.
(delete-file (string-append (assoc-ref outputs "out")
"/lib/libusbguard.a"))
#t))
(add-after 'install 'install-zsh-completion
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(site-functions
(string-append out "/share/zsh/site-functions")))
(mkdir-p site-functions)
(copy-file "scripts/usbguard-zsh-completion"
(string-append site-functions "/_usbguard"))
#t))))
#:make-flags
(list (string-append "BASH_COMPLETION_DIR="
(assoc-ref %outputs "out")
"/etc/bash_completion.d"))
#:configure-flags
(list
"--localstatedir=/var"
"--with-bundled-pegtl"
"--enable-systemd=no"
"--with-ldap"
"--with-dbus"
"--with-polkit")))
(inputs
`(("audit" ,audit)
("catch" ,catch-framework)
("dbus-glib" ,dbus-glib)
("ldap" ,openldap)
("libcap-ng" ,libcap-ng)
("libseccomp" ,libseccomp)
("libsodium" ,libsodium)
("polkit" ,polkit)
("protobuf" ,protobuf)
("libqb" ,libqb)))
(native-inputs
`(("asciidoc" ,asciidoc)
("autoconf" ,autoconf)
("automake" ,automake)
("bash-completion" ,bash-completion)
("gdbus-codegen" ,glib "bin")
("umockdev" ,umockdev)
("xmllint" ,libxml2)
("xsltproc" ,libxslt)
("pkg-config" ,pkg-config)))
(home-page "https://usbguard.github.io")
(synopsis "Helps to protect your computer against rogue USB devices (a.k.a. BadUSB)")
(description "USBGuard is a software framework for implementing USB device
authorization policies (what kind of USB devices are authorized) as well as
method of use policies (how a USB device may interact with the system).
Simply put, it is a USB device whitelisting tool.")
(license license:gpl2)))

View File

@ -341,14 +341,14 @@ to @code{cabal repl}).")
(define-public git-annex
(package
(name "git-annex")
(version "8.20200330")
(version "8.20200501")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz"))
(sha256
(base32 "0xy0ld7kr4cfdl4g4yzvrzl5r60dcj33cxm28a4qz6nqm2yhd4sv"))))
(base32 "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags

361
gnu/packages/jami.scm Normal file
View File

@ -0,0 +1,361 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;;
;;; 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 jami)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages aidc)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hurd)
#:use-module (gnu packages libcanberra)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages networking)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages telephony)
#:use-module (gnu packages tls)
#:use-module (gnu packages upnp)
#:use-module (gnu packages video)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils))
(define %jami-version "20200401.1.6f090de")
(define* (jami-source #:key without-daemon)
(origin
(method url-fetch)
(uri (string-append "https://dl.jami.net/release/tarballs/jami_"
%jami-version
".tar.gz"))
(modules '((guix build utils)))
(snippet
(if without-daemon
'(begin
(delete-file-recursively "daemon/contrib"))
#f))
(sha256
(base32
"0lryx9n1jn0jsw7s10pbwivqv0d5m3jdzhdhdyg5n02v72mjvkmh"))))
;; Savoir-Faire Linux modifies many libraries to add features
;; to Jami. This procedure makes applying patches to a given
;; package easy.
(define jami-apply-dependency-patches
'(lambda* (#:key inputs dep-name patches)
(let ((patches-directory "sfl-patches"))
(mkdir-p patches-directory)
(invoke "tar" "-xvf" (assoc-ref inputs "sfl-patches")
"-C" patches-directory
"--strip-components=5"
(string-append "ring-project/daemon/contrib/src/"
dep-name))
(for-each
(lambda (file)
(invoke "patch" "--force" "-p1" "-i"
(string-append patches-directory "/"
file ".patch")))
patches))))
(define-public pjproject-jami
(package
(inherit pjproject)
(name "pjproject-jami")
(native-inputs
`(("sfl-patches" ,(jami-source))
,@(package-native-inputs pjproject)))
(arguments
`(#:tests? #f
;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
#:configure-flags
(list "--disable-oss"
"--disable-sound"
"--disable-video"
;; The following flag is Linux specific.
,@(if (hurd-triplet? (or (%current-system)
(%current-target-system)))
'()
'("--enable-epoll"))
"--enable-ext-sound"
"--disable-speex-aec"
"--disable-g711-codec"
"--disable-l16-codec"
"--disable-gsm-codec"
"--disable-g722-codec"
"--disable-g7221-codec"
"--disable-speex-codec"
"--disable-ilbc-codec"
"--disable-opencore-amr"
"--disable-silk"
"--disable-sdl"
"--disable-ffmpeg"
"--disable-v4l2"
"--disable-openh264"
"--disable-resample"
"--disable-libwebrtc"
"--with-gnutls"
"--with-external-srtp"
;; We need -fPIC or else we get the following error when linking
;; against pjproject-jami:
;; relocation R_X86_64_32S against `.rodata' can not be used when
;; making a shared object;
"CFLAGS=-fPIC"
"CXXFLAGS=-fPIC")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-after 'unpack 'apply-patches
(lambda* (#:key inputs #:allow-other-keys)
(let ((jami-apply-dependency-patches ,jami-apply-dependency-patches))
;; Comes from
;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
;; WARNING: These amount for huge changes in pjproject.
(jami-apply-dependency-patches
#:inputs inputs
#:dep-name "pjproject"
#:patches
'("0001-rfc6544"
"0002-rfc2466"
"0003-add-tcp-keep-alive"
"0004-multiple_listeners"
"0005-fix_ebusy_turn"
"0006-ignore_ipv6_on_transport_check"
"0007-pj_ice_sess"
"0008-fix_ioqueue_ipv6_sendto"
"0009-add-config-site"))
#t)))
;; TODO: We could use substitute-keyword-arguments instead of
;; repeating the phases from pjproject, but somehow it does
;; not work.
(add-before 'build 'build-dep
(lambda _ (invoke "make" "dep")))
(add-before 'patch-source-shebangs 'autoconf
(lambda _
(invoke "autoconf" "-v" "-f" "-i" "-o"
"aconfigure" "aconfigure.ac")))
(add-before 'autoconf 'disable-some-tests
;; Three of the six test programs fail due to missing network
;; access.
(lambda _
(substitute* "Makefile"
(("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
"selftest: pjlib-test pjlib-util-test pjmedia-test"))
#t)))))))
(define-public libring
(package
(name "libring")
(version %jami-version)
(source (jami-source #:without-daemon #t))
(build-system gnu-build-system)
(inputs
`(("alsa-lib" ,alsa-lib)
("boost" ,boost)
("dbus-c++" ,dbus-c++)
("eudev" ,eudev)
("ffmpeg" ,ffmpeg)
("flac" ,flac)
("gmp" ,gmp)
("gsm" ,gsm)
("jack" ,jack-1)
("jsoncpp" ,jsoncpp)
("libnatpmp" ,libnatpmp)
("libogg" ,libogg)
("libva" ,libva)
("opendht" ,opendht)
("opus" ,opus)
("pcre" ,pcre)
("pulseaudio" ,pulseaudio)
("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)
("speex" ,speex)
("speexdsp" ,speexdsp)
("libupnp" ,libupnp)
("libvorbis" ,libvorbis)
("libx264" ,libx264)
("libvdpau" ,libvdpau)
("yaml-cpp" ,yaml-cpp)
("zlib" ,zlib)
("openssl" ,openssl)
("libsecp256k1" ,libsecp256k1)
("python" ,python)
("python-wrapper" ,python-wrapper)
("restinio" ,restinio)
("libx11" ,libx11)
("asio" ,asio)
;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
("pjproject" ,pjproject-jami)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("which" ,which)
("cppunit" ,cppunit)
("perl" ,perl))) ; Needed for documentation.
(arguments
`(#:tests? #f ; The tests fail to compile due to missing headers.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "daemon")
#t))
(add-before 'build 'add-lib-dir
(lambda _
(mkdir-p "src/lib")
#t)))))
(synopsis "Distributed multimedia communications platform")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides a library and daemon implementing the Jami core
functionality.")
(home-page "https://jami.net/")
(license license:gpl3+)))
(define-public libringclient
(package
(inherit libring)
(name "libringclient")
(build-system cmake-build-system)
(propagated-inputs
`(("libring" ,libring) ; For 'dring'.
("qtbase" ,qtbase) ; Qt is included in several installed headers.
("qttools" ,qttools)))
(arguments
`(#:tests? #f ; There is no testsuite.
#:configure-flags
(list (string-append "-DRING_BUILD_DIR="
(assoc-ref %build-inputs "libring") "/include"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "lrc")
#t))
(add-before 'configure 'fix-dbus-interfaces-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
(string-append (assoc-ref inputs "libring")
dbus-interfaces-path-suffix))))))))
(synopsis "Distributed multimedia communications platform")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides a library common to all Jami clients.")
(home-page "https://jami.net")
(license license:gpl3+)))
(define-public jami
(package
(inherit libring)
(name "jami")
(build-system cmake-build-system)
(inputs
`(("libringclient" ,libringclient)
("gtk+" ,gtk+)
("qrencode" ,qrencode)
("libnotify" ,libnotify)
("clutter" ,clutter)
("clutter-gtk" ,clutter-gtk)
("libcanberra" ,libcanberra)
("webkitgtk" ,webkitgtk)
;; TODO: We must wrap ring-client-gnome to force using the
;; `sqlite-with-column-metadata' package instead of `sqlite' or else it
;; fails with:
;;
;; /gnu/store/...-qtbase-5.11.2/lib/qt5/plugins/sqldrivers/libqsqlite.so:
;; undefined symbol: sqlite3_column_table_name16
;;
;; qtbase is built against sqlite-with-column-metadata but somehow
;; jami-client-gnome ends up with both `sqlite' and
;; `sqlite-with-column-metadata' as inputs and it seems that
;; libqsqlite.so gets confused.
("sqlite" ,sqlite-with-column-metadata)))
(native-inputs
`(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("doxygen" ,doxygen)))
(propagated-inputs
`(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
("adwaita-icon-theme" ,adwaita-icon-theme)
("evolution-data-server" ,evolution-data-server)))
(arguments
`(#:tests? #f ; There is no testsuite.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "client-gnome")
#t))
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(path (string-append (assoc-ref inputs "sqlite") "/lib")))
(wrap-program (string-append out "/bin/jami-gnome")
`("LD_LIBRARY_PATH" ":" prefix (,path))))
#t)))))
(synopsis "Distributed, privacy-respecting communication program")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+)))
(define-public jami-client-gnome
(deprecated-package "jami-client-gnome" jami))

View File

@ -4666,6 +4666,37 @@ disks and SD cards. This package provides the userland utilities.")
(inputs
`(("libuuid" ,util-linux "lib")))))
(define-public f2fs-tools/static
(static-package
(package
(inherit f2fs-tools)
(name "f2fs-tools-static")
(arguments
`(#:configure-flags
(let ((libuuid-static (assoc-ref %build-inputs "libuuid:static"))
(libuuid (assoc-ref %build-inputs "libuuid")))
(list
(string-append "libuuid_CFLAGS=-I" libuuid "/include")
(string-append "libuuid_LIBS=-L" libuuid-static "/lib -luuid")
(string-append "libblkid_CFLAGS=-I" libuuid "/include")
(string-append "libblkid_LIBS=-L" libuuid-static "/lib -lblkid")))
#:disallowed-references (,util-linux)
#:phases
(modify-phases %standard-phases ; TODO: f2fs phases.
(add-after 'unpack 'make-static
(lambda _
(define (append-to-file name body)
(let ((file (open-file name "a")))
(display body file)
(close-port file)))
(append-to-file "mkfs/Makefile.am" "\nmkfs_f2fs_LDFLAGS = -all-static\n")
(append-to-file "fsck/Makefile.am" "\nfsck_f2fs_LDFLAGS = -all-static\n")
(append-to-file "tools/Makefile.am" "\nf2fscrypt_LDFLAGS = -all-static -luuid\n")
#t)))))
(inputs
`(("libuuid:static" ,util-linux "static")
("libuuid" ,util-linux "lib")))))) ; for include files
(define-public freefall
(package
(name "freefall")

View File

@ -14,6 +14,7 @@
;;; Copyright © 2019 Arm Ltd <David.Truby@arm.com>
;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -677,12 +678,16 @@ output), and Binutils.")
#:patches '("clang-3.5-libc-search-path.patch")))
(define-public llvm-for-extempore
(package (inherit llvm-3.7)
(package (inherit llvm-3.8)
(name "llvm-for-extempore")
(source
(origin
(inherit (package-source llvm-3.7))
(patches (list (search-patch "llvm-for-extempore.patch")))))
(method url-fetch)
(uri (string-append "http://extempore.moso.com.au/extras/"
"llvm-3.8.0.src-patched-for-extempore.tar.xz"))
(sha256
(base32
"1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))))

View File

@ -27,6 +27,7 @@
(define-module (gnu packages lxde)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages disk)
@ -279,7 +280,6 @@ with freedesktop.org standard.")
`(("bash" ,bash)
("cairo" ,cairo)
("curlftpfs" ,curlftpfs)
("dbus" ,dbus)
("eudev" ,eudev)
("fakeroot" ,fakeroot)
("ffmpegthumbnailer" ,ffmpegthumbnailer)
@ -288,6 +288,7 @@ with freedesktop.org standard.")
("gtk+" ,gtk+)
("ifuse" ,ifuse)
("jmtpfs" ,jmtpfs)
("ktsuss" ,ktsuss)
("libx11" ,libx11)
("lsof" ,lsof)
("pango" ,pango)
@ -297,12 +298,31 @@ with freedesktop.org standard.")
("util-linux" ,util-linux)
("wget" ,wget)))
(arguments
`(#:configure-flags (list (string-append "--with-bash-path="
(assoc-ref %build-inputs "bash")
"/bin/bash")
(string-append "--sysconfdir="
(assoc-ref %outputs "out")
"/etc"))))
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source-files
(lambda* (#:key inputs #:allow-other-keys)
;; Patch config file to load programs correctly.
(substitute* "etc/spacefm.conf"
(("#terminal_su=/bin/su")
"terminal_su=/run/setuid-programs/sudo")
(("#graphical_su=/usr/bin/gksu")
(string-append "graphical_su="
(string-append (assoc-ref inputs "ktsuss")
"/bin/ktsuss"))))
;; SpaceFM expects udevil to have uid set to root.
;; User has to manually add udevil to setuid-programs.
(substitute* "src/settings.c"
(("/usr/bin/udevil")
"/run/setuid-programs/udevil"))
#t)))
#:configure-flags (list
(string-append "--with-bash-path="
(assoc-ref %build-inputs "bash")
"/bin/bash")
(string-append "--sysconfdir="
(assoc-ref %outputs "out")
"/etc"))))
(home-page "https://ignorantguru.github.io/spacefm/")
(synopsis "Multi-panel tabbed file manager")
(description "SpaceFM is a graphical, multi-panel, tabbed file manager

View File

@ -23,7 +23,7 @@
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2017, 2018, 2020 Rene Saavedra <pacoon@protonmail.com>
;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
@ -2752,14 +2752,14 @@ tools and applications:
(define-public balsa
(package
(name "balsa")
(version "2.5.7")
(version "2.6.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://pawsa.fedorapeople.org/balsa/"
name "-" version ".tar.bz2"))
(sha256
(base32 "0yfqhfpwm1qnwmbpr6dfn2f5w8a8xxq51pn8ypgg0fw973l1c1nx"))))
(base32 "0ycidvgy9npd6avxk88sf2ca609m7zb0hzrk1yajrgwb1rfqx68a"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@ -2777,7 +2777,7 @@ tools and applications:
`(("cyrus-sasl" ,cyrus-sasl)
("enchant" ,enchant)
("gdk-pixbuf" ,gdk-pixbuf)
("gmime" ,gmime-2.6)
("gmime" ,gmime)
("gnutls" ,gnutls)
("gpgme" ,gpgme)
("gtk+" ,gtk+)
@ -2785,7 +2785,9 @@ tools and applications:
("gtkspell3" ,gtkspell3)
("libcanberra" ,libcanberra)
("libesmtp" ,libesmtp)
("libical" ,libical)
("libnotify" ,libnotify)
("libsecret" ,libsecret)
("openldap" ,openldap)
("sqlite" ,sqlite)
("webkitgtk" ,webkitgtk)))

View File

@ -27,6 +27,7 @@
;;; Copyright © 2019, 2020 Alexandros Theodotou <alex@zrythm.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -625,63 +626,73 @@ MusePack, Monkey's Audio, and WavPack files.")
(define-public extempore
(package
(name "extempore")
(version "0.7.0")
(version "0.8.6")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/digego/extempore.git")
(commit version)))
(commit (string-append "v" version))))
(sha256
(base32
"12fsp7zkfxb9kykwq46l88kcbbici9arczrrsl4qn87m6vm5349l"))
(file-name (string-append name "-" version "-checkout"))))
"182jy23qv115dipny7kglwbn21z55dp253w1ykm0kh8n6vkgs7gp"))
(file-name (git-file-name name version))
(patches (search-patches
"extempore-unbundle-external-dependencies.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove bundled sources.
(map delete-file-recursively
'("src/portaudio"
"src/pcre"))
#t))))
(build-system cmake-build-system)
(arguments
`(;; The default target also includes ahead-of-time compilation of the
;; standard libraries. However, during the "install" phase this would
;; happen *again* for unknown reasons. Hence we only build the
;; extempore executable during the build phase.
#:make-flags '("extempore")
#:configure-flags '("-DJACK=ON"
;; We want to distribute.
"-DIN_TREE=OFF"
;; Don't download any dependencies.
"-DBUILD_DEPS=OFF")
`(#:configure-flags (list "-DJACK=ON"
"-DPACKAGE=ON"
"-DEXTERNAL_SHLIBS_AUDIO=OFF"
"-DEXTERNAL_SHLIBS_GRAPHICS=OFF"
"-DCMAKE_BUILD_TYPE=Release"
(string-append "-DEXT_SHARE_DIR="
(assoc-ref %outputs "out")
"/share"))
#:modules ((ice-9 match)
(guix build cmake-build-system)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'build 'build-aot-libs
(lambda _
(for-each (lambda (target)
(invoke "make" target))
'("aot_base"
"aot_math"
"aot_instruments"))
#t))
(add-after 'unpack 'patch-install-locations
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("EXT_SHARE_DIR=\"\\.\"\\)")
"EXT_SHARE_DIR=\"${EXT_SHARE_DIR}/extempore\")")
(("DESTINATION \"\\.\"\\)") "DESTINATION bin)")
(("DESTINATION \"\\.\"\n") "DESTINATION share/extempore\n"))
#t))
(add-after 'unpack 'patch-directories
(lambda* (#:key outputs #:allow-other-keys)
;; Rewrite default path to runtime directory
(substitute* "src/Extempore.cpp"
(("runtimedir \\+= \"runtime\"")
(string-append "runtimedir = \""
(assoc-ref outputs "out")
"/lib/extempore/runtime\"")))
(substitute* "extras/extempore.el"
(("\\(runtime-directory \\(concat default-directory \"runtime\"\\)\\)")
(string-append "(runtime-directory \""
(assoc-ref outputs "out")
"/lib/extempore/runtime"
"/share/extempore/runtime"
"\")")))
#t))
(add-after 'unpack 'link-with-additional-libs
(lambda _
;; The executable must be linked with libffi and zlib.
(substitute* "CMakeLists.txt"
(("add_dependencies\\(aot_extended extended_deps\\)") "")
(("target_link_libraries\\(extempore PRIVATE dl" line)
(string-append line " ffi z")))
#t))
;; FIXME: AOT compilation of the nanovg bindings fail with the error:
;; "Compiler Error could not bind _nvgLinearGradient"
(add-after 'unpack 'disable-nanovg
(lambda _
(substitute* "CMakeLists.txt"
(("aotcompile_lib\\(libs/external/nanovg.xtm.*") ""))
#t))
;; FIXME: All examples that are used as tests segfault for some
;; unknown reason.
(add-after 'unpack 'disable-broken-tests
@ -710,20 +721,16 @@ MusePack, Monkey's Audio, and WavPack files.")
("gl/glcompat-directbind" "libGL.so" "mesa")))
#t))
(add-after 'unpack 'use-own-llvm
(lambda* (#:key inputs #:allow-other-keys)
(setenv "EXT_LLVM_DIR" (assoc-ref inputs "llvm"))
;; Our LLVM builds shared libraries, so Extempore should use
;; those.
(substitute* "CMakeLists.txt"
(("CMAKE_STATIC_LIBRARY") "CMAKE_SHARED_LIBRARY"))
#t))
(lambda* (#:key inputs #:allow-other-keys)
(setenv "EXT_LLVM_DIR" (assoc-ref inputs "llvm"))
;; Our LLVM builds shared libraries, so Extempore should use
;; those.
(substitute* "CMakeLists.txt"
(("CMAKE_STATIC_LIBRARY") "CMAKE_SHARED_LIBRARY"))
#t))
(add-after 'unpack 'fix-aot-compilation
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
;; EXT_SHARE_DIR does not exist before installation, so the
;; working directory should be the source directory instead.
(("WORKING_DIRECTORY \\$\\{EXT_SHARE_DIR\\}")
"WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}")
;; Extempore needs to be told where the runtime is to be found.
;; While we're at it we disable automatic tuning for a specific
;; CPU to make binary substitution possible.
@ -1979,24 +1986,27 @@ using a system-independent interface.")
(license license:expat)))
(define-public portmidi-for-extempore
(package (inherit portmidi)
(name "portmidi-for-extempore")
(version "217")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/extemporelang/portmidi.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1inriyrjf7xx2b7r54x0vmf9ngyqgr7g5060c22bwkbsgg53apzv"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests
(native-inputs '())
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))
(home-page "https://github.com/extemporelang/portmidi/")))
(let ((version "217")
(revision "0")
(commit "8602f548f71daf5ef638b2f7d224753400cb2158"))
(package (inherit portmidi)
(name "portmidi-for-extempore")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/extemporelang/portmidi.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests
(native-inputs '())
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))
(home-page "https://github.com/extemporelang/portmidi/"))))
(define-public python-pyportmidi
(package
@ -2035,7 +2045,7 @@ using a system-independent interface.")
(define-public frescobaldi
(package
(name "frescobaldi")
(version "3.1.1")
(version "3.1.2")
(source
(origin
(method url-fetch)
@ -2043,7 +2053,7 @@ using a system-independent interface.")
"https://github.com/wbsoft/frescobaldi/releases/download/v"
version "/frescobaldi-" version ".tar.gz"))
(sha256
(base32 "0kfwvgygx2ds01w8g7vzykfrajglmr2brchk9d67ahzijpgvfkj5"))))
(base32 "084vxzvxnxl5rrhllincnh6krsyi03c8p0452ppzmn9c52wgyb2w"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ;no tests included
@ -2056,7 +2066,7 @@ using a system-independent interface.")
("python-pyportmidi" ,python-pyportmidi)
("python-pyqt" ,python-pyqt)
("python-sip" ,python-sip)))
(home-page "http://www.frescobaldi.org/")
(home-page "https://www.frescobaldi.org/")
(synopsis "LilyPond sheet music text editor")
(description
"Frescobaldi is a LilyPond sheet music text editor with syntax

View File

@ -33,7 +33,7 @@
;;; Copyright © 2019 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2019 Tonton <tonton@riseup.net>
;;; Copyright © 2019, 2020 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2019 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2019, 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;; Copyright © 2019 Daniel Schaefer <git@danielschaefer.me>
;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
@ -426,6 +426,41 @@ between different versions of ØMQ.")
files contain direct mappings of the abstractions provided by the ØMQ C API.")
(license license:expat)))
(define-public libnatpmp
(package
(name "libnatpmp")
(version "20150609")
(source (origin
(method url-fetch)
(uri (string-append
"http://miniupnp.free.fr/files/"
name "-" version ".tar.gz"))
(sha256
(base32
"1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'check)) ; no tests
#:make-flags
(let* ((target ,(%current-target-system))
(gcc (if target
(string-append target "-gcc")
"gcc")))
(list
(string-append "CC=" gcc)
(string-append "INSTALLPREFIX=" (assoc-ref %outputs "out"))
(string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")))))
(home-page "http://miniupnp.free.fr/libnatpmp.html")
(synopsis "C library implementing NAT-PMP")
(description
"@code{libnatpmp} is a portable and asynchronous implementation of
the Network Address Translation - Port Mapping Protocol (NAT-PMP)
written in the C programming language.")
(license license:bsd-3)))
(define-public librdkafka
(package
(name "librdkafka")
@ -2613,7 +2648,7 @@ communication over HTTP.")
(define-public restinio
(package
(name "restinio")
(version "0.6.0.1")
(version "0.6.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2622,7 +2657,7 @@ communication over HTTP.")
(file-name (git-file-name name version))
(sha256
(base32
"1c25kpx652nng8m1sqf5an2c3c4g3k6zj85mkkaxzk88iwfzq1s8"))))
"141a96hx8zhcdv121g6cs91n46kb47y040v25pnvz5f54964z7f5"))))
(build-system cmake-build-system)
(inputs ; TODO: Need to force-keep references on some inputs, e.g. boost.
`(("zlib" ,zlib)
@ -2655,7 +2690,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(define-public opendht
(package
(name "opendht")
(version "2.0.0beta2")
(version "2.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2664,7 +2699,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(file-name (git-file-name name version))
(sha256
(base32
"02ix0rvvyhq22gd5djcq84qz08ji7ln93faf23b27zjzni2klzv5"))))
"1q1fwk8wwk9r6bp0indpr60ql668lsk16ykslacyhrh7kg97kvhr"))))
;; Since 2.0, the gnu-build-system does not seem to work anymore, upstream bug?
(build-system cmake-build-system)
(inputs

View File

@ -0,0 +1,140 @@
Remove build machinery for bundled dependencies.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 89e6125e..c5e90750 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,7 +36,7 @@ endif()
if(PACKAGE)
# this needs to be set before project() is called
set(CMAKE_OSX_DEPLOYMENT_TARGET 10.12)
- set(ASSETS ON) # necessary for packaging
+ set(ASSETS OFF) # necessary for packaging
message(STATUS "Building Extempore for binary distribution (assets directory will be downloaded)")
endif()
@@ -134,71 +134,6 @@ else()
message(FATAL_ERROR "Sorry, Extempore isn't supported on this platform - macOS, Linux & Windows only.")
endif()
-########
-# PCRE #
-########
-
-# current in-tree PCRE version: 8.38
-
-add_library(pcre STATIC
- # headers
- src/pcre/config.h
- src/pcre/pcre.h
- src/pcre/ucp.h
- # source files
- src/pcre/pcre_chartables.c
- src/pcre/pcre_compile.c
- src/pcre/pcre_exec.c
- src/pcre/pcre_globals.c
- src/pcre/pcre_internal.h
- src/pcre/pcre_newline.c
- src/pcre/pcre_tables.c
- )
-
-target_compile_definitions(pcre
- PRIVATE -DHAVE_CONFIG_H
- )
-
-if(PACKAGE)
- target_compile_options(pcre
- PRIVATE -mtune=generic)
-endif()
-
-#############
-# portaudio #
-#############
-
-add_library(portaudio STATIC
- src/portaudio/src/common/pa_allocation.c
- src/portaudio/src/common/pa_allocation.h
- src/portaudio/src/common/pa_converters.c
- src/portaudio/src/common/pa_converters.h
- src/portaudio/src/common/pa_cpuload.c
- src/portaudio/src/common/pa_cpuload.h
- src/portaudio/src/common/pa_debugprint.c
- src/portaudio/src/common/pa_debugprint.h
- src/portaudio/src/common/pa_dither.c
- src/portaudio/src/common/pa_dither.h
- src/portaudio/src/common/pa_endianness.h
- src/portaudio/src/common/pa_front.c
- src/portaudio/src/common/pa_hostapi.h
- src/portaudio/src/common/pa_memorybarrier.h
- src/portaudio/src/common/pa_process.c
- src/portaudio/src/common/pa_process.h
- src/portaudio/src/common/pa_ringbuffer.c
- src/portaudio/src/common/pa_ringbuffer.h
- src/portaudio/src/common/pa_stream.c
- src/portaudio/src/common/pa_stream.h
- src/portaudio/src/common/pa_trace.c
- src/portaudio/src/common/pa_trace.h
- src/portaudio/src/common/pa_types.h
- src/portaudio/src/common/pa_util.h
- )
-
-target_include_directories(portaudio
- PRIVATE src/portaudio/include
- PRIVATE src/portaudio/src/common)
-
# platform-specific
if(APPLE)
@@ -224,25 +159,8 @@ if(APPLE)
elseif(UNIX AND NOT APPLE)
# use ALSA on Linux
- target_sources(portaudio
- PRIVATE src/portaudio/src/hostapi/alsa/pa_linux_alsa.c
- PRIVATE src/portaudio/src/os/unix/pa_unix_hostapis.c
- PRIVATE src/portaudio/src/os/unix/pa_unix_util.c
- )
- target_include_directories(portaudio
- PRIVATE src/portaudio/src/os/unix)
- target_compile_definitions(portaudio
- PRIVATE -DPA_USE_ALSA)
- target_link_libraries(portaudio
- PRIVATE asound)
if(JACK)
- target_sources(portaudio
- PRIVATE src/portaudio/src/hostapi/jack/pa_jack.c)
- target_compile_definitions(portaudio
- PRIVATE -DPA_USE_JACK)
- target_link_libraries(portaudio
- PRIVATE jack)
endif()
elseif(WIN32)
@@ -292,8 +210,6 @@ if(ASIO)
endif()
if(PACKAGE)
- target_compile_options(portaudio
- PRIVATE -mtune=generic)
endif()
##############
@@ -411,8 +327,6 @@ endif()
# dependencies
-add_dependencies(extempore pcre portaudio)
-
if(BUILD_LLVM)
if(WIN32)
add_dependencies(extempore LLVM-install)
@@ -553,7 +467,7 @@ else()
install(TARGETS extempore
RUNTIME
DESTINATION ".")
- install(DIRECTORY assets runtime libs examples tests
+ install(DIRECTORY runtime libs examples
DESTINATION "."
PATTERN ".DS_Store" EXCLUDE)
endif()

View File

@ -1,118 +0,0 @@
This patch to LLVM is required by the developers of the Extempore language.
The following explanation was posted to the extemporelang@googlegroups.com
mailing list:
"There is an assumption in the parser that all definitions occur within the
same compilation unit - i.e. the parser has local state about what has been
parsed in this unit of work. Extempore obviously does lots of little units
rather than one big unit and this causes problems for named types that were
defined in another unit - which they always are. The patch simply checks the
current module to see if the type has been previously defined, and intervenes
appropriately if it has."
Message-ID: <CAOjrPOqoreXuZo4ZpDBvHE7M_tgAR_V8Txq5JFjh1HnGRn2EsA@mail.gmail.com>
--- llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-04-11 12:11:45.000000000 +1000
+++ llvm-3.7.1.src/include/llvm/MC/MCSectionCOFF.h 2015-09-14 09:22:56.000000000 +1000
@@ -16,7 +16,6 @@
#include "llvm/ADT/StringRef.h"
#include "llvm/MC/MCSection.h"
-#include "llvm/Support/COFF.h"
namespace llvm {
class MCSymbol;
--- llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-07-11 20:30:36.000000000 +1000
+++ llvm-3.7.1.src/lib/AsmParser/LLParser.cpp 2015-09-14 09:20:57.000000000 +1000
@@ -1754,8 +1754,14 @@
// If the type hasn't been defined yet, create a forward definition and
// remember where that forward def'n was seen (in case it never is defined).
if (!Entry.first) {
- Entry.first = StructType::create(Context, Lex.getStrVal());
- Entry.second = Lex.getLoc();
+ // this here for extempore
+ if (M->getTypeByName(Lex.getStrVal())) {
+ Entry.first = M->getTypeByName(Lex.getStrVal());
+ Entry.second = SMLoc();
+ } else {
+ Entry.first = StructType::create(Context, Lex.getStrVal());
+ Entry.second = Lex.getLoc();
+ }
}
Result = Entry.first;
Lex.Lex();
--- llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-07-01 05:10:31.000000000 +1000
+++ llvm-3.7.1.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp 2015-09-14 09:23:40.000000000 +1000
@@ -32,6 +32,7 @@
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/MC/MCValue.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Support/ELF.h"
#include "llvm/Support/ErrorHandling.h"
--- llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-07-31 02:31:16.000000000 +1000
+++ llvm-3.7.1.src/lib/ExecutionEngine/MCJIT/MCJIT.cpp 2015-09-14 09:21:28.000000000 +1000
@@ -524,6 +524,17 @@
rv.IntVal = APInt(32, PF(ArgValues[0].IntVal.getZExtValue()));
return rv;
}
+ if (FTy->getNumParams() == 1 &&
+ RetTy->isVoidTy() &&
+ FTy->getParamType(0)->isPointerTy()) {
+ GenericValue rv;
+ //void (*PF)(char *) = (void(*)(char *))(intptr_t)FPtr;
+ //printf("are symbols available: %d\n",isSymbolSearchingDisabled());
+ void (*PF)(char *) = (void(*)(char *))FPtr;
+ char* mzone = (char*) GVTOP(ArgValues[0]);
+ PF(mzone);
+ return rv;
+ }
break;
}
}
--- llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-06-23 21:31:32.000000000 +1000
+++ llvm-3.7.1.src/lib/MC/MCContext.cpp 2015-09-14 09:24:01.000000000 +1000
@@ -23,6 +23,7 @@
#include "llvm/MC/MCSymbolCOFF.h"
#include "llvm/MC/MCSymbolELF.h"
#include "llvm/MC/MCSymbolMachO.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/ELF.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
--- llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-06-25 10:28:42.000000000 +1000
+++ llvm-3.7.1.src/lib/MC/MCObjectFileInfo.cpp 2015-09-14 09:24:17.000000000 +1000
@@ -16,6 +16,7 @@
#include "llvm/MC/MCSectionCOFF.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCSectionMachO.h"
+#include "llvm/Support/COFF.h"
using namespace llvm;
static bool useCompactUnwind(const Triple &T) {
--- llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-06-09 10:31:39.000000000 +1000
+++ llvm-3.7.1.src/lib/MC/MCSectionCOFF.cpp 2015-09-14 09:24:25.000000000 +1000
@@ -11,6 +11,7 @@
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSymbol.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/raw_ostream.h"
using namespace llvm;
--- llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-06-27 04:55:48.000000000 +1000
+++ llvm-3.7.1.src/lib/Target/X86/X86TargetObjectFile.cpp 2015-09-14 09:25:03.000000000 +1000
@@ -16,6 +16,7 @@
#include "llvm/MC/MCSectionCOFF.h"
#include "llvm/MC/MCSectionELF.h"
#include "llvm/MC/MCValue.h"
+#include "llvm/Support/COFF.h"
#include "llvm/Support/Dwarf.h"
#include "llvm/Target/TargetLowering.h"

View File

@ -1,35 +0,0 @@
From 4186c94104ee528abd6860611b49515f3e6ec644 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Fri, 18 Oct 2019 10:34:07 +0200
Subject: [PATCH] input/item: sort before attaching slaves
The order of readdir() is completely filesystem dependent.
Slaves should be attached using the same order across multiple OSses/access
modules.
This fixes the test_libvlc_slaves on some system when the entry order from
readdir() is different.
This patch need to be backported to VLC 3.0.
---
src/input/item.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/input/item.c b/src/input/item.c
index e8db39ca28..fbd74cc95f 100644
--- a/src/input/item.c
+++ b/src/input/item.c
@@ -1809,8 +1809,8 @@ void vlc_readdir_helper_finish(struct vlc_readdir_helper *p_rdh, bool b_success)
{
if (b_success)
{
- rdh_attach_slaves(p_rdh, p_rdh->p_node);
rdh_sort(p_rdh->p_node);
+ rdh_attach_slaves(p_rdh, p_rdh->p_node);
}
free(p_rdh->psz_ignored_exts);
--
2.20.1

View File

@ -267,14 +267,14 @@ and triple stores.")
(define-public serd
(package
(name "serd")
(version "0.30.2")
(version "0.30.4")
(source (origin
(method url-fetch)
(uri (string-append "https://download.drobilla.net/serd-"
version ".tar.bz2"))
(sha256
(base32
"00kjjgs5a8r72khgpya14scvl3n58wqwl5927y14z03j25q04ccx"))))
"168rn3m32c59qbar120f83ibcnnd987ij9p053kybgl7cmm6358c"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no check target

View File

@ -651,13 +651,17 @@ calls and messages")
(define-public pjproject
(package
(name "pjproject")
(version "2.9")
(version "2.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/pjsip/pjproject.git")
(commit "5dfa75be7d69047387f9b0436dd9492bbbf03fe4")))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1aklicpgwc88578k03i5d5cm5h8mfm7hmx8vfprchbmaa2p8f4z0"))
(modules '((guix build utils)))
(snippet
'(begin
@ -686,11 +690,7 @@ calls and messages")
(lambda (dirs)
(substitute* "third_party/build/os-linux.mak"
(((string-append "DIRS += " dirs)) "")))
third-party-dirs))))
(file-name (git-file-name name version))
(sha256
(base32
"1ayj6n7zd5wvd1nzj2k9s57fb4ckc2fv92k5sjvhd87yg69k3393"))))
third-party-dirs))))))
(build-system gnu-build-system)
(inputs
`(("portaudio" ,portaudio)))
@ -734,278 +734,6 @@ calls and messages")
Initiation Protocol (SIP) and a multimedia framework.")
(license license:gpl2+)))
(define %jami-version "20191101.3.67671e7")
(define* (jami-source #:key without-daemon)
(origin
(method url-fetch)
(uri (string-append "https://dl.jami.net/ring-release/tarballs/ring_"
%jami-version
".tar.gz"))
(modules '((guix build utils)))
(snippet
(if without-daemon
'(begin
(delete-file-recursively "daemon/contrib"))
#f))
(sha256
(base32
"0kw172w2ccyz438kf5xqw14nhfm4xk6a2libnzib9j2wvhlpf4q0"))))
(define-public pjproject-jami
(package
(inherit pjproject)
(name "pjproject-jami")
(native-inputs
`(("savoir-faire-linux-patches" ,(jami-source))
,@(package-native-inputs pjproject)))
(arguments
`(#:tests? #f
;; See ring-project/daemon/contrib/src/pjproject/rules.mak.
#:configure-flags
(list "--disable-oss"
"--disable-sound"
"--disable-video"
"--enable-ext-sound"
"--disable-speex-aec"
"--disable-g711-codec"
"--disable-l16-codec"
"--disable-gsm-codec"
"--disable-g722-codec"
"--disable-g7221-codec"
"--disable-speex-codec"
"--disable-ilbc-codec"
"--disable-opencore-amr"
"--disable-silk"
"--disable-sdl"
"--disable-ffmpeg"
"--disable-v4l2"
"--disable-openh264"
"--disable-resample"
"--disable-libwebrtc"
"--with-gnutls"
"--with-external-srtp"
;; We need -fPIC or else we get the following error when linking
;; against pjproject-jami:
;; relocation R_X86_64_32S against `.rodata' can not be used when
;; making a shared object;
"CFLAGS=-fPIC"
"CXXFLAGS=-fPIC")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-after 'unpack 'apply-patches
(lambda* (#:key inputs #:allow-other-keys)
(let ((savoir-faire-linux-patches-directory "Savoir-faire Linux patches")
;; Comes from
;; "ring-project/daemon/contrib/src/pjproject/rules.mak".
;; WARNING: These amount for huge changes in pjproject.
(savoir-faire-linux-patches
'("fix_turn_alloc_failure"
"rfc2466"
"ipv6"
"multiple_listeners"
"pj_ice_sess"
"fix_turn_fallback"
"fix_ioqueue_ipv6_sendto"
"add_dtls_transport"
"rfc6544"
"ice_config"
"sip_config"
"fix_first_packet_turn_tcp"
"fix_ebusy_turn"
"ignore_ipv6_on_transport_check"
"fix_turn_connection_failure"
;; "uwp_vs" ; for windows
"disable_local_resolution")))
(mkdir-p savoir-faire-linux-patches-directory)
(invoke "tar" "-xvf" (assoc-ref inputs "savoir-faire-linux-patches")
"-C" savoir-faire-linux-patches-directory
"--strip-components=5"
"ring-project/daemon/contrib/src/pjproject")
(for-each
(lambda (file)
(invoke "patch" "--force" "-p1" "-i"
(string-append savoir-faire-linux-patches-directory "/"
file ".patch")))
savoir-faire-linux-patches))
#t))
;; TODO: We could use substitute-keyword-arguments instead of
;; repeating the phases from pjproject, but somehow it does
;; not work.
(add-before 'build 'build-dep
(lambda _ (invoke "make" "dep")))
(add-before 'patch-source-shebangs 'autoconf
(lambda _
(invoke "autoconf" "-v" "-f" "-i" "-o"
"aconfigure" "aconfigure.ac")))
(add-before 'autoconf 'disable-some-tests
;; Three of the six test programs fail due to missing network
;; access.
(lambda _
(substitute* "Makefile"
(("selftest: pjlib-test pjlib-util-test pjnath-test pjmedia-test pjsip-test pjsua-test")
"selftest: pjlib-test pjlib-util-test pjmedia-test"))
#t)))))))
(define-public libring
(package
(name "libring")
(version %jami-version)
(source (jami-source #:without-daemon #t))
(build-system gnu-build-system)
(inputs
;; Missing (optional?) dep: libnatpmp.
`(("alsa-lib" ,alsa-lib)
("boost" ,boost)
("dbus-c++" ,dbus-c++)
("eudev" ,eudev)
("ffmpeg" ,ffmpeg)
("flac" ,flac)
("gmp" ,gmp)
("gsm" ,gsm)
("jack" ,jack-1)
("jsoncpp" ,jsoncpp)
("libogg" ,libogg)
("libva" ,libva)
("opendht" ,opendht)
("opus" ,opus)
("pcre" ,pcre)
("pulseaudio" ,pulseaudio)
("libsamplerate" ,libsamplerate)
("libsndfile" ,libsndfile)
("speex" ,speex)
("speexdsp" ,speexdsp)
("libupnp" ,libupnp)
("libvorbis" ,libvorbis)
("libx264" ,libx264)
("libvdpau" ,libvdpau)
("yaml-cpp" ,yaml-cpp)
("zlib" ,zlib)
("openssl" ,openssl)
("libsecp256k1" ,libsecp256k1)
("python" ,python)
("python-wrapper" ,python-wrapper)
("restinio" ,restinio)
("libx11" ,libx11)
("asio" ,asio)
;; TODO: Upstream seems to rely on a custom pjproject (a.k.a. pjsip) version.
;; See https://git.jami.net/savoirfairelinux/ring-daemon/issues/24.
("pjproject" ,pjproject-jami)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("which" ,which)
("cppunit" ,cppunit)
("perl" ,perl))) ; Needed for documentation.
(arguments
`(#:tests? #f ; The tests fail to compile due to missing headers.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "daemon")
#t))
(add-before 'build 'add-lib-dir
(lambda _
(mkdir-p "src/lib")
#t)))))
(synopsis "Distributed multimedia communications platform")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides a library and daemon implementing the Jami core
functionality.")
(home-page "https://jami.net/")
(license license:gpl3+)))
(define-public libringclient
(package
(inherit libring)
(name "libringclient")
(build-system cmake-build-system)
(propagated-inputs
`(("libring" ,libring) ; For 'dring'.
("qtbase" ,qtbase) ; Qt is included in several installed headers.
("qttools" ,qttools)))
(arguments
`(#:tests? #f ; There is no testsuite.
#:configure-flags
(list (string-append "-DRING_BUILD_DIR="
(assoc-ref %build-inputs "libring") "/include"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "lrc")
#t))
(add-before 'configure 'fix-dbus-interfaces-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("\\$\\{CMAKE_INSTALL_PREFIX\\}(/share/dbus-1/interfaces)" _ dbus-interfaces-path-suffix)
(string-append (assoc-ref inputs "libring")
dbus-interfaces-path-suffix))))))))
(synopsis "Distributed multimedia communications platform")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides a library common to all Jami clients.")
(home-page "https://jami.net")
(license license:gpl3+)))
(define-public jami
(package
(inherit libring)
(name "jami")
(build-system cmake-build-system)
(inputs
`(("libringclient" ,libringclient)
("gtk+" ,gtk+)
("qrencode" ,qrencode)
("libnotify" ,libnotify)
("clutter" ,clutter)
("clutter-gtk" ,clutter-gtk)
("libcanberra" ,libcanberra)
("webkitgtk" ,webkitgtk)))
(native-inputs
`(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("doxygen" ,doxygen)))
(propagated-inputs
`(("libring" ,libring) ; Contains `dring', the daemon, which is automatically by d-bus.
("adwaita-icon-theme" ,adwaita-icon-theme)
("evolution-data-server" ,evolution-data-server)))
(arguments
`(#:tests? #f ; There is no testsuite.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'change-directory
(lambda _
(chdir "client-gnome")
#t)))))
(synopsis "Distributed, privacy-respecting communication program")
(description "Jami (formerly GNU Ring) is a secure and distributed voice,
video and chat communication platform that requires no centralized server and
leaves the power of privacy in the hands of the user. It supports the SIP and
IAX protocols, as well as decentralized calling using P2P-DHT.
This package provides the Jami client for the GNOME desktop.")
(home-page "https://jami.net")
(license license:gpl3+)))
(define-public jami-client-gnome
(deprecated-package "jami-client-gnome" jami))
(define-public libtgvoip
(package
(name "libtgvoip")

View File

@ -757,14 +757,14 @@ and Octave. TeXmacs is completely extensible via Guile.")
(define-public scintilla
(package
(name "scintilla")
(version "4.3.2")
(version "4.3.3")
(source
(origin
(method url-fetch)
(uri (let ((v (apply string-append (string-split version #\.))))
(string-append "https://www.scintilla.org/scintilla" v ".tgz")))
(sha256
(base32 "0d8ssl0d8r6bslbzd507l9c5g8mwn1zriak3fnf85936pdmkhq9h"))))
(base32 "0zh8c19r1zd4kr9jg2ws0n2n5ic2siz5zbns6cvylyfbpf69ghy2"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "GTK3=1" "CC=gcc" "-Cgtk")

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;; Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,6 +29,7 @@
#:use-module (gnu packages photo)
#:use-module (gnu packages image)
#:use-module (gnu packages mp3)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xiph)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages python)
@ -92,15 +94,21 @@ over IRC, instant messaging, network games, and most server software.")
(define-public libupnp
(package
(name "libupnp")
(version "1.6.25")
(version "1.8.6")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pupnp/pupnp/libUPnP%20"
version "/" name "-" version ".tar.bz2"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/pupnp/pupnp.git")
(commit (string-append "release-" version))))
(sha256
(base32
"0hzsd7rvfa87b4hxg9yj4xhdfxx9sp09r9sqdl3mqhvmcyw018y5"))))
"1jlb6qh47513h2simy0zxia5q61w1c31mnwmjqpr2nf832lmnpk4"))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(build-system gnu-build-system)
(arguments
;; The tests require a network device capable of multicasting which is

View File

@ -1191,7 +1191,7 @@ videoformats depend on the configuration flags of ffmpeg.")
(define-public vlc
(package
(name "vlc")
(version "3.0.8")
(version "3.0.10")
(source (origin
(method url-fetch)
(uri (string-append
@ -1200,13 +1200,7 @@ videoformats depend on the configuration flags of ffmpeg.")
"/vlc-" version ".tar.xz"))
(sha256
(base32
"1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))
(patches
(search-patches
;; TODO: The test "libvlc_slaves" fails. Applied upstream as
;; <https://git.videolan.org/?p=vlc.git;a=commit;h=4186c94104ee528abd6860611b49515f3e6ec644>.
;; Try removing it in 3.0.9.
"vlc-fix-test_libvlc_slaves.patch"))))
"0cackl1084hcmg4myf3kvjvd6sjxmzn0c0qkmanz6brvgzyanrm9"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
@ -1311,20 +1305,6 @@ videoformats depend on the configuration flags of ffmpeg.")
;; which fails in our sandboxed build system
(substitute* "test/run_vlc.sh"
(("./vlc --ignore-config") "echo"))
;; modules/text_renderer/freetype/text_layout.c uses a
;; now-deprecated interface 'fribidi_get_par_embedding_levels'
;; from fribidi.h, so for now we enable the use of deprecated
;; fribidi interfaces from this file.
;; FIXME: Try removing this for vlc >= 3.0.3.
(substitute* "modules/text_renderer/freetype/text_layout.c"
(("# define FRIBIDI_NO_DEPRECATED 1") ""))
;; Fix build with libssh2 > 1.8.0:
;; <https://trac.videolan.org/vlc/ticket/22060>
;; <https://git.videolan.org/?p=vlc.git;a=commit;h=11449b5cd8b415768e010d9b7c1d6ba3cea21f82>
(substitute* "modules/access/sftp.c"
(("010801") "010900"))
#t)))
(add-after 'strip 'regenerate-plugin-cache
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -338,7 +338,7 @@ access.")
(define-public qutebrowser
(package
(name "qutebrowser")
(version "1.10.0")
(version "1.11.0")
(source
(origin
(method url-fetch)
@ -347,7 +347,7 @@ access.")
"qutebrowser-" version ".tar.gz"))
(sha256
(base32
"1prvd3cysmcjfybn0dmr3ih0bl6lm5ml9i7wd09fn8hb7047mkby"))))
"0b0qlki9bp9mm41lrh6rc6qqvm4nsz8da63sby3a1f2xm9b9vvg2"))))
(build-system python-build-system)
(native-inputs
`(("python-attrs" ,python-attrs))) ; for tests

View File

@ -1316,17 +1316,13 @@ Service Switch}, for an example."
(documentation "Run the syslog daemon (syslogd).")
(provision '(syslogd))
(requirement '(user-processes))
(start #~(let ((spawn (make-forkexec-constructor
(list #$(syslog-configuration-syslogd config)
"--rcfile"
#$(syslog-configuration-config-file config))
#:pid-file "/var/run/syslog.pid")))
(lambda ()
;; Set the umask such that file permissions are #o640.
(let ((mask (umask #o137))
(pid (spawn)))
(umask mask)
pid))))
(start #~(make-forkexec-constructor
(list #$(syslog-configuration-syslogd config)
"--rcfile"
#$(syslog-configuration-config-file config))
;; Set the umask such that file permissions are #o640.
#:file-creation-mask #o137
#:pid-file "/var/run/syslog.pid"))
(stop #~(make-kill-destructor))))))
;; Snippet adapted from the GNU inetutils manual.

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -748,6 +749,8 @@ cache.size = 100 * MB
(default #f)) ;boolean
(servers dnsmasq-configuration-servers
(default '())) ;list of string
(addresses dnsmasq-configuration-addresses
(default '())) ;list of string
(cache-size dnsmasq-configuration-cache-size
(default 150)) ;integer
(negative-cache? dnsmasq-configuration-negative-cache?
@ -759,7 +762,7 @@ cache.size = 100 * MB
no-hosts?
port local-service? listen-addresses
resolv-file no-resolv? servers
cache-size negative-cache?)
addresses cache-size negative-cache?)
(shepherd-service
(provision '(dnsmasq))
(requirement '(networking))
@ -783,6 +786,8 @@ cache.size = 100 * MB
'())
#$@(map (cut format #f "--server=~a" <>)
servers)
#$@(map (cut format #f "--address=~a" <>)
addresses)
#$(format #f "--cache-size=~a" cache-size)
#$@(if negative-cache?
'()

View File

@ -7,6 +7,7 @@
;;; Copyright © 2019 Meiyo Peng <meiyo.peng@gmail.com>
;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -148,7 +149,8 @@
%base-packages-linux
%base-packages-networking
%base-packages-utils
%base-firmware))
%base-firmware
%default-kernel-arguments))
;;; Commentary:
;;;
@ -179,7 +181,7 @@
(kernel-loadable-modules operating-system-kernel-loadable-modules
(default '())) ; list of packages
(kernel-arguments operating-system-user-kernel-arguments
(default '("quiet"))) ; list of gexps/strings
(default %default-kernel-arguments)) ; list of gexps/strings
(bootloader operating-system-bootloader) ; <bootloader-configuration>
(label operating-system-label ; string
(thunked)
@ -488,6 +490,17 @@ possible (that is if there's a LINUX keyword argument in the build system)."
((#:linux kernel #f)
target-kernel)))))
(define %default-modprobe-blacklist
;; List of kernel modules to blacklist by default.
'("usbmouse" ;races with bcm5974, see <https://bugs.gnu.org/35574>
"usbkbd")) ;races with usbhid, see <https://issues.guix.gnu.org/35574#18>
(define %default-kernel-arguments
;; Default arguments passed to the kernel.
(list (string-append "modprobe.blacklist="
(string-join %default-modprobe-blacklist ","))
"quiet"))
(define* (operating-system-directory-base-entries os)
"Return the basic entries of the 'system' directory of OS for use as the
value of the SYSTEM-SERVICE-TYPE service."

View File

@ -470,12 +470,6 @@ Access documentation at any time by pressing Alt-F2.\x1b[0m
(label (string-append "GNU Guix installation "
(package-version guix)))
;; XXX: The AMD Radeon driver is reportedly broken, which makes kmscon
;; non-functional:
;; <https://lists.gnu.org/archive/html/guix-devel/2019-03/msg00441.html>.
;; Thus, blacklist it.
(kernel-arguments '("quiet" "modprobe.blacklist=radeon"))
(file-systems
;; Note: the disk image build code overrides this root file system with
;; the appropriate one.

View File

@ -275,6 +275,7 @@ FILE-SYSTEMS."
("btrfs" => '("btrfs"))
("iso9660" => '("isofs"))
("jfs" => '("jfs"))
("f2fs" => '("f2fs" "crc32_generic"))
(else '())))
(define (file-system-modules file-systems)

View File

@ -1489,6 +1489,7 @@ the entries in MANIFEST."
;; <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29654#23>.
#:env-vars `(("MALLOC_PERTURB_" . "1"))
#:substitutable? #f
#:local-build? #t
#:properties
`((type . profile-hook)