Merge branch 'master' into core-updates

This commit is contained in:
Mark H Weaver 2018-02-09 01:46:34 -05:00
commit efe2a2833c
No known key found for this signature in database
GPG key ID: 7CEF29847562C516
59 changed files with 2236 additions and 260 deletions

View file

@ -446,6 +446,9 @@ dist_zshcompletion_DATA = etc/completion/zsh/_guix
# Fish completion file.
dist_fishcompletion_DATA = etc/completion/fish/guix.fish
# SELinux policy
dist_selinux_policy_DATA = etc/guix-daemon.cil
EXTRA_DIST = \
HACKING \
ROADMAP \

View file

@ -54,6 +54,13 @@ AC_ARG_WITH([fish-completion-dir],
[fishcompletiondir='${datadir}/fish/vendor_completions.d'])
AC_SUBST([fishcompletiondir])
AC_ARG_WITH([selinux-policy-dir],
AC_HELP_STRING([--with-selinux-policy-dir=DIR],
[name of the SELinux policy directory]),
[selinux_policydir="$withval"],
[selinux_policydir='${datadir}/selinux/'])
AC_SUBST([selinux_policydir])
dnl Better be verbose.
AC_MSG_CHECKING([for the store directory])
AC_MSG_RESULT([$storedir])
@ -272,7 +279,8 @@ esac
AC_CONFIG_FILES([Makefile
po/guix/Makefile.in
po/packages/Makefile.in
guix/config.scm])
etc/guix-daemon.cil
guix/config.scm])
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],

View file

@ -21,7 +21,7 @@ Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*
Copyright @copyright{} 2014 Pierre-Antoine Rault@*
Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@*
Copyright @copyright{} 2015, 2016, 2017 Ricardo Wurmus@*
Copyright @copyright{} 2015, 2016, 2017, 2018 Ricardo Wurmus@*
Copyright @copyright{} 2016 Ben Woodcroft@*
Copyright @copyright{} 2016, 2017 Chris Marusich@*
Copyright @copyright{} 2016, 2017 Efraim Flashner@*
@ -123,6 +123,7 @@ Setting Up the Daemon
* Build Environment Setup:: Preparing the isolated build environment.
* Daemon Offload Setup:: Offloading builds to remote machines.
* SELinux Support:: Using an SELinux policy for the daemon.
Package Management
@ -754,6 +755,7 @@ the daemon to download pre-built binaries.
@menu
* Build Environment Setup:: Preparing the isolated build environment.
* Daemon Offload Setup:: Offloading builds to remote machines.
* SELinux Support:: Using an SELinux policy for the daemon.
@end menu
@node Build Environment Setup
@ -1081,6 +1083,92 @@ main node:
@end example
@node SELinux Support
@subsection SELinux Support
@cindex SELinux, daemon policy
@cindex mandatory access control, SELinux
@cindex security, guix-daemon
Guix includes an SELinux policy file at @file{etc/guix-daemon.cil} that
can be installed on a system where SELinux is enabled, in order to label
Guix files and to specify the expected behavior of the daemon. Since
GuixSD does not provide an SELinux base policy, the daemon policy cannot
be used on GuixSD.
@subsubsection Installing the SELinux policy
@cindex SELinux, policy installation
To install the policy run this command as root:
@example
semodule -i etc/guix-daemon.cil
@end example
Then relabel the file system with @code{restorecon} or by a different
mechanism provided by your system.
Once the policy is installed, the file system has been relabeled, and
the daemon has been restarted, it should be running in the
@code{guix_daemon_t} context. You can confirm this with the following
command:
@example
ps -Zax | grep guix-daemon
@end example
Monitor the SELinux log files as you run a command like @code{guix build
hello} to convince yourself that SELinux permits all necessary
operations.
@subsubsection Limitations
@cindex SELinux, limitations
This policy is not perfect. Here is a list of limitations or quirks
that should be considered when deploying the provided SELinux policy for
the Guix daemon.
@enumerate
@item
@code{guix_daemon_socket_t} isnt actually used. None of the socket
operations involve contexts that have anything to do with
@code{guix_daemon_socket_t}. It doesnt hurt to have this unused label,
but it would be preferrable to define socket rules for only this label.
@item
@code{guix gc} cannot access arbitrary links to profiles. By design,
the file label of the destination of a symlink is independent of the
file label of the link itself. Although all profiles under
$localstatedir are labelled, the links to these profiles inherit the
label of the directory they are in. For links in the users home
directory this will be @code{user_home_t}. But for links from the root
users home directory, or @file{/tmp}, or the HTTP servers working
directory, etc, this wont work. @code{guix gc} would be prevented from
reading and following these links.
@item
The daemons feature to listen for TCP connections might no longer work.
This might require extra rules, because SELinux treats network sockets
differently from files.
@item
Currently all files with a name matching the regular expression
@code{/gnu/store/.+-(guix-.+|profile)/bin/guix-daemon} are assigned the
label @code{guix_daemon_exec_t}; this means that @emph{any} file with
that name in any profile would be permitted to run in the
@code{guix_daemon_t} domain. This is not ideal. An attacker could
build a package that provides this executable and convince a user to
install and run it, which lifts it into the @code{guix_daemon_t} domain.
At that point SELinux could not prevent it from accessing files that are
allowed for processes in that domain.
We could generate a much more restrictive policy at installation time,
so that only the @emph{exact} file name of the currently installed
@code{guix-daemon} executable would be labelled with
@code{guix_daemon_exec_t}, instead of using a broad regular expression.
The downside is that root would have to install or upgrade the policy at
installation time whenever the Guix package that provides the
effectively running @code{guix-daemon} executable is upgraded.
@end enumerate
@node Invoking guix-daemon
@section Invoking @command{guix-daemon}
@ -6358,6 +6446,19 @@ are many packages, though, for which it lacks a method to determine
whether a new upstream release is available. However, the mechanism is
extensible, so feel free to get in touch with us to add a new method!
Sometimes the upstream name differs from the package name used in Guix,
and @command{guix refresh} needs a little help. Most updaters honor the
@code{upstream-name} property in package definitions, which can be used
to that effect:
@example
(define-public network-manager
(package
(name "network-manager")
;; @dots{}
(properties '((upstream-name . "NetworkManager")))))
@end example
When passed @code{--update}, it modifies distribution source files to
update the version numbers and source tarball hashes of those package
recipes (@pxref{Defining Packages}). This is achieved by downloading
@ -10188,9 +10289,9 @@ caching; when @code{#f}, the number of processors is used.
@xref{Invoking guix publish, @option{--workers}}, for more information.
@item @code{ttl} (default: @code{#f})
When it is an integer, this denotes the @dfn{time-to-live} of the
published archives. @xref{Invoking guix publish, @option{--ttl}}, for
more information.
When it is an integer, this denotes the @dfn{time-to-live} in seconds
of the published archives. @xref{Invoking guix publish, @option{--ttl}},
for more information.
@end table
@end deftp

285
etc/guix-daemon.cil.in Normal file
View file

@ -0,0 +1,285 @@
; -*- lisp -*-
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;; This is a specification for SELinux 2.7 written in the SELinux Common
;; Intermediate Language (CIL). It refers to types that must be defined in
;; the system's base policy.
(block guix_daemon
;; Require existing types
(typeattributeset cil_gen_require init_t)
(typeattributeset cil_gen_require tmp_t)
(typeattributeset cil_gen_require nscd_var_run_t)
(typeattributeset cil_gen_require var_log_t)
(typeattributeset cil_gen_require domain)
;; Declare own types
(type guix_daemon_t)
(roletype object_r guix_daemon_t)
(type guix_daemon_conf_t)
(roletype object_r guix_daemon_conf_t)
(type guix_daemon_exec_t)
(roletype object_r guix_daemon_exec_t)
(type guix_daemon_socket_t)
(roletype object_r guix_daemon_socket_t)
(type guix_store_content_t)
(roletype object_r guix_store_content_t)
(type guix_profiles_t)
(roletype object_r guix_profiles_t)
;; These types are domains, thereby allowing process rules
(typeattributeset domain (guix_daemon_t guix_daemon_exec_t))
(level low (s0))
;; When a process in init_t or guix_store_content_t spawns a
;; guix_daemon_exec_t process, let it run in the guix_daemon_t context
(typetransition init_t guix_daemon_exec_t
process guix_daemon_t)
(typetransition guix_store_content_t guix_daemon_exec_t
process guix_daemon_t)
;; Permit communication with NSCD
(allow guix_daemon_t
nscd_var_run_t
(file (map read)))
(allow guix_daemon_t
nscd_var_run_t
(dir (search)))
(allow guix_daemon_t
nscd_var_run_t
(sock_file (write)))
(allow guix_daemon_t
nscd_t
(fd (use)))
(allow guix_daemon_t
nscd_t
(unix_stream_socket (connectto)))
;; Permit logging and temp file access
(allow guix_daemon_t
tmp_t
(lnk_file (setattr unlink)))
(allow guix_daemon_t
tmp_t
(dir (create
rmdir
add_name remove_name
open read write
getattr setattr
search)))
(allow guix_daemon_t
var_log_t
(file (create getattr open write)))
(allow guix_daemon_t
var_log_t
(dir (getattr write add_name)))
(allow guix_daemon_t
var_run_t
(lnk_file (read)))
(allow guix_daemon_t
var_run_t
(dir (search)))
;; Spawning processes, execute helpers
(allow guix_daemon_t
self
(process (fork)))
(allow guix_daemon_t
guix_daemon_exec_t
(file (execute execute_no_trans read open)))
;; TODO: unknown
(allow guix_daemon_t
root_t
(dir (mounton)))
(allow guix_daemon_t
fs_t
(filesystem (getattr)))
(allow guix_daemon_conf_t
fs_t
(filesystem (associate)))
;; Build isolation
(allow guix_daemon_t
guix_store_content_t
(file (mounton)))
(allow guix_store_content_t
fs_t
(filesystem (associate)))
(allow guix_daemon_t
guix_store_content_t
(dir (mounton)))
(allow guix_daemon_t
guix_daemon_t
(capability (net_admin
fsetid fowner
chown setuid setgid
dac_override dac_read_search
sys_chroot)))
(allow guix_daemon_t
fs_t
(filesystem (unmount)))
(allow guix_daemon_t
devpts_t
(filesystem (mount)))
(allow guix_daemon_t
devpts_t
(chr_file (setattr getattr)))
(allow guix_daemon_t
tmpfs_t
(filesystem (mount)))
(allow guix_daemon_t
tmpfs_t
(dir (getattr)))
(allow guix_daemon_t
proc_t
(filesystem (mount)))
(allow guix_daemon_t
null_device_t
(chr_file (getattr open read write)))
(allow guix_daemon_t
kvm_device_t
(chr_file (getattr)))
(allow guix_daemon_t
zero_device_t
(chr_file (getattr)))
(allow guix_daemon_t
urandom_device_t
(chr_file (getattr)))
(allow guix_daemon_t
random_device_t
(chr_file (getattr)))
(allow guix_daemon_t
devtty_t
(chr_file (getattr)))
;; Access to store items
(allow guix_daemon_t
guix_store_content_t
(dir (reparent
create
getattr setattr
search rename
add_name remove_name
open write
rmdir)))
(allow guix_daemon_t
guix_store_content_t
(file (create
lock
setattr getattr
execute execute_no_trans
link unlink
map
rename
open read write)))
(allow guix_daemon_t
guix_store_content_t
(lnk_file (create
getattr setattr
link unlink
read
rename)))
;; Access to configuration files and directories
(allow guix_daemon_t
guix_daemon_conf_t
(dir (search
setattr getattr
add_name remove_name
open read write)))
(allow guix_daemon_t
guix_daemon_conf_t
(file (create
lock
map
getattr setattr
unlink
open read write)))
(allow guix_daemon_t
guix_daemon_conf_t
(lnk_file (create getattr rename unlink)))
;; Access to profiles
(allow guix_daemon_t
guix_profiles_t
(dir (getattr setattr read open)))
(allow guix_daemon_t
guix_profiles_t
(lnk_file (read getattr)))
;; Access to profile links in the home directory
;; TODO: allow access to profile links *anywhere* on the filesystem
(allow guix_daemon_t
user_home_t
(lnk_file (read getattr)))
(allow guix_daemon_t
user_home_t
(dir (search)))
;; Socket operations
(allow guix_daemon_t
init_t
(fd (use)))
(allow guix_daemon_t
init_t
(unix_stream_socket (write)))
(allow guix_daemon_t
guix_daemon_conf_t
(unix_stream_socket (listen)))
(allow guix_daemon_t
guix_daemon_conf_t
(sock_file (create unlink)))
(allow guix_daemon_t
self
(unix_stream_socket (create
read write
connect bind accept
getopt setopt)))
(allow guix_daemon_t
self
(fifo_file (write read)))
(allow guix_daemon_t
self
(udp_socket (ioctl create)))
;; Label file system
(filecon "@guix_sysconfdir@/guix(/.*)?"
any (system_u object_r guix_daemon_conf_t (low low)))
(filecon "@guix_localstatedir@/guix(/.*)?"
any (system_u object_r guix_daemon_conf_t (low low)))
(filecon "@guix_localstatedir@/guix/profiles(/.*)?"
any (system_u object_r guix_profiles_t (low low)))
(filecon "/gnu"
dir (unconfined_u object_r guix_store_content_t (low low)))
(filecon "@storedir@(/.+)?"
any (unconfined_u object_r guix_store_content_t (low low)))
(filecon "@storedir@/[^/]+/.+"
any (unconfined_u object_r guix_store_content_t (low low)))
(filecon "@prefix@/bin/guix-daemon"
file (system_u object_r guix_daemon_exec_t (low low)))
(filecon "@storedir@/.+-(guix-.+|profile)/bin/guix-daemon"
file (system_u object_r guix_daemon_exec_t (low low)))
(filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix-authenticate"
file (system_u object_r guix_daemon_exec_t (low low)))
(filecon "@storedir@/.+-(guix-.+|profile)/libexec/guix/(.*)?"
any (system_u object_r guix_daemon_exec_t (low low)))
(filecon "@guix_localstatedir@/guix/daemon-socket/socket"
any (system_u object_r guix_daemon_socket_t (low low))))

View file

@ -42,7 +42,6 @@ (define-module (gnu build linux-boot)
make-static-device-nodes
configure-qemu-networking
bind-mount
device-number
boot-system))

View file

@ -9,7 +9,7 @@
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
# Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
# Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2016, 2017 Jan Nieuwenhuizen <janneke@gnu.org>
# Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
@ -720,6 +720,8 @@ dist_patch_DATA = \
%D%/packages/patches/gobject-introspection-cc.patch \
%D%/packages/patches/gobject-introspection-girepository.patch \
%D%/packages/patches/gpm-glibc-2.26.patch \
%D%/packages/patches/gpsbabel-minizip.patch \
%D%/packages/patches/gpsbabel-qstring.patch \
%D%/packages/patches/graphite2-ffloat-store.patch \
%D%/packages/patches/grep-timing-sensitive-test.patch \
%D%/packages/patches/groff-source-date-epoch.patch \
@ -758,6 +760,7 @@ dist_patch_DATA = \
%D%/packages/patches/higan-remove-march-native-flag.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \
%D%/packages/patches/hwloc-tests-without-sysfs.patch \
%D%/packages/patches/hydra-disable-darcs-test.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
%D%/packages/patches/icecat-bug-1348660-pt5.patch \
@ -870,7 +873,6 @@ dist_patch_DATA = \
%D%/packages/patches/lua51-pkgconfig.patch \
%D%/packages/patches/lua-liblua-so.patch \
%D%/packages/patches/luajit-no_ldconfig.patch \
%D%/packages/patches/luajit-symlinks.patch \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/luminance-hdr-qt-printer.patch \
%D%/packages/patches/lvm2-static-link.patch \
@ -890,6 +892,9 @@ dist_patch_DATA = \
%D%/packages/patches/mhash-keygen-test-segfault.patch \
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/mpv-CVE-2018-6360-1.patch \
%D%/packages/patches/mpv-CVE-2018-6360-2.patch \
%D%/packages/patches/mpv-CVE-2018-6360-3.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \
%D%/packages/patches/mozjs17-aarch64-support.patch \
@ -900,6 +905,7 @@ dist_patch_DATA = \
%D%/packages/patches/mozjs38-version-detection.patch \
%D%/packages/patches/mumps-build-parallelism.patch \
%D%/packages/patches/mupdf-build-with-latest-openjpeg.patch \
%D%/packages/patches/mupdf-CVE-2017-17858.patch \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/net-tools-bitrot.patch \
@ -937,7 +943,8 @@ dist_patch_DATA = \
%D%/packages/patches/osip-CVE-2017-7853.patch \
%D%/packages/patches/ots-no-include-missing-file.patch \
%D%/packages/patches/owncloud-disable-updatecheck.patch \
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
%D%/packages/patches/p7zip-CVE-2016-9296.patch \
%D%/packages/patches/p7zip-CVE-2017-17969.patch \
%D%/packages/patches/p7zip-remove-unused-code.patch \
%D%/packages/patches/patchelf-page-size.patch \
%D%/packages/patches/patchelf-rework-for-arm.patch \

View file

@ -19,6 +19,7 @@
;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com>
;;; Copyright © 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -256,18 +257,20 @@ (define-public dfc
(define-public htop
(package
(name "htop")
(version "2.0.2")
(version "2.1.0")
(source (origin
(method url-fetch)
(uri (string-append "http://hisham.hm/htop/releases/"
version "/htop-" version ".tar.gz"))
(sha256
(base32
"11zlwadm6dpkrlfvf3z3xll26yyffa7qrxd1w72y1kl0rgffk6qp"))))
"0j07z0xm2gj1vzvbgh4323k4db9mr7drd7gw95mmpqi61ncvwq1j"))))
(build-system gnu-build-system)
(inputs
`(("ncurses" ,ncurses)))
(home-page "http://htop.sourceforge.net/")
(native-inputs
`(("python" ,python-minimal-wrapper))) ; for scripts/MakeHeader.py
(home-page "https://hisham.hm/htop/")
(synopsis "Interactive process viewer")
(description
"This is htop, an interactive process viewer. It is a text-mode
@ -520,6 +523,50 @@ (define-public netcat
would need and has several interesting built-in capabilities.")
(license license:gpl2+)))
(define-public sipcalc
(package
(name "sipcalc")
(version "1.1.6")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.routemeister.net/projects"
"/sipcalc/files/sipcalc" "-" version ".tar.gz"))
(sha256
(base32
"0mv3wndj4z2bsshh2k8d5sy3j8wxzgf8mzmmkvj1k8gpcz37dm6g"))))
(build-system gnu-build-system)
(home-page "http://www.routemeister.net/projects/sipcalc/")
(synopsis "Command-line IP subnet calculator")
(description
"Sipcalc is an advanced command-line IP subnet calculator. It can take
multiple forms of input (IPv4/IPv6/interface/hostname) and output a multitude
of information about a given subnet.
Features include:
@itemize @bullet
@item IPv4
@itemize
@item Retrieving of address information from interfaces.
@item Classfull and CIDR output.
@item Multiple address and netmask input and output formats (dotted quad, hex,
number of bits).
@item Output of broadcast address, network class, Cisco wildcard,
hosts/range, network range.
@item The ability to split a network based on a smaller netmask, now also with
recursive runs on the generated subnets. (also IPv6)
@end itemize
@item IPv6
@itemize
@item Compressed and expanded input and output addresses.
@item Standard IPv6 network output.
@item v4 in v6 output.
@item Reverse DNS address generation.
@end itemize
@end itemize\n")
(license license:bsd-3)))
(define-public alive
(package
(name "alive")
@ -1340,7 +1387,7 @@ (define-public direvent
(define-public libcap-ng
(package
(name "libcap-ng")
(version "0.7.4")
(version "0.7.9")
(source (origin
(method url-fetch)
(uri (string-append
@ -1348,9 +1395,11 @@ (define-public libcap-ng
version ".tar.gz"))
(sha256
(base32
"0ssvnh4cvhya0c1j6k6192zvqcq7nc0x01fb5nwhr0prfqr0i8j8"))))
"0a0k484kwv0zilry2mbl9k56cnpdhsjxdxin17jas6kkyfy345aa"))))
(build-system gnu-build-system)
(inputs `(("python" ,python)))
(arguments
`(#:configure-flags
(list "--without-python")))
(home-page "https://people.redhat.com/sgrubb/libcap-ng/")
(synopsis "Library for more easily working with POSIX capabilities")
(description

View file

@ -280,14 +280,14 @@ (define-public ardour
(define-public audacity
(package
(name "audacity")
(version "2.2.0")
(version "2.2.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/audacity/audacity/archive"
"/Audacity-" version ".tar.gz"))
(sha256
(base32 "09xpr4bjnainz1xmc35v3qg3dadjr9wv8bmn1p4y91aqyihnhjry"))
(base32 "1n05r8b4rnf9fas0py0is8cm97s3h65dgvqkk040aym5d1x6wd7z"))
(patches (search-patches "audacity-build-with-system-portaudio.patch"))
(modules '((guix build utils)))
(snippet
@ -1646,6 +1646,33 @@ (define-public liblo
implementation of the Open Sound Control (OSC) protocol.")
(license license:lgpl2.1+)))
(define-public python-pyaudio
(package
(name "python-pyaudio")
(version "0.2.11")
(source
(origin
(method url-fetch)
(uri
(string-append
"https://pypi.python.org/packages/ab/42/"
"b4f04721c5c5bfc196ce156b3c768998ef8c0ae3654ed29ea5020c749a6b"
"/PyAudio-" version ".tar.gz"))
(sha256
(base32
"0x7vdsigm7xgvyg3shd3lj113m8zqj2pxmrgdyj66kmnw0qdxgwk"))))
(build-system python-build-system)
(inputs
`(("portaudio" ,portaudio)))
(home-page "https://people.csail.mit.edu/hubert/pyaudio/")
(synopsis "Bindings for PortAudio v19")
(description "This package provides bindings for PortAudio v19, the
cross-platform audio input/output stream library.")
(license license:expat)))
(define-public python2-pyaudio
(package-with-python2 python-pyaudio))
(define-public python-pyliblo
(package
(name "python-pyliblo")

View file

@ -393,7 +393,7 @@ (define-public lcov
(define-public rtags
(package
(name "rtags")
(version "2.16")
(version "2.18")
(home-page "https://github.com/Andersbakken/rtags")
(source
(origin
@ -414,7 +414,7 @@ (define-public rtags
(string-append "#include <rct/" header ">"))))))
(sha256
(base32
"17rkci3mmiw93qc32b9x76pg57b0lx80avr6wnmh190jx8n3v3wy"))))
"0scjbp1z201q8njvrxqz7lk2m9b6k2rxd5q1shrng6532r7ndif2"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags

View file

@ -1386,6 +1386,7 @@ (define-public p7zip
(delete-file-recursively "CPP/7zip/Compress/Rar")
#t))
(patches (search-patches "p7zip-CVE-2016-9296.patch"
"p7zip-CVE-2017-17969.patch"
"p7zip-remove-unused-code.patch"))))
(build-system gnu-build-system)
(arguments
@ -1632,7 +1633,7 @@ (define-public zstd
speed.")
(license (list license:bsd-3 ; the main top-level LICENSE file
license:bsd-2 ; many files explicitly state 2-Clause
license:gpl2 ; the mail top-level COPYING file
license:gpl2 ; the main top-level COPYING file
license:gpl3+ ; tests/gzip/*.sh
license:expat ; lib/dictBuilder/divsufsort.[ch]
license:public-domain ; zlibWrapper/examples/fitblk*
@ -1955,14 +1956,14 @@ (define-public java-tukaani-xz
(define-public lunzip
(package
(name "lunzip")
(version "1.9")
(version "1.10")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://savannah/lzip/"
name "/" name "-" version ".tar.gz"))
(sha256
(base32 "1ax3d9cp66z1qb9q7lfzg5bpx9630xrxgq9a5sw569wm0qqgpg2q"))))
(base32 "1iw59br6nsxs7l1p875h8w3vxwr04xfhg5zyal64crvamhxkj5kl"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View file

@ -34,7 +34,7 @@ (define-module (gnu packages conky)
(define-public conky
(package
(name "conky")
(version "1.10.7")
(version "1.10.8")
(source
(origin
(method url-fetch)
@ -42,7 +42,7 @@ (define-public conky
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1b06rigfjxnaidkabkyf8mdh9k3jm11nj547lb5liwi2ql4rdfr3"))))
(base32 "0mw8xbnxr0a7yq2smzi2nln2b5n0q571vdrq6mhvs5n84xd6bg9f"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; there are no tests

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
@ -1861,3 +1861,214 @@ (define-public r-argparser
Rscript front-end and facilitates turning an R script into an executable
script.")
(license license:gpl3+)))
(define-public r-debugme
(package
(name "r-debugme")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "debugme" version))
(sha256
(base32
"1c9sg55zvf10h8198jdnpamm6f66lzw3c3jnmdp9ls6na0j0xbjd"))))
(build-system r-build-system)
(propagated-inputs `(("r-crayon" ,r-crayon)))
(home-page "https://github.com/r-lib/debugme#readme")
(synopsis "Debug R packages")
(description
"This package allows the user to specify debug messages as special string
constants, and control debugging of packages via environment variables.")
(license license:expat)))
(define-public r-processx
(package
(name "r-processx")
(version "2.0.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "processx" version))
(sha256
(base32
"0yw23lp9xjvbpswzghkmjiayw7p19hbvmgv58k3i6b8g5nav4qcg"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
("r-crayon" ,r-crayon)
("r-debugme" ,r-debugme)
("r-r6" ,r-r6)))
(home-page "https://github.com/r-lib/processx3")
(synopsis "Execute and control system processes")
(description
"This package provides portable tools to run system processes in the
background. It can check if a background process is running; wait on a
background process to finish; get the exit status of finished processes; kill
background processes and their children; restart processes. It can read the
standard output and error of the processes, using non-blocking connections.
@code{processx} can poll a process for standard output or error, with a
timeout. It can also poll several processes at once.")
(license license:expat)))
(define-public r-tsp
(package
(name "r-tsp")
(version "1.1-5")
(source
(origin
(method url-fetch)
(uri (cran-uri "TSP" version))
(sha256
(base32
"03xxfr5kk4zhzpb1q1pwncdp0dhchm9b48wzhvvxn2dxf3mnby2w"))))
(properties `((upstream-name . "TSP")))
(build-system r-build-system)
(propagated-inputs `(("r-foreach" ,r-foreach)))
(home-page "https://cran.r-project.org/web/packages/TSP/")
(synopsis "Traveling salesperson problem (TSP)")
(description "This package provides basic infrastructure and some
algorithms for the @dfn{traveling salesperson problem}(TSP) (also known as the
traveling salesman problem).")
(license license:gpl3)))
(define-public r-qap
(package
(name "r-qap")
(version "0.1-1")
(source
(origin
(method url-fetch)
(uri (cran-uri "qap" version))
(sha256
(base32
"0d2d1ni1camixyi45lfy00f4pn3p063k7bsi8gj5scp6n15mdgb0"))))
(build-system r-build-system)
(native-inputs `(("gfortran" ,gfortran)))
(home-page "http://cran.r-project.org/web/packages/qap/")
(synopsis "Heuristics for the quadratic assignment problem (QAP)")
(description "This package implements heuristics for the @dfn{quadratic
assignment problem} (QAP). Currently only a simulated annealing heuristic is
available.")
(license license:gpl3)))
(define-public r-gclus
(package
(name "r-gclus")
(version "1.3.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "gclus" version))
(sha256
(base32
"02ba6zj9bjwrzykamjp40ajynx9xjx9h2i85n0ym0r5lcki4x6fn"))))
(build-system r-build-system)
(propagated-inputs `(("r-cluster" ,r-cluster)))
(home-page "http://cran.r-project.org/web/packages/gclus/")
(synopsis "Clustering graphics")
(description "This package orders panels in scatterplot matrices and
parallel coordinate displays by some merit index. It contains various indices
of merit, ordering functions, and enhanced versions of @code{pairs} and
@code{parcoord} which color panels according to their merit level.")
(license license:gpl2+)))
(define-public r-webshot
(package
(name "r-webshot")
(version "0.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "webshot" version))
(sha256
(base32
"07r71zzmggp4jf92x4ws4wg6v1x98vaj01lsar85bnb30n5vx8gh"))))
(build-system r-build-system)
(propagated-inputs
`(("r-jsonlite" ,r-jsonlite)
("r-magrittr" ,r-magrittr)
("r-processx" ,r-processx)
("r-withr" ,r-withr)))
(home-page "https://github.com/wch/webshot/")
(synopsis "Take screenshots of web pages")
(description
"Webshot makes it easy to take screenshots of web pages from within R.
It can also run Shiny applications locally and take screenshots of the
application; and it can render and screenshot static as well as interactive R
Markdown documents.")
(license license:gpl2)))
(define-public r-seriation
(package
(name "r-seriation")
(version "1.2-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "seriation" version))
(sha256
(base32
"1q6hw4hjw224b4y0dc0j630v2pgj6sn455nwkilb70w8k31hpk92"))))
(build-system r-build-system)
(propagated-inputs
`(("r-cluster" ,r-cluster)
("r-colorspace" ,r-colorspace)
("r-dendextend" ,r-dendextend)
("r-gclus" ,r-gclus)
("r-gplots" ,r-gplots)
("r-mass" ,r-mass)
("r-qap" ,r-qap)
("r-registry" ,r-registry)
("r-tsp" ,r-tsp)))
(native-inputs `(("gfortran" ,gfortran)))
(home-page "http://s2.smu.edu/IDA/seriation/")
(synopsis "Infrastructure for ordering objects using seriation")
(description
"This package provides infrastructure for seriation with an
implementation of several seriation/sequencing techniques to reorder matrices,
dissimilarity matrices, and dendrograms. It also provides (optimally)
reordered heatmaps, color images and clustering visualizations like
dissimilarity plots, and visual assessment of cluster tendency plots (VAT and
iVAT).")
(license license:gpl3)))
(define-public r-heatmaply
(package
(name "r-heatmaply")
(version "0.14.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "heatmaply" version))
(sha256
(base32
"03p2caclhfgqgpx3wwck5h06jy3mxgs05gjmwkb7hmwghkjh41jc"))))
(build-system r-build-system)
(propagated-inputs
`(("r-assertthat" ,r-assertthat)
("r-colorspace" ,r-colorspace)
("r-dendextend" ,r-dendextend)
("r-ggplot2" ,r-ggplot2)
("r-gplots" ,r-gplots)
("r-htmlwidgets" ,r-htmlwidgets)
("r-magrittr" ,r-magrittr)
("r-plotly" ,r-plotly)
("r-rcolorbrewer" ,r-rcolorbrewer)
("r-reshape2" ,r-reshape2)
("r-scales" ,r-scales)
("r-seriation" ,r-seriation)
("r-viridis" ,r-viridis)
("r-webshot" ,r-webshot)))
(home-page "https://cran.r-project.org/package=heatmaply")
(synopsis "Interactive cluster heat maps using plotly")
(description "Heatmaps are used in many fields for visualizing
observations, correlations, missing values patterns, and more. Interactive
heatmaps allow the inspection of specific value by hovering the mouse over a
cell, as well as zooming into a region of the heatmap by dragging a rectangle
around the relevant area. This work is based on the @code{ggplot2} and
@code{plotly.js} engine. It produces similar heatmaps as @code{heatmap.2} or
@code{d3heatmap}, with the advantage of speed, the ability to zoom from the
dendrogram panes, and the placing of factor variables in the sides of the
heatmap.")
(license (list license:gpl2 license:gpl3))))

View file

@ -699,14 +699,14 @@ (define-public mariadb
(define-public postgresql
(package
(name "postgresql")
(version "10.1")
(version "10.2")
(source (origin
(method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2"))
(sha256
(base32
"04z7lm4h94625vbncwv98svycqr942n3q47ailqaczkszqjlxjrw"))))
"1bav2iyi93h866skrrlqlvsp4sfv1sfww1s305zpzffxcadh0cpy"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-uuid=e2fs")

View file

@ -57,13 +57,13 @@ (define-public radicale
(define-public vdirsyncer
(package
(name "vdirsyncer")
(version "0.16.3")
(version "0.16.4")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
"0dpwbfi97ksijqng191659m8k0v215y8ld95w8gb126m4m96qpzw"))))
"03wva48bgv1ad3df6plc9b8xxh6k8bcaxrhlzwh81c9mzn5bspzv"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases

View file

@ -6,6 +6,7 @@
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,6 +30,7 @@ (define-module (gnu packages documentation)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages python)
#:use-module (gnu packages bison)
@ -43,19 +45,23 @@ (define-module (gnu packages documentation)
(define-public asciidoc
(package
(name "asciidoc")
(version "8.6.9")
(version "8.6.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/asciidoc/asciidoc/"
version "/asciidoc-" version ".tar.gz"))
(uri (string-append "https://github.com/asciidoc/asciidoc/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq"))))
"10xrl1iwyvs8aqm0vzkvs3dnsn93wyk942kk4ppyl6w9imbzhlly"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no 'check' target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(invoke "autoconf")))
;; Some XML-related binaries are required for asciidoc's proper usage.
;; Without these, asciidoc fails when parsing XML documents, either
;; reporting a missing "xmllint" binary or, when passed the
@ -94,12 +100,14 @@ (define-public asciidoc
(string-append (assoc-ref inputs "docbook-xml")
"/xml/dtd/docbook/docbookx.dtd")))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)))
(inputs `(("python" ,python-2)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("libxml2" ,libxml2)
("libxslt" ,libxslt)))
(home-page "http://www.methods.co.nz/asciidoc/")
(home-page "http://asciidoc.org/")
(synopsis "Text-based document generation system")
(description
"AsciiDoc is a text document format for writing notes, documentation,

View file

@ -3166,6 +3166,128 @@ (define-public emacs-perspective
;; the Expat license.
(license license:gpl3+)))
(define-public emacs-test-simple
(package
(name "emacs-test-simple")
(version "1.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/test-simple-"
version ".el"))
(sha256
(base32
"1yd61jc9ds95a5n09052kwc5gasy57g4lxr0jsff040brlyi9czz"))))
(build-system emacs-build-system)
(home-page "https://github.com/rocky/emacs-test-simple")
(synopsis "Simple unit test framework for Emacs Lisp")
(description
"Test Simple is a simple unit test framework for Emacs Lisp. It
alleviates the need for context macros, enclosing specifications or required
test tags. It supports both interactive and non-interactive use.")
(license license:gpl3+)))
(define-public emacs-load-relative
(package
(name "emacs-load-relative")
(version "1.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/load-relative-"
version ".el"))
(sha256
(base32
"1hfxb2436jdsi9wfmsv47lkkpa5galjf5q81bqabbsv79rv59dps"))))
(build-system emacs-build-system)
(home-page "http://github.com/rocky/emacs-load-relative")
(synopsis "Emacs Lisp relative file loading related functions")
(description
"Provides functions which facilitate writing multi-file Emacs packages
and running from the source tree without having to \"install\" code or fiddle
with @{load-path}.
The main function, @code{load-relative}, loads an Emacs Lisp file relative to
another (presumably currently running) Emacs Lisp file.")
(license license:gpl3+)))
(define-public emacs-loc-changes
(package
(name "emacs-loc-changes")
(version "1.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/loc-changes-"
version ".el"))
(sha256
(base32
"1x8fn8vqasayf1rb8a6nma9n6nbvkx60krmiahyb05vl5rrsw6r3"))))
(build-system emacs-build-system)
(home-page "https://github.com/rocky/emacs-loc-changes")
(synopsis "Keeps track of positions even after buffer changes")
(description
"This Emacs package provides a mean to track important buffer positions
after buffer changes.")
(license license:gpl3+)))
(define-public emacs-realgud
(package
(name "emacs-realgud")
(version "1.4.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/realgud-"
version ".tar"))
(sha256
(base32
"1nc8km339ip90h1j55ahfga03v7x7rh4iycmw6yrxyzir68vwn7c"))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-autogen-script
(lambda _
(substitute* "autogen.sh"
(("./configure") "sh configure"))))
(add-after 'fix-autogen-script 'autogen
(lambda _
(setenv "CONFIG_SHELL" "sh")
(invoke "sh" "autogen.sh")))
(add-after 'fix-autogen-script 'set-home
(lambda _
(setenv "HOME" (getenv "TMPDIR"))))
(add-before 'patch-el-files 'remove-realgud-pkg.el
(lambda _
;; XXX: This file is auto-generated at some point and causes
;; substitute* to crash during the `patch-el-files' phase with:
;; ERROR: In procedure stat: No such file or directory:
;; "./realgud-pkg.el"
(delete-file "./realgud-pkg.el")
;; FIXME: `patch-el-files' crashes on this file with error:
;; unable to locate "bashdb".
(delete-file "./test/test-regexp-bashdb.el"))))
#:include (cons* ".*\\.el$" %default-include)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("emacs-test-simple" ,emacs-test-simple)))
(propagated-inputs
`(("emacs-load-relative" ,emacs-load-relative)
("emacs-loc-changes" ,emacs-loc-changes)))
(home-page "https://github.com/realgud/realgud/")
(synopsis
"Modular front-end for interacting with external debuggers")
(description
"RealGUD is a modular, extensible GNU Emacs front-end for interacting
with external debuggers. It integrates various debuggers such as gdb, pdb,
ipdb, jdb, lldb, bashdb, zshdb, etc. and allows to visually step code in the
sources. Unlike GUD, it also supports running multiple debug sessions in
parallel.")
(license license:gpl3+)))
(define-public emacs-request
(package
(name "emacs-request")
@ -4086,7 +4208,7 @@ (define-public emacs-helm-projectile
(license license:gpl3+)))
(define-public emacs-helm-make
(let ((commit "21c1bfa01b16b0d656f2b8a0dbb5bc8d47a7641b")
(let ((commit "feae8df22bc4b20705ea08ac9adfc2b43bb348d0")
(revision "1"))
(package
(name "emacs-helm-make")
@ -4100,7 +4222,7 @@ (define-public emacs-helm-make
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"11vzrp63zdc67fg4d0y1alk8z9019sqslh2bd7ispk37s86dlbfw"))))
"1y2v77mmd1bfkkz51cnk1l0dg3lvvxc39wlamnm7wjns66dbvlam"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-helm" ,emacs-helm)

View file

@ -21,7 +21,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2018 nee <nee-git@hidamari.blue>
@ -4422,7 +4422,7 @@ (define-public gexiv2
(define-public shotwell
(package
(name "shotwell")
(version "0.27.1")
(version "0.27.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -4430,7 +4430,7 @@ (define-public shotwell
name "-" version ".tar.xz"))
(sha256
(base32
"1jav7qv0s1v6wvd7x2ri85hjqnbswq883pnd228qhd6bhjbryp89"))))
"0g2vphhpxrljpy9sryfsgaayix807i1i9plj9bay72dk0zphqab2"))))
(build-system glib-or-gtk-build-system)
(propagated-inputs
`(("dconf" ,dconf)))

View file

@ -6,6 +6,7 @@
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -144,14 +145,14 @@ (define-public libextractor
(define-public libmicrohttpd
(package
(name "libmicrohttpd")
(version "0.9.58")
(version "0.9.59")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-"
version ".tar.gz"))
(sha256
(base32
"1wq17qvizis7bsyvyw1gnfycvivssncngziddnyrbzv2dhvy24bs"))))
"0g4jgnv43yddr9yxrqg11632rip0lg5c53gmy5wy3c0i1dywv74v"))))
(build-system gnu-build-system)
(inputs
`(("curl" ,curl)

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -24,6 +25,7 @@ (define-module (gnu packages gps)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages compression)
@ -37,7 +39,7 @@ (define-module (gnu packages gps)
(define-public gpsbabel
(package
(name "gpsbabel")
(version "1.5.2")
(version "1.5.4")
(source (origin
(method url-fetch)
;; XXX: Downloads from gpsbabel.org are hidden behind a POST, so
@ -47,17 +49,21 @@ (define-public gpsbabel
version ".orig.tar.gz"))
(sha256
(base32
"0xf7wmy2m29g2lm8lqc74yf8rf7sxfl3cfwbk7dpf0yf42pb0b6w"))
"19hykxhyl567gf8qcrl33qhv95w0g4vxw9r3h9b8d8plx9bnaf8l"))
(patches (search-patches
"gpsbabel-minizip.patch"
;; XXX: Remove this patch on the next release.
"gpsbabel-qstring.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete files under GPL-compatible licences but never used
;; on GNU systems, rather than bloating the LICENSE field.
(with-directory-excursion "gpsbabel"
(delete-file "gui/serial_mac.cc") ; Apple MIT
(delete-file "mingw/include/ddk/hidsdi.h")) ; public domain
(delete-file "gui/serial_mac.cc") ; Apple MIT
(delete-file "mingw/include/ddk/hidsdi.h") ; public domain
#t))))
(build-system gnu-build-system)
;; TODO: "make doc" requires Docbook & co.
(arguments
`(#:configure-flags
'("--with-zlib=system"
@ -65,13 +71,6 @@ (define-public gpsbabel
;; recent binutils:
;; https://codereview.qt-project.org/#/c/111787/
"CXXFLAGS=-std=gnu++11 -fPIC")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda _
(chdir "gpsbabel"))))
;; TODO: "make doc" requires Docbook & co.
;; On i686, 'raymarine.test' fails because of a rounding error:
;; <http://hydra.gnu.org/build/133040>. As a workaround, disable tests
;; on these platforms.
@ -171,3 +170,51 @@ (define-public gama
such as underground. It features the ability to adjust in local Cartesian
coordinates as well as partial support for adjustments in global coordinate systems.")
(license license:gpl3+)))
(define-public gpxsee
(package
(name "gpxsee")
(version "4.19")
(source (origin
(method url-fetch)
(uri
(string-append "https://github.com/tumic0/GPXSee/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"00j0gjldw1kn3i45dppld1pz8r4s1g7lw89k7gfvvqbjjyjih1wg"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'configure
;; Use lrelease to convert TS translation files into QM files.
(lambda* (#:key inputs outputs #:allow-other-keys)
(for-each (lambda (file)
(system* "lrelease" file))
(find-files "lang" "\\.ts"))
(substitute* "src/config.h"
(("/usr/share/gpxsee")
(string-append
(assoc-ref outputs "out") "/share/gpxsee")))
(invoke "qmake"
(string-append "PREFIX="
(assoc-ref outputs "out")))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/gpxsee/")))
(install-file "GPXSee" (string-append out "/bin/GPXSee"))
(install-file "pkg/maps.txt" share))
#t)))))
(inputs
`(("qtbase" ,qtbase)))
(native-inputs
`(("qttools" ,qttools)))
(home-page "http://www.gpxsee.org")
(synopsis "GPX file viewer and analyzer")
(description
"GPXSee is a Qt-based GPS log file viewer and analyzer that supports GPX,
TCX, KML, FIT, IGC and NMEA files.")
(license license:gpl3)))

View file

@ -1188,10 +1188,11 @@ (define-public guile2.2-gdbm-ffi
(deprecated-package "guile2.2-gdbm-ffi" guile-gdbm-ffi))
(define-public guile-sqlite3
(let ((commit "607721fe1174a299e45d457acacf94eefb964071"))
(let ((commit "21f35ca87517194d8fcc7ac166b5e77f5f5348b0")
(revision "2"))
(package
(name "guile-sqlite3")
(version (string-append "0.0-1." (string-take commit 7)))
(version (git-version "0.0" revision commit))
;; XXX: This used to be available read-only at
;; <https://www.gitorious.org/guile-sqlite3/guile-sqlite3.git/> but it
@ -1204,7 +1205,7 @@ (define-public guile-sqlite3
(commit commit)))
(sha256
(base32
"09gaffhh5rawz5kdmqx2ahvj1ngvxddp469r18bmjz3sz8p0slj2"))
"0m33di5gz0a6n6q380v1y8apm5hrynzyl4ri8ar4j202hwjqi1y2"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet

View file

@ -146,6 +146,12 @@ (define-public julia
(lambda* (#:key inputs #:allow-other-keys)
(use-modules (ice-9 match))
(substitute* "src/runtime_ccall.cpp"
;; Patch out invocations of '/sbin/ldconfig' to avoid getting
;; error messages about missing '/sbin/ldconfig' on GuixSD.
(("popen\\(.*ldconfig.*\\);")
"NULL;\n")
;; Populate 'sonameMap'.
(("jl_read_sonames.*;")
(string-join
(map (match-lambda
@ -228,6 +234,12 @@ (define-public julia
#t))
(add-before 'check 'disable-broken-tests
(lambda _
;; Adjust expected error messages to match what current libgit2
;; provides.
(substitute* "test/libgit2.jl"
(("Invalid Content-Type") "invalid Content-Type")
(("Failed to resolve path") "failed to resolve path"))
(substitute* "test/choosetests.jl"
;; These tests fail, probably because some of the input
;; binaries have been stripped and thus backtraces don't look

View file

@ -382,8 +382,8 @@ (define %linux-compatible-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.15.1")
(define %linux-libre-hash "1by90ghpk5qh79vgb0cfwab8c6ngciii9mvsya0gj5ijj90i6hwy")
(define %linux-libre-version "4.15.2")
(define %linux-libre-hash "0rzncbk513a8q60z9psb9yz7liadsb7nghj12s1kmwn441z1zv93")
(define-public linux-libre
(make-linux-libre %linux-libre-version
@ -391,8 +391,8 @@ (define-public linux-libre
%linux-compatible-systems
#:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.17")
(define %linux-libre-4.14-hash "05z4v1v4aj8hcwgn7iljp8iclk3ikf1b57k8a8baym3dd9js6aan")
(define %linux-libre-4.14-version "4.14.18")
(define %linux-libre-4.14-hash "1kl6zc9dzi02hzxwmzskxb4cqh5lph4afy94677bj5ribanmizn5")
(define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version

View file

@ -8,6 +8,7 @@
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016, 2017 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;;
;;; This file is part of GNU Guix.
@ -116,21 +117,30 @@ (define-public lua-5.1
(define-public luajit
(package
(name "luajit")
(version "2.1.0-beta2")
(version "2.1.0-beta3")
(source (origin
(method url-fetch)
(uri (string-append "http://luajit.org/download/LuaJIT-"
version ".tar.gz"))
(sha256
(base32 "0iyghj1xjlmd9ywa4flf9yszynf3jhbp0yqb9b49k7ab0g528fbi"))
(patches (search-patches "luajit-symlinks.patch"
"luajit-no_ldconfig.patch"))))
(base32 "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs"))
(patches (search-patches "luajit-no_ldconfig.patch"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;luajit is distributed without tests
#:phases (modify-phases %standard-phases (delete 'configure))
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
(home-page "http://www.luajit.org/")
`(#:tests? #f ; luajit is distributed without tests
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'install 'create-luajit-symlink
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(with-directory-excursion bin
(symlink ,(string-append name "-" version)
,name)
#t)))))
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
(home-page "https://www.luajit.org/")
(synopsis "Just in time compiler for Lua programming language version 5.1")
(description
"LuaJIT is a Just-In-Time Compiler (JIT) for the Lua
@ -427,7 +437,7 @@ (define (make-lua-bitop name lua)
(modify-phases %standard-phases
(delete 'configure))))
(inputs `(("lua", lua)))
(home-page "http://bitop.luajit.org/index.html")
(home-page "https://bitop.luajit.org/index.html")
(synopsis "Bitwise operations on numbers for Lua")
(description
"Lua BitOp is a C extension module for Lua which adds bitwise operations

View file

@ -24,6 +24,7 @@
;;; Copyright © 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2018 Pierre Langlois <pierre.langlois@gmx.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -532,27 +533,27 @@ (define-public emacs-mew
(define-public mu
(package
(name "mu")
(version "0.9.18")
(version "1.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/djcb/mu/releases/"
"download/" version "/mu-"
version ".tar.gz"))
"download/v" version "/mu-"
version ".tar.xz"))
(sha256
(base32
"02g82zvxfgn17wzy846bfxj0izjj7yklhwdnhwxy1y2kin4fqnb5"))))
"04x5azl19gszw2h7argq666gf9xs4hy9q7w9cbqxvy08n56xqsln"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin") ; for gtester
("emacs" ,emacs-minimal)))
("emacs" ,emacs-minimal)
("tzdata" ,tzdata-for-tests))) ;for mu/test/test-mu-query.c
;; TODO: Add webkit and gtk to build the mug GUI.
(inputs
`(("xapian" ,xapian)
("guile" ,guile-2.2)
("glib" ,glib)
("gmime" ,gmime)
("tzdata" ,tzdata))) ;for mu/test/test-mu-query.c
("gmime" ,gmime)))
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)

View file

@ -22,6 +22,7 @@
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Dave Love <me@fx@gnu.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -93,6 +94,7 @@ (define-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages tbb)
#:use-module (gnu packages scheme)
@ -101,6 +103,7 @@ (define-module (gnu packages maths)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tex)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (srfi srfi-1))
@ -3695,3 +3698,34 @@ (define-public elemental
dense and sparse-direct linear algebra, conic optimization, and lattice
reduction.")
(license license:bsd-2)))
(define-public mcrl2
(package
(name "mcrl2")
(version "201707.1.15162")
(source (origin
(method url-fetch)
(uri (string-append "http://www.mcrl2.org/download/devel/mcrl2-"
version
".tar.gz"))
(sha256
(base32
"1ziww2fchsklm25hl9p2mngssxfh9w07nc114cncqaxfibqp2p8f"))))
(native-inputs
`(("subversion" ,subversion)))
(inputs
`(("boost" ,boost)
("glu" ,glu)
("mesa" ,mesa)
("qt" ,qt)))
(build-system cmake-build-system)
(synopsis "Toolset for the mCRL2 formal specification language")
(description
"@dfn{mCRL2} (micro Common Representation Language 2) is a formal
specification language for describing concurrent discrete event systems. Its
toolset supports analysis and automatic verification, linearisation, simulation,
state-space exploration and generation, and tools to optimise and analyse
specifications. Also, state spaces can be manipulated, visualised and
analysed.")
(home-page "http://mcrl2.org")
(license license:boost1.0)))

View file

@ -62,14 +62,25 @@ (define-public mc
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-FHS-file-names
(lambda _
;; Patch files to refer to executables in the store.
;; Patch files to refer to executables in the store or $PATH.
(substitute* "misc/mcedit.menu.in"
(("#! /bin/sh") (string-append "#!" (which "sh")))
(("/bin/bash") (which "bash")))
(substitute* "misc/ext.d/misc.sh.in"
(("/bin/cat") "cat"))
(substitute* "tests/src/vfs/extfs/helpers-list/Makefile.in"
(substitute* (list "lib/utilunix.c"
"src/usermenu.c"
"src/vfs/fish/fish.c"
"tests/src/vfs/extfs/helpers-list/Makefile.in")
(("/bin/sh") (which "sh")))
(substitute* "src/filemanager/ext.c"
(("/bin/rm") "rm")
(("/bin/sh") (which "sh")))
;; There are other /bin/<shell>s hard-coded in this file, but they
;; are never tried after bash (mc's first choice) is found.
(substitute* "lib/shell.c"
(("/bin/bash") (which "bash")))
#t))
(add-before 'check 'fix-tests
(lambda _

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Dave Love <fx@gnu.org>
@ -39,9 +39,12 @@ (define-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages valgrind)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
(define-public hwloc
;; Note: For now we keep 1.x as the default because many packages have yet
;; to migrate to 2.0.
(package
(name "hwloc")
(version "1.11.8")
@ -110,6 +113,24 @@ (define-public hwloc
bind processes, and much more.")
(license bsd-3)))
(define-public hwloc-2.0
;; Note: 2.0 isn't the default yet, see above.
(package
(inherit hwloc)
(version "2.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.open-mpi.org/software/hwloc/v"
(version-major+minor version)
"/downloads/hwloc-" version ".tar.bz2"))
(sha256
(base32
"021765f9y6pxcxrvfpzzwaig16ypfbph5xjpkd29qkhzs9r6zrcr"))
(patches (search-patches "hwloc-tests-without-sysfs.patch"))))
;; libnuma is no longer needed.
(inputs (alist-delete "numactl" (package-inputs hwloc)))))
(define-public openmpi
(package
(name "openmpi")

View file

@ -1050,7 +1050,7 @@ (define-public solfege
(add-after 'unpack 'fix-configuration
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "default.config"
(("/usr/bin/aplay" "aplay"))
(("/usr/bin/aplay") "aplay")
(("/usr/bin/timidity") "timidity")
(("/usr/bin/mpg123") "mpg123")
(("/usr/bin/ogg123") "ogg123"))
@ -2317,6 +2317,33 @@ (define-public mod-host
socket or command line.")
(license license:gpl3+))))
(define-public curseradio
(let ((commit "1bd4bd0faeec675e0647bac9a100b526cba19f8d")
(revision "1"))
(package
(name "curseradio")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/chronitis/curseradio.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"11bf0jnj8h2fxhpdp498189r4s6b47vy4wripv0z4nx7lxajl88i"))))
(build-system python-build-system)
(propagated-inputs
`(("python-lxml" ,python-lxml)
("python-requests" ,python-requests)
("python-pyxdg" ,python-pyxdg)
("mpv" ,mpv)))
(home-page "https://github.com/chronitis/curseradio")
(synopsis "Command-line Internet radio player")
(description "Curseradio is a Curses-based radio player that uses a
tune-in sender list from @url{http://opml.radiotime.com}.")
(license license:expat))))
(define-public pianobar
(package
(name "pianobar")

View file

@ -4,7 +4,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
@ -465,12 +465,12 @@ (define-public whois
"08sp2gzv09rar1a5mnfmbc24pqvhpqqmz2hnmv436n7v7d09qy2d"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; Does not exist
`(#:tests? #f ; no test suite
#:make-flags (list "CC=gcc"
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure) ; No configure
(delete 'configure) ; no configure script
(add-before 'build 'setenv
(lambda _
(setenv "HAVE_ICONV" "1")
@ -482,11 +482,16 @@ (define-public whois
`(("gettext" ,gettext-minimal)
("perl" ,perl)
("pkg-config" ,pkg-config)))
(synopsis "Improved whois client")
(description "This whois client is intelligent and can
automatically select the appropriate whois server for most queries.
Because of historical reasons this also includes a tool called mkpasswd
which can be used to encrypt a password with @code{crypt(3)}.")
(synopsis "Intelligent client for the WHOIS directory service")
(description
"whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.
It is commonly used to look up the registered users or assignees of an Internet
resource, such as a domain name, an IP address block, or an autonomous system.
It can automatically select the appropriate server for most queries.
For historical reasons, this package also includes @command{mkpasswd}, which
encrypts passwords using @code{crypt(3)} and is unrelated to the Expect command
of the same name.")
(home-page "https://github.com/rfc1036/whois")
(license license:gpl2+)))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -26,7 +27,7 @@ (define-module (gnu packages nim)
(define-public nim
(package
(name "nim")
(version "0.17.0")
(version "0.17.2")
(source
(origin
(method url-fetch)
@ -34,13 +35,13 @@ (define-public nim
name "-" version ".tar.xz"))
(sha256
(base32
"16vsmk4rqnkg9lc9h9jk62ps0x778cdqg6qrs3k6fv2g73cqvq9n"))))
"1gc2xk3ygmz9y4pm75pligssgw995a7gvnfpy445fjpw4d81pzxa"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; No tests.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'configure) ; no configure script
(add-after 'unpack 'patch-installer
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@ -56,11 +57,13 @@ (define-public nim
#t))
(replace 'build
(lambda _
(zero? (system* "sh" "build.sh"))))
(invoke "sh" "build.sh")
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./install.sh" out))))))))
(invoke "./install.sh" out)
#t))))))
(home-page "https://nim-lang.org")
(synopsis "Statically-typed, imperative programming language")
(description "Nim (formerly known as Nimrod) is a statically-typed,

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;

View file

@ -68,14 +68,14 @@ (define-module (gnu packages password-utils)
(define-public pwgen
(package
(name "pwgen")
(version "2.07")
(version "2.08")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/pwgen/pwgen/" version
"/pwgen-" version ".tar.gz"))
(sha256
(base32 "0mhmw700kkh238fzivcwnwi94bj9f3h36yfh3k3j2v19b0zmjx7b"))))
(base32 "0yy90pqrr2pszzhb5hxjishq9qc7dqd290amiibqx9fm1b9kvc6s"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f)) ; no test suite

View file

@ -0,0 +1,13 @@
Patch taken from https://sources.debian.org/data/main/g/gpsbabel/1.5.3-2/debian/patches/use_minizip.
--- a/Makefile.in
+++ b/Makefile.in
@@ -120,7 +120,7 @@ LIBOBJS = queue.o route.o waypt.o filter
src/core/usasciicodec.o\
src/core/ziparchive.o \
$(GARMIN) $(JEEPS) $(SHAPE) @ZLIB@ $(FMTS) $(FILTERS)
-OBJS = main.o globals.o $(LIBOBJS) @FILEINFO@
+OBJS = main.o globals.o $(MINIZIP) $(LIBOBJS) @FILEINFO@
DEPFILES = $(OBJS:.o=.d)

View file

@ -0,0 +1,69 @@
Extracted from following patch of gpsbabel:
https://github.com/gpsbabel/gpsbabel/commit/604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3
From 604178aa8ad4d3c3ad218df24c1e9a6a1f683bb3 Mon Sep 17 00:00:00 2001
From: Harel Mazor <harel.mazor@gmail.com>
Date: Tue, 24 Jan 2017 00:35:04 +0200
Subject: [PATCH] Added geojson read capablity, moved magic strings to
constants, fixed windows compilation issues.
--- a/tef_xml.cc
+++ b/tef_xml.cc
@@ -72,11 +72,11 @@ tef_start(xg_string args, const QXmlStreamAttributes* attrv)
bool valid = false;
foreach(QXmlStreamAttribute attr, *attrv) {
- if (attr.name().compare("Comment", Qt::CaseInsensitive) == 0) {
- if (attr.value().compare("TourExchangeFormat", Qt::CaseInsensitive) == 0) {
+ if (attr.name().compare(QString("Comment"), Qt::CaseInsensitive) == 0) {
+ if (attr.value().compare(QString("TourExchangeFormat"), Qt::CaseInsensitive) == 0) {
valid = true;
}
- } else if (attr.name().compare("Version", Qt::CaseInsensitive) == 0) {
+ } else if (attr.name().compare(QString("Version"), Qt::CaseInsensitive) == 0) {
version = attr.value().toString().toDouble();
}
}
@@ -95,9 +95,9 @@ tef_header(xg_string args, const QXmlStreamAttributes* attrv)
{
route = route_head_alloc();
foreach(QXmlStreamAttribute attr, *attrv) {
- if (attr.name().compare("Name", Qt::CaseInsensitive) == 0) {
+ if (attr.name().compare(QString("Name"), Qt::CaseInsensitive) == 0) {
route->rte_name = attr.value().toString().trimmed();
- } else if (attr.name().compare("Software", Qt::CaseInsensitive) == 0) {
+ } else if (attr.name().compare(QString("Software"), Qt::CaseInsensitive) == 0) {
route->rte_desc = attr.value().toString().trimmed();
}
}
@@ -248,20 +248,20 @@ tef_item_start(xg_string args, const QXmlStreamAttributes* attrv)
QString attrstr = attr.value().toString();
QByteArray attrtext = attrstr.toUtf8();
- if (attr.name().compare("SegDescription", Qt::CaseInsensitive) == 0) {
+ if (attr.name().compare(QString("SegDescription"), Qt::CaseInsensitive) == 0) {
wpt_tmp->shortname = attrstr.trimmed();
- } else if (attr.name().compare("PointDescription", Qt::CaseInsensitive) == 0) {
+ } else if (attr.name().compare(QString("PointDescription"), Qt::CaseInsensitive) == 0) {
wpt_tmp->description = attrstr.trimmed();
- } else if (attr.name().compare("ViaStation", Qt::CaseInsensitive) == 0 &&
- attr.value().compare("true", Qt::CaseInsensitive) == 0) {
+ } else if (attr.name().compare(QString("ViaStation"), Qt::CaseInsensitive) == 0 &&
+ attr.value().compare(QString("true"), Qt::CaseInsensitive) == 0) {
wpt_tmp->wpt_flags.fmt_use = 1; /* only a flag */
/* new in TEF V2 */
- } else if (attr.name().compare("Instruction", Qt::CaseInsensitive) == 0) {
+ } else if (attr.name().compare(QString("Instruction"), Qt::CaseInsensitive) == 0) {
wpt_tmp->description = attrstr.trimmed();
- } else if (attr.name().compare("Altitude", Qt::CaseInsensitive) == 0) {
+ } else if (attr.name().compare(QString("Altitude"), Qt::CaseInsensitive) == 0) {
wpt_tmp->altitude = attrstr.toDouble();
- } else if (attr.name().compare("TimeStamp", Qt::CaseInsensitive) == 0) {
+ } else if (attr.name().compare(QString("TimeStamp"), Qt::CaseInsensitive) == 0) {
/* nothing for the moment */
}
}
--
2.16.1

View file

@ -0,0 +1,42 @@
Fix a test failure in the build environment, where /sys is missing.
From <https://github.com/bgoglin/hwloc/commit/a2cc4f2e2bf4a8bbdd61b578a62e27e7482799cf.patch>.
From a2cc4f2e2bf4a8bbdd61b578a62e27e7482799cf Mon Sep 17 00:00:00 2001
From: Brice Goglin <Brice.Goglin@inria.fr>
Date: Tue, 6 Feb 2018 17:13:26 +0100
Subject: [PATCH] linux: honor the filtering cores and packages when reading
topology from cpuinfo
Caused a make check crash in lstopo --filter all:none in chroot without sysfs.
Thanks to Ludovic Courtes for the report.
Signed-off-by: Brice Goglin <Brice.Goglin@inria.fr>
---
hwloc/topology-linux.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/hwloc/topology-linux.c b/hwloc/topology-linux.c
index 290da0d72..e1bbf94e1 100644
--- a/hwloc/topology-linux.c
+++ b/hwloc/topology-linux.c
@@ -4101,7 +4101,8 @@ look_cpuinfo(struct hwloc_topology *topology,
}
/* create package objects */
hwloc_debug("%u pkgs%s\n", numpkgs, missingpkg ? ", but some missing package" : "");
- if (!missingpkg && numpkgs>0) {
+ if (!missingpkg && numpkgs>0
+ && hwloc_filter_check_keep_object_type(topology, HWLOC_OBJ_PACKAGE)) {
for (i = 0; i < numpkgs; i++) {
struct hwloc_obj *obj = hwloc_alloc_setup_object(topology, HWLOC_OBJ_PACKAGE, Lpkg_to_Ppkg[i]);
int doneinfos = 0;
@@ -4145,7 +4146,8 @@ look_cpuinfo(struct hwloc_topology *topology,
}
/* create Core objects */
hwloc_debug("%u cores%s\n", numcores, missingcore ? ", but some missing core" : "");
- if (!missingcore && numcores>0) {
+ if (!missingcore && numcores>0
+ && hwloc_filter_check_keep_object_type(topology, HWLOC_OBJ_CORE)) {
for (i = 0; i < numcores; i++) {
struct hwloc_obj *obj = hwloc_alloc_setup_object(topology, HWLOC_OBJ_CORE, Lcore_to_Pcore[i]);
obj->cpuset = hwloc_bitmap_alloc();

View file

@ -1,25 +0,0 @@
From 0a54a8f125d7ab508c7c88d5ad4ed1b0c63cb5b6 Mon Sep 17 00:00:00 2001
From: =?utf8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@suse.cz>
Date: Wed, 4 Feb 2015 11:32:55 +0100
Subject: [PATCH 1/2] Provide two symlinks for dynamic library during install
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 0891b71..343ecb5 100644
--- a/Makefile
+++ b/Makefile
@@ -56,7 +56,7 @@ INSTALL_PCNAME= luajit.pc
INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME)
INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME)
INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
-INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT)
+INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT).$(MAJVER)
INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME)
INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME)
INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME)
--
2.2.2

View file

@ -0,0 +1,138 @@
Fix CVE-2018-6360:
https://github.com/mpv-player/mpv/issues/5456
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6360
https://security-tracker.debian.org/tracker/CVE-2018-6360
Patch copied from upstream source repository:
https://github.com/mpv-player/mpv/commit/e6e6b0dcc7e9b0dbf35154a179b3dc1fcfcaff43
To apply the patch to mpv 0.28.0 release tarball, hunk #4 is removed. Hunk #4
checks if 'mpd_url' is safe, but the support for 'mpd_url' is not available
for the 0.28.0 release. So it should be safe to remove hunk #4.
From e6e6b0dcc7e9b0dbf35154a179b3dc1fcfcaff43 Mon Sep 17 00:00:00 2001
From: Ricardo Constantino <wiiaboo@gmail.com>
Date: Fri, 26 Jan 2018 01:19:04 +0000
Subject: [PATCH] ytdl_hook: whitelist protocols from urls retrieved from
youtube-dl
Not very clean since there's a lot of potential unsafe urls that youtube-dl
can give us, depending on whether it's a single url, split tracks,
playlists, segmented dash, etc.
---
player/lua/ytdl_hook.lua | 54 +++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 47 insertions(+), 7 deletions(-)
diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua
index dd96ecc01d..b480c21625 100644
--- a/player/lua/ytdl_hook.lua
+++ b/player/lua/ytdl_hook.lua
@@ -16,6 +16,18 @@ local ytdl = {
local chapter_list = {}
+function Set (t)
+ local set = {}
+ for _, v in pairs(t) do set[v] = true end
+ return set
+end
+
+local safe_protos = Set {
+ "http", "https", "ftp", "ftps",
+ "rtmp", "rtmps", "rtmpe", "rtmpt", "rtmpts", "rtmpte",
+ "data"
+}
+
local function exec(args)
local ret = utils.subprocess({args = args})
return ret.status, ret.stdout, ret
@@ -183,6 +195,9 @@ local function edl_track_joined(fragments, protocol, is_live, base)
for i = offset, #fragments do
local fragment = fragments[i]
+ if not url_is_safe(join_url(base, fragment)) then
+ return nil
+ end
table.insert(parts, edl_escape(join_url(base, fragment)))
if fragment.duration then
parts[#parts] =
@@ -208,6 +223,15 @@ local function proto_is_dash(json)
or json["protocol"] == "http_dash_segments"
end
+local function url_is_safe(url)
+ local proto = type(url) == "string" and url:match("^(.+)://") or nil
+ local safe = proto and safe_protos[proto]
+ if not safe then
+ msg.error(("Ignoring potentially unsafe url: '%s'"):format(url))
+ end
+ return safe
+end
+
local function add_single_video(json)
local streamurl = ""
local max_bitrate = 0
@@ -238,14 +264,18 @@ local function add_single_video(json)
edl_track = edl_track_joined(track.fragments,
track.protocol, json.is_live,
track.fragment_base_url)
+ local url = edl_track or track.url
+ if not url_is_safe(url) then
+ return
+ end
if track.acodec and track.acodec ~= "none" then
-- audio track
mp.commandv("audio-add",
- edl_track or track.url, "auto",
+ url, "auto",
track.format_note or "")
elseif track.vcodec and track.vcodec ~= "none" then
-- video track
- streamurl = edl_track or track.url
+ streamurl = url
end
end
@@ -264,7 +294,13 @@ local function add_single_video(json)
msg.debug("streamurl: " .. streamurl)
- mp.set_property("stream-open-filename", streamurl:gsub("^data:", "data://", 1))
+ streamurl = streamurl:gsub("^data:", "data://", 1)
+
+ if not url_is_safe(streamurl) then
+ return
+ end
+
+ mp.set_property("stream-open-filename", streamurl)
mp.set_property("file-local-options/force-media-title", json.title)
@@ -526,14 +562,18 @@ mp.add_hook(o.try_ytdl_first and "on_load" or "on_load_fail", 10, function ()
site = entry["webpage_url"]
end
- if not (site:find("https?://") == 1) then
- site = "ytdl://" .. site
+ -- links with only youtube id as returned by --flat-playlist
+ if not site:find("://") then
+ table.insert(playlist, "ytdl://" .. site)
+ elseif url_is_safe(site) then
+ table.insert(playlist, site)
end
- table.insert(playlist, site)
end
- mp.set_property("stream-open-filename", "memory://" .. table.concat(playlist, "\n"))
+ if #playlist > 0 then
+ mp.set_property("stream-open-filename", "memory://" .. table.concat(playlist, "\n"))
+ end
end
else -- probably a video
--
2.16.1

View file

@ -0,0 +1,59 @@
Fix CVE-2018-6360:
https://github.com/mpv-player/mpv/issues/5456
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6360
https://security-tracker.debian.org/tracker/CVE-2018-6360
Patch copied from upstream source repository:
https://github.com/mpv-player/mpv/commit/f8263e82cc74a9ac6530508bec39c7b0dc02568f
From f8263e82cc74a9ac6530508bec39c7b0dc02568f Mon Sep 17 00:00:00 2001
From: Ricardo Constantino <wiiaboo@gmail.com>
Date: Fri, 26 Jan 2018 11:26:27 +0000
Subject: [PATCH] ytdl_hook: move url_is_safe earlier in code
lua isn't javascript.
---
player/lua/ytdl_hook.lua | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua
index b480c21625..458c94af38 100644
--- a/player/lua/ytdl_hook.lua
+++ b/player/lua/ytdl_hook.lua
@@ -84,6 +84,15 @@ local function edl_escape(url)
return "%" .. string.len(url) .. "%" .. url
end
+local function url_is_safe(url)
+ local proto = type(url) == "string" and url:match("^(.+)://") or nil
+ local safe = proto and safe_protos[proto]
+ if not safe then
+ msg.error(("Ignoring potentially unsafe url: '%s'"):format(url))
+ end
+ return safe
+end
+
local function time_to_secs(time_string)
local ret
@@ -223,15 +232,6 @@ local function proto_is_dash(json)
or json["protocol"] == "http_dash_segments"
end
-local function url_is_safe(url)
- local proto = type(url) == "string" and url:match("^(.+)://") or nil
- local safe = proto and safe_protos[proto]
- if not safe then
- msg.error(("Ignoring potentially unsafe url: '%s'"):format(url))
- end
- return safe
-end
-
local function add_single_video(json)
local streamurl = ""
local max_bitrate = 0
--
2.16.1

View file

@ -0,0 +1,84 @@
Fix CVE-2018-6360:
https://github.com/mpv-player/mpv/issues/5456
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6360
https://security-tracker.debian.org/tracker/CVE-2018-6360
Patch copied from upstream source repository:
https://github.com/mpv-player/mpv/commit/ce42a965330dfeb7d2f6c69ea42d35454105c828
From ce42a965330dfeb7d2f6c69ea42d35454105c828 Mon Sep 17 00:00:00 2001
From: Ricardo Constantino <wiiaboo@gmail.com>
Date: Fri, 26 Jan 2018 18:54:17 +0000
Subject: [PATCH] ytdl_hook: fix safe url checking with EDL urls
---
player/lua/ytdl_hook.lua | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/player/lua/ytdl_hook.lua b/player/lua/ytdl_hook.lua
index 458c94af38..6c8e78657d 100644
--- a/player/lua/ytdl_hook.lua
+++ b/player/lua/ytdl_hook.lua
@@ -264,18 +264,17 @@ local function add_single_video(json)
edl_track = edl_track_joined(track.fragments,
track.protocol, json.is_live,
track.fragment_base_url)
- local url = edl_track or track.url
- if not url_is_safe(url) then
+ if not edl_track and not url_is_safe(track.url) then
return
end
if track.acodec and track.acodec ~= "none" then
-- audio track
mp.commandv("audio-add",
- url, "auto",
+ edl_track or track.url, "auto",
track.format_note or "")
elseif track.vcodec and track.vcodec ~= "none" then
-- video track
- streamurl = url
+ streamurl = edl_track or track.url
end
end
@@ -284,6 +283,9 @@ local function add_single_video(json)
edl_track = edl_track_joined(json.fragments, json.protocol,
json.is_live, json.fragment_base_url)
+ if not edl_track and not url_is_safe(json.url) then
+ return
+ end
-- normal video or single track
streamurl = edl_track or json.url
set_http_headers(json.http_headers)
@@ -294,13 +296,7 @@ local function add_single_video(json)
msg.debug("streamurl: " .. streamurl)
- streamurl = streamurl:gsub("^data:", "data://", 1)
-
- if not url_is_safe(streamurl) then
- return
- end
-
- mp.set_property("stream-open-filename", streamurl)
+ mp.set_property("stream-open-filename", streamurl:gsub("^data:", "data://", 1))
mp.set_property("file-local-options/force-media-title", json.title)
@@ -499,6 +495,10 @@ mp.add_hook(o.try_ytdl_first and "on_load" or "on_load_fail", 10, function ()
msg.debug("EDL: " .. playlist)
+ if not playlist then
+ return
+ end
+
-- can't change the http headers for each entry, so use the 1st
if json.entries[1] then
set_http_headers(json.entries[1].http_headers)
--
2.16.1

View file

@ -0,0 +1,111 @@
Fix CVE-2017-17858:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17858
https://bugs.ghostscript.com/show_bug.cgi?id=698819
https://github.com/mzet-/Security-Advisories/blob/master/mzet-adv-2017-01.md
Patch copied from upstream source repository:
https://git.ghostscript.com/?p=mupdf.git;a=commit;h=55c3f68d638ac1263a386e0aaa004bb6e8bde731
From 55c3f68d638ac1263a386e0aaa004bb6e8bde731 Mon Sep 17 00:00:00 2001
From: Sebastian Rasmussen <sebras@gmail.com>
Date: Mon, 11 Dec 2017 14:09:15 +0100
Subject: [PATCH] Bugs 698804/698810/698811: Keep PDF object numbers below
limit.
This ensures that:
* xref tables with objects pointers do not grow out of bounds.
* other readers, e.g. Adobe Acrobat can parse PDFs written by mupdf.
---
include/mupdf/pdf/object.h | 3 +++
source/pdf/pdf-repair.c | 5 +----
source/pdf/pdf-xref.c | 21 ++++++++++++---------
3 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h
index 21ed8595..4177112b 100644
--- a/include/mupdf/pdf/object.h
+++ b/include/mupdf/pdf/object.h
@@ -3,6 +3,9 @@
typedef struct pdf_document_s pdf_document;
+/* Defined in PDF 1.7 according to Acrobat limit. */
+#define PDF_MAX_OBJECT_NUMBER 8388607
+
/*
* Dynamic objects.
* The same type of objects as found in PDF and PostScript.
diff --git a/source/pdf/pdf-repair.c b/source/pdf/pdf-repair.c
index ca149bd3..0c29758e 100644
--- a/source/pdf/pdf-repair.c
+++ b/source/pdf/pdf-repair.c
@@ -6,9 +6,6 @@
/* Scan file for objects and reconstruct xref table */
-/* Define in PDF 1.7 to be 8388607, but mupdf is more lenient. */
-#define MAX_OBJECT_NUMBER (10 << 20)
-
struct entry
{
int num;
@@ -436,7 +433,7 @@ pdf_repair_xref(fz_context *ctx, pdf_document *doc)
break;
}
- if (num <= 0 || num > MAX_OBJECT_NUMBER)
+ if (num <= 0 || num > PDF_MAX_OBJECT_NUMBER)
{
fz_warn(ctx, "ignoring object with invalid object number (%d %d R)", num, gen);
goto have_next_token;
diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
index 00586dbd..6284e70b 100644
--- a/source/pdf/pdf-xref.c
+++ b/source/pdf/pdf-xref.c
@@ -868,11 +868,12 @@ pdf_read_old_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf)
fz_seek(ctx, file, -(2 + (int)strlen(s)), SEEK_CUR);
}
- if (ofs < 0)
- fz_throw(ctx, FZ_ERROR_GENERIC, "out of range object num in xref: %d", (int)ofs);
- if (ofs > INT64_MAX - len)
- fz_throw(ctx, FZ_ERROR_GENERIC, "xref section object numbers too big");
-
+ if (ofs < 0 || ofs > PDF_MAX_OBJECT_NUMBER
+ || len < 0 || len > PDF_MAX_OBJECT_NUMBER
+ || ofs + len - 1 > PDF_MAX_OBJECT_NUMBER)
+ {
+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range");
+ }
/* broken pdfs where size in trailer undershoots entries in xref sections */
if (ofs + len > xref_len)
{
@@ -933,10 +934,8 @@ pdf_read_new_xref_section(fz_context *ctx, pdf_document *doc, fz_stream *stm, in
pdf_xref_entry *table;
int i, n;
- if (i0 < 0 || i1 < 0 || i0 > INT_MAX - i1)
- fz_throw(ctx, FZ_ERROR_GENERIC, "negative xref stream entry index");
- //if (i0 + i1 > pdf_xref_len(ctx, doc))
- // fz_throw(ctx, FZ_ERROR_GENERIC, "xref stream has too many entries");
+ if (i0 < 0 || i0 > PDF_MAX_OBJECT_NUMBER || i1 < 0 || i1 > PDF_MAX_OBJECT_NUMBER || i0 + i1 - 1 > PDF_MAX_OBJECT_NUMBER)
+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range");
table = pdf_xref_find_subsection(ctx, doc, i0, i1);
for (i = i0; i < i0 + i1; i++)
@@ -2086,6 +2085,10 @@ pdf_create_object(fz_context *ctx, pdf_document *doc)
/* TODO: reuse free object slots by properly linking free object chains in the ofs field */
pdf_xref_entry *entry;
int num = pdf_xref_len(ctx, doc);
+
+ if (num > PDF_MAX_OBJECT_NUMBER)
+ fz_throw(ctx, FZ_ERROR_GENERIC, "too many objects stored in pdf");
+
entry = pdf_get_incremental_xref_entry(ctx, doc, num);
entry->type = 'f';
entry->ofs = -1;
--
2.16.1

View file

@ -0,0 +1,35 @@
Fix CVE-2017-17969:
https://sourceforge.net/p/p7zip/bugs/204/
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17969
Patch copied from Debian.
Subject: Heap-based buffer overflow in 7zip/Compress/ShrinkDecoder.cpp
Origin: vendor, https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/27d7/attachment/CVE-2017-17969.patch
Forwarded: https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/#27d7
Bug: https://sourceforge.net/p/p7zip/bugs/204/
Bug-Debian: https://bugs.debian.org/888297
Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2017-17969
Author: Antoine Beaupré <anarcat@debian.org>
Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
Last-Update: 2018-02-01
Applied-Upstream: 18.00-beta
--- a/CPP/7zip/Compress/ShrinkDecoder.cpp
+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
@@ -121,8 +121,13 @@ HRESULT CDecoder::CodeReal(ISequentialIn
{
_stack[i++] = _suffixes[cur];
cur = _parents[cur];
+ if (cur >= kNumItems || i >= kNumItems)
+ break;
}
-
+
+ if (cur >= kNumItems || i >= kNumItems)
+ break;
+
_stack[i++] = (Byte)cur;
lastChar2 = (Byte)cur;

View file

@ -572,7 +572,8 @@ (define-public mupdf
(method url-fetch)
(uri (string-append "https://mupdf.com/downloads/archive/"
name "-" version "-source.tar.xz"))
(patches (search-patches "mupdf-build-with-latest-openjpeg.patch"))
(patches (search-patches "mupdf-build-with-latest-openjpeg.patch"
"mupdf-CVE-2017-17858.patch"))
(sha256
(base32
"0b9j0gqbc3jhmx87r6idcsh8lnb30840c3hyx6dk2gdjqqh3hysp"))

View file

@ -975,14 +975,14 @@ (define-public perl-test-sharedfork
(define-public perl-test-simple
(package
(name "perl-test-simple")
(version "1.302120")
(version "1.302122")
(source (origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/E/EX/EXODIST/"
"Test-Simple-" version ".tar.gz"))
(sha256
(base32
"0v1l0hfza9zlw3qj5l2mrzljy1sk02h3yqcb4kixdb2d5l4n08y8"))))
"117m707cbvrh01s3w6g371i9xvpnklifiqpcmky4f49jgck8izgm"))))
(build-system perl-build-system)
(synopsis "Basic utilities for writing tests")
(description

View file

@ -45,6 +45,7 @@
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2018 Ethan R. Jones <ethanrjones97@gmail.com
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;;
;;; This file is part of GNU Guix.
@ -5740,15 +5741,13 @@ (define-public python2-appdirs
(define-public python-llfuse
(package
(name "python-llfuse")
(version "1.2")
(version "1.3.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://bitbucket.org/nikratio/python-llfuse/downloads/"
"llfuse-" version ".tar.bz2"))
(uri (pypi-uri "llfuse" version ".tar.bz2"))
(sha256
(base32
"11hms1x68bf1bqbqy7w3wpffqsd3jkgricmzrc1hrnwkswfzzlr4"))))
"0qxvnbz41bpvpc1vbi8qkhmpr9gj1qrrp5jdj085iqibd8l2l9cn"))))
(build-system python-build-system)
(inputs
`(("fuse" ,fuse)
@ -12502,3 +12501,142 @@ (define-public python-yapf
(define-public python2-yapf
(package-with-python2 python-yapf))
(define-public python-gyp
(let ((commit "5e2b3ddde7cda5eb6bc09a5546a76b00e49d888f")
(revision "0"))
(package
(name "python-gyp")
;; Google does not release versions,
;; based on second most recent commit date.
(version (git-version "0.0.0" revision commit))
(source
(origin
;; Google does not release tarballs,
;; git checkout is needed.
(method git-fetch)
(uri (git-reference
(url "https://chromium.googlesource.com/external/gyp")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0fr7nxcrk292djmxzpcjaphnsd123k31gp8jnd91vwknhq6snmv9"))))
(build-system python-build-system)
(home-page "https://gyp.gsrc.io/")
(synopsis "GYP is a Meta-Build system")
(description
"GYP builds build systems for large, cross platform applications.
It can be used to generate XCode projects, Visual Studio projects, Ninja build
files, and Makefiles.")
(license license:bsd-3))))
(define-public python2-gyp
(package-with-python2 python-gyp))
(define-public python-whatever
(package
(name "python-whatever")
(version "0.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/Suor/whatever/archive/" version
".tar.gz"))
(sha256
(base32
"1iqvnaf0zpc6b4rvbqq4xy45mszcscyzpzknv8wg6j84pbp22sap"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "py.test"))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "http://github.com/Suor/whatever")
(synopsis "Make anonymous functions by partial application of operators")
(description "@code{whatever} provides an easy way to make anonymous
functions by partial application of operators.")
(license license:bsd-3)))
(define-public python2-whatever
(package-with-python2 python-whatever))
(define-public python-funcy
(package
(name "python-funcy")
(version "1.10")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/Suor/funcy/archive/" version
".tar.gz"))
(sha256
(base32
"1fanxivsip29vgarw6dn39xym3q4pbxcpa11plpp548lvxajpahz"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "py.test"))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-pytest-warnings" ,python-pytest-warnings)
("python-whatever" ,python-whatever)))
(home-page "http://github.com/Suor/funcy")
(synopsis "Functional tools")
(description "@code{funcy} is a library that provides functional tools.
Examples are:
@enumerate
@item merge - Merges collections of the same type
@item walk - Type-preserving map
@item select - Selects a part of a collection
@item take - Takes the first n items of a collection
@item first - Takes the first item of a collection
@item remove - Predicated-removes items of a collection
@item concat - Concatenates two collections
@item flatten - Flattens a collection with subcollections
@item distinct - Returns only distinct items
@item split - Predicated-splits a collection
@item split_at - Splits a collection at a given item
@item group_by - Groups items by group
@item pairwise - Pairs off adjacent items
@item partial - Partially-applies a function
@item curry - Curries a function
@item compose - Composes functions
@item complement - Complements a predicate
@item all_fn - \"all\" with predicate
@end enumerate")
(license license:bsd-3)))
(define-public python2-funcy
(package-with-python2 python-funcy))
(define-public python-isoweek
(package
(name "python-isoweek")
(version "1.3.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "isoweek" version))
(sha256
(base32
"1s7zsf0pab0l9gn6456qadnz5i5h90hafcjwnhx5mq23qjxggwvk"))))
(build-system python-build-system)
(home-page "https://github.com/gisle/isoweek")
(synopsis "Objects representing a week")
(description "The @code{isoweek} module provide the class Week that
implements the week definition of ISO 8601. This standard also defines
a notation for identifying weeks; yyyyWww (where the W is a literal).
Week instances stringify to this form.")
(license license:bsd-3)))
(define-public python2-isoweek
(package-with-python2 python-isoweek))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -238,14 +239,14 @@ (define-public redland
(define-public serd
(package
(name "serd")
(version "0.26.0")
(version "0.28.0")
(source (origin
(method url-fetch)
(uri (string-append "http://download.drobilla.net/serd-"
version ".tar.bz2"))
(sha256
(base32
"164j43am4hka2vbzw4n52zy7rafgp6kmkgbcbvap368az644mr73"))))
"1v4ai4zyj1q3255nghicns9817jkwb3bh60ssprsjmnjfj41mwhx"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no check target

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -37,14 +38,14 @@ (define-module (gnu packages sawfish)
(define-public librep
(package
(name "librep")
(version "0.92.6")
(version "0.92.7")
(source (origin
(method url-fetch)
(uri (string-append "http://download.tuxfamily.org/" name "/"
name "_" version ".tar.xz"))
(sha256
(base32
"1k6c0hmyzxh8459r790slh9vv9vwy9d7w3nlmrqypbx9mk855hgy"))))
"1bmcjl1x1rdh514q9z3hzyjmjmwwwkziipjpjsl301bwmiwrd8a8"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases

View file

@ -200,14 +200,14 @@ (define-public mit-scheme
(define-public bigloo
(package
(name "bigloo")
(version "4.3a")
(version "4.3b")
(source (origin
(method url-fetch)
(uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo"
version ".tar.gz"))
(sha256
(base32
"03rcqs6kvy2j5lqk4fidqay5qfyp474qqspbh6wk4qdbds6w599w"))
"1xpzxjlq5g8j3jrb908kfaaa0pkynk4rd083hzvb08amhy68sx07"))
;; Remove bundled libraries.
(modules '((guix build utils)))
(snippet
@ -229,34 +229,37 @@ (define-public bigloo
((", @DATE@") ""))
(substitute* "autoconf/osversion"
(("^version.*$") "version=\"\"\n"))
(substitute* "comptime/Makefile"
(("\\$\\(LDCOMPLIBS\\)")
"$(LDCOMPLIBS) $(LDFLAGS)"))
;; The `configure' script doesn't understand options
;; of those of Autoconf.
(let ((out (assoc-ref outputs "out")))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
; use system libraries
"--customgc=no"
"--customunistring=no"
"--customlibuv=no"
(string-append"--mv=" (which "mv"))
(string-append "--rm=" (which "rm"))
"--cflags=-fPIC"
(string-append "--ldflags=-Wl,-rpath="
(assoc-ref outputs "out")
"/lib/bigloo/" ,version)
(string-append "--lispdir=" out
"/share/emacs/site-lisp")
"--sharedbde=yes"
"--sharedcompiler=yes")))))
(invoke "./configure"
(string-append "--prefix=" out)
; use system libraries
"--customgc=no"
"--customunistring=no"
"--customlibuv=no"
(string-append"--mv=" (which "mv"))
(string-append "--rm=" (which "rm"))
"--cflags=-fPIC"
(string-append "--ldflags=-Wl,-rpath="
(assoc-ref outputs "out")
"/lib/bigloo/" ,version)
(string-append "--lispdir=" out
"/share/emacs/site-lisp")
"--sharedbde=yes"
"--sharedcompiler=yes"
"--disable-patch"))))
(add-after 'install 'install-emacs-modes
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dir (string-append out "/share/emacs/site-lisp")))
(zero? (system* "make" "-C" "bmacs" "all" "install"
(string-append "EMACSBRAND=emacs25")
(string-append "EMACSDIR=" dir)))))))))
(invoke "make" "-C" "bmacs" "all" "install"
(string-append "EMACSBRAND=emacs25")
(string-append "EMACSDIR=" dir))))))))
(inputs
`(("emacs" ,emacs) ;UDE needs the X version of Emacs
("libgc" ,libgc)

View file

@ -648,14 +648,14 @@ (define-public mksh
(define-public oil-shell
(package
(name "oil-shell")
(version "0.3.0")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.xz"))
(sha256
(base32
"0j4fyn6xjaf29xqyzm09ahazmq9v1hkxv4kps7n3lzdfr32a4kk9"))))
"0ca68n46mhibarpfinqfkim6p3xmbz5rrpl4qr3sj9y0q6wm7sa2"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; the tests are not distributed in the tarballs

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
@ -62,35 +62,40 @@ (define-module (gnu packages ssh)
#:use-module (srfi srfi-1))
(define-public libssh
(package
(name "libssh")
(version "0.7.5")
(source (origin
(method url-fetch)
(uri (string-append
"https://red.libssh.org/attachments/download/218/libssh-"
version ".tar.xz"))
(sha256
(base32
"15bh6dm9c50ndddzh3gqcgw7axp3ghrspjpkb1z3dr90vkanvs2l"))
(patches (search-patches "libssh-hostname-parser-bug.patch"))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
'(#:configure-flags '("-DWITH_GCRYPT=ON")
;; This commit from the 'v0-7' branch contains 7 memory-management-related
;; bug fixes that we'd rather have.
(let ((commit "239d0f75b5f909174c2ef7fb08d23bcfa6b20ba0")
(revision "0"))
(package
(name "libssh")
(version (git-version "0.7.5" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.libssh.org/projects/libssh.git")
(commit commit)))
(sha256
(base32
"01w72w1jsgs9ilj3n1gp6qkmdxr9n74i5h2nipi3x1vzm7bv8na1"))
(patches (search-patches "libssh-hostname-parser-bug.patch"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
'(#:configure-flags '("-DWITH_GCRYPT=ON")
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
#:tests? #f))
(inputs `(("zlib" ,zlib)
("libgcrypt" ,libgcrypt)))
(synopsis "SSH client library")
(description
"libssh is a C library implementing the SSHv2 and SSHv1 protocol for
;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite.
#:tests? #f))
(inputs `(("zlib" ,zlib)
("libgcrypt" ,libgcrypt)))
(synopsis "SSH client library")
(description
"libssh is a C library implementing the SSHv2 and SSHv1 protocol for
client and server implementations. With libssh, you can remotely execute
programs, transfer files, and use a secure and transparent tunnel for your
remote applications.")
(home-page "https://www.libssh.org")
(license license:lgpl2.1+)))
(home-page "https://www.libssh.org")
(license license:lgpl2.1+))))
(define-public libssh2
(package

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Petter <petter@mykolab.ch>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
;;;
;;; This file is part of GNU Guix.
;;;
@ -28,7 +28,7 @@ (define-module (gnu packages syncthing)
(define-public syncthing
(package
(name "syncthing")
(version "0.14.43")
(version "0.14.44")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/syncthing/syncthing"
@ -36,7 +36,11 @@ (define-public syncthing
"/syncthing-source-v" version ".tar.gz"))
(sha256
(base32
"175xkc4i00axxljc5kgkr30lm1s9hfmz0hrzrsl91rpwpbh500mv"))))
"0fxq52w1b05928xp0a333rg23fabj0nykgg7v4gz01f3vrxyydi1"))
(modules '((guix build utils)))
;; Delete bundled ("vendored") free software source code.
(snippet
'(delete-file-recursively "vendor"))))
(build-system go-build-system)
;; The primary Syncthing executable goes to "out", while the auxiliary
;; server programs and utility tools go to "utils". This reduces the size
@ -49,18 +53,6 @@ (define-public syncthing
#:install-source? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'delete-bundled-source-code
(lambda _
;; Keep the bundled cznic libraries. There are some "internal"
;; cznic libraries that complicate the use of non-bundled copies.
(rename-file "src/github.com/syncthing/syncthing/vendor/github.com/cznic"
"cznic")
(delete-file-recursively "src/github.com/syncthing/syncthing/vendor")
(mkdir-p "src/github.com/syncthing/syncthing/vendor/github.com/")
(rename-file "cznic"
"src/github.com/syncthing/syncthing/vendor/github.com/cznic")
#t))
(add-before 'build 'increase-test-timeout
(lambda _
(substitute* "src/github.com/syncthing/syncthing/build.go"
@ -129,11 +121,9 @@ (define-public syncthing
("go-github-com-calmh-xdr" ,go-github-com-calmh-xdr)
("go-github-com-ccding-go-stun"
,go-github-com-ccding-go-stun)
("go-github-com-prometheus-union" ,(go-github-com-prometheus-union))
("go-github-com-chmduquesne-rollinghash-adler32"
,go-github-com-chmduquesne-rollinghash-adler32)
; ("go-github-com-cznic-ql" ,go-github-com-cznic-ql) ; bundled
; Used by bundled ql
("go-github-com-edsrzf-mmap-go" ,go-github-com-edsrzf-mmap-go)
("go-github-com-gobwas-glob" ,go-github-com-gobwas-glob)
("go-github-com-gogo-protobuf-union"
,(go-github-com-gogo-protobuf-union))
@ -358,8 +348,8 @@ (define* (go-github-com-gogo-protobuf-union
(license (package-license go-github-com-gogo-protobuf))))
(define-public go-github-com-gogo-protobuf
(let ((commit "35b81a066e522fb86ece043a8ef1dbfa10b4fed1")
(revision "1"))
(let ((commit "160de10b2537169b5ae3e7e221d28269ef40d311")
(revision "2"))
(package
(name "go-github-com-gogo-protobuf")
(version (git-version "0.5" revision commit))
@ -371,7 +361,7 @@ (define-public go-github-com-gogo-protobuf
(file-name (git-file-name name version))
(sha256
(base32
"194k6cls2g654df54x5rzrn5nqrfk8yz1jymm667ajjvzcplidja"))))
"0hxq28sgxym04rv0q40gpwkh4ni359q21hq3g78wwxwx4qfd4zwm"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/gogo/protobuf/proto"
@ -1853,8 +1843,8 @@ (define-public go-github-com-tjfoc-gmsm-sm4
(license asl2.0))))
(define-public go-github-com-zillode-notify
(let ((commit "8fff849a2026ce7a59f67ed9747dd9c7adc8bd0b")
(revision "1"))
(let ((commit "a8abcfb1ce88ee8d79a300ed65d94b8fb616ddb3")
(revision "2"))
(package
(name "go-github-com-zillode-notify")
(version (git-version "0.0.0" revision commit))
@ -1866,7 +1856,7 @@ (define-public go-github-com-zillode-notify
(file-name (git-file-name name version))
(sha256
(base32
"1aazci21y85k1c02dlvdfx926vxb3j4i96fn27s7zxmqjlk7l3ga"))))
"031pmbvm0xj4f4fak7im0ywmyn3hns538zlbdj4f23jj69zqdy7k"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/zillode/notify"))
@ -1927,3 +1917,281 @@ (define-public go-github-com-klauspost-reedsolomon
Erasure Coding in Go.")
(home-page "https://github.com/klauspost/reedsolomon")
(license expat))))
(define-public go-github-com-beorn7-perks-quantile
(let ((commit "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9")
(revision "0"))
(package
(name "go-github-com-beorn7-perks-quantile")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/beorn7/perks.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/beorn7/perks/quantile"
#:unpack-path "github.com/beorn7/perks"))
(synopsis "Compute approximate quantiles over an unbounded data stream")
(description "Perks contains the Go package @code{quantile} that computes
approximate quantiles over an unbounded data stream within low memory and CPU
bounds.")
(home-page "https://github.com/beorn7/perks")
(license expat))))
(define-public go-github-com-golang-protobuf-proto
(let ((commit "1e59b77b52bf8e4b449a57e6f79f21226d571845")
(revision "0"))
(package
(name "go-github-com-golang-protobuf-proto")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/golang/protobuf.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"19bkh81wnp6njg3931wky6hsnnl2d1ig20vfjxpv450sd3k6yys8"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/golang/protobuf/proto"
#:unpack-path "github.com/golang/protobuf"
#:tests? #f ; requires unpackaged golang.org/x/sync/errgroup
))
(synopsis "Go support for Protocol Buffers")
(description "This package provides Go support for the Protocol Buffers
data serialization format.")
(home-page "https://github.com/golang/protobuf")
(license bsd-3))))
(define-public go-github-com-prometheus-client-model-go
(let ((commit "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c")
(revision "0"))
(package
(name "go-github-com-prometheus-client-model-go")
(version (git-version "0.0.2" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/client_model.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"19y4ywsivhpxj7ikf2j0gm9k3cmyw37qcbfi78n526jxcc7kw998"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/client_model/go"
#:unpack-path "github.com/prometheus/client_model"))
(propagated-inputs
`(("go-github-com-golang-protobuf-proto"
,go-github-com-golang-protobuf-proto)))
(synopsis "Data model artifacts for Prometheus")
(description "This package provides data model artifacts for Prometheus.")
(home-page "https://github.com/prometheus/client_model")
(license asl2.0))))
(define-public go-github-com-matttproud-golang-protobuf-extensions-pbutil
(let ((commit "c12348ce28de40eed0136aa2b644d0ee0650e56c")
(revision "0"))
(package
(name "go-github-com-matttproud-golang-protobuf-extensions-pbutil")
(version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/matttproud/golang_protobuf_extensions.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/matttproud/golang_protobuf_extensions/pbutil"
#:unpack-path "github.com/matttproud/golang_protobuf_extensions"))
(propagated-inputs
`(("go-github-com-golang-protobuf-proto"
,go-github-com-golang-protobuf-proto)))
(synopsis "Streaming Protocol Buffers in Go")
(description "This package provides various Protocol Buffer
extensions for the Go language, namely support for record length-delimited
message streaming.")
(home-page "https://github.com/matttproud/golang_protobuf_extensions")
(license asl2.0))))
(define-public go-github-com-prometheus-common-expfmt
(let ((commit "2e54d0b93cba2fd133edc32211dcc32c06ef72ca")
(revision "0"))
(package
(name "go-github-com-prometheus-common-expfmt")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/common.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"14kn5w7imcxxlfdqxl21fsnlf1ms7200g3ldy29hwamldv8qlm7j"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/common/expfmt"
#:unpack-path "github.com/prometheus/common"
#:phases
(modify-phases %standard-phases
(add-before 'reset-gzip-timestamps 'make-gzip-archive-writable
(lambda* (#:key outputs #:allow-other-keys)
(map (lambda (file)
(make-file-writable file))
(find-files
(string-append (assoc-ref outputs "out")
"/src/github.com/prometheus/common/expfmt/testdata/")
".*\\.gz$"))
#t)))))
(propagated-inputs
`(("go-github-com-golang-protobuf-proto"
,go-github-com-golang-protobuf-proto)
("go-github-com-matttproud-golang-protobuf-extensions-pbutil"
,go-github-com-matttproud-golang-protobuf-extensions-pbutil)
("go-github-com-prometheus-client-model-go"
,go-github-com-prometheus-client-model-go)))
(synopsis "Prometheus metrics")
(description "This package provides tools for reading and writing
Prometheus metrics.")
(home-page "https://github.com/prometheus/common")
(license asl2.0))))
(define-public go-github-com-prometheus-procfs
(let ((commit "b15cd069a83443be3154b719d0cc9fe8117f09fb")
(revision "0"))
(package
(name "go-github-com-prometheus-procfs")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/procfs.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1cr45wg2m40bj2za8f32mq09rjlcnk5kfam0h0hr8wcb015k4wxj"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/procfs"))
(synopsis "Go library for reading @file{/proc}")
(description "This Go package @code{procfs} provides functions to retrieve
system, kernel and process metrics from the pseudo-filesystem @file{/proc}.")
(home-page "https://github.com/prometheus/procfs")
(license asl2.0))))
(define-public go-github-com-client-golang-prometheus-promhttp
(let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3")
(revision "0"))
(package
(name "go-github-com-client-golang-prometheus-promhttp")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/client_golang.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp"))))
(build-system go-build-system)
(arguments
'(#:tests? #f ; The tests require internet access
#:import-path "github.com/prometheus/client_golang/prometheus/promhttp"
#:unpack-path "github.com/prometheus/client_golang"))
(propagated-inputs
`(("go-github-com-beorn7-perks-quantile"
,go-github-com-beorn7-perks-quantile)
("go-github-com-golang-protobuf-proto"
,go-github-com-golang-protobuf-proto)
("go-github-com-prometheus-client-model-go"
,go-github-com-prometheus-client-model-go)
("go-github-com-prometheus-common-expfmt"
,go-github-com-prometheus-common-expfmt)
("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)))
(synopsis "HTTP server and client tools for Prometheus")
(description "This package @code{promhttp} provides HTTP client and
server tools for Prometheus metrics.")
(home-page "https://github.com/prometheus/client_golang")
(license asl2.0))))
(define-public go-github-com-client-golang-prometheus
(let ((commit "180b8fdc22b4ea7750bcb43c925277654a1ea2f3")
(revision "0"))
(package
(name "go-github-com-prometheus-client-golang-prometheus")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/prometheus/client_golang.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1kkfx1j9ka18ydsmdi2cdy3hs39c22b39mbc4laykmj2x93lmbdp"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/prometheus/client_golang/prometheus"
#:unpack-path "github.com/prometheus/client_golang"))
(propagated-inputs
`(("go-github-com-beorn7-perks-quantile"
,go-github-com-beorn7-perks-quantile)
("go-github-com-golang-protobuf-proto"
,go-github-com-golang-protobuf-proto)
("go-github-com-prometheus-client-model-go"
,go-github-com-prometheus-client-model-go)
("go-github-com-prometheus-common-expfmt"
,go-github-com-prometheus-common-expfmt)
("go-github-com-prometheus-procfs" ,go-github-com-prometheus-procfs)
("go-github-com-client-golang-prometheus-promhttp"
,go-github-com-client-golang-prometheus-promhttp)))
(synopsis "Prometheus instrumentation library for Go applications")
(description "This package provides the Go client library for the
Prometheus monitoring and alerting system. It has two separate parts, one for
instrumenting application code, and one for creating clients that talk to the
Prometheus HTTP API.")
(home-page "https://github.com/prometheus/client_golang")
(license asl2.0))))
(define* (go-github-com-prometheus-union
#:optional (packages (list go-github-com-client-golang-prometheus
go-github-com-client-golang-prometheus-promhttp)))
(package
(name "go-github-com-prometheus-union")
(version (package-version go-github-com-client-golang-prometheus))
(source #f)
(build-system trivial-build-system)
(arguments
'(#:modules ((guix build union))
#:builder (begin
(use-modules (ice-9 match)
(guix build union))
(match %build-inputs
(((names . directories) ...)
(union-build (assoc-ref %outputs "out")
directories))))))
(inputs (map (lambda (package)
(list (package-name package) package))
packages))
(synopsis "Union of Go Prometheus libraries")
(description "This is a union of Go Prometheus libraries")
(home-page (package-home-page go-github-com-client-golang-prometheus))
(license (package-license go-github-com-client-golang-prometheus))))

View file

@ -5,6 +5,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -86,7 +87,7 @@ (define-public tcl
(define-public expect
(package
(name "expect")
(version "5.45.3")
(version "5.45.4")
(source
(origin
(method url-fetch)
@ -94,7 +95,7 @@ (define-public expect
version "/expect" version ".tar.gz"))
(sha256
(base32
"1s9ba7m0bmg6brn4x030y2xg7hqara1fr4hlrrllm54mf5xp2865"))))
"0d1cp5hggjl93xwc8h1y6adbnrvpkk0ywkd00inz9ndxn21xm9s9"))))
(build-system gnu-build-system)
(inputs
`(;; TODO: Add these optional dependencies.

View file

@ -29,14 +29,14 @@ (define-module (gnu packages upnp)
(define-public miniupnpc
(package
(name "miniupnpc")
(version "2.0.20171212")
(version "2.0.20180203")
(source
(origin
(method url-fetch)
(uri (string-append "https://miniupnp.tuxfamily.org/files/"
name "-" version ".tar.gz"))
(sha256
(base32 "0za7pr6hrr3ajkifirhhxfn3hlhl06f622g8hnj5h8y18sp3bwff"))))
(base32 "1dr0qaf2qz49aawgsnv7l41rda5yvdk3qfz2hd5cv9iwav3sipch"))))
(build-system gnu-build-system)
(native-inputs
`(("python" ,python-2)))

View file

@ -6,7 +6,7 @@
;;; Copyright © 2015, 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
@ -1456,7 +1456,7 @@ (define-public findnewest
(define-public myrepos
(package
(name "myrepos")
(version "1.20170129")
(version "1.20171231")
(source
(origin
(method git-fetch)
@ -1465,7 +1465,7 @@ (define-public myrepos
(commit version)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32 "15i9bs2i25l7ibv530ghy8280kklcgm5kr6j86s7iwcqqckd0czp"))))
(base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0"))))
(build-system gnu-build-system)
(inputs
`(("perl" ,perl)))

View file

@ -6,7 +6,7 @@
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
@ -1018,6 +1018,9 @@ (define-public mpv
(sha256
(base32
"1d2p6k3y9lqx8bpdal4grrj8ljy7pvd8qgdq8004fmr38afmbb7f"))
(patches (search-patches "mpv-CVE-2018-6360-1.patch"
"mpv-CVE-2018-6360-2.patch"
"mpv-CVE-2018-6360-3.patch"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system waf-build-system)
(native-inputs

View file

@ -177,7 +177,7 @@ (define-public mod-wsgi
(define-public nginx
(package
(name "nginx")
;; Consider updating the nginx-docs package if the nginx package is
;; Consider updating the nginx-documentation package if the nginx package is
;; updated.
(version "1.13.8")
(source (origin
@ -310,13 +310,13 @@ (define nginx-xslscript
(license l:bsd-2))))
(define-public nginx-documentation
;; This documentation should be relevant for nginx-1.12.0
(let ((revision 1961)
(changeset "dd4b6c564e10"))
;; This documentation should be relevant for nginx@1.13.8.
(let ((revision 2100)
(changeset "cfb7bd672d77"))
(package
(name "nginx-documentation")
(version
(simple-format #f "2017-04-12-~A-~A" revision changeset))
(simple-format #f "2018-01-22-~A-~A" revision changeset))
(source
(origin (method hg-fetch)
(uri (hg-reference
@ -325,13 +325,13 @@ (define-public nginx-documentation
(file-name (string-append name "-" version))
(sha256
(base32
"0rycfnnm2xkm777769h1zib428q45j64mx8nzzfzs4v07jbfc8m5"))))
"096fcsc0wnfr847m7dwp17rivd3alxq7v9hq9s5lkfbhylmh18vm"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; No test suite
'(#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'configure) ; no configure script
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(let ((output (assoc-ref outputs "out")))

View file

@ -5923,7 +5923,7 @@ (define-public xcompmgr
(define-public xpra
(package
(name "xpra")
(version "2.2.3")
(version "2.2.4")
(source
(origin
(method url-fetch)
@ -5931,7 +5931,7 @@ (define-public xpra
version ".tar.xz"))
(sha256
(base32
"03cq16cfffm5f62g1xc3makr03b5wjjfy6zlwag70pc3g0k6n6jh"))))
"0v8yflvisk94bfj0zg4ggdfwrig0f3ss9kjnws3zflsr33cb2hxy"))))
(build-system python-build-system)
(inputs `(("ffmpeg" ,ffmpeg)
("flac" ,flac)

View file

@ -82,7 +82,8 @@ (define private-keywords
(define* (emacs-build store name inputs
#:key source
(tests? #t)
(tests? #f)
(parallel-tests? #t)
(test-target "test")
(configure-flags ''())
(phases '(@ (guix build emacs-build-system)

View file

@ -2,6 +2,7 @@
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -42,7 +43,8 @@ (define-module (guix build emacs-build-system)
;; Directory suffix where we install ELPA packages. We avoid ".../elpa" as
;; Emacs expects to find the ELPA repository 'archive-contents' file and the
;; archive signature.
(define %install-suffix "/share/emacs/site-lisp/guix.d")
(define %legacy-install-suffix "/share/emacs/site-lisp")
(define %install-suffix (string-append %legacy-install-suffix "/guix.d"))
;; These are the default inclusion/exclusion regexps for the install phase.
(define %default-include '("^[^/]*\\.el$" "^[^/]*\\.info$" "^doc/.*\\.info$"))
@ -72,38 +74,63 @@ (define* (unpack #:key source #:allow-other-keys)
#t)
(gnu:unpack #:source source)))
(define* (set-emacs-load-path #:key inputs #:allow-other-keys)
"Set the EMACSLOADPATH environment variable so that dependencies are found."
(let* ((input-elisp-dirs (emacs-inputs-el-directories
(emacs-inputs-directories inputs)))
(emacs-load-path-value (string-join
input-elisp-dirs ":" 'suffix)))
(setenv "EMACSLOADPATH" emacs-load-path-value)
(format #t "environment variable `EMACSLOADPATH' set to ~a\n"
emacs-load-path-value)))
(define* (build #:key outputs inputs #:allow-other-keys)
"Compile .el files."
(let* ((emacs (string-append (assoc-ref inputs "emacs") "/bin/emacs"))
(out (assoc-ref outputs "out"))
(elpa-name-ver (store-directory->elpa-name-version out))
(el-dir (string-append out %install-suffix "/" elpa-name-ver))
(deps-dirs (emacs-inputs-directories inputs)))
(el-dir (string-append out %install-suffix "/" elpa-name-ver)))
(setenv "SHELL" "sh")
(parameterize ((%emacs emacs))
(emacs-byte-compile-directory el-dir
(emacs-inputs-el-directories deps-dirs)))))
(emacs-byte-compile-directory el-dir))))
(define* (patch-el-files #:key outputs #:allow-other-keys)
"Substitute the absolute \"/bin/\" directory with the right location in the
store in '.el' files."
(define (file-contains-nul-char? file)
(call-with-input-file file
(lambda (in)
(let loop ((line (read-line in 'concat)))
(cond
((eof-object? line) #f)
((string-index line #\nul) #t)
(else (loop (read-line in 'concat))))))
#:binary #t))
(let* ((out (assoc-ref outputs "out"))
(elpa-name-ver (store-directory->elpa-name-version out))
(el-dir (string-append out %install-suffix "/" elpa-name-ver))
(substitute-cmd (lambda ()
(substitute* (find-files "." "\\.el$")
(("\"/bin/([^.]\\S*)\"" _ cmd-name)
(let ((cmd (which cmd-name)))
(unless cmd
(error
"patch-el-files: unable to locate " cmd-name))
(string-append "\"" cmd "\"")))))))
;; (ice-9 regex) uses libc's regexp routines, which cannot deal with
;; strings containing NULs. Filter out such files. TODO: Remove
;; this workaround when <https://bugs.gnu.org/30116> is fixed.
(el-files (remove file-contains-nul-char?
(find-files (getcwd) "\\.el$"))))
(define (substitute-program-names)
(substitute* el-files
(("\"/bin/([^.]\\S*)\"" _ cmd-name)
(let ((cmd (which cmd-name)))
(unless cmd
(error "patch-el-files: unable to locate " cmd-name))
(string-append "\"" cmd "\"")))))
(with-directory-excursion el-dir
;; Some old '.el' files (e.g., tex-buf.el in AUCTeX) are still encoded
;; with the "ISO-8859-1" locale.
(unless (false-if-exception (substitute-cmd))
;; Some old '.el' files (e.g., tex-buf.el in AUCTeX) are still
;; ISO-8859-1-encoded.
(unless (false-if-exception (substitute-program-names))
(with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute-cmd))))
(substitute-program-names))))
#t))
(define* (install #:key outputs
@ -199,18 +226,27 @@ (define (emacs-inputs-directories inputs)
(match inputs
(((names . directories) ...) directories))))
(define (emacs-input->el-directory emacs-input)
"Return the correct Elisp directory location of EMACS-INPUT or #f if none."
(let ((legacy-elisp-dir (string-append emacs-input %legacy-install-suffix))
(guix-elisp-dir (string-append
emacs-input %install-suffix "/"
(store-directory->elpa-name-version emacs-input))))
(cond
((file-exists? guix-elisp-dir) guix-elisp-dir)
((file-exists? legacy-elisp-dir) legacy-elisp-dir)
(else (format #t "warning: could not locate elisp directory under `~a'\n"
emacs-input)
#f))))
(define (emacs-inputs-el-directories dirs)
"Build the list of Emacs Lisp directories from the Emacs package directory
DIRS."
(append-map (lambda (d)
(list (string-append d "/share/emacs/site-lisp")
(string-append d %install-suffix "/"
(store-directory->elpa-name-version d))))
dirs))
(filter-map emacs-input->el-directory dirs))
(define (package-name-version->elpa-name-version name-ver)
"Convert the Guix package NAME-VER to the corresponding ELPA name-version
format. Essnetially drop the prefix used in Guix."
format. Essentially drop the prefix used in Guix."
(if (emacs-package? name-ver) ; checks for "emacs-" prefix
(string-drop name-ver (string-length "emacs-"))
name-ver))
@ -224,12 +260,14 @@ (define (store-directory->elpa-name-version store-dir)
(define %standard-phases
(modify-phases gnu:%standard-phases
(add-after 'set-paths 'set-emacs-load-path set-emacs-load-path)
(replace 'unpack unpack)
(delete 'configure)
(delete 'check)
(delete 'install)
(replace 'build build)
(add-before 'build 'install install)
;; Move the build phase after install: the .el files are byte compiled
;; directly in the store.
(delete 'build)
(replace 'install install)
(add-after 'install 'build build)
(add-after 'install 'make-autoloads make-autoloads)
(add-after 'make-autoloads 'patch-el-files patch-el-files)
(add-after 'make-autoloads 'move-doc move-doc)))

View file

@ -58,14 +58,9 @@ (define (emacs-generate-autoloads name directory)
(update-directory-autoloads ,directory))))
(emacs-batch-eval expr)))
(define* (emacs-byte-compile-directory dir #:optional (dependency-dirs '()))
"Byte compile all files in DIR and its sub-directories. Before compiling
the files, add DIR and all directories in DEPENDENCY-DIRS to 'load-path'."
(let ((expr `(progn
(add-to-list 'load-path ,dir)
(when ',dependency-dirs
(setq load-path (append ',dependency-dirs load-path)))
(byte-recompile-directory (file-name-as-directory ,dir) 0))))
(define* (emacs-byte-compile-directory dir)
"Byte compile all files in DIR and its sub-directories."
(let ((expr `(byte-recompile-directory (file-name-as-directory ,dir) 0)))
(emacs-batch-eval expr)))
(define-syntax emacs-substitute-sexps